]> git.proxmox.com Git - mirror_ubuntu-hirsute-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)
commitd21987d709e807ba7bbf47044deb56a3c02e8be4
tree39cab8ff61f1b8ab8b1d2ae317620894d115886f
parent67e7cdb4829d3246c98f2ec9b771303ebe162eab
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