SYSFS_BFQ_SCHED_PATH,
disk_name);
if (!(fd = fopen(path, "r+")))
- error(1, errno, "frm_generic_run");
+ error(1, errno, "fopen(%s)", path);
ret = fscanf(fd, "%128[^\n]", scheduler);
if (ret == 0 || ret == EOF)
- error(1, errno, "frm_generic_run");
+ error(1, errno, "fscanf: %s", path);
if (!strstr(scheduler, SYSFS_BFQ_NAME))
- error(1, errno, "frm_generic_run");
+ error(1, errno, "bfq not available in kernel");
/**
* Now check if BFQ is the default I/O scheduler
if (ret && ret != EOF)
ret = fflush(fd);
if (ret == 0 || ret == EOF)
- error(1, errno, "frm_generic_run");
+ error(1, errno, "cannot activate bfq scheduler");
}
fclose(fd);
SYSFS_BFQ_BUDGET_PATH,
disk_name);
if (!(fd = fopen(path, "r+")))
- error(1, errno, "frm_generic_run");
+ error(1, errno, "fopen(%s)", path);
ret = fprintf(fd, "256");
if (ret == 0)
- error(1, errno, "frm_generic_run");
+ error(1, errno, "fprintf: %s", path);
rewind(fd);
ret = fscanf(fd, "%d", &disk.budget);
if (ret == 0 || ret == EOF)
- error(1, errno, "frm_generic_run");
+ error(1, errno, "fscanf: %s", path);
fclose(fd);
/**
* Estimate the disk throughput in order to achieve
* effective weight assignement during runtime.
**/
+ printf("Throughput estimation...\n");
disk.throughput = estimate_throughput(disk_dev, readers);
if (disk.throughput < 0.0)
- error(1, errno, "frm_generic_run");
+ error(1, errno, "throughput estimation error");
fprintf(stdout, "disk name: %s\n"
"scheduler: %s\n"
fres_block_register_disk_sched();
ret = frm_register_and_run(orb, &frm);
- if (ret) error(1, errno, "frm_generic_run");
+ if (ret) error(1, errno, "frm_register_and_run");
return 0;
}