[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-am
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio. |
Date: |
Mon, 12 Aug 2013 11:36:03 +0100 |
On 12 August 2013 10:56, Benjamin Herrenschmidt
<address@hidden> wrote:
> On Mon, 2013-08-12 at 10:52 +0100, Peter Maydell wrote:
>> On 12 August 2013 10:50, Benjamin Herrenschmidt
>> <address@hidden> wrote:
>> > I must be confused ... you mentioned in a previous discussion around
>> > endianness that on some ARM cores at least, when changing the OS
>> > endianness, you had to configure a different lane swapping in the bridge
>> > to the the IO devices (AXI ?)
>>
>> No, that's just the implementation -- the bit in the control
>> register is effectively controlling whether there is byte lane
>> swapping in the part of the CPU which is the data path between
>> it and its bus to the outside world.
>
> I find it amazing that an OS can touch that without hitting the
> hypervisor :-)
It's no different to having a userspace process able to have
a different setting from the OS, really. (There is an equivalent
bit in another register that controls what endianness we
use if we trap to hyp mode.)
> Anyway, ok, we do need to poll from virtio then, but we
> probably need to cache as well, no ?
>
> When do you sample it in qemu ?
It's a bit theoretical at the moment since QEMU's ARM code
kind of assumes little endian. I would expect that at the
point when virtio was in an MMIO callback the CPUState
struct would have been updated via the usual sync process in
kvm_arch_get_registers().
-- PMM
- [Qemu-devel] [PATCH 0/8] virtio for endian curious guests Take #2, Rusty Russell, 2013/08/12
- [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Rusty Russell, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Benjamin Herrenschmidt, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Peter Maydell, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Benjamin Herrenschmidt, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Peter Maydell, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Benjamin Herrenschmidt, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Peter Maydell, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Benjamin Herrenschmidt, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio.,
Peter Maydell <=
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Anthony Liguori, 2013/08/12
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Rusty Russell, 2013/08/13
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Benjamin Herrenschmidt, 2013/08/13
- Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio., Rusty Russell, 2013/08/13
[Qemu-devel] [PATCH 2/8] target-ppc: ppc64 target's virtio can be either endian., Rusty Russell, 2013/08/12
[Qemu-devel] [PATCH 3/8] virtio: allow byte swapping for vring and config access, Rusty Russell, 2013/08/12