1) Fix steadystate option parsing callback bug
2) Re-insert missing multiplier in slope calculation
3) Revert 'attained' in the JSON output to be either 0 or 1
static int str_steadystate_cb(void *data, const char *str)
{
static int str_steadystate_cb(void *data, const char *str)
{
- struct thread_data *td = data;
+ struct thread_data *td = cb_data_to_td(data);
double val;
char *nr;
char *pct;
double val;
char *nr;
char *pct;
json_object_add_value_string(tmp, "ss", ss_buf);
json_object_add_value_int(tmp, "duration", (int)ss->dur);
json_object_add_value_int(tmp, "steadystate_ramptime", ss->ramp_time / 1000000L);
json_object_add_value_string(tmp, "ss", ss_buf);
json_object_add_value_int(tmp, "duration", (int)ss->dur);
json_object_add_value_int(tmp, "steadystate_ramptime", ss->ramp_time / 1000000L);
- json_object_add_value_int(tmp, "attained", ss->state & __FIO_SS_ATTAINED);
+ json_object_add_value_int(tmp, "attained", (ss->state & __FIO_SS_ATTAINED) > 0);
snprintf(ss_buf, sizeof(ss_buf), "%f%s", (float) ss->criterion, ss->pct ? "%" : "");
json_object_add_value_string(tmp, "criterion", ss_buf);
snprintf(ss_buf, sizeof(ss_buf), "%f%s", (float) ss->criterion, ss->pct ? "%" : "");
json_object_add_value_string(tmp, "criterion", ss_buf);
if (j >= ss->dur)
j -= ss->dur;
if (ss->state & __FIO_SS_IOPS)
if (j >= ss->dur)
j -= ss->dur;
if (ss->state & __FIO_SS_IOPS)
- ss->sum_xy += ss->iops_data[j];
+ ss->sum_xy += i * ss->iops_data[j];
- ss->sum_xy += ss->bw_data[j];
+ ss->sum_xy += i * ss->bw_data[j];
}
} else { /* easy to update the sums */
ss->sum_y -= ss->oldest_y;
}
} else { /* easy to update the sums */
ss->sum_y -= ss->oldest_y;