public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Vlad Buslov <vladbu@mellanox•com>
To: David Miller <davem@davemloft•net>
Cc: vladbu@mellanox•com, netdev@vger•kernel.org, jhs@mojatatu•com,
	xiyou.wangcong@gmail•com, jiri@resnulli•us, dcaratti@redhat•com,
	marcelo.leitner@gmail•com, kuba@kernel•org
Subject: Re: [PATCH net-next v2 0/4] Implement classifier-action terse dump mode
Date: Mon, 18 May 2020 09:50:53 +0300	[thread overview]
Message-ID: <vbf1rnhpwhe.fsf@mellanox.com> (raw)
In-Reply-To: <20200515.102516.536157145939265174.davem@davemloft.net>


On Fri 15 May 2020 at 20:25, David Miller <davem@davemloft•net> wrote:
> From: Vlad Buslov <vladbu@mellanox•com>
> Date: Fri, 15 May 2020 14:40:10 +0300
>
>> Output rate of current upstream kernel TC filter dump implementation if
>> relatively low (~100k rules/sec depending on configuration). This
>> constraint impacts performance of software switch implementation that
>> rely on TC for their datapath implementation and periodically call TC
>> filter dump to update rules stats. Moreover, TC filter dump output a lot
>> of static data that don't change during the filter lifecycle (filter
>> key, specific action details, etc.) which constitutes significant
>> portion of payload on resulting netlink packets and increases amount of
>> syscalls necessary to dump all filters on particular Qdisc. In order to
>> significantly improve filter dump rate this patch sets implement new
>> mode of TC filter dump operation named "terse dump" mode. In this mode
>> only parameters necessary to identify the filter (handle, action cookie,
>> etc.) and data that can change during filter lifecycle (filter flags,
>> action stats, etc.) are preserved in dump output while everything else
>> is omitted.
>>
>> Userspace API is implemented using new TCA_DUMP_FLAGS tlv with only
>> available flag value TCA_DUMP_FLAGS_TERSE. Internally, new API requires
>> individual classifier support (new tcf_proto_ops->terse_dump()
>> callback). Support for action terse dump is implemented in act API and
>> don't require changing individual action implementations.
>  ...
>
> This looks fine, so series applied.
>
> But really if people just want an efficient stats dump there is probably
> a better way to efficiently encode just the IDs and STATs.  Maybe even
> put the stats in pages that userland can mmap() and avoid all of this
> system call overhead and locking altogether.

Thanks! Adding such API will be my next step, if terse dump performance
proves insufficient.

  reply	other threads:[~2020-05-18  6:51 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-15 11:40 [PATCH net-next v2 0/4] Implement classifier-action terse dump mode Vlad Buslov
2020-05-15 11:40 ` [PATCH net-next v2 1/4] net: sched: introduce terse dump flag Vlad Buslov
2020-05-15 11:51   ` Jiri Pirko
2020-05-15 11:40 ` [PATCH net-next v2 2/4] net: sched: implement terse dump support in act Vlad Buslov
2020-05-15 11:51   ` Jiri Pirko
2020-05-15 11:40 ` [PATCH net-next v2 3/4] net: sched: cls_flower: implement terse dump support Vlad Buslov
2020-05-15 11:40 ` [PATCH net-next v2 4/4] selftests: implement flower classifier terse dump tests Vlad Buslov
2020-05-15 17:04 ` [PATCH net-next v2 0/4] Implement classifier-action terse dump mode Jakub Kicinski
2020-05-18  6:46   ` Vlad Buslov
2020-05-15 17:25 ` David Miller
2020-05-18  6:50   ` Vlad Buslov [this message]
2020-05-17 19:13 ` Cong Wang
2020-05-18  6:44   ` Vlad Buslov
2020-05-18 18:46     ` Cong Wang
2020-05-19  9:10       ` Vlad Buslov
2020-05-19 18:39         ` Cong Wang
2020-05-20  7:33           ` Vlad Buslov
2020-05-18 15:37 ` Edward Cree
2020-05-18 18:50   ` Cong Wang
2020-05-19  9:04   ` Vlad Buslov
2020-05-19 14:30     ` Edward Cree
2020-05-19 15:17       ` Vlad Buslov
2020-05-19 18:58     ` Cong Wang
2020-05-20  7:24       ` Vlad Buslov
2020-05-22 19:33         ` Cong Wang
2020-05-25 11:38           ` Vlad Buslov
2020-05-21 14:36   ` Vlad Buslov
2020-05-21 17:02     ` Jakub Kicinski
2020-05-22 16:16       ` Vlad Buslov
2020-05-23 11:06         ` Jamal Hadi Salim
2020-05-22 19:41     ` Cong Wang

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=vbf1rnhpwhe.fsf@mellanox.com \
    --to=vladbu@mellanox$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=dcaratti@redhat$(echo .)com \
    --cc=jhs@mojatatu$(echo .)com \
    --cc=jiri@resnulli$(echo .)us \
    --cc=kuba@kernel$(echo .)org \
    --cc=marcelo.leitner@gmail$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=xiyou.wangcong@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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