Fork us on GitHub Follow us on Google+ Follow us on Facebook Follow us on Twitter

Opened 16 months ago

Closed 15 months ago

Last modified 7 months ago

#699 closed defect (fixed)

Serial console scrolling is slow

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone: 0.7.2
Component: helenos/unspecified Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

As of mainline,2820 if you build sparc64/ultra and run it in Qemu, we get to the text console. Scrolling in the console is slow. Instead of using the serial terminal's native scrolling capability, the screen seems to be manually redrawn (i.e. retransmitted). This looks like a regression.

Change History (4)

comment:1 Changed 16 months ago by Jakub Jermář

Milestone: 0.7.1

comment:2 Changed 15 months ago by Jiri Svoboda

When anything changes on the screen the output server produces a 'diff' and for each character cell that's changed it calls outdev_ops_t.char_update(). For a serial terminal char_update() consists of three calls: vt100_goto(), vt100_set_attr(), vt100_putchar(). Each results in one call to chardev_control_puts(), which in turn calls chardev_write(). Thus we get three IPC calls to update each character cell.

With msim, ski and niagara this didn't use to be a problem, because the output port drivers were embedded in output server. It only manifested on sparc64/ultra which uses chardev/ns16550. Now that the other platform drivers were moved out and use chardev as well, they too exhibit this behavior.

comment:3 Changed 15 months ago by Jiri Svoboda

Resolution: fixed
Status: newclosed

The buffering issue was fixed with this commit. This alleviates the issue sufficiently.

comment:4 Changed 7 months ago by Jakub Jermář

Milestone: 0.7.2
Note: See TracTickets for help on using tickets.