From: Eduardo Habkost <ehabkost@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Laurent Vivier" <lvivier@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"QEMU Developers" <qemu-devel@nongnu.org>,
qemu-ppc <qemu-ppc@nongnu.org>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Thiago Jung Bauermann" <bauerman@linux.ibm.com>,
"David Gibson" <david@gibson.dropbear.id.au>
Subject: Re: [PATCH] cpu: Add starts_halted() method
Date: Wed, 8 Jul 2020 17:32:40 -0400 [thread overview]
Message-ID: <20200708213240.GC780932@habkost.net> (raw)
In-Reply-To: <CAFEAcA_bLs+PzjfmCaHQQ3z1BrQ9Uack_Qj7Za-dJwtHWu=8kw@mail.gmail.com>
On Wed, Jul 08, 2020 at 09:11:55PM +0100, Peter Maydell wrote:
> On Wed, 8 Jul 2020 at 18:36, Eduardo Habkost <ehabkost@redhat.com> wrote:
> >
> > On Wed, Jul 08, 2020 at 06:09:49PM +0100, Peter Maydell wrote:
> > > Exactly. It appears that there's a bug in our mechanisms,
> > > which is why I'm suggesting that the right thing is
> > > to fix that bug rather than marking the CPU as halted
> > > earlier in the reset process so that the KVM_RUN happens
> > > to do nothing...
> >
> > I agree this is necessary, but it doesn't seem sufficient.
> >
> > Having cpu_reset() set halted=0 on spapr (and probably other
> > machines) is also a bug, as it could still trigger unwanted
> > KVM_RUN when cpu_reset() returns (and before machine code sets
> > halted=1).
>
> The Arm handling of starting-halted sets halted=1 within cpu_reset,
> based on whether the CPU object was created with a
> "start-powered-off" property.
Making this mechanism generic sounds like a good idea.
>
> I'm not sure in practice that anything can get in asynchronously
> and cause a KVM_RUN in between spapr_reset_vcpu() calling
> cpu_reset() and it setting cs->halted (and the other stuff),
> though. This function ought to be called with the iothread
> lock held, so KVM_RUN will only happen if it calls some
> other function which incorrectly lets the CPU run.
Yeah, maybe it won't happen in practice. It just seems fragile.
The same way ppc_cpu_reset() kicked the CPU by accident, code
outside cpu_reset() might one day kick the CPU by accident before
setting halted=1.
--
Eduardo
next prev parent reply other threads:[~2020-07-08 22:01 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-07 20:43 [PATCH] cpu: Add starts_halted() method Thiago Jung Bauermann
2020-07-07 21:49 ` Eduardo Habkost
2020-07-07 23:28 ` Thiago Jung Bauermann
2020-07-08 8:38 ` Philippe Mathieu-Daudé
2020-07-08 10:00 ` David Gibson
2020-07-08 13:14 ` Peter Maydell
2020-07-08 15:25 ` Eduardo Habkost
2020-07-08 15:32 ` Peter Maydell
2020-07-08 16:03 ` Eduardo Habkost
2020-07-08 17:09 ` Peter Maydell
2020-07-08 17:36 ` Eduardo Habkost
2020-07-08 20:11 ` Peter Maydell
2020-07-08 21:32 ` Eduardo Habkost [this message]
2020-07-09 3:05 ` Thiago Jung Bauermann
2020-07-09 3:26 ` Thiago Jung Bauermann
2020-07-09 10:24 ` Philippe Mathieu-Daudé
2020-07-10 20:02 ` Thiago Jung Bauermann
2020-07-10 20:17 ` Eduardo Habkost
[not found] ` <87k0zdm63s.fsf@linaro.org>
2020-07-10 20:16 ` Thiago Jung Bauermann
2020-07-11 17:55 ` Alex Bennée
2020-07-08 16:45 ` Philippe Mathieu-Daudé
2020-07-08 21:39 ` Eduardo Habkost
2020-07-09 5:11 ` Philippe Mathieu-Daudé
2020-07-09 9:54 ` Greg Kurz
2020-07-09 10:18 ` Philippe Mathieu-Daudé
2020-07-09 10:55 ` Greg Kurz
2020-07-09 12:21 ` Philippe Mathieu-Daudé
2020-07-09 13:13 ` Greg Kurz
2020-07-09 13:19 ` Philippe Mathieu-Daudé
2020-07-09 13:40 ` Peter Maydell
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=20200708213240.GC780932@habkost.net \
--to=ehabkost@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=bauerman@linux.ibm.com \
--cc=david@gibson.dropbear.id.au \
--cc=lvivier@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=thuth@redhat.com \
/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.