From owner-freebsd-arm@FreeBSD.ORG Mon Mar 4 22:52:10 2013 Return-Path: Delivered-To: freebsd-arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 879D0F95 for ; Mon, 4 Mar 2013 22:52:10 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-02-ewr.mailhop.org (mho-04-ewr.mailhop.org [204.13.248.74]) by mx1.freebsd.org (Postfix) with ESMTP id 5C49C137 for ; Mon, 4 Mar 2013 22:52:10 +0000 (UTC) Received: from c-24-8-232-202.hsd1.co.comcast.net ([24.8.232.202] helo=damnhippie.dyndns.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1UCeEr-000HiV-FO; Mon, 04 Mar 2013 22:52:09 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r24Mq7FB092142; Mon, 4 Mar 2013 15:52:07 -0700 (MST) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.232.202 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19g/MHT0HaB0QxHDa0ujd8s Subject: Re: arm/173617 From: Ian Lepore To: "Brian J. McGovern" In-Reply-To: <201303042155.r24LtN7a016998@spoon.beta.com> References: <201303042155.r24LtN7a016998@spoon.beta.com> Content-Type: text/plain; charset="us-ascii" Date: Mon, 04 Mar 2013 15:52:06 -0700 Message-ID: <1362437526.1195.293.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: freebsd-arm@FreeBSD.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2013 22:52:10 -0000 On Mon, 2013-03-04 at 16:55 -0500, Brian J. McGovern wrote: > I have been chasing down a disk write problem my OpenRD. In my research, I > ran across arm/173617, which discusses file corruption while downloading ports > via fetch, which is how I first noticed the issue. However, contrary to the PR, > the issues does not appear to be in the network interface, but rather on the > writing of the file to disk. The problem appears global - I've tested SATA, > USB (umass), and SD/MMC interfaces. I've also had problems with NFS mounts in > the past, but have not verified that the issues are the same. > > I have not chased down a particular size, but "small" writes (e.g. a config > file, .c file, etc.) appear to work correctly at all times. "Large" writes > (I usually see it on files a MB or larger, but this may be a function of > opportunity) will typically see some number of bytes set to zero. To reproduce > the problem, I wrote a short application that writes sequentially incrementing > 64-bit integers out to disk. (e.g. 0, 1, 2, 3...), and one that reads them > back. > > The result matrix clearly showed the problem is on the write side - writing > files on other systems and reading them back on the OpenRD works fine. Writing > them on the OpenRD causes read back failures, both on the OpenRD _and_ other > hosts. I have also found that setting the file handle O_SYNC (or mounting > the filesystem in sync mode) eliminates the problem. > > Has anyone seen/fixed this problem? I'd hate to waste much more time with it > if its a known problem, or there is a closed PR I haven't found yet. > You didn't say what version of freebsd you're working with. I saw a problem like that a while back on my similar DreamPlug; the symptom was random chunks of corruption that were always 32 bytes of wrong data each. I think the fix for that was to disable cache write-allocate on sheeva chipsets; that fix came into -current along with all the armv6 changes, but I have it as a separate patch too. -- Ian