qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH RFC V4 10/14] Introduce qemu_ram_ptr_unlock.


From: Anthony Liguori
Subject: [Qemu-devel] Re: [PATCH RFC V4 10/14] Introduce qemu_ram_ptr_unlock.
Date: Tue, 28 Sep 2010 11:01:30 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.12) Gecko/20100826 Lightning/1.0b1 Thunderbird/3.0.7

On 09/28/2010 10:25 AM, Stefano Stabellini wrote:
On Tue, 28 Sep 2010, Anthony Liguori wrote:
On 09/28/2010 10:01 AM, address@hidden wrote:
From: Anthony PERARD<address@hidden>

This function allows to unlock a ram_ptr give by qemu_get_ram_ptr. After
a call to qemu_ram_ptr_unlock, the pointer may be unmap from QEMU when
used with Xen.

Signed-off-by: Anthony PERARD<address@hidden>

Why isn't hooking cpu_physical_memory_{map,unmap}() not enough?  That's
really the intention of the API.

You only really care about guest RAM, not device memory, correct?
Yes, however at the moment all the calls to qemu_get_ram_ptr imply the
mapping in qemu address space to remain valid for an unlimited amount of
time.

Yes, but qemu_get_ram_ptr() is not a general purpose API. It really should only have one use--within exec.c to implement cpu_physical_memory_* functions. There are a few uses in hw/* but they're all wrong and should be removed. Fortunately, for the purposes of the Xen machine, almost none of them actually matter.

What I'm thinking is that RAM in Xen should not be backed at all from a RAMBlock. Instead, cpu_physical_memory_* functions should call an explicit map/unmap() function that can be implemented as qemu_get_ram_ptr() and a nop in the TCG/KVM case and as explicit map cache operations in the Xen case.

Regards,

Anthony Liguori

While we can do that because now the mapcache allows to "lock" a
mapping, it would be nice if an explicit qemu_ram_ptr_unlock would be
provided. It is not required for xen support though.






reply via email to

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