Re: [RFC PATCH] KVM: Specify byte order for KVM_EXIT_MMIO

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

 



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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux