From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: Problem with atomic accesses in pstore on some ARM CPUs
Date: Tue, 16 Aug 2016 11:45:37 +0100 [thread overview]
Message-ID: <20160816104537.GB27088@arm.com> (raw)
In-Reply-To: <8f0c9ced-cdc3-ab9b-caee-06fe85e6c1e7@arm.com>
On Tue, Aug 16, 2016 at 11:32:04AM +0100, Robin Murphy wrote:
> On 16/08/16 00:19, Guenter Roeck wrote:
> > we are having a problem with atomic accesses in pstore on some ARM
> > CPUs (specifically rk3288 and rk3399). With those chips, atomic
> > accesses fail with both pgprot_noncached and pgprot_writecombine
> > memory. Atomic accesses do work when selecting PAGE_KERNEL protection.
>
> What's the pstore backed by? I'm guessing it's not normal DRAM.
Regardless, pgprot_noncached and pgprot_writecombine map to Device-nGnRnE
and Normal-non-cacheable respectively, and so it's IMP DEP whether or not
exclusives will work there.
> > Debugging on rk3399 shows the following crash.
> >
> > [ 0.912669] Bad mode in Error handler detected, code 0xbf000002 -- SError
> > [ 0.920140] CPU: 4 PID: 1 Comm: swapper/0 Not tainted 4.4.14 #389
> > [ 0.926838] Hardware name: Google Kevin (DT)
> > [ 0.931533] task: ffffffc0edfe0000 ti: ffffffc0edf7c000 task.ti:
> > ffffffc0edf 7c000
> > [ 0.939780] PC is at __ll_sc___cmpxchg_case_mb_4+0x2c/0x5c
> > [ 0.945811] LR is at 0x1
> >
> > The "solution" for this problem in various Chrome OS releases is to
> > disable atomic accesses in pstore entirely, which seems to be a bit
> > brute-force. Question is what a proper upstream-acceptable solution
Why do you require atomics to the pstore? If you need to serialise updates
from coherent observers (e.g. CPUs), is it acceptable to use a lock in
normal memory instead?
Will
WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: Guenter Roeck <groeck@google.com>,
Kees Cook <keescook@chromium.org>,
Jeffy Chen <jeffy.chen@rock-chips.com>,
Colin Cross <ccross@android.com>, Tony Luck <tony.luck@intel.com>,
Douglas Anderson <dianders@chromium.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: Problem with atomic accesses in pstore on some ARM CPUs
Date: Tue, 16 Aug 2016 11:45:37 +0100 [thread overview]
Message-ID: <20160816104537.GB27088@arm.com> (raw)
In-Reply-To: <8f0c9ced-cdc3-ab9b-caee-06fe85e6c1e7@arm.com>
On Tue, Aug 16, 2016 at 11:32:04AM +0100, Robin Murphy wrote:
> On 16/08/16 00:19, Guenter Roeck wrote:
> > we are having a problem with atomic accesses in pstore on some ARM
> > CPUs (specifically rk3288 and rk3399). With those chips, atomic
> > accesses fail with both pgprot_noncached and pgprot_writecombine
> > memory. Atomic accesses do work when selecting PAGE_KERNEL protection.
>
> What's the pstore backed by? I'm guessing it's not normal DRAM.
Regardless, pgprot_noncached and pgprot_writecombine map to Device-nGnRnE
and Normal-non-cacheable respectively, and so it's IMP DEP whether or not
exclusives will work there.
> > Debugging on rk3399 shows the following crash.
> >
> > [ 0.912669] Bad mode in Error handler detected, code 0xbf000002 -- SError
> > [ 0.920140] CPU: 4 PID: 1 Comm: swapper/0 Not tainted 4.4.14 #389
> > [ 0.926838] Hardware name: Google Kevin (DT)
> > [ 0.931533] task: ffffffc0edfe0000 ti: ffffffc0edf7c000 task.ti:
> > ffffffc0edf 7c000
> > [ 0.939780] PC is at __ll_sc___cmpxchg_case_mb_4+0x2c/0x5c
> > [ 0.945811] LR is at 0x1
> >
> > The "solution" for this problem in various Chrome OS releases is to
> > disable atomic accesses in pstore entirely, which seems to be a bit
> > brute-force. Question is what a proper upstream-acceptable solution
Why do you require atomics to the pstore? If you need to serialise updates
from coherent observers (e.g. CPUs), is it acceptable to use a lock in
normal memory instead?
Will
next prev parent reply other threads:[~2016-08-16 10:45 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-15 23:19 Problem with atomic accesses in pstore on some ARM CPUs Guenter Roeck
2016-08-15 23:19 ` Guenter Roeck
2016-08-16 10:32 ` Robin Murphy
2016-08-16 10:32 ` Robin Murphy
2016-08-16 10:45 ` Will Deacon [this message]
2016-08-16 10:45 ` Will Deacon
2016-08-16 13:21 ` Guenter Roeck
2016-08-16 13:21 ` Guenter Roeck
2016-08-16 13:14 ` Guenter Roeck
2016-08-16 13:14 ` Guenter Roeck
2016-08-16 13:21 ` Will Deacon
2016-08-16 13:21 ` Will Deacon
2016-08-16 15:02 ` Guenter Roeck
2016-08-16 15:02 ` Guenter Roeck
2016-08-15 22:15 ` Mark Rutland
2016-08-15 22:15 ` Mark Rutland
2016-08-16 17:35 ` Colin Cross
2016-08-16 17:35 ` Colin Cross
2016-08-16 20:26 ` Guenter Roeck
2016-08-16 20:26 ` Guenter Roeck
2016-08-16 20:50 ` Kees Cook
2016-08-16 20:50 ` Kees Cook
2016-08-17 0:26 ` Guenter Roeck
2016-08-17 0:26 ` Guenter Roeck
2016-08-18 14:02 ` Tony Lindgren
2016-08-19 9:35 ` Russell King - ARM Linux
2016-08-19 9:35 ` Russell King - ARM Linux
2016-08-19 12:47 ` Guenter Roeck
2016-08-19 12:47 ` Guenter Roeck
2016-08-22 21:03 ` Arnd Bergmann
2016-08-22 21:03 ` Arnd Bergmann
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=20160816104537.GB27088@arm.com \
--to=will.deacon@arm.com \
--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.