On 1/6/20 11:37 PM, Dexuan Cui wrote: >> From: Michael Kelley <mikel...@microsoft.com> >> Sent: Monday, December 9, 2019 8:33 AM >> To: Wei Hu <w...@microsoft.com>; b.zolnier...@samsung.com; KY >> Srinivasan <k...@microsoft.com>; Haiyang Zhang <haiya...@microsoft.com>; >> Stephen Hemminger <sthem...@microsoft.com>; sas...@kernel.org; >> h...@lst.de; m.szyprow...@samsung.com; mchehab+sams...@kernel.org; >> s...@ravnborg.org; gre...@linuxfoundation.org; >> alexandre.bell...@bootlin.com; i...@metux.net; a...@arndb.de; >> dri-devel@lists.freedesktop.org; linux-fb...@vger.kernel.org; >> linux-ker...@vger.kernel.org; linux-hyp...@vger.kernel.org; Dexuan Cui >> <de...@microsoft.com> >> Cc: kbuild test robot <l...@intel.com> >> Subject: RE: [PATCH v4] video: hyperv: hyperv_fb: Use physical memory for >> fb on HyperV Gen 1 VMs. >> >> From: Wei Hu <w...@microsoft.com> Sent: Sunday, December 8, 2019 11:58 >> PM >>> >>> On Hyper-V, Generation 1 VMs can directly use VM's physical memory for >>> their framebuffers. This can improve the efficiency of framebuffer and >>> overall performance for VM. The physical memory assigned to framebuffer >>> must be contiguous. We use CMA allocator to get contiguous physicial >>> memory when the framebuffer size is greater than 4MB. For size under >>> 4MB, we use alloc_pages to achieve this. >>> >>> To enable framebuffer memory allocation from CMA, supply a kernel >>> parameter to give enough space to CMA allocator at boot time. For >>> example: >>> cma=130m >>> This gives 130MB memory to CAM allocator that can be allocated to >>> framebuffer. If this fails, we fall back to the old way of using >>> mmio for framebuffer. >>> >>> Reported-by: kbuild test robot <l...@intel.com> >>> Signed-off-by: Wei Hu <w...@microsoft.com> >>> --- >>> v2: Incorporated review comments form h...@lst.de, Michael Kelley >> and >>> Dexuan Cui >>> - Use dma_alloc_coherent to allocate large contiguous memory >>> - Use phys_addr_t for physical addresses >>> - Corrected a few spelling errors and minor cleanups >>> - Also tested on 32 bit Ubuntu guest >>> v3: Fixed a build issue reported by kbuild test robot and incorported >>> some review comments from Michael Kelley >>> - Add CMA check to avoid link failure >>> - Fixed small memory leak introduced by alloc_apertures >>> - Cleaned up so code >>> v4: Removed request_pages variable as it is no longer needed >>> >>> drivers/video/fbdev/Kconfig | 1 + >>> drivers/video/fbdev/hyperv_fb.c | 182 >> +++++++++++++++++++++++++------- >>> 2 files changed, 144 insertions(+), 39 deletions(-) >>> >> >> Reviewed-by: Michael Kelley <mikel...@microsoft.com> > > Tested-by: Dexuan Cui <de...@microsoft.com> > > For a Gen-1 VM running on recent Hyper-V hosts, this patch can greatly > reduce the CPU utilization because it avoids the slow data copy from the > shadow framebuffer to the MMIO framebuffer, and hence it resolves the > "blurred screen" issue when we output a lot of characters on the text-mode > ternimal (e.g. "dmesg").
Acked-by: Bartlomiej Zolnierkiewicz <b.zolnier...@samsung.com> Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel