From 0de0ac19f5a5d09d1a9a5fb72330a34ebc8f3b5a Mon Sep 17 00:00:00 2001 From: Tobias Oetiker Date: Thu, 26 Feb 2015 08:09:42 +0100 Subject: [PATCH] we do not actually have to write the cdp_prep area since it is memory mapped --- src/rrd_hw.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/rrd_hw.c b/src/rrd_hw.c index d6a15055..3e56c81b 100644 --- a/src/rrd_hw.c +++ b/src/rrd_hw.c @@ -212,11 +212,11 @@ int apply_smoother( /* as we are working through the value, we have to make sure to not double apply the smoothing after wrapping around. so best is to copy the rrd_values first */ - + rrd_values_cpy = (rrd_value_t *) calloc(row_length, sizeof(rrd_value_t)); memcpy(rrd_values_cpy,rrd_values,sizeof(rrd_value_t)*row_length); - /* compute moving averages */ + /* compute moving averages */ for (i = offset; i < row_count + offset; ++i) { for (j = 0; j < row_length; ++j) { k = MyMod(i, row_count); @@ -277,6 +277,8 @@ int apply_smoother( (rrd->cdp_prep[offset]).scratch[CDP_hw_intercept].u_val += baseline[j]; } +/* if we are not running on mmap, lets write stuff to disk now */ +#ifndef MMAP /* flush cdp to disk */ if (rrd_seek(rrd_file, sizeof(stat_head_t) + rrd->stat_head->ds_cnt * sizeof(ds_def_t) + @@ -296,9 +298,11 @@ int apply_smoother( free(rrd_values); return -1; } +#endif } /* endif CF_SEASONAL */ + /* flush updated values to disk */ if (rrd_seek(rrd_file, rra_start, SEEK_SET)) { rrd_set_error("apply_smoother: seek to pos %d failed", rra_start); @@ -358,7 +362,7 @@ void reset_aberrant_coefficients( /* move to first entry of data source for this rra */ rrd_seek(rrd_file, rra_start + ds_idx * sizeof(rrd_value_t), SEEK_SET); - /* entries for the same data source are not contiguous, + /* entries for the same data source are not contiguous, * temporal entries are contiguous */ for (i = 0; i < rrd->rra_def[rra_idx].row_cnt; ++i) { if (rrd_write(rrd_file, &nan_buffer, sizeof(rrd_value_t) * 1) -- 2.47.2