[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 09 of 10] Advertise address of grant table shared pages in suspend record
# HG changeset patch # User Brendan Cully <brendan@xxxxxxxxx> # Date 1166166342 28800 # Node ID 9182ff9b291d7fef7e05c6899922e88c54d0e419 # Parent a5274ebef731512d9681c7b81667b509f2e5346a Advertise address of grant table shared pages in suspend record. A checkpointed guest keeps its mappings to the shared_info page and grant table shared pages. To let xc_linux_save distinguish between these legitimate mappings and page table races, export the addresses in the suspend record. This patch puts the grant table shared page and lengths into the start_info pt_base and nr_pt_frames fields, which are otherwise unused after boot. Signed-off-by: Brendan Cully <brendan@xxxxxxxxx> diff -r a5274ebef731 -r 9182ff9b291d linux-2.6-xen-sparse/drivers/xen/core/gnttab.c --- a/linux-2.6-xen-sparse/drivers/xen/core/gnttab.c Thu Dec 14 23:05:42 2006 -0800 +++ b/linux-2.6-xen-sparse/drivers/xen/core/gnttab.c Thu Dec 14 23:05:42 2006 -0800 @@ -426,6 +426,12 @@ int gnttab_suspend(void) return 0; } +int gnttab_checkpoint(void) +{ + xen_start_info->pt_base = (unsigned long)shared; + xen_start_info->nr_pt_frames = NR_GRANT_FRAMES; +} + #else /* !CONFIG_XEN */ #include <platform-pci.h> diff -r a5274ebef731 -r 9182ff9b291d linux-2.6-xen-sparse/drivers/xen/core/machine_reboot.c --- a/linux-2.6-xen-sparse/drivers/xen/core/machine_reboot.c Thu Dec 14 23:05:42 2006 -0800 +++ b/linux-2.6-xen-sparse/drivers/xen/core/machine_reboot.c Thu Dec 14 23:05:42 2006 -0800 @@ -229,6 +229,8 @@ int __xen_checkpoint(void) pre_checkpoint(); + gnttab_checkpoint(); + /* * We'll stop somewhere inside this hypercall. When it returns, * we'll start resuming after the restore. diff -r a5274ebef731 -r 9182ff9b291d linux-2.6-xen-sparse/include/xen/gnttab.h --- a/linux-2.6-xen-sparse/include/xen/gnttab.h Thu Dec 14 23:05:42 2006 -0800 +++ b/linux-2.6-xen-sparse/include/xen/gnttab.h Thu Dec 14 23:05:42 2006 -0800 @@ -116,6 +116,7 @@ void gnttab_grant_foreign_transfer_ref(g #endif int gnttab_suspend(void); +int gnttab_checkpoint(void); int gnttab_resume(void); static inline void _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |