[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <OS3P286MB22953C8741F17F500879FA86F5A49@OS3P286MB2295.JPNP286.PROD.OUTLOOK.COM>
Date: Mon, 20 Feb 2023 15:11:17 +0800
From: Eddy Tao <taoyuan_eddy@...mail.com>
To: Simon Horman <simon.horman@...igine.com>
Cc: netdev@...r.kernel.org, Pravin B Shelar <pshelar@....org>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, dev@...nvswitch.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH net-next v1 1/1] net: openvswitch: ovs_packet_cmd_execute
put sw_flow mainbody in stack
Hi, Simon:
About your concern for the stack size, it leads to more room for
improvement.
I will file a new version which will have smaller stack occupation and
better performance
The new revision is invoked by existing examples of using struct in
stack, in the same file net/openvswitch/datapath.c
struct sw_flow_actions *get_flow_actions(..)
{
struct sw_flow_key masked_key;==> sizeof sw_flow_key is 464 bytes
static noinline_for_stack int
ovs_nla_init_match_and_action(..)
{
struct sw_flow_mask mask;==> sizeof sw_flow_mask is 496 bytes
The first example reminded me, revisiting the code in
ovs_packet_cmd_execute, basically sw_flow serves as a container for
sw_flow_actions and sw_flow_key only.
We do not need the bulk of tunnel info memory in sw_flow, which saves us
200+ bytes further -- less is more.
The new revision will be presented shortly after some sanity and benchmark
eddy
Powered by blists - more mailing lists