From: Christian Ehrhardt <[EMAIL PROTECTED]> This patch series implements a paravirtualization interface using: - the device tree mechanism to pass hypervisor informations to the guest - hypercalls for guest->host calls - an example exploiter of that interface (magic page) This is work in progress, but working so far. I just start to really exploit the fuctionality behind the magic page mechanism therefor I can't provide any performance improvements so far, but it is evolved enough for RFC and to start the standardization discussion.
The used hypercall ABI was already discussed on the embedded-hypervisor mailing list and is available at http://kvm.qumranet.com/kvmwiki/PowerPC_Hypercall_ABI The device tree format used here (=base for the discussions on embedded-hypervisor) is the following. - A node "hypervisor" to show the general availability of some hypervisor data - flags for features like the example "feature,pv-magicpage" setting 1 = available, everything else = unavailable - Some features might need to pass more data and can use an entry in the device tree like the example of "data,pv-magicpage-size" Parties on cc: linuxppc-dev@ozlabs.org The patches affect code in the generic powerpc boot&setup so I would be happy about comments if the hooks are ok that way. [EMAIL PROTECTED] This power.org TSC discusses about standardization of the virtualization interfaces. This patch series is perfectly suited due to it's simple changes to start the discussion about the device tree there. [EMAIL PROTECTED] The code is made for kvm on powerpc which lives on this list. [patches in series] Subject: [PATCH 1/6] kvmppc: read device tree hypervisor node infrastructure Providing the guest functionality to read hypervisor features from the device tree and adding the basic hook to the powerpc boot6setup code Subject: [PATCH 2/6] kvmppc: add hypercall infrastructure - host part Subject: [PATCH 3/6] kvmppc: add hypercall infrastructure - guest part patch 2&3 add the hypercall infrastruture as mentioned above Subject: [PATCH 4/6] kvmppc: magic page hypercall - host part Subject: [PATCH 5/6] kvmppc: magic page paravirtualization - guest part patch 4&5 add the magic page mechanism which will later on be used for binary rewriting the guest. Subject: [PATCH 6/6] kvmppc: kvm-userspace: device tree modification for magicpage This connects host and guest reading host capabilities and modifying the device tree passed to the guest accordingly --- [diffstat] arch/powerpc/kernel/kvm.c | 48 +++++++++++++++++++++++++++++++++++ arch/powerpc/kvm/emulate.c | 5 +++ b/arch/powerpc/kernel/Makefile | 2 + b/arch/powerpc/kernel/kvm.c | 30 +++++++++++++++++++++ b/arch/powerpc/kernel/setup_32.c | 3 ++ b/arch/powerpc/kvm/emulate.c | 27 +++++++++++++++++++ b/arch/powerpc/kvm/powerpc.c | 18 ++++++++++++- b/arch/powerpc/platforms/44x/Kconfig | 7 +++++ b/include/asm-powerpc/kvm_para.h | 37 ++++++++++++++++++++++++-- b/include/linux/kvm.h | 6 ++++ b/libkvm/libkvm-powerpc.c | 6 ++++ b/libkvm/libkvm.h | 6 ++++ b/qemu/hw/device_tree.c | 10 +++++++ b/qemu/hw/device_tree.h | 1 b/qemu/hw/ppc440_bamboo.c | 15 ++++++++++ b/qemu/qemu-kvm-powerpc.c | 5 +++ b/qemu/qemu-kvm.h | 1 include/asm-powerpc/kvm_para.h | 47 +++++++++++++++++++++++++++++++++- 18 files changed, 269 insertions(+), 5 deletions(-) _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev