Using DMA in read/write, setting block size for I/O

From: Karthik Sarangan
Date: Tue Oct 04 2005 - 09:26:46 EST


In my application, I have the following code.

int main(void)
{
char *pcBuffer;

posix_memalign((void **) pcBuffer, 512, 262144);
int ifd = open("/dev/sdb", O_DIRECT | O_RDWR);
long lLen;

lLen = read(ifd, pcBuffer, 262144);
close(ifd);
return 0;
}

Will the underlying block device read a single 256KB block from the hdd into pcBuffer
or will it read 256KB as a set of smaller blocks?

Since the buffer is memory aligned will it enable DMA?

scsi disk driver is adaptec aic79xx.o
distro is RedHat Enterprise Linux WS 4 (kernel-2.6.9-11)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/