X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdisk.c;fp=src%2Fdisk.c;h=7411c22588abd4e409f25027d784bd83b62af62a;hb=400596160704146845940d7d9c4f794c0d2ddc03;hp=fde0dcde9abd5112c48633a6dcd588ef8bb0f69b;hpb=ab6ab6ad6428ba0a0987a20a7d1cfa47d6cc6f8b;p=collectd.git diff --git a/src/disk.c b/src/disk.c index fde0dcde..7411c225 100644 --- a/src/disk.c +++ b/src/disk.c @@ -235,6 +235,16 @@ static void disk_submit (const char *plugin_instance, plugin_dispatch_values (&vl); } /* void disk_submit */ +#if KERNEL_LINUX +static counter_t disk_calc_time_incr (counter_t delta_time, counter_t delta_ops) +{ + double avg_time = ((double) delta_time) / ((double) delta_ops); + double avg_time_incr = CDTIME_T_TO_DOUBLE (interval_g) * avg_time; + + return ((counter_t) (avg_time_incr + .5)); +} +#endif + #if HAVE_IOKIT_IOKITLIB_H static signed long long dict_get_value (CFDictionaryRef dict, const char *key) { @@ -579,13 +589,11 @@ static int disk_read (void) diff_write_time = write_time - ds->write_time; if (diff_read_ops != 0) - ds->avg_read_time += (diff_read_time - + (diff_read_ops / 2)) - / diff_read_ops; + ds->avg_read_time += disk_calc_time_incr ( + diff_read_time, diff_read_ops); if (diff_write_ops != 0) - ds->avg_write_time += (diff_write_time - + (diff_write_ops / 2)) - / diff_write_ops; + ds->avg_write_time += disk_calc_time_incr ( + diff_write_time, diff_write_ops); ds->read_ops = read_ops; ds->read_time = read_time;