[PATCH v4 0/9] kvmtool: handle guests of a different endianness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch series adds some infrastructure to kvmtool to allow a BE
guest to use virtio-mmio on a LE host, provided that the architecture
actually supports such madness.

Not all the backend have been converted, only those I actually cared
about. Converting them is pretty easy though, and will be done if the
method is deemed acceptable.

This has been tested on both arm and arm64 (I use this on a daily
basis to test BE code). The corresponding kernel changes have all been
merged.

Also available at:
git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-arm64/kvmtool-be-on-le

>From v3:
- Only patch 9/9 changed:
  * Handle access comming from EL0 in AArch64 mode
  * Added comment about SETEND in AArch32 mode
  * Fixed commit message

>From v2 (never posted):
- Fixed tons of bugs (config space)
- Fixed TAP networking

>From v1:
- Gave up on the virtio extension after the push back from the PPC
  guys. Instead, we snapshot the endianness of the vcpu  when it
  tries to reset the device. A bit ugly, but doesn't require any
  change on the kernel side.

Marc Zyngier (9):
  kvmtool: pass trapped vcpu to MMIO accessors
  kvmtool: virt_queue configuration based on endianness
  kvmtool: sample CPU endianness on virtio-mmio device reset
  kvmtool: add queue endianness initializer
  kvmtool: convert console backend to support bi-endianness
  kvmtool: convert 9p backend to support bi-endianness
  kvmtool: convert blk backend to support bi-endianness
  kvmtool: convert net backend to support bi-endianness
  kvmtool: virtio: enable arm/arm64 support for bi-endianness

 tools/kvm/arm/aarch32/kvm-cpu.c                  | 14 ++++
 tools/kvm/arm/aarch64/include/kvm/kvm-cpu-arch.h |  2 +
 tools/kvm/arm/aarch64/kvm-cpu.c                  | 43 +++++++++++++
 tools/kvm/arm/include/arm-common/kvm-arch.h      |  2 +
 tools/kvm/arm/include/arm-common/kvm-cpu-arch.h  |  4 +-
 tools/kvm/arm/kvm-cpu.c                          | 10 +--
 tools/kvm/hw/pci-shmem.c                         |  2 +-
 tools/kvm/include/kvm/kvm-cpu.h                  |  1 +
 tools/kvm/include/kvm/kvm.h                      |  4 +-
 tools/kvm/include/kvm/virtio.h                   | 82 +++++++++++++++++++++++-
 tools/kvm/kvm-cpu.c                              | 10 ++-
 tools/kvm/mmio.c                                 | 11 ++--
 tools/kvm/pci.c                                  |  3 +-
 tools/kvm/powerpc/include/kvm/kvm-cpu-arch.h     |  2 +-
 tools/kvm/powerpc/kvm-cpu.c                      |  4 +-
 tools/kvm/powerpc/spapr_pci.h                    |  6 +-
 tools/kvm/virtio/9p.c                            |  3 +
 tools/kvm/virtio/blk.c                           | 31 +++++++--
 tools/kvm/virtio/console.c                       |  8 ++-
 tools/kvm/virtio/core.c                          | 59 +++++++++--------
 tools/kvm/virtio/mmio.c                          | 21 ++++--
 tools/kvm/virtio/net.c                           | 45 +++++++++++--
 tools/kvm/virtio/pci.c                           |  6 +-
 tools/kvm/x86/include/kvm/kvm-cpu-arch.h         |  4 +-
 24 files changed, 302 insertions(+), 75 deletions(-)

-- 
1.8.3.4

_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux