Date: Fri, 29 Dec 2006 16:56:57 +0200 From: Vasil Dimov <vd@FreeBSD.org> To: freebsd-geom@freebsd.org Subject: graid3 device gives "Invalid argument" when requested to read >=128kb Message-ID: <20061229145657.GA24409@qlovarnika.bg.datamax>
next in thread | raw e-mail | index | archive | help
--LZvS9be/3tNcYl/X Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I managed to create a graid3 array which returns "Invalid argument" when I attempt to read more than 128k with a single read(2) call. Here is the test program: --- graid3_test.c begins here --- #include <sys/types.h> #include <sys/uio.h> #include <assert.h> #include <errno.h> #include <fcntl.h> #include <stdio.h> #include <string.h> #include <unistd.h> int main(int argc, char **argv) { char buf[1048576]; int fd; ssize_t ret; assert((fd =3D open("/dev/raid3/r3test", O_RDONLY)) !=3D -1); if ((ret =3D read(fd, buf, 8192*16)) =3D=3D -1) printf("%s\n", strerror(errno)); else printf("ret: %zd\n", ret); close(fd); return 0; } /* EOF */ --- graid3_test.c ends here --- # ./graid3_test Invalid argument If I change 8192*16 to 8192*15 it works fine: # ./graid3_test ret: 122880 This is what /dev/raid3/r3test looks like (notice the sector size is 8192, that's why my test program is using multiples of 8192): # graid3 list Geom name: r3test State: COMPLETE Components: 17 Flags: NONE GenID: 0 SyncID: 1 ID: 4285731808 Zone64kFailed: 0 Zone64kRequested: 0 Zone16kFailed: 0 Zone16kRequested: 32 Zone4kFailed: 0 Zone4kRequested: 1280 Providers: 1. Name: raid3/r3test Mediasize: 536862720 (512M) Sectorsize: 8192 Mode: r0w0e0 Consumers: 1. Name: ggate100 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 0 Type: DATA 2. Name: ggate101 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 1 Type: DATA 3. Name: ggate102 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 2 Type: DATA 4. Name: ggate103 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 3 Type: DATA 5. Name: ggate104 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 4 Type: DATA 6. Name: ggate105 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 5 Type: DATA 7. Name: ggate106 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 6 Type: DATA 8. Name: ggate107 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 7 Type: DATA 9. Name: ggate108 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 8 Type: DATA 10. Name: ggate109 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 9 Type: DATA 11. Name: ggate110 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 10 Type: DATA 12. Name: ggate111 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 11 Type: DATA 13. Name: ggate112 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 12 Type: DATA 14. Name: ggate113 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 13 Type: DATA 15. Name: ggate114 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 14 Type: DATA 16. Name: ggate115 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 15 Type: DATA 17. Name: ggate116 Mediasize: 33554432 (32M) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 16 Type: PARITY No such problems occur if the raid3 array is created with 9 (not 17) disks. Cheerz! --=20 Vasil Dimov gro.DSBeerF@dv % Never be afraid to tell the world who you are. -- Anonymous --LZvS9be/3tNcYl/X Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- iD8DBQFFlSy5Fw6SP/bBpCARAvRRAJwMb+iQf8PnBTdc6ssw04bV1s/NpQCgteyn w/vWNIkADDp9H1ADRl9wyJk= =FNx5 -----END PGP SIGNATURE----- --LZvS9be/3tNcYl/X--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061229145657.GA24409>