#include "test.h"
-#ifdef RTE_LIBRTE_SCHED
-
#include <rte_red.h>
#ifdef __INTEL_COMPILER
static inline void rdtsc_prof_start(struct rdtsc_prof *p)
{
-#ifdef __PIC__
- asm volatile (
- "mov %%ebx, %%edi\n"
- "cpuid\n"
- "xchgl %%ebx, %%edi;\n"
- : : : "%eax", "%edi", "%ecx", "%edx" );
-#else
- asm( "cpuid" : : : "%eax", "%ebx", "%ecx", "%edx" );
-#endif
- p->clk_start = rte_rdtsc();
+ p->clk_start = rte_rdtsc_precise();
}
static inline void rdtsc_prof_end(struct rdtsc_prof *p)
} else {
drop_prob = 1.0;
}
- return (drop_prob);
+ return drop_prob;
}
/**
ret = 0;
}
}
- return (ret);
+ return ret;
}
/**
ret = 0;
}
}
- return (ret);
+ return ret;
}
/**
USEC_PER_MSEC); /**< diff is in micro secs */
if (diff == 0)
- return(0);
+ return 0;
clk_freq_hz = ((end - start) * USEC_PER_SEC / diff);
- return (clk_freq_hz);
+ return clk_freq_hz;
}
/**
(uint16_t)tcfg->tconfig->min_th,
(uint16_t)tcfg->tconfig->max_th,
(uint16_t)tcfg->tconfig->maxp_inv[i]) != 0) {
- return(FAIL);
+ return FAIL;
}
}
*tcfg->tqueue->q = 0;
*tcfg->tvar->dropped = 0;
*tcfg->tvar->enqueued = 0;
- return(PASS);
+ return PASS;
}
/**
* check if target actual queue size has been reached
*/
if (*q != level)
- return (-1);
+ return -1;
/**
* success
*/
- return (0);
+ return 0;
}
/**
*/
avg = rte_red_get_avg_int(red_cfg, red);
if (avg != level)
- return (-1);
+ return -1;
/**
* success
*/
- return (0);
+ return 0;
}
/**
(double)tcfg->tqueue->drop_tolerance);
}
out:
- return (result);
+ return result;
}
/**
(double)tcfg->tqueue->drop_tolerance);
}
out:
- return (result);
+ return result;
}
/**
diff <= (double)tcfg->tqueue->avg_tolerance ? "pass" : "fail");
}
out:
- return (result);
+ return result;
}
/**
diff, (double)tcfg->tqueue->avg_tolerance,
diff <= (double)tcfg->tqueue->avg_tolerance ? "pass" : "fail");
out:
- return (result);
+ return result;
}
/**
diff, (double)tcfg->tqueue->drop_tolerance);
}
out:
- return (result);
+ return result;
}
/**
diff <= tcfg->tqueue->avg_tolerance ? "pass" : "fail");
}
out:
- return (result);
+ return result;
}
/**
rdtsc_prof_print(&prof);
out:
- return (result);
+ return result;
}
/**
rdtsc_prof_print(&prof);
out:
- return (result);
+ return result;
}
/**
*tcfg->tvar->enqueued, *tcfg->tvar->dropped,
drop_prob * 100.0, drop_rate * 100.0);
out:
- return (result);
+ return result;
}
/**
printf("[total: %u, pass: %u, fail: %u]\n", num_tests, num_pass, num_tests - num_pass);
ret = -1;
}
- return (ret);
+ return ret;
}
static struct test_command red_cmd = {
.callback = test_red,
};
REGISTER_TEST_COMMAND(red_cmd);
-#endif