[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Patch 4/4] Refining Xsave/Xrestore support



>@@ -189,7 +189,8 @@ static int uncanonicalize_pagetable(
> /* Load the p2m frame list, plus potential extended info chunk */
> static xen_pfn_t *load_p2m_frame_list(
>     xc_interface *xch, struct restore_ctx *ctx,
>-    int io_fd, int *pae_extended_cr3, int *ext_vcpucontext)
>+    int io_fd, int *pae_extended_cr3, int *ext_vcpucontext,
>+    int *vcpuextstate, uint64_t *vcpuextstate_size)

What value is it to have vcpuextstate_size (here any elsewhere in
the patch) be a 64-bit quantity? In 32-bit tools exceeding 4G here
wouldn't work anyway, and iirc the value really can't exceed 32 bits
anyway.

>@@ -781,6 +781,31 @@ struct xen_domctl_mem_sharing_op {
> typedef struct xen_domctl_mem_sharing_op xen_domctl_mem_sharing_op_t;
> DEFINE_XEN_GUEST_HANDLE(xen_domctl_mem_sharing_op_t);
> 
>+/* XEN_DOMCTL_setvcpuextstate */
>+/* XEN_DOMCTL_getvcpuextstate */
>+struct xen_domctl_vcpuextstate {
>+    /* IN: VCPU that this call applies to. */
>+    uint32_t         vcpu;
>+    /*
>+     * SET: xfeature support mask of struct (IN)
>+     * GET: xfeature support mask of struct (IN/OUT)
>+     * xfeature mask is served as identifications of the saving format
>+     * so that compatible CPUs can have a check on format to decide
>+     * whether it can restore.
>+     */
>+    uint64_t         xfeature_mask;

uint64_aligned_t.

>+    /*
>+     * SET: Size of struct (IN)
>+     * GET: Size of struct (IN/OUT)
>+     */
>+    uint64_t         size;

Here too.

>+#if defined(__i386__) || defined(__x86_64__)

Why? The structure makes no sense without the following field, so
either the whole structure is x86-specific, or the field is generic as
is the rest of the structure.

>+    XEN_GUEST_HANDLE_64(uint64) buffer;
>+#endif
>+};

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.