On 24 January 2014 07:32, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > Il 24/01/2014 16:23, Victor Kamensky ha scritto: > >> Also if you use ints on real bus as description, you may want to clarify >> restrictions on mmio.len. Basically on 32 bit platform (i.e like V7 >> ARM) one cannot have mmio.len=8, because one cannot have 64bit >> value on 32bit data bus. Without such clarification introduction of >> text like "the value as it would go on the bus in real hardware" is >> confusing for len=8 for emulated CPUs where real busses are >> 32bit. > > > This is not necessarily true. On a 32-bit CPU you can have a 64-bit memory > bus. Even x86 32-bit CPUs can do 64-bit MMIO via MMX or SSE or double-word > compare-and-swap (CMPXCHG8B). Sure, that was part of my point :). But now text says about "real hardware" buses and in any given moment emulator specify particular type of CPU emulated, and I am quite sure that we can find one emulated ARMV7 CPU that would just have real 32bit data bus. Note there was no such problem and nobody cares what real data buses width are, with definition I argued for. That I think that was original intent of '__u8 data[8]' use - just bytes array description of how memory at given phys_addr looks before (mmiois_write=0) or would look after (mmio.is_write = 1) requested memory transaction (or several of them for that matter) are emulated by KVM_EXIT_MMIO. When if comes to devices memory read/write it is logical view of memory of course. Such definition works with any "real" data buses sizes, starting with byte. But, ooh, well ... nobody understands such definition .. I stand failed to explain it clear enough. Thanks, Victor > Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html