(io->r_uflags & F_WORD_ALIGNED) ? "aligned" : "unaligned");
if(io->r_oflags & O_DIRECT) {
+ char *dio_env;
struct dioattr finfo;
if(xfsctl(io->r_file, fd, XFS_IOC_DIOINFO, &finfo) == -1) {
finfo.d_maxiosz = 1;
}
+ dio_env = getenv("XFS_DIO_MIN");
+ if (dio_env)
+ finfo.d_mem = finfo.d_miniosz = atoi(dio_env);
+
cp += sprintf(cp, " DIRECT I/O: offset %% %d = %d length %% %d = %d\n",
finfo.d_miniosz,
io->r_offset % finfo.d_miniosz,
free_slot->c_rtc = Reqno;
if (oflags & O_DIRECT) {
+ char *dio_env;
+
if (xfsctl(file, fd, XFS_IOC_DIOINFO, &finfo) == -1) {
finfo.d_mem = 1;
finfo.d_miniosz = 1;
finfo.d_maxiosz = 1;
}
+
+ dio_env = getenv("XFS_DIO_MIN");
+ if (dio_env)
+ finfo.d_mem = finfo.d_miniosz = atoi(dio_env);
+
} else {
finfo.d_mem = 1;
finfo.d_miniosz = 1;
struct stat64 stb;
int v;
char st[1024];
+ char *dio_env;
init_pathname(&f);
if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) {
close(fd);
return;
}
+
+ dio_env = getenv("XFS_DIO_MIN");
+ if (dio_env)
+ diob.d_mem = diob.d_miniosz = atoi(dio_env);
+
align = (__int64_t)diob.d_miniosz;
lr = ((__int64_t)random() << 32) + random();
off = (off64_t)(lr % stb.st_size);
struct stat64 stb;
int v;
char st[1024];
+ char *dio_env;
init_pathname(&f);
if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) {
close(fd);
return;
}
+
+ dio_env = getenv("XFS_DIO_MIN");
+ if (dio_env)
+ diob.d_mem = diob.d_miniosz = atoi(dio_env);
+
align = (__int64_t)diob.d_miniosz;
lr = ((__int64_t)random() << 32) + random();
off = (off64_t)(lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE));
rec->f_riou = BSIZE;
if( (fd = open(rec->f_path, O_RDWR|O_DIRECT, 0)) != -1 ) {
+ char *dio_env;
#ifdef XFS_IOC_DIOINFO
if(xfsctl(rec->f_path, fd, XFS_IOC_DIOINFO, &finfo) != -1) {
#else
bozo!
#endif
#endif
+ dio_env = getenv("XFS_DIO_MIN");
+ if (dio_env)
+ finfo.d_mem = finfo.d_miniosz = atoi(dio_env);
+
rec->f_riou = finfo.d_miniosz;
} else {
fprintf(stderr,
if(Owrite == 2) {
close(fd);
if( (fd = open(path, O_CREAT|O_RDWR|O_DIRECT, 0)) != -1 ) {
+ char *dio_env;
#ifdef XFS_IOC_DIOINFO
if(xfsctl(path, fd, XFS_IOC_DIOINFO, &finfo) == -1) {
#else
/*fprintf(stderr, "%s: miniosz=%d\n",
path, finfo.d_miniosz);*/
}
+
+ dio_env = getenv("XFS_DIO_MIN");
+ if (dio_env)
+ finfo.d_mem = finfo.d_miniosz = atoi(dio_env);
} else {
fprintf(stderr, "iogen%s: Error %s (%d) opening file %s with flags O_CREAT|O_RDWR|O_DIRECT\n",
TagName, SYSERR, errno, path);
off_t offset;
char *file;
int loops;
+ char *dio_env;
if(argc != 3) {
fprintf(stderr, "%s <loops> <file>\n", argv[0]);
exit(1);
}
+ dio_env = getenv("XFS_DIO_MIN");
+ if (dio_env)
+ dio.d_mem = dio.d_miniosz = atoi(dio_env);
+
if ((dio.d_miniosz > IO_SIZE) || (dio.d_maxiosz < IO_SIZE)) {
fprintf(stderr, "Test won't work - iosize out of range"
" (dio.d_miniosz=%d, dio.d_maxiosz=%d)\n",