From: Paolo Bonzini <pbonzini@redhat.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
aik@ozlabs.ru, jan.kiszka@siemens.com, qemu-devel@nongnu.org,
agraf@suse.de, hpoussin@reactos.org, aurelien@aurel32.net
Subject: Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess
Date: Thu, 25 Jul 2013 10:40:29 +0200 [thread overview]
Message-ID: <51F0E47D.1060807@redhat.com> (raw)
In-Reply-To: <1374731256.6142.63.camel@pasglop>
Il 25/07/2013 07:47, Benjamin Herrenschmidt ha scritto:
> On Thu, 2013-07-25 at 15:26 +1000, Benjamin Herrenschmidt wrote:
>> On Mon, 2013-07-22 at 10:34 -0500, Anthony Liguori wrote:
>>>
>>> Really nice series. I'd prefer we simply got rid of the endianness
>>> flag
>>> entirely but this is a good step.
>>>
>>> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
>>
>> Are you going to merge this ?
I guess so.
>> Afaik (Alexey just told me), pretty much anything IO is broken for
>> powerpc upstream and has been for weeks now ! It looks like the only
>> thing that got reverted was the VGA problem but everything else is still
>> busted including virtio.
>>
>> Why hasn't the original breakage been reverted immediately instead ?
>
> It's actually worse than I thought. Alexey is showing me that in fact,
> even PCI MMIO is busted, using EHCI causes qemu to segfault for example.
The MMIO problems are unrelated. They were reported by Nikunj in June
and they only happen with an unreleased version of SLOF that he's
working on (Linux works just fine).
Fixing it was on my todo list, then I had to do other stuff (like going
on holiday for 5 days and getting a thousand emails in your inbox) and I
prioritized the more general I/O port problem. Anyhow the fix is in
patches 25-27 of this series, Nikunj just confirmed by testing them.
> This is a complete trainwreck. Why was that junk merged in the first
> place and why wasn't it immediately reverted ?
Perhaps you haven't noticed, but this list tends to have better social
standards than this. Anyhow, here is an explanation.
The patches were absolutely not junk. They removed a lot of messy old
code. Unfortunately they didn't remove _enough_ messy old code. This
series completes the work.
They were merged because:
1) we didn't know it broke all big endian targets. There was some
suspicion that it broke pseries, but the idea was that removing the PCI
I/O hack would have fixed it.
2) In fact it did, but the dicussion derailed on endianness topics and
Alexey's patch to revert the PCI I/O hack wasn't accepted.
3) Sometimes we have to deal with old code written by people that aren't
contributors anymore and frankly no one understands it fully. Breaking
stuff actually forces us to understand it and fix it the right way. It
is not the first time it happens.
They weren't immediately reverted because:
4) the actual extent of the problem was not known. Initial reports were
just about VGA, but that was not the case.
5) because we thought it was just about VGA, everybody thought that
Anthony's VGA fix would be the end of it. (In the end Anthony's patch
was wrong and this series reverts it!)
6) the dicussion derailed on endianness topics and nobody posted a patch
to revert.
Fixing took a while because I originally thought I would have to rack
firmwares and images for all big-endian machine types. Once it dawned
on me that I could just use a unit test, it took 5-6 hours to write the
testcase _and_ the fixes.
In any case, let me reinforce point 6 above. The patches were not
reverted because nobody posted the patches to do so. Until someone does
so, it is basically Anthony's call. If he trusts people to fix the
whole thing, he has no reason to revert anything. My track record of
fixing mess is probably better than my track record of not causing it,
so he didn't revert it.
Paolo
next prev parent reply other threads:[~2013-07-25 8:40 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-22 13:54 [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 01/28] sh4: do not use isa_mmio Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 02/28] ppc_oldworld: " Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 03/28] ppc_newworld: " Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 04/28] spapr_pci: remove indirection for I/O port access Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 05/28] prep: fix I/O port endianness Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 06/28] mips_jazz: do not use isa_mmio Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 07/28] mips_r4k: " Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 08/28] mips_malta: " Paolo Bonzini
2013-08-28 11:03 ` Aurelien Jarno
2013-08-28 11:13 ` Aurelien Jarno
2013-08-28 11:30 ` Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 09/28] ppc440_bamboo: " Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 10/28] mipssim: " Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 11/28] mips_fulong2e: " Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 12/28] sparc64: remove indirection for I/O port access Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 13/28] ebus: do not use isa_mmio Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 14/28] isa_mmio: delete Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 15/28] Revert "ioport: remove LITTLE_ENDIAN mark for portio" Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 16/28] pc-testdev: support 8 and 16-bit accesses to 0xe0 Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 17/28] pc-testdev: remove useless cpu_to_le64/le64_to_cpu Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 18/28] mips: degrade BIOS error to warning Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 19/28] sh4: unbreak r2d Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 20/28] sparc64: unbreak Paolo Bonzini
2013-07-22 15:32 ` Andreas Färber
2013-07-22 13:54 ` [Qemu-devel] [PATCH 21/28] default-configs: add test device to all machines supporting ISA Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 22/28] default-configs: add SuperIO to SH4 Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 23/28] default-configs/ppc64: add all components of i82378 SuperIO chip used by prep Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 24/28] qtest: add test for ISA I/O space endianness Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 25/28] memory: move functions around Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 26/28] memory: pass MemoryRegion to access_with_adjusted_size Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 27/28] memory: check memory region endianness, not target's Paolo Bonzini
2013-07-22 13:54 ` [Qemu-devel] [PATCH 28/28] pc-testdev: add I/O port to test memory.c auto split/combine Paolo Bonzini
2013-07-22 14:32 ` [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess Peter Maydell
2013-07-22 14:36 ` Paolo Bonzini
2013-07-22 15:04 ` Peter Maydell
2013-07-22 15:07 ` Paolo Bonzini
2013-07-22 20:16 ` Hervé Poussineau
2013-07-22 21:22 ` Alexander Graf
2013-07-22 21:26 ` Andreas Färber
2013-07-23 9:30 ` Paolo Bonzini
2013-07-22 15:34 ` Anthony Liguori
2013-07-25 5:26 ` Benjamin Herrenschmidt
2013-07-25 5:47 ` Benjamin Herrenschmidt
2013-07-25 6:04 ` Jan Kiszka
2013-07-25 6:59 ` Alexey Kardashevskiy
2013-07-25 8:41 ` Paolo Bonzini
2013-07-25 8:40 ` Paolo Bonzini [this message]
2013-07-25 9:00 ` Benjamin Herrenschmidt
2013-07-25 9:38 ` Peter Maydell
2013-07-25 9:40 ` Paolo Bonzini
2013-07-25 10:25 ` Benjamin Herrenschmidt
2013-07-25 10:23 ` Benjamin Herrenschmidt
2013-07-25 10:25 ` Paolo Bonzini
2013-07-25 13:25 ` Anthony Liguori
2013-07-25 13:28 ` Peter Maydell
2013-07-25 13:33 ` Paolo Bonzini
2013-07-25 13:45 ` Peter Maydell
2013-07-25 14:44 ` Anthony Liguori
2013-07-25 15:16 ` Anthony Liguori
2013-07-25 13:23 ` Anthony Liguori
2013-07-25 14:19 ` Anthony Liguori
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=51F0E47D.1060807@redhat.com \
--to=pbonzini@redhat.com \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=aliguori@us.ibm.com \
--cc=aurelien@aurel32.net \
--cc=benh@kernel.crashing.org \
--cc=hpoussin@reactos.org \
--cc=jan.kiszka@siemens.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.