summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-05-09 04:50:37 +0300
committerJakub Kicinski <kuba@kernel.org>2026-05-09 04:50:37 +0300
commit50223dfd66526052aad4eef3465de2d9094b9f72 (patch)
tree61d700fb272b158c6f1c6ba1c725a16583a0ab0d /include
parent1160428a8b6431c8976d26cd728e61b31424b3ee (diff)
parent1fba57c91416d8e06aae9f36382f6be2513c2c0f (diff)
downloadlinux-50223dfd66526052aad4eef3465de2d9094b9f72.tar.xz
Merge branch 'net-mlx5-icm-page-management-in-vhca_id-mode'
Tariq Toukan says: ==================== net/mlx5: ICM page management in VHCA_ID mode This series adds driver support for the VHCA_ID page management mode. When firmware and driver support this mode, ICM (Interconnect Context Memory) page management uses the device vhca_id as the function identifier in MANAGE_PAGES, QUERY_PAGES, and page request events instead of the legacy function_id + ec_function pair. Background Firmware can operate page management in two modes: FUNC_ID mode (current): Function identity is (function_id, ec_function). This remains the default and is used for boot pages and when the new mode capability is not set. VHCA_ID mode (new): Function identity is vhca_id only; ec_function is ignored. This aligns page management with the vhca_id-based model used by other firmware commands and simplifies identification on SmartNIC and multi-function setups. ==================== Link: https://patch.msgid.link/20260506133239.276237-1-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mlx5/driver.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h
index 531ce66fc8ef..8b4d384125d1 100644
--- a/include/linux/mlx5/driver.h
+++ b/include/linux/mlx5/driver.h
@@ -558,6 +558,12 @@ enum mlx5_func_type {
MLX5_HOST_PF,
MLX5_EC_VF,
MLX5_FUNC_TYPE_NUM,
+ MLX5_FUNC_TYPE_NONE = MLX5_FUNC_TYPE_NUM,
+};
+
+enum mlx5_page_mgt_mode {
+ MLX5_PAGE_MGT_MODE_FUNC_ID,
+ MLX5_PAGE_MGT_MODE_VHCA_ID,
};
struct mlx5_frag_buf_node_pools;
@@ -578,6 +584,7 @@ struct mlx5_priv {
u32 fw_pages_alloc_failed;
u32 give_pages_dropped;
u32 reclaim_pages_discard;
+ enum mlx5_page_mgt_mode page_mgt_mode;
struct mlx5_core_health health;
struct list_head traps;
@@ -1039,6 +1046,8 @@ void mlx5_pagealloc_start(struct mlx5_core_dev *dev);
void mlx5_pagealloc_stop(struct mlx5_core_dev *dev);
void mlx5_pages_debugfs_init(struct mlx5_core_dev *dev);
void mlx5_pages_debugfs_cleanup(struct mlx5_core_dev *dev);
+void mlx5_pages_by_func_type_debugfs_init(struct mlx5_core_dev *dev);
+void mlx5_pages_by_func_type_debugfs_cleanup(struct mlx5_core_dev *dev);
int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev, int boot);
int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev);
void mlx5_register_debugfs(void);