From: Russell King <rmk@arm.linux.org.uk>
To: Jamie Lokier <jamie@shareable.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Virtual alias cache coherency results (was: x86, ARM, PARISC, PPC, MIPS and Sparc folks please run this)
Date: Thu, 11 Sep 2003 01:07:02 +0100 [thread overview]
Message-ID: <20030911010702.W30046@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20030910233720.GA25756@mail.jlokier.co.uk>; from jamie@shareable.org on Thu, Sep 11, 2003 at 12:37:20AM +0100
On Thu, Sep 11, 2003 at 12:37:20AM +0100, Jamie Lokier wrote:
> > The kernel works around this, but, due to some bugs on StrongARM chips
> > in the write buffer, it appears that we need further work-arounds, which
> > are already implemented.
>
> There is one thing which puzzles me. The ARM test program outputs
> I've been sent say that the cache is incoherent, _not_ just the write
> buffers. You said you have results which report write buffers, but I
> don't have those in detail, only descriptions.
Well, this machine which my test passes (this is run on a kernel with
the work-around in, but since it detected the write buffer works, does
not activate it.)
Processor : StrongARM-110 rev 2 (v4l)
never reports problems with the write buffer, and produces a consistent
set of results:
(128) [93,20,4] Test separation: 4096 bytes: FAIL - too slow
(128) [94,20,4] Test separation: 8192 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 16384 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 32768 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 65536 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 131072 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 262144 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 524288 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 1048576 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 2097152 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 4194304 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 8388608 bytes: FAIL - too slow
(128) [93,20,4] Test separation: 16777216 bytes: FAIL - too slow
VM page alias coherency test: failed; will use copy buffers instead
And then there's ARM920T, and this is run on a kernel without
the work-around:
# cat /proc/cpuinfo
Processor : Arm920Tid(wb) rev 0 (v4l)
BogoMIPS : 29.90
Features : swp half thumb
CPU implementer : 0x41
CPU architecture: 4T
CPU variant : 0x1
CPU part : 0x920
CPU revision : 0
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format A
Cache format : Harvard
I size : 16384
I assoc : 64
I line length : 32
I sets : 8
D size : 16384
D assoc : 64
D line length : 32
D sets : 8
Hardware : ARM-Integrator
Revision : 0000
Serial : 0000000000000000
# /mnt/src/tests/general/pagealias-v3
(64) [83,29,7] Test separation: 4096 bytes: FAIL - too slow
(64) [83,29,7] Test separation: 8192 bytes: FAIL - too slow
(64) [84,29,7] Test separation: 16384 bytes: FAIL - too slow
(64) [84,29,7] Test separation: 32768 bytes: FAIL - too slow
(64) [84,29,7] Test separation: 65536 bytes: FAIL - too slow
(64) [84,29,7] Test separation: 131072 bytes: FAIL - too slow
(64) [83,29,7] Test separation: 262144 bytes: FAIL - too slow
(64) [83,29,7] Test separation: 524288 bytes: FAIL - too slow
(64) [84,29,7] Test separation: 1048576 bytes: FAIL - too slow
(64) [84,29,7] Test separation: 2097152 bytes: FAIL - too slow
(64) [83,29,7] Test separation: 4194304 bytes: FAIL - too slow
(64) [83,29,7] Test separation: 8388608 bytes: FAIL - too slow
(64) [84,29,7] Test separation: 16777216 bytes: FAIL - too slow
VM page alias coherency test: failed; will use copy buffers instead
> Does your fix, which makes pages uncacheable andq disables write
> combining (correct?) only fix your test results which intermittently
> reported write buffer problems, or does it fix _all_ the ARM test
> results I received, including those which don't report write buffer
> problems?
It's relatively simple, and I'm not sure why its causing such
misunderstanding. Let me try one more time:
ARM caches are VIVT. VIVT caches have inherent aliasing issues. The
kernel works around these issues by marking memory uncacheable where
appropriate, and will continue to do so for VIVT cached ARM CPUs.
Separate issue: Some StrongARM-110 devices contain buggy write buffers.
For these devices, we need to do a little bit extra than we currently
do to ensure that they are coherent, by disabling the write buffer as
well as the cache for these regions. Current kernels do not work
around this issue.
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
next prev parent reply other threads:[~2003-09-11 0:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-10 21:04 Virtual alias cache coherency results (was: x86, ARM, PARISC, PPC, MIPS and Sparc folks please run this) Jamie Lokier
2003-09-10 22:39 ` Russell King
2003-09-10 23:37 ` Jamie Lokier
2003-09-11 0:07 ` Russell King [this message]
2003-09-11 12:35 ` Jamie Lokier
2003-09-11 15:09 ` Russell King
2003-09-11 16:25 ` Jamie Lokier
2003-09-11 16:52 ` Russell King
2003-09-11 18:55 ` Jamie Lokier
2003-09-12 0:45 ` Jamie Lokier
2003-09-12 7:48 ` Russell King
2003-09-11 18:51 ` Guennadi Liakhovetski
2003-09-11 10:17 ` Richard Curnow
2003-09-11 16:34 ` Jamie Lokier
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=20030911010702.W30046@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=jamie@shareable.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox