From: Nicholas Piggin <npiggin@gmail.com>
To: netdev@vger.kernel.org
Cc: Nicholas Piggin <npiggin@gmail.com>,
dev@openvswitch.org, Pravin B Shelar <pshelar@ovn.org>,
Aaron Conole <aconole@redhat.com>,
"Eelco Chaudron" <echaudro@redhat.com>,
"Ilya Maximets" <imaximet@redhat.com>,
"Flavio Leitner" <fbl@redhat.com>
Subject: [PATCH 6/7] net: openvswitch: uninline ovs_fragment to control stack usage
Date: Wed, 11 Oct 2023 13:43:43 +1000 [thread overview]
Message-ID: <20231011034344.104398-7-npiggin@gmail.com> (raw)
In-Reply-To: <20231011034344.104398-1-npiggin@gmail.com>
ovs_fragment uses a lot of stack, 400 bytes. It is a leaf function
but its caller do_output is involved in openvswitch recursion.
GCC 13.2 for powerpc64le is not inlining it, but it only has a single
call site, so it is liable to being inlined.
Mark it noinline_for_stack, to ensure it doesn't bloat stack use in
the recursive path.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
net/openvswitch/actions.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
index 87ec668d5556..ef3a59012d26 100644
--- a/net/openvswitch/actions.c
+++ b/net/openvswitch/actions.c
@@ -900,9 +900,9 @@ static void prepare_frag(struct vport *vport, struct sk_buff *skb,
skb_pull(skb, hlen);
}
-static void ovs_fragment(struct net *net, struct vport *vport,
- struct sk_buff *skb, u16 mru,
- struct sw_flow_key *key)
+static noinline_for_stack
+void ovs_fragment(struct net *net, struct vport *vport, struct sk_buff *skb,
+ u16 mru, struct sw_flow_key *key)
{
enum ovs_drop_reason reason;
u16 orig_network_offset = 0;
--
2.42.0
next prev parent reply other threads:[~2023-10-11 3:44 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-11 3:43 [PATCH 0/7] net: openvswitch: Reduce stack usage Nicholas Piggin
2023-10-11 3:43 ` [PATCH 1/7] net: openvswitch: generalise the per-cpu flow key allocation stack Nicholas Piggin
2023-10-11 3:43 ` [PATCH 2/7] net: openvswitch: Use flow key allocator in ovs_vport_receive Nicholas Piggin
2023-10-11 3:43 ` [PATCH 3/7] openvswitch: reduce stack usage in do_execute_actions Nicholas Piggin
2023-10-11 3:43 ` [PATCH 4/7] net: openvswitch: Reduce push_nsh stack usage Nicholas Piggin
2023-10-11 3:43 ` [PATCH 5/7] net: openvswitch: uninline action execution Nicholas Piggin
2023-10-11 3:43 ` Nicholas Piggin [this message]
2023-10-11 3:43 ` [PATCH 7/7] net: openvswitch: Reduce stack usage in ovs_dp_process_packet Nicholas Piggin
2023-10-11 12:22 ` [PATCH 0/7] net: openvswitch: Reduce stack usage Ilya Maximets
2023-10-12 0:08 ` Nicholas Piggin
2023-10-11 13:23 ` Aaron Conole
2023-10-12 1:19 ` Nicholas Piggin
2023-10-13 8:27 ` David Laight
2023-10-20 17:04 ` Aaron Conole
2023-10-25 4:06 ` Nicholas Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231011034344.104398-7-npiggin@gmail.com \
--to=npiggin@gmail.com \
--cc=aconole@redhat.com \
--cc=dev@openvswitch.org \
--cc=echaudro@redhat.com \
--cc=fbl@redhat.com \
--cc=imaximet@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pshelar@ovn.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.