linux/Documentation/fb
Dave Airlie dd0c41f8a7 efifb: allow user to disable write combined mapping.
This patch allows the user to disable write combined mapping
of the efifb framebuffer console using an nowc option.

A customer noticed major slowdowns while logging to the console
with write combining enabled, on other tasks running on the same
CPU. (10x or greater slow down on all other cores on the same CPU
as is doing the logging).

I reproduced this on a machine with dual CPUs.
Intel(R) Xeon(R) CPU E5-2609 v3 @ 1.90GHz (6 core)

I wrote a test that just mmaps the pci bar and writes to it in
a loop, while this was running in the background one a single
core with (taskset -c 1), building a kernel up to init/version.o
(taskset -c 8) went from 13s to 133s or so. I've yet to explain
why this occurs or what is going wrong I haven't managed to find
a perf command that in any way gives insight into this.

    11,885,070,715      instructions              #    1.39  insns per cycle
vs
    12,082,592,342      instructions              #    0.13  insns per cycle

is the only thing I've spotted of interest, I've tried at least:
dTLB-stores,dTLB-store-misses,L1-dcache-stores,LLC-store,LLC-store-misses,LLC-load-misses,LLC-loads,\mem-loads,mem-stores,iTLB-loads,iTLB-load-misses,cache-references,cache-misses

For now it seems at least a good idea to allow a user to disable write
combining if they see this until we can figure it out.

Note also most users get a real framebuffer driver loaded when kms
kicks in, it just happens on these machines the kernel didn't support
the gpu specific driver.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Acked-by: Peter Jones <pjones@redhat.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2017-07-31 18:45:41 +02:00
..
00-INDEX Documentation/: update 00-INDEX files 2014-02-10 16:01:40 -08:00
api.txt docs: update old references for DocBook from the documentation 2017-05-16 08:44:19 -03:00
arkfb.txt
aty128fb.txt
cirrusfb.txt doc: fix misspellings with 'codespell' tool 2013-05-28 12:02:12 +02:00
cmap_xfbdev.txt
deferred_io.txt
efifb.txt efifb: allow user to disable write combined mapping. 2017-07-31 18:45:41 +02:00
ep93xx-fb.txt
fbcon.txt doc: Fix typo in doucmentations 2013-07-25 12:34:15 +02:00
framebuffer.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
gxfb.txt
intel810.txt Documentation: remove references to /etc/modprobe.conf 2012-03-30 16:03:15 -07:00
intelfb.txt Documentation: remove references to /etc/modprobe.conf 2012-03-30 16:03:15 -07:00
internals.txt
lxfb.txt
matroxfb.txt Documentation: Fix multiple typo in Documentation 2012-03-07 16:08:24 +01:00
metronomefb.txt
modedb.txt DRM: clean up and document parsing of video= parameter 2011-07-25 12:02:26 +01:00
pvr2fb.txt
pxafb.txt
s3fb.txt
sa1100fb.txt
sh7760fb.txt
sisfb.txt
sm501.txt doc: spelling error changes 2014-05-05 15:32:05 +02:00
sm712fb.txt Documentation/fb: add documentation for sm712fb 2015-08-07 15:05:01 -07:00
sstfb.txt doc: spelling error changes 2014-05-05 15:32:05 +02:00
tgafb.txt
tridentfb.txt
udlfb.txt Documentation: fb: fix spelling mistakes 2016-05-10 12:05:27 +03:00
uvesafb.txt uvesafb: Clean up MTRR code 2013-05-31 13:37:36 +10:00
vesafb.txt
viafb.modes Documentation/fb/viafb.modes fix a typo 2013-08-20 12:41:11 +02:00
viafb.txt doc: Fix typo in doucmentations 2013-07-25 12:34:15 +02:00
vt8623fb.txt