From: Jan Kiszka <jan.kiszka@web.de>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Liu Ping Fan" <pingfank@linux.vnet.ibm.com>,
"Alexander Graf" <agraf@suse.de>,
qemu-devel <qemu-devel@nongnu.org>,
"Hervé Poussineau" <hpoussin@reactos.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH v3 11/14] ioport: Switch dispatching to memory core layer
Date: Tue, 16 Jul 2013 09:18:25 +0200 [thread overview]
Message-ID: <51E4F3C1.5030201@web.de> (raw)
In-Reply-To: <CA+aC4ktc7yZCDv49fGHYdaYrgoTrKydMqdkBbONSbH2A3vDLKQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2286 bytes --]
On 2013-07-14 17:18, Anthony Liguori wrote:
> On Sun, Jul 14, 2013 at 9:58 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
>> On 14 July 2013 14:05, Anthony Liguori <anthony@codemonkey.ws> wrote:
>>>> Also, what devices exactly would have a non-native byte order?!? I'm
>>>> confused...
>>>
>>> MMIO/PIO requests don't have a byte order. It's literally 64 or 32 data
>>> pins that are numbered D0..D31 whereas D0 is the LSB. It doesn't matter
>>> how the pins are arranged.
>>
>> Devices themselves do have a byte order, though, right? Specifically,
>> if you do a 32 bit read of address 0 on a device and an 8 bit read,
>
> It depends on the bus and device. Busses don't necessary pass the I/O
> size down to the device like that. If it does, the device may do any
> number of things (including ignoring the request entirely.
>
> What's most common AFAIK is that the access is treated as a word
> access and then truncated. IOW, the device sees the 32-bit word read
> but somewhere along the way, the top 24 bits are discarded.
>
> The real interesting question is what happens when you do a byte
> access at address 1. I think most devices simply don't allow that.
>
>> then you can distinguish a BE device from an LE one.
>> (Most notably, RAM in QEMU is always host-endian...)
>> Devices which only allow 32 bit reads and abort any others wouldn't
>> have an endianness though.
>
> My guess is that if you do this with a PCI device we have marked as
> LE, you'll get a truncated 32-bit read which will make it appear LE.
> But that doesn't mean it's LE.
>
>> (I need to sit down and think about this all and draw diagrams
>> and look at what we currently do, though. BE guests on LE hosts
>> with and without KVM look particularly thorny.)
>
> I took a first pass at cleaning this up and broke PPC so I'm
> investigating it further. There may be another layer of silliness
> hidden somewhere too.
Sorry for sending out invitations and then being late to this party -
vacation. What is the status now? Do we have a short-term plan to avoid
the regression or is this better solved by cleaning up the whole
endianess thing? Is anyone actively on it, or should I take a drink, sit
down and join the discussion?
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
next prev parent reply other threads:[~2013-07-16 7:19 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-22 6:06 [Qemu-devel] [PATCH v3 00/14] Refactor portio dispatching Jan Kiszka
2013-06-22 6:06 ` [Qemu-devel] [PATCH v3 01/14] adlib: replace register_ioport* Jan Kiszka
2013-06-22 6:06 ` [Qemu-devel] [PATCH v3 02/14] applesmc: " Jan Kiszka
2013-06-22 6:06 ` [Qemu-devel] [PATCH v3 03/14] wdt_ib700: " Jan Kiszka
2013-06-22 6:06 ` [Qemu-devel] [PATCH v3 04/14] i82374: " Jan Kiszka
2013-06-22 6:06 ` [Qemu-devel] [PATCH v3 05/14] prep: " Jan Kiszka
2013-06-22 6:06 ` [Qemu-devel] [PATCH v3 06/14] vt82c686: " Jan Kiszka
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 07/14] Privatize register_ioport_read/write Jan Kiszka
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 08/14] isa: implement isa_is_ioport_assigned via memory_region_find Jan Kiszka
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 09/14] vmware-vga: Accept unaligned I/O accesses Jan Kiszka
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 10/14] xen: Mark fixed platform I/O as unaligned Jan Kiszka
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 11/14] ioport: Switch dispatching to memory core layer Jan Kiszka
2013-06-23 20:50 ` Hervé Poussineau
2013-06-24 6:07 ` Jan Kiszka
2013-07-11 12:29 ` Alexander Graf
2013-07-11 12:34 ` Alexander Graf
2013-07-11 12:46 ` Andreas Färber
2013-07-11 12:48 ` Alexander Graf
2013-07-11 13:28 ` Alexander Graf
2013-07-11 13:35 ` Alexander Graf
2013-07-11 22:30 ` [Qemu-devel] [Qemu-ppc] " Benjamin Herrenschmidt
2013-07-11 22:32 ` Benjamin Herrenschmidt
2013-07-12 3:18 ` Alexander Graf
2013-07-12 11:35 ` Benjamin Herrenschmidt
2013-07-12 17:04 ` Hervé Poussineau
2013-07-12 19:06 ` Anthony Liguori
2013-07-12 22:59 ` Benjamin Herrenschmidt
2013-07-12 22:39 ` Benjamin Herrenschmidt
2013-07-12 17:49 ` Anthony Liguori
2013-07-12 18:26 ` Peter Maydell
2013-07-12 22:50 ` Benjamin Herrenschmidt
2013-07-12 23:10 ` Peter Maydell
2013-07-12 23:49 ` Benjamin Herrenschmidt
2013-07-15 14:01 ` Anthony Liguori
2013-07-15 14:10 ` Peter Maydell
2013-07-15 14:16 ` Benjamin Herrenschmidt
2013-07-12 22:44 ` Benjamin Herrenschmidt
2013-07-13 14:38 ` [Qemu-devel] " Paolo Bonzini
2013-07-13 15:22 ` Anthony Liguori
2013-07-13 18:11 ` Hervé Poussineau
2013-07-14 6:15 ` Paolo Bonzini
2013-07-14 13:05 ` Anthony Liguori
2013-07-14 14:58 ` Peter Maydell
2013-07-14 15:18 ` Anthony Liguori
2013-07-14 16:50 ` Peter Maydell
2013-07-16 7:18 ` Jan Kiszka [this message]
2013-07-16 7:33 ` Paolo Bonzini
2013-07-16 16:59 ` Hervé Poussineau
2013-07-16 17:12 ` Paolo Bonzini
2013-07-12 12:56 ` Anthony Liguori
2013-07-12 14:30 ` Alexander Graf
2013-07-19 11:09 ` [Qemu-devel] BUG: " Alexey Kardashevskiy
2013-07-19 12:49 ` Paolo Bonzini
2013-07-19 15:48 ` Alexey Kardashevskiy
2013-07-20 0:55 ` Alexey Kardashevskiy
2013-07-20 1:11 ` Alexey Kardashevskiy
2013-07-20 10:11 ` Paolo Bonzini
2013-07-20 20:53 ` Edgar E. Iglesias
2013-07-21 15:13 ` Hervé Poussineau
2013-07-22 10:25 ` Paolo Bonzini
2013-06-24 8:45 ` [Qemu-devel] [PATCH v4 " Jan Kiszka
2013-07-12 19:36 ` [Qemu-devel] [PATCH v3 " Anthony Liguori
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 12/14] ioport: Remove unused old dispatching services Jan Kiszka
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 13/14] vmport: Disentangle read handler type from portio Jan Kiszka
2013-06-22 6:07 ` [Qemu-devel] [PATCH v3 14/14] ioport: Move portio types to ioport.h Jan Kiszka
2013-06-23 20:45 ` [Qemu-devel] [PATCH v3 00/14] Refactor portio dispatching Hervé Poussineau
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=51E4F3C1.5030201@web.de \
--to=jan.kiszka@web.de \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=anthony@codemonkey.ws \
--cc=hpoussin@reactos.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=pingfank@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.