> But it is greatly simplified, IIUC. If the hypercalls are > binary compatible then you have only one set of hypercall > interface functions and types, and switching between two > *implementations* of pagetable-related stuff (only the things > that actually need to be different) is quite straightforward.For the same reason that Linux doesn''t support run-time switching between PAE and non-PAE kernels, doing the same on Xen is going to be an equivalent pain in the butt. The only way it can reasonably be done cleanly and with decent performance is double compilation of the relevant mm functions in Xen (and libxc too). In which case, having separate hypercall vectors makes most sense. So, the correct thing to do is: * export the types to the tools as Keir suggests, 32 bit on non-PAE, 64 bit on PAE (and x86_64) * use different vectors for the two types of calls * for the moment, map them to the same compile-time function. This gives us good performance, clean code, and future proofing. Best, Ian _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
"Ian Pratt" <m+Ian.Pratt@cl.cam.ac.uk> writes:> > But it is greatly simplified, IIUC. If the hypercalls are > > binary compatible then you have only one set of hypercall > > interface functions and types, and switching between two > > *implementations* of pagetable-related stuff (only the things > > that actually need to be different) is quite straightforward. > > For the same reason that Linux doesn''t support run-time switching > between PAE and non-PAE kernels, doing the same on Xen is going to be an > equivalent pain in the butt.Fully agree on the xen kernel side. The performance hit a runtime switch would have likely is bigger than simply running PAE all the time ;) I don''t thing the performance argument is that important for the xen tools though. Booting or migrating a domain is a rare event (when compared to the page table manipulations the xen kernel has to do all the time).> The only way it can reasonably be done cleanly and with decent > performance is double compilation of the relevant mm functions in Xen > (and libxc too). In which case, having separate hypercall vectors makes > most sense.Well, I''d try to get away without double compilation for libxc. But you guys know that part of the code much better than I do, so if you think double compilation is the best way to deal with it, lets take that route. cheers, Gerd -- -mm seems unusually stable at present. -- akpm about 2.6.12-rc3-mm3 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel