From: Huaicheng Li <lhcwhu@gmail.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Save IDEState data to files when VM shutdown
Date: Wed, 9 Dec 2015 04:08:12 -0600 [thread overview]
Message-ID: <844F969F-F793-4190-93A6-3C20491D8439@gmail.com> (raw)
In-Reply-To: <20151209092008.GB2712@work-vm>
> Why are you trying to save the state during shutdown?
The structure I added into IDEState keeps being updated when VM is up. So I think it’s a safe way to do this during shutdown. When the VM is started again, it can continue from the status saved during last shutdown.
Thanks for your help. I will look into the code first.
> On Dec 9, 2015, at 3:20 AM, Dr. David Alan Gilbert <dgilbert@redhat.com> wrote:
>
> * Huaicheng Li (lhcwhu@gmail.com) wrote:
>> Hi all,
>>
>> Please correct me if I’m wrong.
>>
>> I made some changes to IDE emulation (add some extra structures to “struct IDEState") and want to save these info to files when VM shutdowns. So I can reload these info from files next time when VM starts. According to my understanding, one IDEState structure is corresponding to one disk for VM and all available drives are probed/initialised by ide_init2() in hw/ide.c (I used qemu v0.11) during VM startup. It seemed that IDEState structure are saved to QEMUFile structure via pci_ide_save(), but I can only trace up to register_savevm(), where pci_ide_save() is registered as a callback. I can’t find where exactly this function starts execution or being called. My questions are:
>
> Version 0.11 is *ancient* - please start with something newer; pci_ide_save was removed 6 years ago.
>
>> (1). Does QEMUFile structure represent a running VM instance, through which I can access the IDE drive (struct IDEState) pointers ?
>>
>> (2). When does qemu execute pci_ide_save()?
>
> QEMUFile is part of the migration code; it forms a stream of data containing
> all of the device and RAM State during migration. See savevm.c for what drives
> this (in migration/savevm.c in modern qemu).
> Extracting the state of one device from the stream isn't that easy.
>
>> (3). How does qemu handle VM shutdown? It seems ACPI event is sent to VM so guest OS will shutdown in the way like real OS running on real hardware. But how and where does qemu exactly handle this? I think I need to add my codes here.
>
> I don't know the detail of that; I suggest following
> the code from qemu_system_powerdown.
>
> Why are you trying to save the state during shutdown?
>
> Dave
>
>>
>> Any hints, suggestions would be appreciated. Thanks.
>>
>> Huaicheng Li
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
prev parent reply other threads:[~2015-12-09 10:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-09 6:24 [Qemu-devel] Save IDEState data to files when VM shutdown Huaicheng Li
2015-12-09 9:20 ` Dr. David Alan Gilbert
2015-12-09 10:08 ` Huaicheng Li [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=844F969F-F793-4190-93A6-3C20491D8439@gmail.com \
--to=lhcwhu@gmail.com \
--cc=dgilbert@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).