very weired random io behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux