/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/steering/ |
D | dr_domain.c | 7 static int dr_domain_init_cache(struct mlx5dr_domain *dmn) in dr_domain_init_cache() argument 12 dmn->cache.recalc_cs_ft = kcalloc(dmn->info.caps.num_vports, in dr_domain_init_cache() 13 sizeof(dmn->cache.recalc_cs_ft[0]), in dr_domain_init_cache() 15 if (!dmn->cache.recalc_cs_ft) in dr_domain_init_cache() 21 static void dr_domain_uninit_cache(struct mlx5dr_domain *dmn) in dr_domain_uninit_cache() argument 25 for (i = 0; i < dmn->info.caps.num_vports; i++) { in dr_domain_uninit_cache() 26 if (!dmn->cache.recalc_cs_ft[i]) in dr_domain_uninit_cache() 29 mlx5dr_fw_destroy_recalc_cs_ft(dmn, dmn->cache.recalc_cs_ft[i]); in dr_domain_uninit_cache() 32 kfree(dmn->cache.recalc_cs_ft); in dr_domain_uninit_cache() 35 int mlx5dr_domain_cache_get_recalc_cs_ft_addr(struct mlx5dr_domain *dmn, in mlx5dr_domain_cache_get_recalc_cs_ft_addr() argument [all …]
|
D | dr_table.c | 17 mutex_lock(&tbl->dmn->mutex); in mlx5dr_table_set_miss_action() 24 if (tbl->dmn->type == MLX5DR_DOMAIN_TYPE_NIC_RX || in mlx5dr_table_set_miss_action() 25 tbl->dmn->type == MLX5DR_DOMAIN_TYPE_FDB) { in mlx5dr_table_set_miss_action() 38 ret = mlx5dr_ste_htbl_init_and_postsend(tbl->dmn, in mlx5dr_table_set_miss_action() 43 mlx5dr_dbg(tbl->dmn, "Failed to set RX miss action, ret %d\n", ret); in mlx5dr_table_set_miss_action() 48 if (tbl->dmn->type == MLX5DR_DOMAIN_TYPE_NIC_TX || in mlx5dr_table_set_miss_action() 49 tbl->dmn->type == MLX5DR_DOMAIN_TYPE_FDB) { in mlx5dr_table_set_miss_action() 62 ret = mlx5dr_ste_htbl_init_and_postsend(tbl->dmn, in mlx5dr_table_set_miss_action() 66 mlx5dr_dbg(tbl->dmn, "Failed to set TX miss action, ret %d\n", ret); in mlx5dr_table_set_miss_action() 81 mutex_unlock(&tbl->dmn->mutex); in mlx5dr_table_set_miss_action() [all …]
|
D | dr_fw.c | 8 mlx5dr_fw_create_recalc_cs_ft(struct mlx5dr_domain *dmn, u32 vport_num) in mlx5dr_fw_create_recalc_cs_ft() argument 19 ret = mlx5dr_cmd_create_flow_table(dmn->mdev, MLX5_FLOW_TABLE_TYPE_FDB, in mlx5dr_fw_create_recalc_cs_ft() 20 0, 0, dmn->info.caps.max_ft_level - 1, in mlx5dr_fw_create_recalc_cs_ft() 23 mlx5dr_err(dmn, "Failed creating TTL W/A FW flow table %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 27 ret = mlx5dr_cmd_create_empty_flow_group(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 31 mlx5dr_err(dmn, "Failed creating TTL W/A FW flow group %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 40 ret = mlx5dr_cmd_alloc_modify_header(dmn->mdev, MLX5_FLOW_TABLE_TYPE_FDB, 1, in mlx5dr_fw_create_recalc_cs_ft() 44 mlx5dr_err(dmn, "Failed modify header TTL %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 48 ret = mlx5dr_cmd_set_fte_modify_and_vport(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 53 mlx5dr_err(dmn, "Failed setting TTL W/A flow table entry %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() [all …]
|
D | dr_send.c | 308 static int dr_handle_pending_wc(struct mlx5dr_domain *dmn, in dr_handle_pending_wc() argument 319 dmn->send_ring->signal_th * TH_NUMS_TO_DRAIN) in dr_handle_pending_wc() 353 static int dr_postsend_icm_data(struct mlx5dr_domain *dmn, in dr_postsend_icm_data() argument 356 struct mlx5dr_send_ring *send_ring = dmn->send_ring; in dr_postsend_icm_data() 360 ret = dr_handle_pending_wc(dmn, send_ring); in dr_postsend_icm_data() 364 if (send_info->write.length > dmn->info.max_inline_size) { in dr_postsend_icm_data() 366 (dmn->send_ring->signal_th - 1)) * in dr_postsend_icm_data() 383 static int dr_get_tbl_copy_details(struct mlx5dr_domain *dmn, in dr_get_tbl_copy_details() argument 392 if (htbl->chunk->byte_size > dmn->send_ring->max_post_send_size) { in dr_get_tbl_copy_details() 394 dmn->send_ring->max_post_send_size; in dr_get_tbl_copy_details() [all …]
|
D | dr_action.c | 407 static void dr_actions_apply_tx(struct mlx5dr_domain *dmn, in dr_actions_apply_tx() argument 464 if (MLX5_CAP_GEN(dmn->mdev, prio_tag_required)) in dr_actions_apply_tx() 536 static void dr_actions_apply(struct mlx5dr_domain *dmn, in dr_actions_apply() argument 548 dr_actions_apply_tx(dmn, action_type_set, last_ste, attr, &added_stes); in dr_actions_apply() 592 static int dr_action_handle_cs_recalc(struct mlx5dr_domain *dmn, in dr_action_handle_cs_recalc() argument 607 mlx5dr_dbg(dmn, in dr_action_handle_cs_recalc() 617 ret = mlx5dr_domain_cache_get_recalc_cs_ft_addr(dest_action->vport.dmn, in dr_action_handle_cs_recalc() 621 mlx5dr_err(dmn, "Failed to get FW cs recalc flow table\n"); in dr_action_handle_cs_recalc() 644 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in mlx5dr_actions_build_ste_arr() local 654 attr.gvmi = dmn->info.caps.gvmi; in mlx5dr_actions_build_ste_arr() [all …]
|
D | dr_matcher.c | 141 dr_matcher_supp_flex_parser_vxlan_gpe(struct mlx5dr_domain *dmn) in dr_matcher_supp_flex_parser_vxlan_gpe() argument 143 return dmn->info.caps.flex_protocols & in dr_matcher_supp_flex_parser_vxlan_gpe() 160 mlx5dr_dbg(matcher->tbl->dmn, in mlx5dr_matcher_select_builders() 173 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in dr_matcher_set_ste_builders() local 208 ret = mlx5dr_ste_build_pre_check(dmn, matcher->match_criteria, in dr_matcher_set_ste_builders() 230 (dmn->type == MLX5DR_DOMAIN_TYPE_FDB || in dr_matcher_set_ste_builders() 231 dmn->type == MLX5DR_DOMAIN_TYPE_NIC_RX)) { in dr_matcher_set_ste_builders() 233 dmn, inner, rx); in dr_matcher_set_ste_builders() 275 dr_matcher_supp_flex_parser_vxlan_gpe(dmn)) in dr_matcher_set_ste_builders() 291 mlx5dr_matcher_supp_flex_parser_icmp_v4(&dmn->info.caps)) || in dr_matcher_set_ste_builders() [all …]
|
D | dr_rule.c | 44 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in dr_rule_create_collision_htbl() local 49 new_htbl = mlx5dr_ste_htbl_alloc(dmn->ste_icm_pool, in dr_rule_create_collision_htbl() 54 mlx5dr_dbg(dmn, "Failed allocating collision table\n"); in dr_rule_create_collision_htbl() 76 mlx5dr_dbg(matcher->tbl->dmn, "Failed creating collision entry\n"); in dr_rule_create_collision_entry() 88 mlx5dr_dbg(matcher->tbl->dmn, "Failed allocating table\n"); in dr_rule_create_collision_entry() 101 struct mlx5dr_domain *dmn) in dr_rule_handle_one_ste_in_update_list() argument 106 ret = mlx5dr_send_postsend_ste(dmn, ste_info->ste, ste_info->data, in dr_rule_handle_one_ste_in_update_list() 121 struct mlx5dr_domain *dmn, in dr_rule_send_update_list() argument 131 dmn); in dr_rule_send_update_list() 139 dmn); in dr_rule_send_update_list() [all …]
|
D | dr_types.h | 21 #define mlx5dr_err(dmn, arg...) mlx5_core_err((dmn)->mdev, ##arg) argument 22 #define mlx5dr_info(dmn, arg...) mlx5_core_info((dmn)->mdev, ##arg) argument 23 #define mlx5dr_dbg(dmn, arg...) mlx5_core_dbg((dmn)->mdev, ##arg) argument 184 struct mlx5dr_domain *dmn; member 271 int mlx5dr_ste_build_pre_check(struct mlx5dr_domain *dmn, 336 struct mlx5dr_domain *dmn, 667 struct mlx5dr_domain *dmn; member 716 struct mlx5dr_domain *dmn; member 727 struct mlx5dr_domain *dmn; member 748 struct mlx5dr_domain *dmn; member [all …]
|
D | dr_icm_pool.c | 50 struct mlx5dr_domain *dmn; member 102 struct mlx5_core_dev *mdev = pool->dmn->mdev; in dr_icm_pool_mr_create() 123 mlx5dr_err(pool->dmn, "Failed to allocate SW ICM memory, err (%d)\n", err); in dr_icm_pool_mr_create() 128 err = dr_icm_create_dm_mkey(mdev, pool->dmn->pdn, in dr_icm_pool_mr_create() 134 mlx5dr_err(pool->dmn, "Failed to create SW ICM MKEY, err (%d)\n", err); in dr_icm_pool_mr_create() 159 struct mlx5_core_dev *mdev = icm_mr->pool->dmn->mdev; in dr_icm_pool_mr_destroy() 468 err = mlx5dr_cmd_sync_steering(pool->dmn->mdev); in mlx5dr_icm_alloc_chunk() 471 mlx5dr_dbg(pool->dmn, "Sync_steering failed\n"); in mlx5dr_icm_alloc_chunk() 516 struct mlx5dr_icm_pool *mlx5dr_icm_pool_create(struct mlx5dr_domain *dmn, in mlx5dr_icm_pool_create() argument 524 max_log_chunk_sz = dmn->info.max_log_sw_icm_sz; in mlx5dr_icm_pool_create() [all …]
|
D | mlx5dr.h | 45 void mlx5dr_domain_set_peer(struct mlx5dr_domain *dmn, 94 mlx5dr_action_create_packet_reformat(struct mlx5dr_domain *dmn, 130 mlx5dr_domain_set_peer(struct mlx5dr_domain *dmn, in mlx5dr_domain_set_peer() argument 186 mlx5dr_action_create_packet_reformat(struct mlx5dr_domain *dmn, in mlx5dr_action_create_packet_reformat() argument
|
D | dr_ste.c | 454 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in mlx5dr_ste_free() local 501 mlx5dr_send_postsend_ste(dmn, cur_ste_info->ste, in mlx5dr_ste_free() 581 int mlx5dr_ste_htbl_init_and_postsend(struct mlx5dr_domain *dmn, in mlx5dr_ste_htbl_init_and_postsend() argument 589 mlx5dr_ste_set_formatted_ste(dmn->info.caps.gvmi, in mlx5dr_ste_htbl_init_and_postsend() 595 return mlx5dr_send_postsend_formatted_htbl(dmn, htbl, formatted_ste, update_hw_ste); in mlx5dr_ste_htbl_init_and_postsend() 606 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in mlx5dr_ste_create_next_htbl() local 617 next_htbl = mlx5dr_ste_htbl_alloc(dmn->ste_icm_pool, in mlx5dr_ste_create_next_htbl() 622 mlx5dr_dbg(dmn, "Failed allocating table\n"); in mlx5dr_ste_create_next_htbl() 629 if (mlx5dr_ste_htbl_init_and_postsend(dmn, nic_dmn, next_htbl, in mlx5dr_ste_create_next_htbl() 631 mlx5dr_info(dmn, "Failed writing table to HW\n"); in mlx5dr_ste_create_next_htbl() [all …]
|
/Linux-v5.4/drivers/powercap/ |
D | intel_rapl_common.c | 1001 int dmn, prim; in rapl_update_domain_data() local 1004 for (dmn = 0; dmn < rp->nr_domains; dmn++) { in rapl_update_domain_data() 1006 rp->domains[dmn].name); in rapl_update_domain_data() 1009 if (!rapl_read_data_raw(&rp->domains[dmn], prim, in rapl_update_domain_data() 1011 rp->domains[dmn].rdd.primitives[prim] = val; in rapl_update_domain_data()
|