HomeFreeBSD

vt(4): Resume vt_timer() in vtterm_post_input() only

Description

vt(4): Resume vt_timer() in vtterm_post_input() only

There is no need to try to resume it after each smaller operations
(putchar, cursor_position, copy, fill).

The resume function already checks if the timer is armed before doing
anything, but it uses an atomic cmpset which is expensive. And resuming
the timer at the end of input processing is enough.

While here, we also skip timer resume if the input is for another
windows than the currently displayed one. I.e. if ttyv0 is currently
displayed, any changes to ttyv1 shouldn't resume the timer (which
would refresh ttyv0).

By doing the same benchmark as r333669, I get:

  • vt(4), before r333669: 1500 ms
  • vt(4), with this patch: 760 ms
  • syscons(4): 700 ms

Details

Provenance
dumbbellAuthored on
Parents
rS333669: teken, vt(4): New callbacks to lock the terminal once
Branches
Unknown
Tags
Unknown