selftests/bpf: Set the default value of consumer_cnt as 0
Considering that only bench_ringbufs.c supports consumer, just set the default value of consumer_cnt as 0. After that, update the validity check of consumer_cnt, remove unused consumer_thread code snippets and set consumer_cnt as 1 in run_bench_ringbufs.sh accordingly. Signed-off-by: Hou Tao <houtao1@huawei.com> Link: https://lore.kernel.org/r/20230613080921.1623219-5-houtao@huaweicloud.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
da77ae2b27
commit
970308a7b5
|
@ -17,7 +17,7 @@ struct env env = {
|
|||
.duration_sec = 5,
|
||||
.affinity = false,
|
||||
.quiet = false,
|
||||
.consumer_cnt = 1,
|
||||
.consumer_cnt = 0,
|
||||
.producer_cnt = 1,
|
||||
};
|
||||
|
||||
|
|
|
@ -107,9 +107,9 @@ const struct argp bench_bloom_map_argp = {
|
|||
|
||||
static void validate(void)
|
||||
{
|
||||
if (env.consumer_cnt != 1) {
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr,
|
||||
"The bloom filter benchmarks do not support multi-consumer use\n");
|
||||
"The bloom filter benchmarks do not support consumer\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -421,18 +421,12 @@ static void measure(struct bench_res *res)
|
|||
last_false_hits = total_false_hits;
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const struct bench bench_bloom_lookup = {
|
||||
.name = "bloom-lookup",
|
||||
.argp = &bench_bloom_map_argp,
|
||||
.validate = validate,
|
||||
.setup = bloom_lookup_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -444,7 +438,6 @@ const struct bench bench_bloom_update = {
|
|||
.validate = validate,
|
||||
.setup = bloom_update_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -456,7 +449,6 @@ const struct bench bench_bloom_false_positive = {
|
|||
.validate = validate,
|
||||
.setup = false_positive_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = false_hits_report_progress,
|
||||
.report_final = false_hits_report_final,
|
||||
|
@ -468,7 +460,6 @@ const struct bench bench_hashmap_without_bloom = {
|
|||
.validate = validate,
|
||||
.setup = hashmap_no_bloom_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -480,7 +471,6 @@ const struct bench bench_hashmap_with_bloom = {
|
|||
.validate = validate,
|
||||
.setup = hashmap_with_bloom_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
|
|
@ -14,8 +14,8 @@ static struct ctx {
|
|||
|
||||
static void validate(void)
|
||||
{
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -30,11 +30,6 @@ static void *producer(void *input)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void measure(struct bench_res *res)
|
||||
{
|
||||
}
|
||||
|
@ -88,7 +83,6 @@ const struct bench bench_bpf_hashmap_full_update = {
|
|||
.validate = validate,
|
||||
.setup = setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = NULL,
|
||||
.report_final = hashmap_report_final,
|
||||
|
|
|
@ -113,8 +113,8 @@ const struct argp bench_hashmap_lookup_argp = {
|
|||
|
||||
static void validate(void)
|
||||
{
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -134,11 +134,6 @@ static void *producer(void *input)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void measure(struct bench_res *res)
|
||||
{
|
||||
}
|
||||
|
@ -276,7 +271,6 @@ const struct bench bench_bpf_hashmap_lookup = {
|
|||
.validate = validate,
|
||||
.setup = setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = NULL,
|
||||
.report_final = hashmap_report_final,
|
||||
|
|
|
@ -47,8 +47,8 @@ const struct argp bench_bpf_loop_argp = {
|
|||
|
||||
static void validate(void)
|
||||
{
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -62,11 +62,6 @@ static void *producer(void *input)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void measure(struct bench_res *res)
|
||||
{
|
||||
res->hits = atomic_swap(&ctx.skel->bss->hits, 0);
|
||||
|
@ -99,7 +94,6 @@ const struct bench bench_bpf_loop = {
|
|||
.validate = validate,
|
||||
.setup = setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = ops_report_progress,
|
||||
.report_final = ops_report_final,
|
||||
|
|
|
@ -18,11 +18,6 @@ static void *count_global_producer(void *input)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *count_global_consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void count_global_measure(struct bench_res *res)
|
||||
{
|
||||
struct count_global_ctx *ctx = &count_global_ctx;
|
||||
|
@ -56,11 +51,6 @@ static void *count_local_producer(void *input)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *count_local_consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void count_local_measure(struct bench_res *res)
|
||||
{
|
||||
struct count_local_ctx *ctx = &count_local_ctx;
|
||||
|
@ -74,7 +64,6 @@ static void count_local_measure(struct bench_res *res)
|
|||
const struct bench bench_count_global = {
|
||||
.name = "count-global",
|
||||
.producer_thread = count_global_producer,
|
||||
.consumer_thread = count_global_consumer,
|
||||
.measure = count_global_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -84,7 +73,6 @@ const struct bench bench_count_local = {
|
|||
.name = "count-local",
|
||||
.setup = count_local_setup,
|
||||
.producer_thread = count_local_producer,
|
||||
.consumer_thread = count_local_consumer,
|
||||
.measure = count_local_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
|
|
@ -74,8 +74,8 @@ static void validate(void)
|
|||
fprintf(stderr, "benchmark doesn't support multi-producer!\n");
|
||||
exit(1);
|
||||
}
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -230,11 +230,6 @@ static inline void trigger_bpf_program(void)
|
|||
syscall(__NR_getpgid);
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void *producer(void *input)
|
||||
{
|
||||
while (true)
|
||||
|
@ -259,7 +254,6 @@ const struct bench bench_local_storage_cache_seq_get = {
|
|||
.validate = validate,
|
||||
.setup = local_storage_cache_get_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = local_storage_report_progress,
|
||||
.report_final = local_storage_report_final,
|
||||
|
@ -271,7 +265,6 @@ const struct bench bench_local_storage_cache_interleaved_get = {
|
|||
.validate = validate,
|
||||
.setup = local_storage_cache_get_interleaved_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = local_storage_report_progress,
|
||||
.report_final = local_storage_report_final,
|
||||
|
@ -283,7 +276,6 @@ const struct bench bench_local_storage_cache_hashmap_control = {
|
|||
.validate = validate,
|
||||
.setup = hashmap_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = local_storage_report_progress,
|
||||
.report_final = local_storage_report_final,
|
||||
|
|
|
@ -71,7 +71,7 @@ const struct argp bench_local_storage_create_argp = {
|
|||
|
||||
static void validate(void)
|
||||
{
|
||||
if (env.consumer_cnt > 1) {
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr,
|
||||
"local-storage-create benchmark does not need consumer\n");
|
||||
exit(1);
|
||||
|
@ -143,11 +143,6 @@ static void measure(struct bench_res *res)
|
|||
res->drops = atomic_swap(&skel->bss->kmalloc_cnts, 0);
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void *sk_producer(void *input)
|
||||
{
|
||||
struct thread *t = &threads[(long)(input)];
|
||||
|
@ -257,7 +252,6 @@ const struct bench bench_local_storage_create = {
|
|||
.validate = validate,
|
||||
.setup = setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = report_progress,
|
||||
.report_final = report_final,
|
||||
|
|
|
@ -72,8 +72,8 @@ static void validate(void)
|
|||
fprintf(stderr, "benchmark doesn't support multi-producer!\n");
|
||||
exit(1);
|
||||
}
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -197,11 +197,6 @@ static void measure(struct bench_res *res)
|
|||
ctx.prev_kthread_stime = ticks;
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void *producer(void *input)
|
||||
{
|
||||
while (true)
|
||||
|
@ -262,7 +257,6 @@ const struct bench bench_local_storage_tasks_trace = {
|
|||
.validate = validate,
|
||||
.setup = local_storage_tasks_trace_setup,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = report_progress,
|
||||
.report_final = report_final,
|
||||
|
|
|
@ -17,8 +17,8 @@ static void validate(void)
|
|||
fprintf(stderr, "benchmark doesn't support multi-producer!\n");
|
||||
exit(1);
|
||||
}
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -106,17 +106,11 @@ static void setup_fexit(void)
|
|||
attach_bpf(ctx.skel->progs.prog5);
|
||||
}
|
||||
|
||||
static void *consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const struct bench bench_rename_base = {
|
||||
.name = "rename-base",
|
||||
.validate = validate,
|
||||
.setup = setup_base,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -127,7 +121,6 @@ const struct bench bench_rename_kprobe = {
|
|||
.validate = validate,
|
||||
.setup = setup_kprobe,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -138,7 +131,6 @@ const struct bench bench_rename_kretprobe = {
|
|||
.validate = validate,
|
||||
.setup = setup_kretprobe,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -149,7 +141,6 @@ const struct bench bench_rename_rawtp = {
|
|||
.validate = validate,
|
||||
.setup = setup_rawtp,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -160,7 +151,6 @@ const struct bench bench_rename_fentry = {
|
|||
.validate = validate,
|
||||
.setup = setup_fentry,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -171,7 +161,6 @@ const struct bench bench_rename_fexit = {
|
|||
.validate = validate,
|
||||
.setup = setup_fexit,
|
||||
.producer_thread = producer,
|
||||
.consumer_thread = consumer,
|
||||
.measure = measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
|
|
@ -96,7 +96,7 @@ static inline void bufs_trigger_batch(void)
|
|||
static void bufs_validate(void)
|
||||
{
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "rb-libbpf benchmark doesn't support multi-consumer!\n");
|
||||
fprintf(stderr, "rb-libbpf benchmark needs one consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,8 +50,8 @@ const struct argp bench_strncmp_argp = {
|
|||
|
||||
static void strncmp_validate(void)
|
||||
{
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "strncmp benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "strncmp benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -128,11 +128,6 @@ static void *strncmp_producer(void *ctx)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *strncmp_consumer(void *ctx)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void strncmp_measure(struct bench_res *res)
|
||||
{
|
||||
res->hits = atomic_swap(&ctx.skel->bss->hits, 0);
|
||||
|
@ -144,7 +139,6 @@ const struct bench bench_strncmp_no_helper = {
|
|||
.validate = strncmp_validate,
|
||||
.setup = strncmp_no_helper_setup,
|
||||
.producer_thread = strncmp_producer,
|
||||
.consumer_thread = strncmp_consumer,
|
||||
.measure = strncmp_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -156,7 +150,6 @@ const struct bench bench_strncmp_helper = {
|
|||
.validate = strncmp_validate,
|
||||
.setup = strncmp_helper_setup,
|
||||
.producer_thread = strncmp_producer,
|
||||
.consumer_thread = strncmp_consumer,
|
||||
.measure = strncmp_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
|
|
@ -13,8 +13,8 @@ static struct counter base_hits;
|
|||
|
||||
static void trigger_validate(void)
|
||||
{
|
||||
if (env.consumer_cnt != 1) {
|
||||
fprintf(stderr, "benchmark doesn't support multi-consumer!\n");
|
||||
if (env.consumer_cnt != 0) {
|
||||
fprintf(stderr, "benchmark doesn't support consumer!\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -103,11 +103,6 @@ static void trigger_fmodret_setup(void)
|
|||
attach_bpf(ctx.skel->progs.bench_trigger_fmodret);
|
||||
}
|
||||
|
||||
static void *trigger_consumer(void *input)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* make sure call is not inlined and not avoided by compiler, so __weak and
|
||||
* inline asm volatile in the body of the function
|
||||
*
|
||||
|
@ -205,7 +200,6 @@ const struct bench bench_trig_base = {
|
|||
.name = "trig-base",
|
||||
.validate = trigger_validate,
|
||||
.producer_thread = trigger_base_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_base_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -216,7 +210,6 @@ const struct bench bench_trig_tp = {
|
|||
.validate = trigger_validate,
|
||||
.setup = trigger_tp_setup,
|
||||
.producer_thread = trigger_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -227,7 +220,6 @@ const struct bench bench_trig_rawtp = {
|
|||
.validate = trigger_validate,
|
||||
.setup = trigger_rawtp_setup,
|
||||
.producer_thread = trigger_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -238,7 +230,6 @@ const struct bench bench_trig_kprobe = {
|
|||
.validate = trigger_validate,
|
||||
.setup = trigger_kprobe_setup,
|
||||
.producer_thread = trigger_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -249,7 +240,6 @@ const struct bench bench_trig_fentry = {
|
|||
.validate = trigger_validate,
|
||||
.setup = trigger_fentry_setup,
|
||||
.producer_thread = trigger_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -260,7 +250,6 @@ const struct bench bench_trig_fentry_sleep = {
|
|||
.validate = trigger_validate,
|
||||
.setup = trigger_fentry_sleep_setup,
|
||||
.producer_thread = trigger_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -271,7 +260,6 @@ const struct bench bench_trig_fmodret = {
|
|||
.validate = trigger_validate,
|
||||
.setup = trigger_fmodret_setup,
|
||||
.producer_thread = trigger_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -281,7 +269,6 @@ const struct bench bench_trig_uprobe_base = {
|
|||
.name = "trig-uprobe-base",
|
||||
.setup = NULL, /* no uprobe/uretprobe is attached */
|
||||
.producer_thread = uprobe_base_producer,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_base_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -291,7 +278,6 @@ const struct bench bench_trig_uprobe_with_nop = {
|
|||
.name = "trig-uprobe-with-nop",
|
||||
.setup = uprobe_setup_with_nop,
|
||||
.producer_thread = uprobe_producer_with_nop,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -301,7 +287,6 @@ const struct bench bench_trig_uretprobe_with_nop = {
|
|||
.name = "trig-uretprobe-with-nop",
|
||||
.setup = uretprobe_setup_with_nop,
|
||||
.producer_thread = uprobe_producer_with_nop,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -311,7 +296,6 @@ const struct bench bench_trig_uprobe_without_nop = {
|
|||
.name = "trig-uprobe-without-nop",
|
||||
.setup = uprobe_setup_without_nop,
|
||||
.producer_thread = uprobe_producer_without_nop,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
@ -321,7 +305,6 @@ const struct bench bench_trig_uretprobe_without_nop = {
|
|||
.name = "trig-uretprobe-without-nop",
|
||||
.setup = uretprobe_setup_without_nop,
|
||||
.producer_thread = uprobe_producer_without_nop,
|
||||
.consumer_thread = trigger_consumer,
|
||||
.measure = trigger_measure,
|
||||
.report_progress = hits_drops_report_progress,
|
||||
.report_final = hits_drops_report_final,
|
||||
|
|
|
@ -4,46 +4,48 @@ source ./benchs/run_common.sh
|
|||
|
||||
set -eufo pipefail
|
||||
|
||||
RUN_RB_BENCH="$RUN_BENCH -c1"
|
||||
|
||||
header "Single-producer, parallel producer"
|
||||
for b in rb-libbpf rb-custom pb-libbpf pb-custom; do
|
||||
summarize $b "$($RUN_BENCH $b)"
|
||||
summarize $b "$($RUN_RB_BENCH $b)"
|
||||
done
|
||||
|
||||
header "Single-producer, parallel producer, sampled notification"
|
||||
for b in rb-libbpf rb-custom pb-libbpf pb-custom; do
|
||||
summarize $b "$($RUN_BENCH --rb-sampled $b)"
|
||||
summarize $b "$($RUN_RB_BENCH --rb-sampled $b)"
|
||||
done
|
||||
|
||||
header "Single-producer, back-to-back mode"
|
||||
for b in rb-libbpf rb-custom pb-libbpf pb-custom; do
|
||||
summarize $b "$($RUN_BENCH --rb-b2b $b)"
|
||||
summarize $b-sampled "$($RUN_BENCH --rb-sampled --rb-b2b $b)"
|
||||
summarize $b "$($RUN_RB_BENCH --rb-b2b $b)"
|
||||
summarize $b-sampled "$($RUN_RB_BENCH --rb-sampled --rb-b2b $b)"
|
||||
done
|
||||
|
||||
header "Ringbuf back-to-back, effect of sample rate"
|
||||
for b in 1 5 10 25 50 100 250 500 1000 2000 3000; do
|
||||
summarize "rb-sampled-$b" "$($RUN_BENCH --rb-b2b --rb-batch-cnt $b --rb-sampled --rb-sample-rate $b rb-custom)"
|
||||
summarize "rb-sampled-$b" "$($RUN_RB_BENCH --rb-b2b --rb-batch-cnt $b --rb-sampled --rb-sample-rate $b rb-custom)"
|
||||
done
|
||||
header "Perfbuf back-to-back, effect of sample rate"
|
||||
for b in 1 5 10 25 50 100 250 500 1000 2000 3000; do
|
||||
summarize "pb-sampled-$b" "$($RUN_BENCH --rb-b2b --rb-batch-cnt $b --rb-sampled --rb-sample-rate $b pb-custom)"
|
||||
summarize "pb-sampled-$b" "$($RUN_RB_BENCH --rb-b2b --rb-batch-cnt $b --rb-sampled --rb-sample-rate $b pb-custom)"
|
||||
done
|
||||
|
||||
header "Ringbuf back-to-back, reserve+commit vs output"
|
||||
summarize "reserve" "$($RUN_BENCH --rb-b2b rb-custom)"
|
||||
summarize "output" "$($RUN_BENCH --rb-b2b --rb-use-output rb-custom)"
|
||||
summarize "reserve" "$($RUN_RB_BENCH --rb-b2b rb-custom)"
|
||||
summarize "output" "$($RUN_RB_BENCH --rb-b2b --rb-use-output rb-custom)"
|
||||
|
||||
header "Ringbuf sampled, reserve+commit vs output"
|
||||
summarize "reserve-sampled" "$($RUN_BENCH --rb-sampled rb-custom)"
|
||||
summarize "output-sampled" "$($RUN_BENCH --rb-sampled --rb-use-output rb-custom)"
|
||||
summarize "reserve-sampled" "$($RUN_RB_BENCH --rb-sampled rb-custom)"
|
||||
summarize "output-sampled" "$($RUN_RB_BENCH --rb-sampled --rb-use-output rb-custom)"
|
||||
|
||||
header "Single-producer, consumer/producer competing on the same CPU, low batch count"
|
||||
for b in rb-libbpf rb-custom pb-libbpf pb-custom; do
|
||||
summarize $b "$($RUN_BENCH --rb-batch-cnt 1 --rb-sample-rate 1 --prod-affinity 0 --cons-affinity 0 $b)"
|
||||
summarize $b "$($RUN_RB_BENCH --rb-batch-cnt 1 --rb-sample-rate 1 --prod-affinity 0 --cons-affinity 0 $b)"
|
||||
done
|
||||
|
||||
header "Ringbuf, multi-producer contention"
|
||||
for b in 1 2 3 4 8 12 16 20 24 28 32 36 40 44 48 52; do
|
||||
summarize "rb-libbpf nr_prod $b" "$($RUN_BENCH -p$b --rb-batch-cnt 50 rb-libbpf)"
|
||||
summarize "rb-libbpf nr_prod $b" "$($RUN_RB_BENCH -p$b --rb-batch-cnt 50 rb-libbpf)"
|
||||
done
|
||||
|
||||
|
|
Loading…
Reference in New Issue