From: Jamie Lokier <jamie@shareable.org>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: dave b <db.pub.mail@gmail.com>,
Mikael Pettersson <mikpe@it.uu.se>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: weirdness with compiling a 2.6.33 kernel on arm debian
Date: Mon, 15 Mar 2010 01:02:39 +0000 [thread overview]
Message-ID: <20100315010238.GJ6491@shareable.org> (raw)
In-Reply-To: <20100311133353.GC25011@n2100.arm.linux.org.uk>
Russell King - ARM Linux wrote:
> On Sat, Mar 06, 2010 at 09:24:49PM +1100, dave b wrote:
> > I had already reported it to debian -
> > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572653
> >
> > I have cc'ed linux-arm-kernel into this email.
>
> I think most of the points have already been convered, but just for
> completeness,
>
> What is the history of the hardware you're running these builds on?
> Has it proven itself on previous kernel versions running much the same
> tests?
>
> Another point to consider: how are you running the compiler - is it
> over NFS from a PC?
>
> The reason I ask is that you can suffer from very weird corruption
> issues - I have a nice illustration of one which takes a copy of 1GB
> worth of data each day, and every once in a while, bytes 8-15 of a
> naturally aligned 16 byte block in the data become corrupted somewhere
> between the network and disk. The probability of corruption happening
> is around 0.0000001%, but it still happens... and that makes it
> extremely difficult to track down.
We had annoying corruption in some totally different hardware a few
years ago, but not quite as rare as that.
It was only on ext3 filesystems, not vfat as was supplied with the
SDK. It turned out that the chip's IDE driver started DMA like this:
1. Write to DMA address and count registers.
2. Flush D-cache.
3. Write start DMA command to DMA controller.
We found step 1 preloaded the first 128 bytes into a chip FIFO
(undocumented of course), although the DMA didn't start until step 3.
Swapping steps 1 and 2 fixed it.
The chip supplier hadn't encountered corruption because the code path
from vfat down always had the side effect of flushing those cachelines.
With the cache handling complexity that some ARMs now seem to require,
I wonder if you're seeing a similarly missed cache flush? Adding
cache flushes at strategic points throughout the kernel was very
helpful in narrowing down the one we saw.
-- Jamie
next prev parent reply other threads:[~2010-03-15 1:02 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-06 3:58 weirdness with compiling a 2.6.33 kernel on arm debian dave b
2010-03-06 9:03 ` Mikael Pettersson
2010-03-06 10:24 ` dave b
2010-03-06 10:41 ` Daniel Mack
2010-03-07 1:05 ` dave b
2010-03-07 11:01 ` Martin Guy
2010-03-08 9:53 ` Uwe Kleine-König
2010-03-08 10:31 ` Daniel Mack
2010-03-11 13:10 ` dave b
2010-03-11 13:33 ` Russell King - ARM Linux
2010-03-15 1:02 ` Jamie Lokier [this message]
2010-03-26 10:12 ` dave b
2010-04-01 6:08 ` Pavel Machek
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=20100315010238.GJ6491@shareable.org \
--to=jamie@shareable.org \
--cc=db.pub.mail@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mikpe@it.uu.se \
/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