I ran a small test program on a 400GB SATA disk connected to Marvel chip. Using 2.6.11.12 kernel and get this strange behavior.
# iostat -k -p /dev/sdj Linux 2.6.11.12 (bakstor2u.localdomain) 08/26/2005 avg-cpu: %user %nice %sys %iowait %idle 0.11 0.00 6.63 54.75 38.51 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdj 0.00 0.01 0.00 36 0 start with no io. run program with /dev/sdj and count 10240. i supposed it should only write 40MB data and no read should be generated. but result is quite weired. there are almost same amount of read and total size is around 80MB. # iostat -k -p /dev/sdj Linux 2.6.11.12 (bakstor2u.localdomain) 08/26/2005 avg-cpu: %user %nice %sys %iowait %idle 0.11 0.00 6.48 55.65 37.77 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdj 4.26 11.31 11.47 80476 81640 pls cc to me. Thanks! Ming --------------------------------------------------- #define _LARGEFILE64_SOURCE #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> int main(int argc, char *argv[]) { int n; int i, count; char *name; char buf[4096]; int fd; if (argc != 3) { printf("%s name count\n", argv[0]); exit(1); } name = argv[1]; count = atoi(argv[2]); fd = open(name, O_CREAT|O_WRONLY, S_IRWXU); for (i = 0; i < count; i++) { unsigned long x; x = (rand() >> 1) << 1; lseek64(fd, x, SEEK_SET); write(fd, buf, 4096); } printf("done\n"); close(fd); return 0; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/