public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* RFC: MMIO endianness flag
@ 2008-01-09 23:06 Hollis Blanchard
  2008-01-10  6:56 ` Avi Kivity
  0 siblings, 1 reply; 18+ messages in thread
From: Hollis Blanchard @ 2008-01-09 23:06 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm-ppc-devel, kvm-devel

Add an "is_bigendian" flag to the kvm_run.mmio structure.

This is needed for architectures that can make both little- and
big-endian memory accesses.

Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
---

PowerPC has different instructions for native and byte-reversed memory
accesses, and some implementations can also can map individual pages as
byte-reversed. Right now in the PowerPC KVM implementation the kernel
detects byte-reversed MMIO from the guest and converts the data as
appropriate so that userland only ever deals with big-endian data.

That's fine and all, but I started thinking about supporting MMIO
passthrough, in which userland wouldn't emulate an MMIO at all, but
rather execute it on the real hardware (via mmap /dev/mem, for example).

In that case, it's actually very important that the endianness of the
access be preserved, since we need that information to access the real
hardware.

I don't think this patch has any serious x86 ABI implications, since
current x86 code just ignores the flag. I guess x86 could continue to
ignore it in the future, or it could explicitly zero the new flag.

Comments?

diff --git a/include/linux/kvm.h b/include/linux/kvm.h
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -123,6 +123,7 @@ struct kvm_run {
                        __u8  data[8];
                        __u32 len;
                        __u8  is_write;
+                       __u8  is_bigendian;
                } mmio;
                /* KVM_EXIT_HYPERCALL */
                struct {

-- 
Hollis Blanchard
IBM Linux Technology Center


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2008-01-15 16:22 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-09 23:06 RFC: MMIO endianness flag Hollis Blanchard
2008-01-10  6:56 ` Avi Kivity
     [not found]   ` <4785C199.9040002-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-10 15:23     ` Hollis Blanchard
2008-01-10 15:28       ` Avi Kivity
     [not found]         ` <4786398C.2090308-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-10 22:57           ` [kvm-ppc-devel] " Hollis Blanchard
2008-01-11  2:02             ` Xu, Anthony
     [not found]               ` <51CFAB8CB6883745AE7B93B3E084EBE201620FD0-wq7ZOvIWXbOiAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2008-01-11 14:55                 ` Hollis Blanchard
2008-01-14  5:42                   ` Xu, Anthony
     [not found]                     ` <51CFAB8CB6883745AE7B93B3E084EBE2016214A1-wq7ZOvIWXbOiAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2008-01-14 16:53                       ` Hollis Blanchard
2008-01-13  9:42             ` Avi Kivity
     [not found]               ` <4789DD0C.4010600-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-14 16:51                 ` Hollis Blanchard
2008-01-14 17:30                   ` Avi Kivity
     [not found]                     ` <478B9C41.80105-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-14 20:43                       ` Hollis Blanchard
2008-01-15 14:57                         ` Avi Kivity
     [not found]                           ` <478CC9EF.9020907-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-15 16:22                             ` Hollis Blanchard
2008-01-15  2:43                   ` Xu, Anthony
     [not found]                     ` <51CFAB8CB6883745AE7B93B3E084EBE2016217AB-wq7ZOvIWXbOiAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2008-01-15  3:54                       ` Hollis Blanchard
2008-01-10 15:37       ` Jimi Xenidis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox