> 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 <dgilb...@redhat.com> > wrote: > > * Huaicheng Li (lhc...@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 / dgilb...@redhat.com / Manchester, UK