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: boost.lists@gmail.com, pavel.dovgaluk@ispras.ru, cota@braap.org,
	qemu-devel@nongnu.org,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [RFC PATCH v1 3/9] cpus: only take BQL for sleeping threads
Date: Fri, 05 May 2017 16:28:59 +0100	[thread overview]
Message-ID: <87shkjmif8.fsf@linaro.org> (raw)
In-Reply-To: <8b648c73-ecfc-7a13-fc98-be349dcfceac@redhat.com>


Paolo Bonzini <pbonzini@redhat.com> writes:

> On 05/05/2017 12:38, Alex Bennée wrote:
>>
>>      while (qemu_tcg_should_sleep(cpu)) {
>> +        qemu_mutex_lock_iothread();
>>          stop_tcg_kick_timer();
>>          qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex);
>> +        qemu_mutex_unlock_iothread();
>>      }
>
> This is racy.  You need to recheck the condition under the lock, or to
> switch from QemuCond to QemuEvent (then you still need to check the
> condition twice, the second between qemu_event_reset and qemu_event_wait).


Doh of course, being a bit too eager there ;-)

--
Alex Bennée

  reply	other threads:[~2017-05-05 15:28 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-05 10:38 [Qemu-devel] [RFC PATCH v1 0/9] BQL and Replay Lock changes Alex Bennée
2017-05-05 10:38 ` [RFC PATCH v1 1/9] target/arm/arm-powertctl: drop BQL assertions Alex Bennée
2017-05-05 10:38   ` [Qemu-devel] " Alex Bennée
2017-05-05 10:38 ` [RFC PATCH v1 2/9] cpus: push BQL lock to qemu_*_wait_io_event Alex Bennée
2017-05-05 10:38   ` [Qemu-devel] " Alex Bennée
2017-05-05 10:38 ` [Qemu-devel] [RFC PATCH v1 3/9] cpus: only take BQL for sleeping threads Alex Bennée
2017-05-05 15:15   ` Paolo Bonzini
2017-05-05 15:28     ` Alex Bennée [this message]
2017-05-05 10:38 ` [Qemu-devel] [RFC PATCH v1 4/9] replay/replay-internal.c: track holding of replay_lock Alex Bennée
2017-05-05 10:38 ` [Qemu-devel] [RFC PATCH v1 5/9] replay: make locking visible outside replay code Alex Bennée
2017-05-05 10:38 ` [Qemu-devel] [RFC PATCH v1 6/9] replay: push replay_mutex_lock up the call tree Alex Bennée
2017-05-05 10:38 ` [Qemu-devel] [RFC PATCH v1 7/9] scripts/qemu-gdb: add simple tcg lock status helper Alex Bennée
2017-05-05 10:38 ` [Qemu-devel] [RFC PATCH v1 8/9] util/qemu-thread-*: add qemu_lock, locked and unlock trace events Alex Bennée
2017-05-05 15:17   ` Paolo Bonzini
2017-05-05 15:59     ` Alex Bennée
2017-05-06  8:19       ` Paolo Bonzini
2017-05-08 17:52       ` Stefan Hajnoczi
2017-05-09 13:50         ` Alex Bennée
2017-05-09 13:55           ` Paolo Bonzini
2017-05-05 10:38 ` [Qemu-devel] [RFC PATCH v1 9/9] scripts/analyse-locks-simpletrace.py: script to analyse lock times Alex Bennée
2017-05-05 15:38 ` [Qemu-devel] [RFC PATCH v1 0/9] BQL and Replay Lock changes no-reply
2017-05-10 13:51 ` Pavel Dovgalyuk
2017-05-10 15:24   ` Alex Bennée
2017-05-11 11:23     ` Pavel Dovgalyuk
2017-06-05 10:52 ` Pavel Dovgalyuk
2017-06-06  9:34   ` Alex Bennée

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=87shkjmif8.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=boost.lists@gmail.com \
    --cc=cota@braap.org \
    --cc=crosthwaite.peter@gmail.com \
    --cc=pavel.dovgaluk@ispras.ru \
    --cc=pbonzini@redhat.com \
    --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.