From: Michal Sojka Date: Thu, 26 Nov 2009 20:35:56 +0000 (+0100) Subject: disk_bfq: Make error messages meaninful X-Git-Url: http://rtime.felk.cvut.cz/gitweb/frescor/frsh.git/commitdiff_plain/d961c59db94a77ed2ab0e4f4b1f3c06cc788923c disk_bfq: Make error messages meaninful --- diff --git a/resources/disk_bfq/mngr/diskbfq_mngr.c b/resources/disk_bfq/mngr/diskbfq_mngr.c index 8b66a76..da32e7f 100644 --- a/resources/disk_bfq/mngr/diskbfq_mngr.c +++ b/resources/disk_bfq/mngr/diskbfq_mngr.c @@ -232,13 +232,13 @@ err_usage: 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 @@ -250,7 +250,7 @@ err_usage: 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); @@ -258,25 +258,26 @@ err_usage: 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" @@ -289,7 +290,7 @@ err_usage: 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; } diff --git a/resources/disk_bfq/mngr/diskbfq_th.c b/resources/disk_bfq/mngr/diskbfq_th.c index 7bb3516..4fabc6a 100644 --- a/resources/disk_bfq/mngr/diskbfq_th.c +++ b/resources/disk_bfq/mngr/diskbfq_th.c @@ -192,6 +192,8 @@ double estimate_throughput(char *device, int streamers) if (!error) throughput = calc_throughput(ddata, &begin, &end); + else + errno = error; free(ddata); err: