From: tixy@linaro.org (Jon Medhurst (Tixy))
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: fix cpu_relax() in case of doing dmb
Date: Thu, 23 Aug 2012 19:31:26 +0100 [thread overview]
Message-ID: <1345746686.4894.7.camel@computer5.home> (raw)
In-Reply-To: <20120823135806.GG24242@S2101-09.ap.freescale.net>
On Thu, 2012-08-23 at 21:58 +0800, Shawn Guo wrote:
> On Thu, Aug 23, 2012 at 11:43:56AM +0100, Will Deacon wrote:
> > On Wed, Aug 22, 2012 at 03:52:18PM +0100, Shawn Guo wrote:
> > > diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h
> > > index 99afa74..7cc67ce 100644
> > > --- a/arch/arm/include/asm/processor.h
> > > +++ b/arch/arm/include/asm/processor.h
> > > @@ -80,7 +80,14 @@ extern void release_thread(struct task_struct *);
> > > unsigned long get_wchan(struct task_struct *p);
> > >
> > > #if __LINUX_ARM_ARCH__ == 6 || defined(CONFIG_ARM_ERRATA_754327)
> > > -#define cpu_relax() smp_mb()
> > > +#define cpu_relax() do { \
> > > + asm("nop"); \
> > > + asm("nop"); \
> > > + asm("nop"); \
> > > + asm("nop"); \
> > > + asm("nop"); \
> >
> > Can you use nop() instead of the explicit asm?
>
> Yes. I just tried, and it works too.
>
> > Also, I think we should try
> > and use some methodology on deciding the number of nops to insert. Without
> > having a full handle on the problem at the moment, it would seem that we
> > need at least NR_CPUS worth (since the number of spinning secondaries is
> > NR_CPUS-1 and they may execute their barriers in lock-step).
> >
> I'm not sure we get something like that. In my testing here, I need
> at least 5 nops to get rid of the issue.
Doesn't A9 do dual issue? If so, the maths for your 4 core iMX6Q might
match up with Will's hypothesis. You could try the theory by building
say with CONFIG_NR_CPUS == 3.
--
Tixy
next prev parent reply other threads:[~2012-08-23 18:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-22 14:52 [PATCH] ARM: fix cpu_relax() in case of doing dmb Shawn Guo
2012-08-23 2:47 ` Hui Wang
2012-08-23 10:23 ` Dirk Behme
2012-08-23 10:43 ` Will Deacon
2012-08-23 13:58 ` Shawn Guo
2012-08-23 18:31 ` Jon Medhurst (Tixy) [this message]
2012-08-24 1:15 ` Shawn Guo
2012-08-24 9:14 ` Jon Medhurst (Tixy)
2012-08-24 1:10 ` Hui Wang
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=1345746686.4894.7.camel@computer5.home \
--to=tixy@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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.