[PATCH 0/3] fbuffer: performance improvement + code cleanup

Greg Kurz gkurz at linux.vnet.ibm.com
Thu May 28 23:13:09 AEST 2015

If booted in frame buffer mode, board-qemu currently calls hv-logical-load
and hv-logical-store for every pixel when enabling or disabling the cursor.
This is suboptimal when writing one char at a time to the console since
terminal-write always toggles the cursor. And this is precisely what grub
is doing when the user wants to edit a menu entry... the result is an
incredibly slow and barely usable interface.

This series introduces per-board helpers to be used by the frame buffer
code, so that board-qemu may have its own accelarated implementation:

- the first patch is preliminary cleanup, before moving code out to helpers.

- the second patch introduces a helper to invert a memory region byte-per-byte:
  this fixes the unbearable slowliness of grub editing mode.

- the third patch introduces a similar helper with a a quad-word pace: it
  doesn't bring any speed improvement since board-qemu already uses
  hv-logical-memop, but it allows to "unify hcall-invert-screen and
  fb8-invert-screen again".

Please comment.


Greg Kurz (3):
      fbuffer: simplify address computations in fb8-toggle-cursor
      fbuffer: introduce the invert-region helper
      fbuffer: introduce the invert-region-x helper

 board-js2x/slof/helper.fs               |    9 +++++++++
 board-qemu/slof/helper.fs               |    7 +++++++
 board-qemu/slof/pci-device_1234_1111.fs |   10 +---------
 slof/fs/fbuffer.fs                      |    8 +++-----
 4 files changed, 20 insertions(+), 14 deletions(-)


More information about the Linuxppc-dev mailing list