Messages in this thread | | | Date | Thu, 20 Aug 2009 10:57:43 +0100 | Subject | Re: [Alacrityvm-devel] [PATCH v3 3/6] vbus: add a "vbus-proxy" bus model for vbus_driver objects | From | Stefan Hajnoczi <> |
| |
On Wed, Aug 19, 2009 at 10:05 PM, Hollis Blanchard<hollisb@us.ibm.com> wrote: > On Wed, 2009-08-19 at 19:38 +0300, Avi Kivity wrote: >> On 08/19/2009 07:29 PM, Ira W. Snyder wrote: >> >>> That said, I'm not sure how qemu-system-ppc running on x86 could >> >>> possibly communicate using virtio-net. This would mean the guest is an >> >>> emulated big-endian PPC, while the host is a little-endian x86. I >> >>> haven't actually tested this situation, so perhaps I am wrong.
Cross-platform virtio works when endianness is known in advance. For a hypervisor and a guest: 1. virtio-pci I/O registers use PCI endianness 2. vring uses guest endianness (hypervisor must byteswap) 3. guest memory buffers use guest endianness (hypervisor must byteswap)
I know of no existing way when endianness is not known in advance. Perhaps a transport bit could be added to mark the endianness of the guest/driver side. This can be negotiated because virtio-pci has a known endianness. After negotiation, the host knows whether or not byteswapping is necessary for structures in guest memory.
Stefan
| |