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>