freebsd-dev/sys/dev/vt
Kyle Evans 8dff0b6761 efifb: add a tunable to select the framebuffer cache attribute
Mapping the framebuffer with WC (Write Combined) memory type can, in
practice, cause some memory transactions to be rate-limited at a
fraction of the fb write rate.  WC allows one core to queue up many
globally visible write transactions, and in the process some unrelated
transactions may end up having to wait for all of the queued up PCI
writes to be flushed.

Add an hw.efifb.cache_attr tunable to allow mapping the framebuffer as
uncacheable instead.  We should likely be taking a more careful approach
of checking the memory map to determine which cacheability attributes
are feasible, but the knob lets us use our historically functional
behavior while offering a convenient way to switch on a stock kernel.

The only valid values for hw.efifb.cache_attr at this time are "uc" and
"wc".

Original patch by Marc De La Gueronniere <mdelagueronniere@verisign.com>
along with previous testing.

Reviewed by:	imp
MFC after:	1 week
Sponsored by:	Verisign, Inc.
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D17884
2023-03-01 00:04:49 -06:00
..
colors vt: export RGB offsets with FBIO_GETRGBOFFS 2021-11-25 16:39:25 -03:00
font console: add U+276E and U+276F glyphs 2022-07-19 11:52:13 -04:00
hw efifb: add a tunable to select the framebuffer cache attribute 2023-03-01 00:04:49 -06:00
logo Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
vt_buf.c vt(4): When cutting a line, append a newline character. 2022-10-05 11:51:48 +02:00
vt_consolectl.c Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
vt_core.c sys/kbio.h: make pre-unicode keymap support optional 2023-02-14 14:03:28 +01:00
vt_cpulogos.c vt(4): Make sure vt_switch_timer() has a sleepable context. 2022-09-27 16:07:54 +02:00
vt_font.c Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
vt_sysmouse.c evdev: Extend EVIOCGRAB ioctl scope to cover sysmouse interface 2022-11-18 00:48:42 +03:00
vt.h vt(4): Return errors from vt_{,de}allocate() 2023-01-25 22:26:57 +01:00