All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Marcin Szycik <marcin.szycik@linux.intel.com>
Cc: pmenzel@molgen.mpg.de, netdev@vger.kernel.org,
	aleksander.lobakin@intel.com, intel-wired-lan@lists.osuosl.org,
	przemyslaw.kitszel@intel.com, michal.swiatkowski@linux.intel.com
Subject: Re: [Intel-wired-lan] [PATCH iwl-next v3 7/7] ice: Add tracepoint for adding and removing switch rules
Date: Fri, 28 Jun 2024 19:36:41 +0100	[thread overview]
Message-ID: <20240628183641.GG837606@kernel.org> (raw)
In-Reply-To: <20240627145547.32621-8-marcin.szycik@linux.intel.com>

On Thu, Jun 27, 2024 at 04:55:47PM +0200, Marcin Szycik wrote:
> Track the number of rules and recipes added to switch. Add a tracepoint to
> ice_aq_sw_rules(), which shows both rule and recipe count. This information
> can be helpful when designing a set of rules to program to the hardware, as
> it shows where the practical limit is. Actual limits are known (64 recipes,
> 32k rules), but it's hard to translate these values to how many rules the
> *user* can actually create, because of extra metadata being implicitly
> added, and recipe/rule chaining. Chaining combines several recipes/rules to
> create a larger recipe/rule, so one large rule added by the user might
> actually consume multiple rules from hardware perspective.
> 
> Rule counter is simply incremented/decremented in ice_aq_sw_rules(), since
> all rules are added or removed via it.
> 
> Counting recipes is harder, as recipes can't be removed (only overwritten).
> Recipes added via ice_aq_add_recipe() could end up being unused, when
> there is an error in later stages of rule creation. Instead, track the
> allocation and freeing of recipes, which should reflect the actual usage of
> recipes (if something fails after recipe(s) were created, caller should
> free them). Also, a number of recipes are loaded from NVM by default -
> initialize the recipe counter with the number of these recipes on switch
> initialization.
> 
> Example configuration:
>   cd /sys/kernel/tracing
>   echo function > current_tracer
>   echo ice_aq_sw_rules > set_ftrace_filter
>   echo ice_aq_sw_rules > set_event
>   echo 1 > tracing_on
>   cat trace
> 
> Example output:
>   tc-4097    [069] ...1.   787.595536: ice_aq_sw_rules <-ice_rem_adv_rule
>   tc-4097    [069] .....   787.595705: ice_aq_sw_rules: rules=9 recipes=15
>   tc-4098    [057] ...1.   787.652033: ice_aq_sw_rules <-ice_add_adv_rule
>   tc-4098    [057] .....   787.652201: ice_aq_sw_rules: rules=10 recipes=16
> 
> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com>

Reviewed-by: Simon Horman <horms@kernel.org>


WARNING: multiple messages have this Message-ID (diff)
From: Simon Horman <horms@kernel.org>
To: Marcin Szycik <marcin.szycik@linux.intel.com>
Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
	michal.swiatkowski@linux.intel.com, przemyslaw.kitszel@intel.com,
	aleksander.lobakin@intel.com, pmenzel@molgen.mpg.de
Subject: Re: [PATCH iwl-next v3 7/7] ice: Add tracepoint for adding and removing switch rules
Date: Fri, 28 Jun 2024 19:36:41 +0100	[thread overview]
Message-ID: <20240628183641.GG837606@kernel.org> (raw)
In-Reply-To: <20240627145547.32621-8-marcin.szycik@linux.intel.com>

On Thu, Jun 27, 2024 at 04:55:47PM +0200, Marcin Szycik wrote:
> Track the number of rules and recipes added to switch. Add a tracepoint to
> ice_aq_sw_rules(), which shows both rule and recipe count. This information
> can be helpful when designing a set of rules to program to the hardware, as
> it shows where the practical limit is. Actual limits are known (64 recipes,
> 32k rules), but it's hard to translate these values to how many rules the
> *user* can actually create, because of extra metadata being implicitly
> added, and recipe/rule chaining. Chaining combines several recipes/rules to
> create a larger recipe/rule, so one large rule added by the user might
> actually consume multiple rules from hardware perspective.
> 
> Rule counter is simply incremented/decremented in ice_aq_sw_rules(), since
> all rules are added or removed via it.
> 
> Counting recipes is harder, as recipes can't be removed (only overwritten).
> Recipes added via ice_aq_add_recipe() could end up being unused, when
> there is an error in later stages of rule creation. Instead, track the
> allocation and freeing of recipes, which should reflect the actual usage of
> recipes (if something fails after recipe(s) were created, caller should
> free them). Also, a number of recipes are loaded from NVM by default -
> initialize the recipe counter with the number of these recipes on switch
> initialization.
> 
> Example configuration:
>   cd /sys/kernel/tracing
>   echo function > current_tracer
>   echo ice_aq_sw_rules > set_ftrace_filter
>   echo ice_aq_sw_rules > set_event
>   echo 1 > tracing_on
>   cat trace
> 
> Example output:
>   tc-4097    [069] ...1.   787.595536: ice_aq_sw_rules <-ice_rem_adv_rule
>   tc-4097    [069] .....   787.595705: ice_aq_sw_rules: rules=9 recipes=15
>   tc-4098    [057] ...1.   787.652033: ice_aq_sw_rules <-ice_add_adv_rule
>   tc-4098    [057] .....   787.652201: ice_aq_sw_rules: rules=10 recipes=16
> 
> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com>

Reviewed-by: Simon Horman <horms@kernel.org>


  reply	other threads:[~2024-06-28 18:36 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-27 14:55 [Intel-wired-lan] [PATCH iwl-next v3 0/7] Switch API optimizations Marcin Szycik
2024-06-27 14:55 ` Marcin Szycik
2024-06-27 14:55 ` [Intel-wired-lan] [PATCH iwl-next v3 1/7] ice: Remove unused struct ice_prot_lkup_ext members Marcin Szycik
2024-06-27 14:55   ` Marcin Szycik
2024-07-09  7:30   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-07-09  7:30     ` Buvaneswaran, Sujai
2024-06-27 14:55 ` [Intel-wired-lan] [PATCH iwl-next v3 2/7] ice: Remove reading all recipes before adding a new one Marcin Szycik
2024-06-27 14:55   ` Marcin Szycik
2024-07-09  7:30   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-07-09  7:30     ` Buvaneswaran, Sujai
2024-06-27 14:55 ` [Intel-wired-lan] [PATCH iwl-next v3 3/7] ice: Simplify bitmap setting in adding recipe Marcin Szycik
2024-06-27 14:55   ` Marcin Szycik
2024-07-09  7:31   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-07-09  7:31     ` Buvaneswaran, Sujai
2024-06-27 14:55 ` [Intel-wired-lan] [PATCH iwl-next v3 4/7] ice: remove unused recipe bookkeeping data Marcin Szycik
2024-06-27 14:55   ` Marcin Szycik
2024-07-09  7:32   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-07-09  7:32     ` Buvaneswaran, Sujai
2024-06-27 14:55 ` [Intel-wired-lan] [PATCH iwl-next v3 5/7] ice: Optimize switch recipe creation Marcin Szycik
2024-06-27 14:55   ` Marcin Szycik
2024-07-09  7:34   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-07-09  7:34     ` Buvaneswaran, Sujai
2024-06-27 14:55 ` [Intel-wired-lan] [PATCH iwl-next v3 6/7] ice: Remove unused members from switch API Marcin Szycik
2024-06-27 14:55   ` Marcin Szycik
2024-07-09  7:34   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-07-09  7:34     ` Buvaneswaran, Sujai
2024-06-27 14:55 ` [Intel-wired-lan] [PATCH iwl-next v3 7/7] ice: Add tracepoint for adding and removing switch rules Marcin Szycik
2024-06-27 14:55   ` Marcin Szycik
2024-06-28 18:36   ` Simon Horman [this message]
2024-06-28 18:36     ` Simon Horman
2024-07-09  7:35   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-07-09  7:35     ` Buvaneswaran, Sujai

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=20240628183641.GG837606@kernel.org \
    --to=horms@kernel.org \
    --cc=aleksander.lobakin@intel.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=marcin.szycik@linux.intel.com \
    --cc=michal.swiatkowski@linux.intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pmenzel@molgen.mpg.de \
    --cc=przemyslaw.kitszel@intel.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 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.