From: Vlad Buslov <vladbu@mellanox.com>
To: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Roman Mashak <mrv@mojatatu.com>,
Vlad Buslov <vladbu@mellanox.com>, Jiri Pirko <jiri@resnulli.us>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"xiyou.wangcong@gmail.com" <xiyou.wangcong@gmail.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"mleitner@redhat.com" <mleitner@redhat.com>,
"dcaratti@redhat.com" <dcaratti@redhat.com>,
Eric Dumazet <edumazet@google.com>
Subject: Re: [PATCH net-next 00/13] Control action percpu counters allocation by netlink flag
Date: Sat, 26 Oct 2019 16:42:22 +0000 [thread overview]
Message-ID: <vbfk18rtq52.fsf@mellanox.com> (raw)
In-Reply-To: <2e0f829f-0059-a5c6-08dc-a4a717187e1a@mojatatu.com>
On Sat 26 Oct 2019 at 19:06, Jamal Hadi Salim <jhs@mojatatu.com> wrote:
> On 2019-10-26 10:52 a.m., Roman Mashak wrote:
> [..]
>>
>> But why do we need to have two attributes, one at the root level
>> TCA_ROOT_FLAGS and the other at the inner TCA_ACT_* level, but in fact
>> serving the same purpose -- passing flags for optimizations?
>>
>>
>> The whole nest of action attributes including root ones is passed as 3rd
>> argument of tcf_exts_validate(), so it can be validated and extracted at
>> that level and passed to tcf_action_init_1() as pointer to 32-bit flag,
>> admittedly it's ugly given the growing number of arguments to
>> tcf_action_init_1(). With old iproute2 the pointer will always be NULL,
>> so I think backward compatibilty will be preserved.
>
> Note: we only call tcf_action_init_1() at that level for very
> old policer api for backward compatibility reasons. I think what
> would make sense is to be able to call tcf_action_init()(the else
> statement in tcf_exts_validate()) from that level with a global flag
> but for that we would need to introduce something like TCA_ROOT_FLAGS
> under this space:
> ---
> enum {
> TCA_UNSPEC,
> TCA_KIND,
> TCA_OPTIONS,
> TCA_STATS,
> TCA_XSTATS,
> TCA_RATE,
> TCA_FCNT,
> TCA_STATS2,
> TCA_STAB,
> TCA_PAD,
> TCA_DUMP_INVISIBLE,
> TCA_CHAIN,
> TCA_HW_OFFLOAD,
> TCA_INGRESS_BLOCK,
> TCA_EGRESS_BLOCK,
> __TCA_MAX
> };
> ---
>
> which would be a cleaner solution but would require
> _a lot more code_ both in user/kernel.
> Thats why i feel Vlad's suggestion is a reasonable compromise
> because it gets rid of the original issue of per-specific-action
> TLVs.
>
> On optimization:
> The current suggestion from Vlad is a bit inefficient,
> example, if was trying to batch 100 actions i now have 1200
> bytes of overhead instead of 12 bytes.
>
> cheers,
> jamal
Hmm, yes, this looks quite redundant. At the same time having basically
same flags in two different spaces is ugly. Maybe correct approach would
be not to add act API at all and only extend tcf_action_init_1() to be
used from cls API? I don't see a use for act API at the moment because
the only flag value (skip percpu allocation) is hardware offloads
specific and such clients generally create action through cls new filter
API. WDYT?
Regards,
Vlad
next prev parent reply other threads:[~2019-10-26 16:42 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-22 14:17 [PATCH net-next 00/13] Control action percpu counters allocation by netlink flag Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 01/13] net: sched: extract common action counters update code into function Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 02/13] net: sched: extract bstats " Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 03/13] net: sched: extract qstats update code into functions Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 04/13] net: sched: don't expose action qstats to skb_tc_reinsert() Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 05/13] net: sched: modify stats helper functions to support regular stats Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 06/13] net: sched: add action fast initialization flag Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 07/13] net: sched: act_gact: support fast init flag to skip pcpu allocation Vlad Buslov
2019-10-22 14:17 ` [PATCH net-next 08/13] net: sched: act_csum: " Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 09/13] net: sched: act_mirred: support fast init flag to skip pcpu alloc Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 10/13] net: sched: tunnel_key: " Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 11/13] net: sched: act_vlan: support fast init flag to skip pcpu allocation Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 12/13] net: sched: act_ct: " Vlad Buslov
2019-10-22 14:18 ` [PATCH net-next 13/13] tc-testing: implement tests for new fast_init action flag Vlad Buslov
2019-10-22 14:28 ` [PATCH iproute2-next] tc: implement support for action flags Vlad Buslov
2019-10-22 14:35 ` [PATCH net-next 00/13] Control action percpu counters allocation by netlink flag Marcelo Ricardo Leitner
2019-10-22 14:52 ` Vlad Buslov
2019-10-22 18:17 ` Roman Mashak
2019-10-23 6:38 ` Vlad Buslov
2019-10-23 13:02 ` Jamal Hadi Salim
2019-10-23 13:08 ` Vlad Buslov
2019-10-22 15:15 ` Marcelo Ricardo Leitner
2019-10-22 15:52 ` Vlad Buslov
2019-10-22 17:09 ` Marcelo Ricardo Leitner
2019-10-23 6:42 ` Vlad Buslov
2019-10-24 15:12 ` Roopa Prabhu
2019-10-24 15:18 ` Vlad Buslov
2019-10-24 17:31 ` Marcelo Ricardo Leitner
2019-10-24 18:03 ` Vlad Buslov
2019-10-23 12:49 ` Jamal Hadi Salim
2019-10-23 13:04 ` Vlad Buslov
2019-10-23 14:21 ` Jamal Hadi Salim
2019-10-23 15:04 ` Vlad Buslov
2019-10-24 7:35 ` Jiri Pirko
2019-10-24 15:23 ` Vlad Buslov
2019-10-24 16:12 ` Jamal Hadi Salim
2019-10-24 16:44 ` Vlad Buslov
2019-10-24 17:17 ` Jamal Hadi Salim
2019-10-24 18:05 ` Vlad Buslov
2019-10-25 11:46 ` Jamal Hadi Salim
2019-10-25 11:55 ` Vlad Buslov
2019-10-25 14:26 ` Vlad Buslov
2019-10-25 14:57 ` Jamal Hadi Salim
2019-10-25 15:08 ` Jamal Hadi Salim
2019-10-25 15:18 ` Vlad Buslov
2019-10-25 15:43 ` Jamal Hadi Salim
2019-10-25 16:06 ` Jamal Hadi Salim
2019-10-25 16:10 ` Vlad Buslov
2019-10-25 16:29 ` Jamal Hadi Salim
2019-10-25 16:53 ` Vlad Buslov
2019-10-25 18:17 ` Jamal Hadi Salim
2019-10-25 21:05 ` Jamal Hadi Salim
2019-10-25 21:10 ` Jamal Hadi Salim
2019-10-25 21:52 ` Jamal Hadi Salim
2019-10-26 9:44 ` Vlad Buslov
2019-10-26 12:26 ` Jamal Hadi Salim
2019-10-26 14:52 ` Roman Mashak
2019-10-26 16:06 ` Jamal Hadi Salim
2019-10-26 16:42 ` Vlad Buslov [this message]
2019-10-26 18:38 ` Jamal Hadi Salim
2019-10-27 8:31 ` Vlad Buslov
2019-10-27 9:13 ` Jamal Hadi Salim
2019-10-25 16:27 ` Vlad Buslov
2019-10-25 16:08 ` Vlad Buslov
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=vbfk18rtq52.fsf@mellanox.com \
--to=vladbu@mellanox.com \
--cc=davem@davemloft.net \
--cc=dcaratti@redhat.com \
--cc=edumazet@google.com \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=mleitner@redhat.com \
--cc=mrv@mojatatu.com \
--cc=netdev@vger.kernel.org \
--cc=xiyou.wangcong@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).