qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: [PATCH RFC] Mark a device as non-migratable


From: Anthony Liguori
Subject: Re: [Qemu-devel] Re: [PATCH RFC] Mark a device as non-migratable
Date: Wed, 16 Jun 2010 07:34:00 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100423 Lightning/1.0b1 Thunderbird/3.0.4

On 06/16/2010 12:05 AM, Cam Macdonell wrote:
On Tue, Jun 15, 2010 at 4:33 PM, Anthony Liguori<address@hidden>  wrote:
On 06/15/2010 05:26 PM, Cam Macdonell wrote:
On Tue, Jun 15, 2010 at 10:32 AM, Anthony Liguori<address@hidden>
  wrote:

On 06/15/2010 11:16 AM, Cam Macdonell wrote:

How does this look for marking the device as non-migratable?  It adds a
field
'no_migrate' to the SaveStateEntry and tests for it in vmstate_save.
  This
would
replace anything that touches memory.

Cam

---
  hw/hw.h  |    1 +
  savevm.c |   32 +++++++++++++++++++++++++++++---
  2 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/hw/hw.h b/hw/hw.h
index d78d814..7c93f08 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -263,6 +263,7 @@ int register_savevm_live(const char *idstr,
                           void *opaque);

  void unregister_savevm(const char *idstr, void *opaque);
+void mark_no_migrate(const char *idstr, void *opaque);


I'm not thrilled with the name but the functionality is spot on.  I lack
the
creativity to offer a better name suggestion :-)

Regards,

Anthony Liguori

Hmmm, in working on this it seems that the memory (from
qemu_ram_map()) is still attached even when the device is removed
(which causes migration to fail because there is an unexpected
memory).

Is something like cpu_unregister_physical_memory()/qemu_ram_free() needed?

Yes.  You need to unregister any memory that you have registered upon device
removal.
Is there an established way to achieve this?  I can't seem find
another device that unregisters memory registered with
cpu_register_physical_memory().  Is something like
cpu_unregister_physical_memory() needed?

cpu_register_physical_memory(IO_MEM_UNASSIGNED).

If you look at pci.c, you'll see that it automatically unregisters any mapped io regions on remove.

Regards,

Anthony Liguori

Thanks,
Cam

Regards,

Anthony Liguori

Cam







reply via email to

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