Lines Matching refs:rb_key
247 set_mkc_access_pd_addr_fields(mkc, ent->rb_key.access_flags, 0, in set_cache_mkc()
251 MLX5_SET(mkc, mkc, access_mode_1_0, ent->rb_key.access_mode & 0x3); in set_cache_mkc()
253 (ent->rb_key.access_mode >> 2) & 0x7); in set_cache_mkc()
254 MLX5_SET(mkc, mkc, ma_translation_mode, !!ent->rb_key.ats); in set_cache_mkc()
257 get_mkc_octo_size(ent->rb_key.access_mode, in set_cache_mkc()
258 ent->rb_key.ndescs)); in set_cache_mkc()
261 if (ent->rb_key.ph != MLX5_IB_NO_PH) { in set_cache_mkc()
263 MLX5_SET(mkc, mkc, pcie_tph_ph, ent->rb_key.ph); in set_cache_mkc()
264 if (ent->rb_key.st_index != MLX5_MKC_PCIE_TPH_NO_STEERING_TAG_INDEX) in set_cache_mkc()
266 ent->rb_key.st_index); in set_cache_mkc()
680 cmp = cache_ent_key_cmp(cur->rb_key, ent->rb_key); in mlx5_cache_ent_insert()
698 struct mlx5r_cache_rb_key rb_key) in mkey_cache_ent_from_rb_key() argument
710 cmp = cache_ent_key_cmp(cur->rb_key, rb_key); in mkey_cache_ent_from_rb_key()
725 ndescs_limit = max_t(u64, rb_key.ndescs * 2, in mkey_cache_ent_from_rb_key()
729 smallest->rb_key.access_mode == rb_key.access_mode && in mkey_cache_ent_from_rb_key()
730 smallest->rb_key.access_flags == rb_key.access_flags && in mkey_cache_ent_from_rb_key()
731 smallest->rb_key.ats == rb_key.ats && in mkey_cache_ent_from_rb_key()
732 smallest->rb_key.st_index == rb_key.st_index && in mkey_cache_ent_from_rb_key()
733 smallest->rb_key.ph == rb_key.ph && in mkey_cache_ent_from_rb_key()
734 smallest->rb_key.ndescs <= ndescs_limit) ? in mkey_cache_ent_from_rb_key()
771 mr->mmkey.rb_key = ent->rb_key; in _mlx5_mr_cache_alloc()
805 struct mlx5r_cache_rb_key rb_key = { in mlx5_mr_cache_alloc() local
811 struct mlx5_cache_ent *ent = mkey_cache_ent_from_rb_key(dev, rb_key); in mlx5_mr_cache_alloc()
831 int order = order_base_2(ent->rb_key.ndescs); in mlx5_mkey_cache_debugfs_add_ent()
837 if (ent->rb_key.access_mode == MLX5_MKC_ACCESS_MODE_KSM) in mlx5_mkey_cache_debugfs_add_ent()
893 struct mlx5r_cache_rb_key rb_key, in mlx5r_cache_create_ent_locked() argument
907 ent->rb_key = rb_key; in mlx5r_cache_create_ent_locked()
918 if (rb_key.access_mode == MLX5_MKC_ACCESS_MODE_KSM) in mlx5r_cache_create_ent_locked()
921 order = order_base_2(rb_key.ndescs) - 2; in mlx5r_cache_create_ent_locked()
964 struct mlx5r_cache_rb_key rb_key = { in mlx5_mkey_cache_init() local
987 rb_key.ndescs = MLX5_MR_CACHE_PERSISTENT_ENTRY_MIN_DESCS << i; in mlx5_mkey_cache_init()
988 ent = mlx5r_cache_create_ent_locked(dev, rb_key, true); in mlx5_mkey_cache_init()
1147 struct mlx5r_cache_rb_key rb_key = {}; in alloc_cacheable_mr() local
1160 rb_key.access_mode = access_mode; in alloc_cacheable_mr()
1161 rb_key.ndescs = ib_umem_num_dma_blocks(umem, page_size); in alloc_cacheable_mr()
1162 rb_key.ats = mlx5_umem_needs_ats(dev, umem, access_flags); in alloc_cacheable_mr()
1163 rb_key.access_flags = get_unchangeable_access_flags(dev, access_flags); in alloc_cacheable_mr()
1164 rb_key.st_index = st_index; in alloc_cacheable_mr()
1165 rb_key.ph = ph; in alloc_cacheable_mr()
1166 ent = mkey_cache_ent_from_rb_key(dev, rb_key); in alloc_cacheable_mr()
1178 mr->mmkey.rb_key = rb_key; in alloc_cacheable_mr()
1824 dev, new_umem, iova, mr->mmkey.cache_ent->rb_key.access_mode); in can_use_umr_rereg_pas()
1827 return (mr->mmkey.cache_ent->rb_key.ndescs) >= in can_use_umr_rereg_pas()
1888 mr->mmkey.rb_key.ph != MLX5_IB_NO_PH) in mlx5_ib_rereg_user_mr()
2042 ent = mkey_cache_ent_from_rb_key(dev, mr->mmkey.rb_key); in cache_ent_find_and_store()
2044 if (ent->rb_key.ndescs == mr->mmkey.rb_key.ndescs) { in cache_ent_find_and_store()
2056 ent = mlx5r_cache_create_ent_locked(dev, mr->mmkey.rb_key, false); in cache_ent_find_and_store()