Linux Netfilter development
 help / color / mirror / Atom feed
* [PATCH nf-next 0/3] netfilter: nf_tables: shrink jump stack size
@ 2023-04-11 14:29 Florian Westphal
  2023-04-11 14:29 ` [PATCH nf-next 1/3] netfilter: nf_tables: merge nft_rules_old structure and end of ruleblob marker Florian Westphal
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Florian Westphal @ 2023-04-11 14:29 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Florian Westphal

This series reworks nf_tables evaluation loop so that only the next
rule to run after returning from the chain needs to be saved.

This reduces nft_do_chain stack usage from 600 to 328 bytes.

There is more potential for reduction of stack usage by dieting
the traceinfo structure, I will look into this next.

Florian Westphal (3):
  netfilter: nf_tables: merge nft_rules_old structure and end of
    ruleblob marker
  netfilter: nf_tables: don't store address of last rule on jump
  netfilter: nf_tables: don't store chain address on jump

 include/net/netfilter/nf_tables.h | 14 ++++++--
 net/netfilter/nf_tables_api.c     | 56 +++++++++++++------------------
 net/netfilter/nf_tables_core.c    | 29 +++++-----------
 net/netfilter/nf_tables_trace.c   | 30 ++++++++++++++---
 4 files changed, 70 insertions(+), 59 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-04-11 14:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-11 14:29 [PATCH nf-next 0/3] netfilter: nf_tables: shrink jump stack size Florian Westphal
2023-04-11 14:29 ` [PATCH nf-next 1/3] netfilter: nf_tables: merge nft_rules_old structure and end of ruleblob marker Florian Westphal
2023-04-11 14:29 ` [PATCH nf-next 2/3] netfilter: nf_tables: don't store address of last rule on jump Florian Westphal
2023-04-11 14:29 ` [PATCH nf-next 3/3] netfilter: nf_tables: don't store chain address " Florian Westphal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox