Hello all, Here's a new version of the paravirt_ops x86_64 patch. With this message, I'm sending an incremental patch. The complete patches can be found , from now on, at http://et.redhat.com/~gcosta/paravirt_ops/ The main aim of this new update, is to fix a critical bug, namely, Rusty's name. However, I took the opportunity to write some new less important pieces of code, highlighting: * proper casts in places in which macros were replaced by functions, and the arguments happened to mismatch types. * calling paravirt_ops functions from .S files (I lacked this last time) * addition of the startup_paravirt function, to kick off guests (not tested) * fixed problems with patching * added a new field, vsyscall_page in the paravirt_ops struct, which allows the kernel to map a vsyscall_page on its own * fixed vsyscall functions to avoid calling paravirt_ops functions. __vsyscall_0 is the page to be mapped for the host. (set and get cpu not yet tested.) * fixed cpuid calls. * added substitute for the swapgs instruction. (Notice that I'm not saying it works ;-) ) In my TODO list, you can find: * putting swapgs to work * making sure legacy mode binaries work * merging in valuable commentaries from all you ;-) -- Glauber de Oliveira Costa Red Hat Inc. "Free as in Freedom"