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<m...@redhat.com>
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.
Regards,
Anthony Liguori
There is nothing special about VGA.
It is special in that guest can control host virtual to
guest physical mappings. In this VGA is similar to
IO rather than RAM.