X-Git-Url: http://git.efficios.com/?p=test-ssd.git;a=blobdiff_plain;f=test-ssd-write.c;h=187925606bac66fd697d8ae92e9fd24eb045ed14;hp=2bce0fc8f65b3e68046e3194b008f13d040cd498;hb=5f9b977a7d072a4634e699d94754f67c3250595d;hpb=e3027339976586284af5f5d437104bf5be217cc4 diff --git a/test-ssd-write.c b/test-ssd-write.c index 2bce0fc..1879256 100644 --- a/test-ssd-write.c +++ b/test-ssd-write.c @@ -12,15 +12,21 @@ * warm machine reboot to get the drive to respond, as soft reset is not * enough): * - * Vendor Model Firmware Controller # drives tested - * Intel (Lenovo) SSDSC2BW180A3L LE1i SandForce 2281 1 - * Intel (Lenovo) SSDSC2BW180A3L LF1i SandForce 2281 2 + * Vendor Model Firmware Controller # drives tested HW + * Intel (Lenovo) SSDSC2BW180A3L LE1i SandForce 2281 1 (3.5 Debian kernel) x230 + * Intel (Lenovo) SSDSC2BW180A3L LF1i SandForce 2281 3 (3.2 Debian kernel) x230 + * (3.7.9 Arch kernel) x230 * * We ensured that the problem is not coming from other parts by running * this test on other SSD drives, which don't show this problem: * * Vendor Model Firmware Controller # drives tested * Intel SSDSA2M160G2GC 2CV102HD Intel 1 + * Intel SSDSA2CW300G310 ??????? Intel 1 (over USB on 3.8 kernel) + * Intel SSDSA2CT040G3 4PC10302 Intel 1 (3.2 kernel) + * Intel SSDSA2CT040G3 4PC10362 Intel 1 (3.2 kernel) + * Intel SSDSC2CT120A3K5 ??????? SandForce 2281 1 (on HP SmartArray P212 with 3.2 kernel) + * OCZ OCZ-VERTEX3 2.25 SF-2281 1 (3.7.9 Arch kernel) * * Under Linux (Debian, Ubuntu, various kernels), after about 5 minutes, * we get this result: @@ -71,7 +77,7 @@ #include enum write_mode { - WRITE_RANDOM, + WRITE_RANDOM = 0, WRITE_ZEROES, }; @@ -236,17 +242,6 @@ int main(int argc, char **argv) printf("Creating file %s of length %zu, random seed %u\n", argv[1], len, seed); - if (strcmp(argv[4], "-r") == 0) { - printf("Generating random data\n"); - write_mode = WRITE_RANDOM; - } else if (strcmp(argv[4], "-z") == 0) { - printf("Filling with zeroes (compressible pattern)\n"); - write_mode = WRITE_ZEROES; - } else { - printf("Invalid argument %s\n", argv[4]); - exit(EXIT_FAILURE); - } - for (i = 4; i < argc; i++) { if (strcmp(argv[i], "-z") == 0) { write_mode = WRITE_ZEROES; @@ -255,19 +250,22 @@ int main(int argc, char **argv) } } - if (verify_mode) { - printf("Verification mode activated.\n"); - } - switch (write_mode) { case WRITE_RANDOM: + printf("Generating random data\n"); + break; case WRITE_ZEROES: + printf("Filling with zeroes (compressible pattern)\n"); break; default: printf("Unsupported write-mode\n"); exit(EXIT_FAILURE); } + if (verify_mode) { + printf("Verification mode activated.\n"); + } + /* Grow file */ pos = lseek(fd, len - 1, SEEK_SET); if (pos < 0) {