On 3/6/2024 9:48 PM, Sharma, Mayank wrote:
-----Original Message-----
From: Intel-wired-lan <[email protected]> On Behalf Of Steven
Zou
Sent: Thursday, February 8, 2024 8:49 AM
To: [email protected]
Cc: [email protected]; Zou, Steven <[email protected]>; Staikov, Andrii
<[email protected]>; Lobakin, Aleksander
<[email protected]>; Nguyen, Anthony L
<[email protected]>; Simon Horman <[email protected]>; Kitszel,
Przemyslaw <[email protected]>
Subject: [Intel-wired-lan] [PATCH iwl-next] ice: Add switch recipe reusing 
feature

New E810 firmware supports the corresponding functionality, so the driver allows
PFs to subscribe the same switch recipes. Then when the PF is done with a switch
recipes, the PF can ask firmware to free that switch recipe.

When users configure a rule to PFn into E810 switch component, if there is no
existing recipe matching this rule's pattern, the driver will request firmware 
to
allocate and return a new recipe resource for the rule by calling
ice_add_sw_recipe() and ice_alloc_recipe(). If there is an existing recipe
matching this rule's pattern with different key value, or this is a same second 
rule
to PFm into switch component, the driver checks out this recipe by calling
ice_find_recp(), the driver will tell firmware to share using this same recipe
resource by calling ice_subscribable_recp_shared() and ice_subscribe_recipe().

When firmware detects that all subscribing PFs have freed the switch recipe,
firmware will free the switch recipe so that it can be reused.

This feature also fixes a problem where all switch recipes would eventually be
exhausted because switch recipes could not be freed, as freeing a shared recipe
could potentially break other PFs that were using it.

Reviewed-by: Przemek Kitszel <[email protected]>
Reviewed-by: Andrii Staikov <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Steven Zou <[email protected]>
---
  .../net/ethernet/intel/ice/ice_adminq_cmd.h   |   2 +
  drivers/net/ethernet/intel/ice/ice_common.c   |   2 +
  drivers/net/ethernet/intel/ice/ice_switch.c   | 187 ++++++++++++++++--
  drivers/net/ethernet/intel/ice/ice_switch.h   |   1 +
  drivers/net/ethernet/intel/ice/ice_type.h     |   2 +
  5 files changed, 177 insertions(+), 17 deletions(-)

We are seeing following kernel compilation error while compiling next kernel:

"error: dereferencing pointer to incomplete type 'struct dpll_pin'"

Thanks Mayank!
The patch does not touch 'stuct dpll_pin', I do not think this is caused by the patch changes. And the patch is based on the base-commit: ce1833c065c8c9aec8b147dd682b0ddca8c30071 that I built and loaded the ice.ko successfully before I submitted the patch.

Hi Tony,
Do you have any suggestion about this compilation issue?

Regards,
Mayank Sharma


Best Regards,
Steven

Reply via email to