Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Oct 2008 10:13:29 -0600
From:      Scott Long <scottl@samsco.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Nathan Whitehorn <nwhitehorn@FreeBSD.org>
Subject:   Re: svn commit: r184429 - head/sys/powerpc/powermac
Message-ID:  <49088BA9.2000501@samsco.org>
In-Reply-To: <200810291111.47677.jhb@freebsd.org>
References:  <200810282209.m9SM9UMQ005356@svn.freebsd.org> <200810291111.47677.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:
> On Tuesday 28 October 2008 06:09:30 pm Nathan Whitehorn wrote:
>> Author: nwhitehorn
>> Date: Tue Oct 28 22:09:30 2008
>> New Revision: 184429
>> URL: http://svn.freebsd.org/changeset/base/184429
>>
>> Log:
>>   DBDMA can transfer a maximum of 64K - 1 bytes per descriptor, as the byte
>>   count field is 16 bits. Inform ATA of this fact.
> 
> You may want to use 32k transfers rather than 63k.  At least on the HT1000 
> chipsets we got severe data corruption even with 63k transfers, and I'm not 
> sure if some part of the kernel isn't dependent on power-of-2 transfers 
> somehow.
> 

There are a number of places where direct I/O that is initiated by the
kernel works just fine for non-power-of-2 sizes and offsets,
particularly in GEOM taste routines and in several filesystem drivers.
I'm pretty sure I can also reliably demonstrate it from userland via
O_DIRECT.  Buffered I/O is a different matter, and there could possibly
be some edge cases that exist below the buffer layer.

Scott



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49088BA9.2000501>