From: pbonzini@redhat.com (Paolo Bonzini)
Subject: [ltt-dev] [PATCH 02/10] rcutorture: make goflag volatile
Date: Wed, 8 Jun 2011 10:59:10 +0200 [thread overview]
Message-ID: <1307523558-16960-3-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1307523558-16960-1-git-send-email-pbonzini@redhat.com>
Even cmm_barrier may not be enough as a compiler barrier in the presence
of static variables, and cmm_mb would not be either! The compiler assumes
that calling a function does not clobber static variables if it can prove
that they do not escape (which also implies the correct phase of the moon).
Rather than sprinkling the code with compiler barriers, I am taking the
easy way out and declaring the variable volatile. Without this patch,
rcutorture_qsbr never finishes for me (GCC 4.5.0).
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
---
tests/rcutorture.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/tests/rcutorture.h b/tests/rcutorture.h
index c5253d9..5ba3d2b 100644
--- a/tests/rcutorture.h
+++ b/tests/rcutorture.h
@@ -79,7 +79,8 @@ char argsbuf[64];
#define GOFLAG_RUN 1
#define GOFLAG_STOP 2
-int goflag __attribute__((__aligned__(CAA_CACHE_LINE_SIZE))) = GOFLAG_INIT;
+volatile int goflag __attribute__((__aligned__(CAA_CACHE_LINE_SIZE)))
+ = GOFLAG_INIT;
#define RCU_READ_RUN 1000
--
1.7.4.4
next prev parent reply other threads:[~2011-06-08 8:59 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-08 8:59 [ltt-dev] [PATCH 00/10] call_rcu: futex wakeup and miscellaneous improvements Paolo Bonzini
2011-06-08 8:59 ` [ltt-dev] [PATCH 01/10] urcu-qsbr: fix typo Paolo Bonzini
2011-06-08 22:05 ` Mathieu Desnoyers
2011-06-08 8:59 ` Paolo Bonzini [this message]
2011-06-08 22:09 ` [ltt-dev] [PATCH 02/10] rcutorture: make goflag volatile Mathieu Desnoyers
2011-06-08 8:59 ` [ltt-dev] [PATCH 03/10] uatomic: fix typo in x86 compat implementation Paolo Bonzini
2011-06-08 22:10 ` Mathieu Desnoyers
2011-06-08 8:59 ` [ltt-dev] [PATCH 04/10] uatomic: add uatomic_or Paolo Bonzini
2011-06-09 13:28 ` Mathieu Desnoyers
2011-06-08 8:59 ` [ltt-dev] [PATCH 05/10] call_rcu: drop mutex Paolo Bonzini
2011-06-08 8:59 ` [ltt-dev] [PATCH 06/10] uatomic: add uatomic_and Paolo Bonzini
2011-06-09 13:30 ` Mathieu Desnoyers
2011-06-08 8:59 ` [ltt-dev] [PATCH 07/10] call_rcu: remove write-only qlen variable Paolo Bonzini
2011-06-08 22:15 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP745CE4EF0C62A2E659C78F96620@phx.gbl>
2011-06-08 22:42 ` Paul E. McKenney
2011-06-08 22:46 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP1821FB0D3BC6534C4B2B5896620@phx.gbl>
2011-06-08 23:25 ` Paul E. McKenney
2011-06-08 23:30 ` Mathieu Desnoyers
2011-06-08 8:59 ` [ltt-dev] [PATCH 08/10] call_rcu: redo futex implementation Paolo Bonzini
2011-06-08 22:42 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP66FE311FC9ADF1B74FBB2796620@phx.gbl>
2011-06-09 6:54 ` Paolo Bonzini
2011-06-09 13:24 ` Mathieu Desnoyers
2011-06-09 13:34 ` Mathieu Desnoyers
2011-06-08 8:59 ` [ltt-dev] [PATCH 09/10] call_rcu: factor polling from RT and non-RT cases Paolo Bonzini
2011-06-09 14:06 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP757CECBC5909B84A8F37BD96650@phx.gbl>
2011-06-09 14:20 ` Paolo Bonzini
2011-06-08 8:59 ` [ltt-dev] [PATCH 10/10] call_rcu: avoid useless futex wakeups Paolo Bonzini
2011-06-09 14:07 ` Mathieu Desnoyers
2011-06-08 9:17 ` [ltt-dev] [PATCH] call_rcu: keep BUSY flag set as long as possible Paolo Bonzini
2011-06-09 14:09 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP5719D5284785410F8A3E1396650@phx.gbl>
2011-06-09 14:20 ` Paolo Bonzini
2011-06-09 14:43 ` Mathieu Desnoyers
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=1307523558-16960-3-git-send-email-pbonzini@redhat.com \
--to=pbonzini@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox