mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-25 22:10:00 +07:00
5513b920a4
This patch adds the ability for a VSI to use multiple Tx queues. More specifically, the patch 1) Provides the ability to update the Tx scheduler tree in the firmware. The driver can configure the Tx scheduler tree by adding/removing multiple Tx queues per TC per VSI. 2) Allows a VSI to reconfigure its Tx queues during runtime. 3) Synchronizes the Tx scheduler update operations using locks. Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Tony Brelinski <tonyx.brelinski@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (c) 2018, Intel Corporation. */
|
|
|
|
#ifndef _ICE_SCHED_H_
|
|
#define _ICE_SCHED_H_
|
|
|
|
#include "ice_common.h"
|
|
|
|
#define ICE_QGRP_LAYER_OFFSET 2
|
|
#define ICE_VSI_LAYER_OFFSET 4
|
|
|
|
struct ice_sched_agg_vsi_info {
|
|
struct list_head list_entry;
|
|
DECLARE_BITMAP(tc_bitmap, ICE_MAX_TRAFFIC_CLASS);
|
|
u16 vsi_id;
|
|
};
|
|
|
|
struct ice_sched_agg_info {
|
|
struct list_head agg_vsi_list;
|
|
struct list_head list_entry;
|
|
DECLARE_BITMAP(tc_bitmap, ICE_MAX_TRAFFIC_CLASS);
|
|
u32 agg_id;
|
|
enum ice_agg_type agg_type;
|
|
};
|
|
|
|
/* FW AQ command calls */
|
|
enum ice_status ice_sched_init_port(struct ice_port_info *pi);
|
|
enum ice_status ice_sched_query_res_alloc(struct ice_hw *hw);
|
|
void ice_sched_cleanup_all(struct ice_hw *hw);
|
|
struct ice_sched_node *
|
|
ice_sched_find_node_by_teid(struct ice_sched_node *start_node, u32 teid);
|
|
enum ice_status
|
|
ice_sched_add_node(struct ice_port_info *pi, u8 layer,
|
|
struct ice_aqc_txsched_elem_data *info);
|
|
void ice_free_sched_node(struct ice_port_info *pi, struct ice_sched_node *node);
|
|
struct ice_sched_node *ice_sched_get_tc_node(struct ice_port_info *pi, u8 tc);
|
|
struct ice_sched_node *
|
|
ice_sched_get_free_qparent(struct ice_port_info *pi, u16 vsi_id, u8 tc,
|
|
u8 owner);
|
|
enum ice_status
|
|
ice_sched_cfg_vsi(struct ice_port_info *pi, u16 vsi_id, u8 tc, u16 maxqs,
|
|
u8 owner, bool enable);
|
|
#endif /* _ICE_SCHED_H_ */
|