vcpumask is now a guest handle, but it seems the Linux code still sets it directly instead of using set_xen_guest_handle(). What am I missing? regards john _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Mark Williamson
2007-Jan-04 02:41 UTC
Re: [Xen-devel] confusion over vcpumask in mmuext_op
> vcpumask is now a guest handle, but it seems the Linux code still sets > it directly instead of using set_xen_guest_handle(). What am I missing?It''s a result of some version-fu in the interface: Linux''s drivers/xen/Kconfig defines: if XEN config XEN_INTERFACE_VERSION hex default 0x00030203 xen.h defines: struct mmuext_op { unsigned int cmd; union { /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */ xen_pfn_t mfn; /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */ unsigned long linear_addr; } arg1; union { /* SET_LDT */ unsigned int nr_ents; /* TLB_FLUSH_MULTI, INVLPG_MULTI */ XEN_GUEST_HANDLE_00030205(void) vcpumask; /* MW:note the macro name */ } arg2; }; typedef struct And xen-compat.h defines: /* Fields defined as a Xen guest handle since 0x00030205. */ #if __XEN_INTERFACE_VERSION__ >= 0x00030205 #define XEN_GUEST_HANDLE_00030205(type) XEN_GUEST_HANDLE(type) #else #define XEN_GUEST_HANDLE_00030205(type) type * #endif So actually the field vcpumask is currently being compiled as a void *. Cheers, Mark -- Dave: Just a question. What use is a unicyle with no seat? And no pedals! Mark: To answer a question with a question: What use is a skateboard? Dave: Skateboards have wheels. Mark: My wheel has a wheel! _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 4/1/07 02:41, "Mark Williamson" <mark.williamson@cl.cam.ac.uk> wrote:> So actually the field vcpumask is currently being compiled as a void *.And we get away with this because, on x86, there is no ABI difference between a guest handle and a plain pointer. This was done just as an interface cleanup, and because I think it makes Jan''s 32-on-64 work easier. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Thu, Jan 04, 2007 at 02:41:47AM +0000, Mark Williamson wrote:> Linux''s drivers/xen/Kconfig defines: > if XEN > config XEN_INTERFACE_VERSION > hex > default 0x00030203Ah thanks. I must admit to being a bit confused though. If xen-unstable''s sparse tree isn''t using the latest interface, what is? Just us ? :) john _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 4/1/07 14:32, "John Levon" <levon@movementarian.org> wrote:> On Thu, Jan 04, 2007 at 02:41:47AM +0000, Mark Williamson wrote: > >> Linux''s drivers/xen/Kconfig defines: >> if XEN >> config XEN_INTERFACE_VERSION >> hex >> default 0x00030203 > > Ah thanks. I must admit to being a bit confused though. If > xen-unstable''s sparse tree isn''t using the latest interface, what is? > Just us ? :)The tools and Xen itself use the latest version, and minios too I think. We haven''t got round to moving Linux off of dom0_ops, hence the interface version hasn''t yet been bumped there. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel