qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Spice-devel] viewing continuous guest virtual memory a


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [Spice-devel] viewing continuous guest virtual memory as continuous in qemu
Date: Tue, 11 Oct 2011 13:28:12 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.22) Gecko/20110904 Red Hat/3.1.14-1.el6_1 Thunderbird/3.1.14

  Hi,

AFAIU this works only when the guest allocates a continuous range of
physical pages. This is a large requirement from the guest, which I'd
like to drop.

Is it? The world is moving to huge pages, with all the stuff needed for it like moving around userspace pages to compact memory and make huge page allocation easier. I think these days it is alot easier to allocate 2M of continuous physical memory than it used to be a few years ago. At least on linux, dunno about windows.

When allocating stuff at boot time (say qxl kms driver) allocating even larger chunks shouldn't be a big issue. And having a single big guest memory chunk, then register that as qxl memory slot is what works best with the existing interfaces I guess.

Another option we can think about is a 64bit PCI bar for the surfaces which can be moved out of the low 4G.

So I would like to have the guest use a regular
allocator, generating for instance two sequential pages in virtual
memory that are scattered in physical memory. Those two physical
guest page addresses (gp1 and gp2) correspond to two host virtual
memory addresses (hv1, hv2). I would now like to provide to
spice-server a single virtual address p that maps to those two pages
in sequence.

Playing mapping tricks like this doesn't come for free. When doing it this way we probaby still want to register a big chunk of memory as qxl memory slot so we have the mapping cost only once, not for each and every surface we create and destroy.

cheers,
  Gerd




reply via email to

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