summaryrefslogtreecommitdiff
path: root/tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2026-02-04 19:00:34 +0000
committerJakub Kicinski <kuba@kernel.org>2026-02-06 20:03:44 -0800
commit2214aab26811c77a15fc1d28bf3112a07b8c8d85 (patch)
tree62ad1a886237b9018d612f0c55c9539414bc45b7 /tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git
parent7acee67a6bce02e0af8a4bf7b412e2164d5a48e9 (diff)
net_sched: sch_fq: rework fq_gc() to avoid stack canary
Using kmem_cache_free_bulk() in fq_gc() was not optimal. 1) It needs an array. 2) It is only saving cpu cycles for large batches. The automatic array forces a stack canary, which is expensive. In practice fq_gc was finding zero, one or two flows at most per round. Remove the array, use kmem_cache_free(). This makes fq_enqueue() smaller and faster. $ scripts/bloat-o-meter -t vmlinux.old vmlinux.new add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-79 (-79) Function old new delta fq_enqueue 1629 1550 -79 Total: Before=24886583, After=24886504, chg -0.00% Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260204190034.76277-1-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions