Messages in this thread | | | Subject | Re: [PATCH v4] video: hyperv: hyperv_fb: Use physical memory for fb on HyperV Gen 1 VMs. | From | Bartlomiej Zolnierkiewicz <> | Date | Wed, 15 Jan 2020 16:16:44 +0100 |
| |
On 1/6/20 11:37 PM, Dexuan Cui wrote: >> From: Michael Kelley <mikelley@microsoft.com> >> Sent: Monday, December 9, 2019 8:33 AM >> To: Wei Hu <weh@microsoft.com>; b.zolnierkie@samsung.com; KY >> Srinivasan <kys@microsoft.com>; Haiyang Zhang <haiyangz@microsoft.com>; >> Stephen Hemminger <sthemmin@microsoft.com>; sashal@kernel.org; >> hch@lst.de; m.szyprowski@samsung.com; mchehab+samsung@kernel.org; >> sam@ravnborg.org; gregkh@linuxfoundation.org; >> alexandre.belloni@bootlin.com; info@metux.net; arnd@arndb.de; >> dri-devel@lists.freedesktop.org; linux-fbdev@vger.kernel.org; >> linux-kernel@vger.kernel.org; linux-hyperv@vger.kernel.org; Dexuan Cui >> <decui@microsoft.com> >> Cc: kbuild test robot <lkp@intel.com> >> Subject: RE: [PATCH v4] video: hyperv: hyperv_fb: Use physical memory for >> fb on HyperV Gen 1 VMs. >> >> From: Wei Hu <weh@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 <lkp@intel.com> >>> Signed-off-by: Wei Hu <weh@microsoft.com> >>> --- >>> v2: Incorporated review comments form hch@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 <mikelley@microsoft.com> > > Tested-by: Dexuan Cui <decui@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.zolnierkie@samsung.com>
Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
| |