On 2011-06-22 11:15, Pavel Dovgaluk wrote: >>>>> What is the purpose of subsections? >>>> >>>> To skip the new fields whenever possible. That would allow to continue >>>> saving a vmstate on a new version of qemu and then restoring it on an >>>> older one. >>> >>> Do you have an idea how to implement "needed" function for my case? >>> Because I think, these fields should always be saved and loaded, because >>> they are related to the main state of the interface, not the kind of >>> optional substate. >> >> E.g., if the fifo is empty, you do not need to save its content. That >> would be one part of the condition. Go through all fields and check if >> they have states that could be ignored or if they could be ignored if >> other already saved fields have specific values. If you find any new >> field that must always be restored, let us discuss it. It may turn out >> that a substate is unrealistic, then we need to go with a new version. > > You mean, if FIFO is empty an will not be saved, we will have to clear > it before loading every time?
We (soon, patches posted) do a reset before every loadvm. We already do this when starting a new machine. That sets all states that aren't restored to defaults. In case of the fifo, they are all emptied. > So there should be multiple subsections for every possible field? > E.g. timers are saved only if they are pending, thr_ipending is saved > only when it is nonzero, and so on. Do you mean that? Nope, only a single subsection. Either we are able to avoid any new field under certain circumstances or we have to break the legacy format anyway. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux