> in summer, I posted some paravirt patches for amd64. In response to the > comments I received then, I have created some infrastructure to binary > patch kernel code during boot. In order to get some feedback, I am posting > the whole paravirt & code patching diff here. Also, KVM users may be > interested in trying it (hi Antoine ;).
\o/ \o/ \o/ :-) I assume we still need this: printf 'change paravirt0\ny\n\n0x8\nq\n' | config -ef /bsd under Illumos? > The rest of the diff is paravirtualization for KVM that partially also > uses the code patching infrastructure. The paravirtualization stuff seems > to work fine and gives some nice speed-up, but it still needs plenty of > cleanup before it can be committed. s/nice/huge ! > There are some paravirtualization bits that are not specific to KVM. For > example, I introduce a running_on_hypervisor() function and skip some > delays during shutdown if it returns true. I think this should work for > most (all?) hypervisors, though it still needs some detection logic. > Making it depend on the CPUIDECX_HYPERV bit should catch the most common > hypervisors. Is this something we could commit already in order to see if > it causes any problems? > > Another question: Most of the infrastructure and the pointers to the code > that needs patching are only used at boot. Is there already a way to put > that into a dedicated section that is freed and reused after boot? FWIW I've been running several iterations of this patch for the last 4/5 months on *all* my VMs. It brings a ridiculous speed-up boost :-) -- Antoine
