All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: dovgaluk@ispras.ru, rth@twiddle.net, peter.maydell@linaro.org,
	qemu-devel@nongnu.org, mttcg@listserver.greensocs.com,
	fred.konrad@greensocs.com, a.rigo@virtualopensystems.com,
	cota@braap.org, bobby.prani@gmail.com, nikunj@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [RFC PATCH v1 0/9] MTTCG and record/replay fixes for rc3
Date: Tue, 04 Apr 2017 09:50:16 +0100	[thread overview]
Message-ID: <877f30blpz.fsf@linaro.org> (raw)
In-Reply-To: <e6b326dd-fbc6-250d-26a2-4483db009b7d@redhat.com>


Paolo Bonzini <pbonzini@redhat.com> writes:

> On 03/04/2017 14:45, Alex Bennée wrote:
>>   cpus: check cpu->running in cpu_get_icount_raw()
>>
>>   I'm not sure the race happens and once outside of cpu->running the
>>   icount counters should be zero. However it seems a sensible
>>   precaution.
>
> Yeah, I think this is unnecessary with patch 7's new assertions.

I can drop the patch.

>> I think the cpus: patches should probably go into the next
>> pull-request while we see if we can come up with a better final
>> solution for fixing record/replay. However given how long this
>> regression has run during the release candidate process I wanted to
>> update everyone on the current status and get feedback ASAP.
>
> I agree.  I'm not sure exactly how the final race happens, but if it
> causes divergence it would be caught later by the record/replay
> mechanism, I think.

It's odd because everything should be sequenced by the BQL. The
main-loop holds the BQL while writing out checkpoints and everything
that can trigger output to the replay stream should be under BQL as
well:

  - VIRTUAL timers in the outer loop
  - MMIO triggered events (block, char, audio)
  - Interrupt processing

In fact I wonder if replay_mutex could just be dropped and the BQL used
to protect all of this stuff.

I'll have to experiment with some asserts to see if this is every not
the case.

--
Alex Bennée

      reply	other threads:[~2017-04-04  8:50 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-03 12:45 [Qemu-devel] [RFC PATCH v1 0/9] MTTCG and record/replay fixes for rc3 Alex Bennée
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 1/9] scripts/qemugdb/mtree.py: fix up mtree dump Alex Bennée
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 2/9] scripts/qemu-gdb/timers.py: new helper to dump timer state Alex Bennée
2017-04-03 14:02   ` Philippe Mathieu-Daudé
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 3/9] scripts/replay-dump.py: replay log dumper Alex Bennée
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 4/9] target/i386/misc_helper: wrap BQL around another IRQ generator Alex Bennée
2017-04-04 16:53   ` Richard Henderson
2017-04-04 17:36     ` Eduardo Habkost
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 5/9] cpus: remove icount handling from qemu_tcg_cpu_thread_fn Alex Bennée
2017-04-04 16:53   ` Richard Henderson
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 6/9] cpus: check cpu->running in cpu_get_icount_raw() Alex Bennée
2017-04-03 14:00   ` Philippe Mathieu-Daudé
2017-04-04 16:54   ` Richard Henderson
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 7/9] cpus: move icount preparation out of tcg_exec_cpu Alex Bennée
2017-04-04  5:39   ` Pavel Dovgalyuk
2017-04-04  8:56     ` Alex Bennée
2017-04-04 10:46       ` Alex Bennée
2017-04-04 10:53         ` Paolo Bonzini
2017-04-04 12:31           ` Alex Bennée
2017-04-04 12:37             ` Paolo Bonzini
2017-04-04 13:29               ` Alex Bennée
2017-04-05 10:44                 ` Pavel Dovgalyuk
2017-04-05 11:18                   ` Alex Bennée
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 8/9] cpus: don't credit executed instructions before they have run Alex Bennée
2017-04-03 17:04   ` Paolo Bonzini
2017-04-04  5:37   ` Pavel Dovgalyuk
2017-04-04 10:13     ` Paolo Bonzini
2017-04-07 11:27       ` Pavel Dovgalyuk
2017-04-04 14:39   ` Paolo Bonzini
2017-04-03 12:45 ` [Qemu-devel] [RFC PATCH v1 9/9] replay: gracefully handle backward time events Alex Bennée
2017-04-03 17:03 ` [Qemu-devel] [RFC PATCH v1 0/9] MTTCG and record/replay fixes for rc3 Paolo Bonzini
2017-04-04  8:50   ` Alex Bennée [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=877f30blpz.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=a.rigo@virtualopensystems.com \
    --cc=bobby.prani@gmail.com \
    --cc=cota@braap.org \
    --cc=dovgaluk@ispras.ru \
    --cc=fred.konrad@greensocs.com \
    --cc=mttcg@listserver.greensocs.com \
    --cc=nikunj@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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.