From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Michael Tokarev" <mjt@tls.msk.ru>,
"Richard Henderson" <richard.henderson@linaro.org>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
qemu-devel@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>,
"Ivan Warren" <ivan@vmfacility.fr>
Subject: Re: [PATCH] accel/tcg: mttcg remove false-negative halted assertion
Date: Wed, 27 Sep 2023 20:38:42 +1000 [thread overview]
Message-ID: <CVTMVEVPSNT0.1TRMEN1UKYZXT@wheely> (raw)
In-Reply-To: <fcadf562-1946-0dc0-9f68-95785aacb2c0@tls.msk.ru>
On Fri Sep 22, 2023 at 4:25 AM AEST, Michael Tokarev wrote:
> 29.08.2023 04:06, Nicholas Piggin wrote:
> > mttcg asserts that an execution ending with EXCP_HALTED must have
> > cpu->halted. However between the event or instruction that sets
> > cpu->halted and requests exit and the assertion here, an
> > asynchronous event could clear cpu->halted.
> >
> > This leads to crashes running AIX on ppc/pseries because it uses
> > H_CEDE/H_PROD hcalls, where H_CEDE sets self->halted = 1 and
> > H_PROD sets other cpu->halted = 0 and kicks it.
> >
> > H_PROD could be turned into an interrupt to wake, but several other
> > places in ppc, sparc, and semihosting follow what looks like a similar
> > pattern setting halted = 0 directly. So remove this assertion.
> >
> > Reported-by: Ivan Warren <ivan@vmfacility.fr>
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
>
> This one also smells like a stable material, is it not?
Yeah I would say it is.
Thanks,
Nick
>
> Thanks,
>
> /mjt
>
> > diff --git a/accel/tcg/tcg-accel-ops-mttcg.c b/accel/tcg/tcg-accel-ops-mttcg.c
> > index b276262007..d0b6f288d9 100644
> > --- a/accel/tcg/tcg-accel-ops-mttcg.c
> > +++ b/accel/tcg/tcg-accel-ops-mttcg.c
> > @@ -98,17 +98,6 @@ static void *mttcg_cpu_thread_fn(void *arg)
> > case EXCP_DEBUG:
> > cpu_handle_guest_debug(cpu);
> > break;
> > - case EXCP_HALTED:
> > - /*
> > - * during start-up the vCPU is reset and the thread is
> > - * kicked several times. If we don't ensure we go back
> > - * to sleep in the halted state we won't cleanly
> > - * start-up when the vCPU is enabled.
> > - *
> > - * cpu->halted should ensure we sleep in wait_io_event
> > - */
> > - g_assert(cpu->halted);
> > - break;
> > case EXCP_ATOMIC:
> > qemu_mutex_unlock_iothread();
> > cpu_exec_step_atomic(cpu);
prev parent reply other threads:[~2023-09-27 10:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 1:06 [PATCH] accel/tcg: mttcg remove false-negative halted assertion Nicholas Piggin
2023-09-09 21:28 ` Richard Henderson
2023-09-21 18:25 ` Michael Tokarev
2023-09-27 10:38 ` 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=CVTMVEVPSNT0.1TRMEN1UKYZXT@wheely \
--to=npiggin@gmail.com \
--cc=alex.bennee@linaro.org \
--cc=ivan@vmfacility.fr \
--cc=mjt@tls.msk.ru \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.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.