All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Peter Maydell" <peter.maydell@linaro.org>
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"BALATON Zoltan" <balaton@eik.bme.hu>,
	"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"Cédric Le Goater" <clg@kaod.org>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Greg Kurz" <groug@kaod.org>
Subject: Re: [PATCH 0/4] target/ppc: Catch invalid real address accesses
Date: Sun, 25 Jun 2023 19:18:53 +1000	[thread overview]
Message-ID: <CTLMB3E3JHJ2.FXPTKDYPPTJO@wheely> (raw)
In-Reply-To: <CAFEAcA_Brf-R12t+DKNAoygqgC-qjKJ3Wiz4ULjGHOo8_vPovw@mail.gmail.com>

On Fri Jun 23, 2023 at 7:10 PM AEST, Peter Maydell wrote:
> On Fri, 23 Jun 2023 at 09:21, Nicholas Piggin <npiggin@gmail.com> wrote:
> >
> > ppc has always silently ignored access to real (physical) addresses
> > with nothing behind it, which can make debugging difficult at times.
> >
> > It looks like the way to handle this is implement the transaction
> > failed call, which most target architectures do. Notably not x86
> > though, I wonder why?
>
> Much of this is historical legacy. QEMU originally had no
> concept of "the system outside the CPU returns some kind
> of bus error and the CPU raises an exception for it".
> This is turn is (I think) because the x86 PC doesn't do
> that: you always get back some kind of response, I think
> -1 on reads and writes ignored. We added the do_transaction_failed
> hook largely because we wanted it to give more accurate
> emulation of this kind of thing on Arm, but as usual with new
> facilities we left the other architectures to do it themselves
> if they wanted -- by default the behaviour remained the same.
> Some architectures have picked it up; some haven't.
>
> The main reason it's a bit of a pain to turn the correct
> handling on is because often boards don't actually implement
> all the devices they're supposed to. For a pile of legacy Arm
> boards, especially where we didn't have good test images,
> we use the machine flag ignore_memory_transaction_failures to
> retain the legacy behaviour. (This isn't great because it's
> pretty much going to mean we have that flag set on those
> boards forever because nobody is going to care enough to
> investigate and test.)
>
> > Other question is, sometimes I guess it's nice to avoid crashing in
> > order to try to quickly get past some unimplemented MMIO. Maybe a
> > command line option or something could turn it off? It should
> > probably be a QEMU-wide option if so, so that shouldn't hold this
> > series up, I can propose a option for that if anybody is worried
> > about it.
>
> I would not recommend going any further than maybe setting the
> ignore_memory_transaction_failures flag for boards you don't
> care about. (But in an ideal world, don't set it and deal with
> any bug reports by implementing stub versions of missing devices.
> Depends how confident you are in your test coverage.)

Thanks for the background, interesting and helpful. So I think
it is the right place for powerpc BookS 64 to hook into. Point
taken about adding a global option for it. Will try to fix the
known problems first, maybe it won't be too hard.

Thanks,
Nick


      parent reply	other threads:[~2023-06-25  9:19 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-23  8:19 [PATCH 0/4] target/ppc: Catch invalid real address accesses Nicholas Piggin
2023-06-23  8:19 ` [PATCH 1/4] target/ppc: Machine check on invalid real address access Nicholas Piggin
2023-06-23  8:19 ` [PATCH 2/4] target/ppc: Add POWER9/10 invalid-real machine check codes Nicholas Piggin
2023-06-23  8:19 ` [PATCH 3/4] target/ppc: Move common check in machne check handlers to a function Nicholas Piggin
2023-06-23 13:20   ` Fabiano Rosas
2023-06-23 16:16     ` BALATON Zoltan
2023-06-25  9:20     ` Nicholas Piggin
2023-06-23  8:19 ` [PATCH 4/4] target/ppc: Make checkstop stop the system Nicholas Piggin
2023-06-23 11:51   ` BALATON Zoltan
2023-06-25  9:15     ` Nicholas Piggin
2023-06-23  9:10 ` [PATCH 0/4] target/ppc: Catch invalid real address accesses Peter Maydell
2023-06-23 12:37   ` Cédric Le Goater
2023-06-23 23:35     ` Philippe Mathieu-Daudé
2023-06-24  9:50       ` BALATON Zoltan
2023-06-26 13:35     ` Cédric Le Goater
2023-06-26 23:28       ` Nicholas Piggin
2023-06-27  6:49         ` Cédric Le Goater
2023-06-27  8:14       ` Mark Cave-Ayland
2023-06-27 10:28         ` Howard Spoelstra
2023-06-27 11:24           ` Mark Cave-Ayland
2023-06-27 12:05             ` Howard Spoelstra
2023-06-27 12:41               ` Cédric Le Goater
2023-06-27 20:26                 ` Mark Cave-Ayland
2023-06-28  7:02                   ` Cédric Le Goater
2023-06-28  7:17                     ` Cédric Le Goater
2023-06-29  8:29                       ` Mark Cave-Ayland
2023-06-29  9:05                         ` Cédric Le Goater
2023-06-29  9:41                           ` Nicholas Piggin
2023-06-27 12:03         ` Cédric Le Goater
2023-06-27 20:24           ` Mark Cave-Ayland
2023-06-25  9:18   ` Nicholas Piggin [this message]

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=CTLMB3E3JHJ2.FXPTKDYPPTJO@wheely \
    --to=npiggin@gmail.com \
    --cc=balaton@eik.bme.hu \
    --cc=christophe.leroy@csgroup.eu \
    --cc=clg@kaod.org \
    --cc=danielhb413@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=groug@kaod.org \
    --cc=harshpb@linux.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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.