From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: kvm-ppc-devel
<kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
kvm-devel
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: Re: [kvm-ppc-devel] RFC: MMIO endianness flag
Date: Mon, 14 Jan 2008 19:30:41 +0200 [thread overview]
Message-ID: <478B9C41.80105@qumranet.com> (raw)
In-Reply-To: <1200329510.29077.11.camel@basalt>
Hollis Blanchard wrote:
> On Sun, 2008-01-13 at 11:42 +0200, Avi Kivity wrote:
>
>
>> Do we really need to propagate endianness all the way to the user?
>> Perhaps libkvm could call the regular mmio functions and do the
>> transformation itself.
>>
>> Or maybe even the kernel can do this by itself?
>>
>
> The kernel *already* does this by itself, and I'm attempting to explain
> why that is not sufficient.
>
> My point is precisely that the endianness information must be propagated
> to the user, otherwise the user may not have all the information it
> needs to emulate it.
>
> Here is the concrete example:
> * guest writes to MMIO
> * KVM passes MMIO information (physical address, number of bytes,
> value) to qemu
> * Qemu knows from the address that this access is for a passthough
> device, a special case the administrator has pre-configured
> * Qemu does mmap(/dev/mem), and writes "length" bytes of "value"
> at offset "address".
>
> Now here's the catch: what endianness does qemu use when doing the
> write? If qemu only does BE, then a LE access from the guest will be
> byte-reversed when presented to the real hardware.
>
Right, I forgot that bit when replying.
So, the data is always in natural endianness? If so, we can add an
endianness indicator to the mmio callbacks, which qemu will mostly
ignore, and only examine it on passthrough.
btw, isn't passthrough better handled through the tlb? i.e. actually
let the guest access the specially-configured memory? You can have qemu
mmap /dev/mem and install it as a memslot, and things should work, no?
(well, you might need to set some cachablility flag or other).
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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
next prev parent reply other threads:[~2008-01-14 17:30 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
[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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=478B9C41.80105@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox