Date: Wed, 25 Apr 2012 08:34:34 -0600 From: Ian Lepore <freebsd@damnhippie.dyndns.org> To: Kristof Provost <kristof@sigsegv.be> Cc: freebsd-arm@freebsd.org Subject: Re: arm/158950: arm/sheevaplug fails fsx when mmap operations are enabled Message-ID: <1335364474.66865.36.camel@revolution.hippie.lan> In-Reply-To: <201204250920.q3P9KDDc093458@freefall.freebsd.org> References: <201204250920.q3P9KDDc093458@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2012-04-25 at 09:20 +0000, Kristof Provost wrote: > The following reply was made to PR arm/158950; it has been noted by GNATS. > > From: Kristof Provost <kristof@sigsegv.be> > To: bug-followup@FreeBSD.org > Cc: > Subject: Re: arm/158950: arm/sheevaplug fails fsx when mmap operations are > enabled > Date: Wed, 25 Apr 2012 11:15:17 +0200 > > The sample program above has the following output: > > root@openrd:/mnt# /bin/kp > After mmap: offset 32 is 0, not 32 as expected > After mmap: offset 33 is 0, not 33 as expected > After mmap: offset 34 is 0, not 34 as expected > ... > After mmap: offset 61 is 0, not 61 as expected > After mmap: offset 62 is 0, not 62 as expected > After mmap: offset 63 is 0, not 63 as expected > After mmap: offset 224 is 0, not 96 as expected > After mmap: offset 225 is 0, not 97 as expected > ... > > That's confirmed by hexdump-ing the test.img file afterwards. > > I'm also able to reproduce the problem described in arm/162159. You're > probably right about the relation. > > The problem looks very similar too: 32-byte sections that are 0 rather > than the expected values. Whenever I run into IO corruption that comes in 32-byte chunks I immediately suspect trouble in the busdma cacheline flush code. A useful first step in narrowing that down is to change the data cache from write-back to write-through mode and see if the symptoms change. I think for a sheeva cpu you'd do that in pmap_pte_init_arm10() in sys/arm/arm/pmap.c. Change the xxx_cache_mode vars to be the same as they are in the pmap_pte_init_arm9() function just above it. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1335364474.66865.36.camel>