From: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
To: kvm-ppc@vger.kernel.org
Cc: aik@ozlabs.ru, linuxppc-dev@lists.ozlabs.org,
kvm@vger.kernel.org, sjitindarsingh@gmail.com
Subject: [PATCH V2 0/8] KVM: PPC: Implement passthrough of emulated devices for nested guests
Date: Mon, 10 Dec 2018 14:58:17 +1100 [thread overview]
Message-ID: <20181210035825.29404-1-sjitindarsingh@gmail.com> (raw)
This patch series allows for emulated devices to be passed through to nested
guests, irrespective of at which level the device is being emulated.
Note that the emulated device must be using dma, not virtio.
For example, passing through an emulated e1000:
1. Emulate the device at L(n) for L(n+1)
qemu-system-ppc64 -netdev type=user,id=net0 -device e1000,netdev=net0
2. Assign the VFIO-PCI driver at L(n+1)
echo vfio-pci > /sys/bus/pci/devices/0000:00:00.0/driver_override
echo 0000:00:00.0 > /sys/bus/pci/drivers/e1000/unbind
echo 0000:00:00.0 > /sys/bus/pci/drivers/vfio-pci/bind
chmod 666 /dev/vfio/0
3. Pass the device through from L(n+1) to L(n+2)
qemu-system-ppc64 -device vfio-pci,host=0000:00:00.0
4. L(n+2) can now access the device which will be emulated at L(n)
V1 -> V2:
1/8: None
2/8: None
3/8: None
4/8: None
5/8: None
6/8: Account for L1 differing in endianess in kvmppc_complete_mmio_load()
7/8: None
8/8: None
Suraj Jitindar Singh (8):
KVM: PPC: Only report KVM_CAP_SPAPR_TCE_VFIO on powernv machines
KVM: PPC: Book3S HV: Add function kvmhv_vcpu_is_radix()
KVM: PPC: Book3S HV: Implement functions to access quadrants 1 & 2
KVM: PPC: Add load_from_eaddr and store_to_eaddr to the kvmppc_ops
struct
KVM: PPC: Update kvmppc_st and kvmppc_ld to use quadrants
KVM: PPC: Book3S HV: Allow passthrough of an emulated device to an L2
guest
KVM: PPC: Introduce new hcall H_COPY_TOFROM_GUEST to access quadrants
1 & 2
KVM: PPC: Book3S HV: Allow passthrough of an emulated device to an L3
guest
arch/powerpc/include/asm/hvcall.h | 1 +
arch/powerpc/include/asm/kvm_book3s.h | 10 ++-
arch/powerpc/include/asm/kvm_book3s_64.h | 13 ++++
arch/powerpc/include/asm/kvm_host.h | 3 +
arch/powerpc/include/asm/kvm_ppc.h | 4 ++
arch/powerpc/kernel/exceptions-64s.S | 9 +++
arch/powerpc/kvm/book3s_64_mmu_radix.c | 97 ++++++++++++++++++++++++++
arch/powerpc/kvm/book3s_hv.c | 58 ++++++++++++++--
arch/powerpc/kvm/book3s_hv_nested.c | 114 +++++++++++++++++++++++++++++--
arch/powerpc/kvm/powerpc.c | 30 +++++++-
arch/powerpc/mm/fault.c | 1 +
11 files changed, 325 insertions(+), 15 deletions(-)
--
2.13.6
next reply other threads:[~2018-12-10 4:01 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-10 3:58 Suraj Jitindar Singh [this message]
2018-12-10 3:58 ` [PATCH V2 1/8] KVM: PPC: Only report KVM_CAP_SPAPR_TCE_VFIO on powernv machines Suraj Jitindar Singh
2018-12-10 3:58 ` [PATCH V2 2/8] KVM: PPC: Book3S HV: Add function kvmhv_vcpu_is_radix() Suraj Jitindar Singh
2018-12-10 3:58 ` [PATCH V2 3/8] KVM: PPC: Book3S HV: Implement functions to access quadrants 1 & 2 Suraj Jitindar Singh
2018-12-10 3:58 ` [PATCH V2 4/8] KVM: PPC: Add load_from_eaddr and store_to_eaddr to the kvmppc_ops struct Suraj Jitindar Singh
2018-12-10 3:58 ` [PATCH V2 5/8] KVM: PPC: Update kvmppc_st and kvmppc_ld to use quadrants Suraj Jitindar Singh
2018-12-10 3:58 ` [PATCH V2 6/8] KVM: PPC: Book3S HV: Allow passthrough of an emulated device to an L2 guest Suraj Jitindar Singh
2018-12-10 3:58 ` [PATCH V2 7/8] KVM: PPC: Introduce new hcall H_COPY_TOFROM_GUEST to access quadrants 1 & 2 Suraj Jitindar Singh
2018-12-13 5:24 ` Paul Mackerras
2018-12-14 2:04 ` Suraj Jitindar Singh
2018-12-10 3:58 ` [PATCH V2 8/8] KVM: PPC: Book3S HV: Allow passthrough of an emulated device to an L3 guest Suraj Jitindar Singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181210035825.29404-1-sjitindarsingh@gmail.com \
--to=sjitindarsingh@gmail.com \
--cc=aik@ozlabs.ru \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).