On Fri, 2010-08-13 at 10:24 +0400, Michael Tokarev wrote: > So why xfs decided the block size is 4K?? We had a similar problem with direct io here, with 2.6.9; I quote from the Bugzilla: "mkfs.xfs has md-specific code (!) that looks at the raid flavour to figure stripe parameters, alignment requirements, etc. "Raid flavours 4,5 and 6 force the alignment to be the same as the file system block size (which is 4096 bytes)." Here's a program to test the alignment requirements: ---- #include <xfs/libxfs.h> #include <fcntl.h> int main(int argc, char* argv[]) { struct dioattr dio; int tfd = open((argc == 2) ? argv[1] : "/mnt/disk1", O_RDONLY, 0666); if (ioctl(tfd, XFS_IOC_DIOINFO, &dio) < 0) perror("ioctl"); else { printf("min io size = %d\n", dio.d_miniosz); printf("max io size = %d\n", dio.d_maxiosz); printf("align = %d\n", dio.d_mem); } close(tfd); return 0; } ---- The same disk set returned 'align = 4096' for raid 5, but 'align = 512' for raid 0. -- Roger _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs