]> git.droids-corp.org - dpdk.git/commitdiff
net/ice/base: support priority configuration of exact node
authorWenjun Wu <wenjun1.wu@intel.com>
Tue, 17 May 2022 05:09:28 +0000 (13:09 +0800)
committerQi Zhang <qi.z.zhang@intel.com>
Wed, 18 May 2022 04:22:43 +0000 (06:22 +0200)
This patch adds priority configuration support of the exact
node in the scheduler tree.
This function does not need additional calls to the scheduler
lock.

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/base/ice_sched.c
drivers/net/ice/base/ice_sched.h

index 4ca15bf8f8b83af02905461ff5b7a736bc596799..1b060d356747aa863e77b5fd8f1d33a2f209a30b 100644 (file)
@@ -3613,6 +3613,28 @@ ice_cfg_vsi_q_priority(struct ice_port_info *pi, u16 num_qs, u32 *q_ids,
        return status;
 }
 
+/**
+ * ice_sched_cfg_sibl_node_prio_lock - config priority of node
+ * @pi: port information structure
+ * @node: sched node to configure
+ * @priority: sibling priority
+ *
+ * This function configures node element's sibling priority only.
+ */
+enum ice_status
+ice_sched_cfg_sibl_node_prio_lock(struct ice_port_info *pi,
+                                 struct ice_sched_node *node,
+                                 u8 priority)
+{
+       enum ice_status status;
+
+       ice_acquire_lock(&pi->sched_lock);
+       status = ice_sched_cfg_sibl_node_prio(pi, node, priority);
+       ice_release_lock(&pi->sched_lock);
+
+       return status;
+}
+
 /**
  * ice_sched_save_q_bw_alloc - save queue node's BW allocation information
  * @q_ctx: queue context structure
index 184ad09e6af42f5cca8ed9a07f55c32bbfd918de..c9f3f79efff7348bbebd38b410bc05b2ecf53c67 100644 (file)
@@ -169,6 +169,9 @@ enum ice_status
 ice_cfg_agg_bw_no_shared_lmt_per_tc(struct ice_port_info *pi, u32 agg_id,
                                    u8 tc);
 enum ice_status
+ice_sched_cfg_sibl_node_prio_lock(struct ice_port_info *pi,
+                                 struct ice_sched_node *node, u8 priority);
+enum ice_status
 ice_cfg_vsi_q_priority(struct ice_port_info *pi, u16 num_qs, u32 *q_ids,
                       u8 *q_prio);
 enum ice_status