HomeFreeBSD

vt(4): Add vtbuf_dirty*_locked() to lock vtbuf once, not twice

Description

vt(4): Add vtbuf_dirty*_locked() to lock vtbuf once, not twice

In several functions, vtbuf_putchar() in particular, the lock on vtbuf
is acquired twice:

  1. once by the said functions;
  2. once in vtbuf_dirty().

Now, vtbuf_dirty_locked() and vtbuf_dirty_cell_locked() allow to
acquire that lock only once.

This improves the input speed of vt(4). To measure the gain, a
50,000-lines file was displayed on the console using cat(1). The time
taken by cat(1) is reported below:

o  On amd64, with vt_vga:
    - before: 1.0"
  • after: 0.5" o On sparc64, with creator_vt:
    • before: 13.6"
  • after: 10.5"

MFC after: 1 week

Details

Provenance
dumbbellAuthored on
Parents
rS269779: fbd: Fix a bug where vt_fb_attach() success would be considered a failure
Branches
Unknown
Tags
Unknown

Event Timeline