Re: [PATCH v4] video: hyperv: hyperv_fb: Use physical memory for fb on HyperV Gen 1 VMs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/6/20 11:37 PM, Dexuan Cui wrote:
>> From: Michael Kelley <mikelley@xxxxxxxxxxxxx>
>> Sent: Monday, December 9, 2019 8:33 AM
>> To: Wei Hu <weh@xxxxxxxxxxxxx>; b.zolnierkie@xxxxxxxxxxx; KY
>> Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>;
>> Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>; sashal@xxxxxxxxxx;
>> hch@xxxxxx; m.szyprowski@xxxxxxxxxxx; mchehab+samsung@xxxxxxxxxx;
>> sam@xxxxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx;
>> alexandre.belloni@xxxxxxxxxxx; info@xxxxxxxxx; arnd@xxxxxxxx;
>> dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux-fbdev@xxxxxxxxxxxxxxx;
>> linux-kernel@xxxxxxxxxxxxxxx; linux-hyperv@xxxxxxxxxxxxxxx; Dexuan Cui
>> <decui@xxxxxxxxxxxxx>
>> Cc: kbuild test robot <lkp@xxxxxxxxx>
>> Subject: RE: [PATCH v4] video: hyperv: hyperv_fb: Use physical memory for
>> fb on HyperV Gen 1 VMs.
>>
>> From: Wei Hu <weh@xxxxxxxxxxxxx> 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@xxxxxxxxx>
>>> Signed-off-by: Wei Hu <weh@xxxxxxxxxxxxx>
>>> ---
>>>     v2: Incorporated review comments form hch@xxxxxx, 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@xxxxxxxxxxxxx>
> 
> Tested-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
> 
> 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@xxxxxxxxxxx>

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux