Hi,
merged with fixes for the typoes in the final patch. Thanks for reviewing.
Best regards Thomas
Am 23.02.22 um 20:37 schrieb Thomas Zimmermann:
Optimize performance of the fbdev console for the common case of software-based clearing and image blitting.
The commit descripton of each patch contains resuls os a simple microbenchmark. I also tested the full patchset's effect on the console output by printing directory listings (i7-4790, FullHD, simpledrm, kernel with debugging).
time find /usr/share/doc -type f
In the unoptimized case:
real 0m6.173s user 0m0.044s sys 0m6.107s
With optimizations applied:
real 0m4.754s user 0m0.044s sys 0m4.698s
In the optimized case, printing the directory listing is ~25% faster than before.
In v2 of the patchset, after implementing Sam's suggestion to update cfb_imageblit() as well, it turns out that the compiled code in sys_imageblit() is still significantly slower than the CFB version. A fix is probably a larger task and would include architecture-specific changes. A new TODO item suggests to investigate the performance of the various helpers and format-conversion functions in DRM and fbdev.
v3:
- fix description of cfb_imageblit() patch (Pekka)
v2:
- improve readability for sys_imageblit() (Gerd, Sam)
- new TODO item for further optimization
Thomas Zimmermann (5): fbdev: Improve performance of sys_fillrect() fbdev: Improve performance of sys_imageblit() fbdev: Remove trailing whitespaces from cfbimgblt.c fbdev: Improve performance of cfb_imageblit() drm: Add TODO item for optimizing format helpers
Documentation/gpu/todo.rst | 22 +++++ drivers/video/fbdev/core/cfbimgblt.c | 107 ++++++++++++++++--------- drivers/video/fbdev/core/sysfillrect.c | 16 +--- drivers/video/fbdev/core/sysimgblt.c | 49 ++++++++--- 4 files changed, 133 insertions(+), 61 deletions(-)