[Intel-wired-lan] [PATCH iwl-next v6] ice: Add support for switch recipe reusing feature

Zou, Steven steven.zou at intel.com
Tue Sep 26 09:01:51 UTC 2023


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 <steven.zou at intel.com>
>> ---
>> 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.




More information about the Intel-wired-lan mailing list