> > Just ignore any new suspend request until you've got the frame list
list
> > rebuilt.
>
> see xc_linux_save.c:
>
> 667 live_p2m_frame_list_list =
> 668 xc_map_foreign_range(xc_handle, dom, PAGE_SIZE,
PROT_READ,
> 669 live_shinfo->arch.pfn_to_mfn_frame_list_list);
>
> ...
>
> 1087 if (suspend_and_state(suspend, xc_handle, io_fd,
dom,
> &info,
> 1088 &ctxt)) {
> 1089 ERROR("Domain appears not to have
suspended");
> 1090 goto out;
> 1091 }
>
> We use the value long before the domain is told to suspend.
Ah, I see what you're getting at.
We should make xc_linux_save cope more gracefully with
arch.pfn_to_mfn_frame_list_list being NULL, have xc_linux_save zero the
field in shared_info before writing it out (its an MFN and not valid
anyhow), and then move the field's re-initialisation a little later in
the post_suspend function to close the race.
Best,
Ian
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|