]> git.baikalelectronics.ru Git - kernel.git/commit
video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver
authorWei Hu <weh@microsoft.com>
Wed, 18 Sep 2019 06:03:20 +0000 (06:03 +0000)
committerSasha Levin <sashal@kernel.org>
Fri, 22 Nov 2019 01:10:44 +0000 (20:10 -0500)
commit814f06f795128cc7a6d88c252f450dc534cd0805
tree39cab8ff61f1b8ab8b1d2ae317620894d115886f
parentd3c9324351930002c24bda18da68f847a2ebf753
video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver

Without deferred IO support, hyperv_fb driver informs the host to refresh
the entire guest frame buffer at fixed rate, e.g. at 20Hz, no matter there
is screen update or not. This patch supports deferred IO for screens in
graphics mode and also enables the frame buffer on-demand refresh. The
highest refresh rate is still set at 20Hz.

Currently Hyper-V only takes a physical address from guest as the starting
address of frame buffer. This implies the guest must allocate contiguous
physical memory for frame buffer. In addition, Hyper-V Gen 2 VMs only
accept address from MMIO region as frame buffer address. Due to these
limitations on Hyper-V host, we keep a shadow copy of frame buffer
in the guest. This means one more copy of the dirty rectangle inside
guest when doing the on-demand refresh. This can be optimized in the
future with help from host. For now the host performance gain from deferred
IO outweighs the shadow copy impact in the guest.

Signed-off-by: Wei Hu <weh@microsoft.com>
Reviewed-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/video/fbdev/Kconfig
drivers/video/fbdev/hyperv_fb.c