]> rtime.felk.cvut.cz Git - frescor/frsh.git/commitdiff
disk_bfq: Make error messages meaninful
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 26 Nov 2009 20:35:56 +0000 (21:35 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 26 Nov 2009 20:35:56 +0000 (21:35 +0100)
resources/disk_bfq/mngr/diskbfq_mngr.c
resources/disk_bfq/mngr/diskbfq_th.c

index 8b66a765ecb2ff33c5f7436f9c94495921be9987..da32e7f3d52c103419692d2befdd4b3d18d3fe34 100644 (file)
@@ -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;
 }
index 7bb3516b2fab00142b40679fd3d5f14dcf2fa603..4fabc6a6d5aa50a6bc245ed41ac0883ec85f02dc 100644 (file)
@@ -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: