Opened 7 years ago

Closed 6 years ago

Last modified 6 years 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 by Jakub Jermář, 6 years ago

Milestone: 0.7.1

comment:2 by Jiri Svoboda, 6 years ago

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 by Jiri Svoboda, 6 years ago

Resolution: fixed
Status: newclosed

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

comment:4 by Jakub Jermář, 6 years ago

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