__noinline staticint static_subprog(struct __sk_buff *ctx)
{ volatileint ret = 0;
if (ctx->protocol) return ret; return ret + ctx->len;
}
__noinline staticint static_subprog_lock(struct __sk_buff *ctx)
{ volatileint ret = 0;
ret = static_subprog(ctx);
bpf_spin_lock(&lockA); return ret + ctx->len;
}
__noinline staticint static_subprog_unlock(struct __sk_buff *ctx)
{ volatileint ret = 0;
ret = static_subprog(ctx);
bpf_spin_unlock(&lockA); return ret + ctx->len;
}
SEC("tc") int lock_static_subprog_call(struct __sk_buff *ctx)
{ int ret = 0;
bpf_spin_lock(&lockA); if (ctx->mark == 42)
ret = static_subprog(ctx);
bpf_spin_unlock(&lockA); return ret;
}
SEC("tc") int lock_static_subprog_lock(struct __sk_buff *ctx)
{ int ret = 0;
ret = static_subprog_lock(ctx);
bpf_spin_unlock(&lockA); return ret;
}
SEC("tc") int lock_static_subprog_unlock(struct __sk_buff *ctx)
{ int ret = 0;
bpf_spin_lock(&lockA);
ret = static_subprog_unlock(ctx); return ret;
}
char _license[] SEC("license") = "GPL";
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet am 2026-06-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.