On 9/26/2023 4:11 PM, Przemek Kitszel wrote:
On 9/26/23 05:12, Steven Zou wrote:
If E810 firmware supports the corresponding functionality, 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.
Signed-off-by: Steven Zou <[email protected]>
---
v2:
- fix nvm version detection for the feature (Thanks to Przemek)
- fix more small commit message Reviewed-by Przemek
v3: refactor ice_alloc_recipe to support both legacy and new methods
v4:
- a small change in ice_subscribe_recipe, sw_resp instead of flu_resp
- move ice_subscribe_recipe() and ice_subscribable_recp_shared()
definitions
down to before ice_add_adv_recipe()
- add commit message for new function of ice_subscribe_recipe()
v5:
- refactor ice_init_chk_subscribable_recipe_support() and replace it to
ice_init_chk_recipe_reuse_support()
- add a newline before 'return' in ice_init_hw()
- remove redundant cast of u8
- make u8 and u16 to u32 in the subfunctions
v6:
- fix AdminQ data type from/to FW and casting for bitmap type issue
- fix hole padding with adding new member in ice_hw structure
- fix setting the flag of recp_created issue
- fix redundant lable
- change bit traversal method
---
.../net/ethernet/intel/ice/ice_adminq_cmd.h | 4 +-
drivers/net/ethernet/intel/ice/ice_common.c | 2 +
drivers/net/ethernet/intel/ice/ice_lag.c | 4 +-
drivers/net/ethernet/intel/ice/ice_switch.c | 247 +++++++++++++++---
drivers/net/ethernet/intel/ice/ice_switch.h | 5 +-
drivers/net/ethernet/intel/ice/ice_type.h | 2 +
6 files changed, 229 insertions(+), 35 deletions(-)
Hi, we are not yet done with our pre-IWL (e1000) review.
General rule is to have Reviewed-by: tag prior to posting here.
And public submission versioning should start with v1, without the
changelog from e1000.
Normally one should also CC netdev, which you have not.
Thank you very much!
My mistake.
Please ignore my submission this time here.
_______________________________________________
Intel-wired-lan mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan