 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/7] xen: vNUMA support for guests.
 [ This series hasn't been threaded correctly, please ensure you use the
--compose option to git send-email to write the cover letter. ]
On 14/11/13 03:26, Elena Ufimtseva wrote:
> --- /dev/null
> +++ b/xen/include/public/vnuma.h
> @@ -0,0 +1,44 @@
> +#ifndef _XEN_PUBLIC_VNUMA_H
> +#define _XEN_PUBLIC_VNUMA_H
> +#include "memory.h"
> +#include "xen.h"
> +
> +/*
> + * Following structures are used to represent vNUMA 
> + * topology to guest if requested.
> + */
> +
> +/* 
> + * Memory ranges can be used to define
> + * vNUMA memory node boundaries by the 
> + * linked list. As of now, only one range
> + * per domain is suported.
> + */
> +
> +struct vmemrange {
> +    uint64_t start, end;
> +    struct vmemrange *next;
I think this probably wants to be an index into the vmemrange array in
struct vnuma_topology_info.  It certainly cannot be a bare pointer like
this.
> +};
> +typedef struct vmemrange vmemrange_t;
> +DEFINE_XEN_GUEST_HANDLE(vmemrange_t);
> +
> +/* 
> + * vNUMA topology specifies vNUMA node
> + * number, distance table, memory ranges and
> + * vcpu mapping provided for guests.
> + */
> +
> +struct vnuma_topology_info {
> +    /* IN */
> +    domid_t domid;
> +    uint32_t _pad;
> +    /* OUT */
> +    XEN_GUEST_HANDLE(uint) nr_vnodes;
> +    XEN_GUEST_HANDLE(uint) vdistance;
> +    XEN_GUEST_HANDLE(uint) vcpu_to_vnode;
> +    XEN_GUEST_HANDLE(vmemrange_t) vmemrange;
> +};
XEN_GUEST_HANDLE() has different size in 32-bit and 64-bit x86 but you
have no compat code to translate the structure.
Using:
    union {
        XEN_GUEST_HANDLE(uint) h;
        uint64_t _pad;
    } nr_vnodes;
for each field would produce a struct with a uniform ABI.  See the
recently added struct xen_kexec_segment for an example.
David
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
 
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |