qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH RFC] vga: flag vga ram for notifiers


From: Alex Williamson
Subject: Re: [Qemu-devel] [PATCH RFC] vga: flag vga ram for notifiers
Date: Thu, 31 Mar 2011 13:17:15 -0600

On Thu, 2011-03-31 at 14:01 -0500, Anthony Liguori wrote:
> On 03/31/2011 01:49 PM, Michael S. Tsirkin wrote:
> > On Thu, Mar 31, 2011 at 01:33:58PM -0500, Anthony Liguori wrote:
> >> On 03/31/2011 12:43 PM, Michael S. Tsirkin wrote:
> >>> Currently, vga cards that allocate vga ram,
> >>> register it as regular ram. When this happens
> >>> a lot, vhost need to get notified and flush
> >>> its memory tables, which is slow.
> >>>
> >>> This was observed with cirrus vga.
> >>>
> >>> As a solution, add an explicit flag when
> >>> registering vga ram, vhost-net can simply ignore it.
> >>>
> >>> Long term, we might be able to use this API
> >>> to avoid the need to request
> >>> dirty loggin from devices explicitly.
> >>>
> >>> Tested: with cirrus vga only.
> >>>
> >>> Signed-off-by: Michael S. Tsirkin<address@hidden>
> >> Treating vga specially is not the right approach.
> >>
> >> You want to treat real RAM specially and only make that visible to
> >> vhost.  See http://wiki.qemu.org/Features/RamAPI
> > That seems like a dead project? And VGa is unhandled there.
> 
> Just needs some love.
> 
> VGA is just another device.  It happens to be that we treat VGA device 
> memory as something that behaves like ram occassionally but that does 
> not make it RAM.
> 
> Something like vhost doesn't need to see anything but RAM.  If we have a 
> mechanism to identify RAM as RAM, then vhost can only look at RAM memory 
> and not worry about things like VGA.
> 
> I thought Alex had gotten a mini-version of RamAPI in but I can't seem 
> to figure out what that included.  At any rate, the point is still that 
> registering things that you want to exclude in vhost is the wrong 
> approach, you want to explicitly mark the things you want to include.

Conveniently I've just started to push my WIP VFIO patches out to a
public tree.  You can find the minimal RamAPI in these:

https://github.com/awilliam/qemu-kvm-vfio/commit/182e557b544bb6e8c6cc57a2a6075d768d224082
https://github.com/awilliam/qemu-kvm-vfio/commit/a505fe08defb4fa1720fffbdf3489289bc930264

(I reserve the right to break these commits)

VFIO only needs the ram_for_each_slot() interface to setup and teardown
the iommu, but obviously this should include memory client type
callbacks for things that only want to track memory.

Alex




reply via email to

[Prev in Thread] Current Thread [Next in Thread]