Home | History | Annotate | Download | only in fio

Lines Matching refs:ipc

5 static volatile struct idle_prof_common ipc;
29 if (ipc.status == IDLE_PROF_STATUS_PROF_STOP)
76 if (ipc.status == IDLE_PROF_STATUS_ABORT) {
114 if (ipc.status == IDLE_PROF_STATUS_ABORT) {
120 if (ipc.status == IDLE_PROF_STATUS_CALI_STOP) {
132 if (ipc.status == IDLE_PROF_STATUS_PROF_STOP) {
156 for (i = 0; i < ipc.nr_cpus; i++) {
157 ipt = &ipc.ipts[i];
161 ipc.cali_mean = sum/ipc.nr_cpus;
163 for (i = 0; i < ipc.nr_cpus; i++) {
164 ipt = &ipc.ipts[i];
165 var += pow(ipt->cali_time-ipc.cali_mean, 2);
168 ipc.cali_stddev = sqrt(var/(ipc.nr_cpus-1));
179 ipc.nr_cpus = cpus_online();
180 ipc.status = IDLE_PROF_STATUS_OK;
182 if (ipc.opt == IDLE_PROF_OPT_NONE)
194 ipc.ipts = malloc(ipc.nr_cpus * sizeof(struct idle_prof_thread));
195 if (!ipc.ipts) {
200 ipc.buf = malloc(ipc.nr_cpus * page_size);
201 if (!ipc.buf) {
203 free(ipc.ipts);
211 for (i = 0; i < ipc.nr_cpus; i++) {
212 ipt = &ipc.ipts[i];
216 ipt->data = (unsigned char *)(ipc.buf + page_size * i);
219 ipc.status = IDLE_PROF_STATUS_ABORT;
225 ipc.status = IDLE_PROF_STATUS_ABORT;
231 ipc.status = IDLE_PROF_STATUS_ABORT;
243 ipc.status = IDLE_PROF_STATUS_ABORT;
259 for (i = 0; i < ipc.nr_cpus; i++) {
260 ipt = &ipc.ipts[i];
264 if (ipc.status == IDLE_PROF_STATUS_ABORT)
268 for (i = 0; i < ipc.nr_cpus; i++) {
269 ipt = &ipc.ipts[i];
285 ipc.status = IDLE_PROF_STATUS_ABORT;
288 if (ipc.status != IDLE_PROF_STATUS_ABORT)
291 ipc.cali_mean = ipc.cali_stddev = 0.0;
293 if (ipc.opt == IDLE_PROF_OPT_CALI)
294 ipc.status = IDLE_PROF_STATUS_CALI_STOP;
302 if (ipc.opt == IDLE_PROF_OPT_NONE)
306 for (i = 0; i < ipc.nr_cpus; i++) {
307 ipt = &ipc.ipts[i];
320 if (ipc.opt == IDLE_PROF_OPT_NONE)
323 if (ipc.opt == IDLE_PROF_OPT_CALI)
326 ipc.status = IDLE_PROF_STATUS_PROF_STOP;
329 for (i = 0; i < ipc.nr_cpus; i++) {
330 ipt = &ipc.ipts[i];
343 if (ipc.cali_mean != 0.0) {
346 ipt->idleness = ipt->loops * ipc.cali_mean / runt;
365 int i, nr_cpus = ipc.nr_cpus;
369 if (ipc.opt == IDLE_PROF_OPT_NONE)
379 ipt = &ipc.ipts[i];
384 ipt = &ipc.ipts[cpu];
393 if (ipc.ipts) {
394 free(ipc.ipts);
395 ipc.ipts = NULL;
398 if (ipc.buf) {
399 free(ipc.buf);
400 ipc.buf = NULL;
406 ipc.opt = IDLE_PROF_OPT_NONE; /* default */
415 ipc.opt = IDLE_PROF_OPT_CALI;
422 ipc.opt = IDLE_PROF_OPT_SYSTEM;
425 ipc.opt = IDLE_PROF_OPT_PERCPU;
439 int i, nr_cpus = ipc.nr_cpus;
444 if (ipc.opt > IDLE_PROF_OPT_CALI)
446 else if (ipc.opt == IDLE_PROF_OPT_CALI)
449 if (ipc.opt >= IDLE_PROF_OPT_SYSTEM)
452 if (ipc.opt == IDLE_PROF_OPT_PERCPU) {
459 if (ipc.opt >= IDLE_PROF_OPT_CALI) {
460 log_info(" unit work: mean=%3.2fus,", ipc.cali_mean);
461 log_info(" stddev=%3.2f\n", ipc.cali_stddev);
465 if (ipc.opt != IDLE_PROF_OPT_NONE)
471 if ((ipc.opt != IDLE_PROF_OPT_NONE) && (output == FIO_OUTPUT_JSON)) {
482 if (ipc.opt == IDLE_PROF_OPT_PERCPU) {
489 json_object_add_value_float(tmp, "unit_mean", ipc.cali_mean);
490 json_object_add_value_float(tmp, "unit_stddev", ipc.cali_stddev);