Symbol: objagg
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1015
objagg_obj = objagg_obj_get(erp_table->objagg, &key);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1029
objagg_obj_put(erp_table->objagg, objagg_obj);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1316
erp_table->objagg = objagg_create(&mlxsw_sp_acl_erp_objagg_ops,
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1318
if (IS_ERR(erp_table->objagg)) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1319
err = PTR_ERR(erp_table->objagg);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1341
objagg_destroy(erp_table->objagg);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1379
ostats = objagg_stats_get(erp_table->objagg);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1415
hints = objagg_hints_get(erp_table->objagg,
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
66
struct objagg *objagg;
include/linux/objagg.h
18
struct objagg;
include/linux/objagg.h
26
struct objagg_obj *objagg_obj_get(struct objagg *objagg, void *obj);
include/linux/objagg.h
27
void objagg_obj_put(struct objagg *objagg, struct objagg_obj *objagg_obj);
include/linux/objagg.h
28
struct objagg *objagg_create(const struct objagg_ops *ops,
include/linux/objagg.h
30
void objagg_destroy(struct objagg *objagg);
include/linux/objagg.h
49
const struct objagg_stats *objagg_stats_get(struct objagg *objagg);
include/linux/objagg.h
56
struct objagg_hints *objagg_hints_get(struct objagg *objagg,
include/trace/events/objagg.h
105
__entry->objagg, __entry->obj, __entry->refcount)
include/trace/events/objagg.h
109
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
113
TP_ARGS(objagg, obj, refcount),
include/trace/events/objagg.h
116
__field(const void *, objagg)
include/trace/events/objagg.h
12
struct objagg;
include/trace/events/objagg.h
122
__entry->objagg = objagg;
include/trace/events/objagg.h
128
__entry->objagg, __entry->obj, __entry->refcount)
include/trace/events/objagg.h
132
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
137
TP_ARGS(objagg, obj, parent, parent_refcount),
include/trace/events/objagg.h
140
__field(const void *, objagg)
include/trace/events/objagg.h
147
__entry->objagg = objagg;
include/trace/events/objagg.h
154
__entry->objagg, __entry->obj,
include/trace/events/objagg.h
159
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
16
TP_PROTO(const struct objagg *objagg),
include/trace/events/objagg.h
164
TP_ARGS(objagg, obj, parent, parent_refcount),
include/trace/events/objagg.h
167
__field(const void *, objagg)
include/trace/events/objagg.h
174
__entry->objagg = objagg;
include/trace/events/objagg.h
18
TP_ARGS(objagg),
include/trace/events/objagg.h
181
__entry->objagg, __entry->obj,
include/trace/events/objagg.h
186
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
189
TP_ARGS(objagg, obj),
include/trace/events/objagg.h
192
__field(const void *, objagg)
include/trace/events/objagg.h
197
__entry->objagg = objagg;
include/trace/events/objagg.h
202
__entry->objagg, __entry->obj)
include/trace/events/objagg.h
206
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
209
TP_ARGS(objagg, obj),
include/trace/events/objagg.h
21
__field(const void *, objagg)
include/trace/events/objagg.h
212
__field(const void *, objagg)
include/trace/events/objagg.h
217
__entry->objagg = objagg;
include/trace/events/objagg.h
222
__entry->objagg, __entry->obj)
include/trace/events/objagg.h
25
__entry->objagg = objagg;
include/trace/events/objagg.h
28
TP_printk("objagg %p", __entry->objagg)
include/trace/events/objagg.h
32
TP_PROTO(const struct objagg *objagg),
include/trace/events/objagg.h
34
TP_ARGS(objagg),
include/trace/events/objagg.h
37
__field(const void *, objagg)
include/trace/events/objagg.h
41
__entry->objagg = objagg;
include/trace/events/objagg.h
44
TP_printk("objagg %p", __entry->objagg)
include/trace/events/objagg.h
48
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
5
#define TRACE_SYSTEM objagg
include/trace/events/objagg.h
51
TP_ARGS(objagg, obj),
include/trace/events/objagg.h
54
__field(const void *, objagg)
include/trace/events/objagg.h
59
__entry->objagg = objagg;
include/trace/events/objagg.h
63
TP_printk("objagg %p, obj %p", __entry->objagg, __entry->obj)
include/trace/events/objagg.h
67
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
70
TP_ARGS(objagg, obj),
include/trace/events/objagg.h
73
__field(const void *, objagg)
include/trace/events/objagg.h
78
__entry->objagg = objagg;
include/trace/events/objagg.h
82
TP_printk("objagg %p, obj %p", __entry->objagg, __entry->obj)
include/trace/events/objagg.h
86
TP_PROTO(const struct objagg *objagg,
include/trace/events/objagg.h
90
TP_ARGS(objagg, obj, refcount),
include/trace/events/objagg.h
93
__field(const void *, objagg)
include/trace/events/objagg.h
99
__entry->objagg = objagg;
lib/objagg.c
158
static struct objagg_obj *objagg_obj_lookup(struct objagg *objagg, void *obj)
lib/objagg.c
160
return rhashtable_lookup_fast(&objagg->obj_ht, obj, objagg->ht_params);
lib/objagg.c
163
static int objagg_obj_parent_assign(struct objagg *objagg,
lib/objagg.c
173
delta_priv = objagg->ops->delta_create(objagg->priv, parent->obj,
lib/objagg.c
185
trace_objagg_obj_parent_assign(objagg, objagg_obj,
lib/objagg.c
191
static int objagg_obj_parent_lookup_assign(struct objagg *objagg,
lib/objagg.c
197
list_for_each_entry(objagg_obj_cur, &objagg->obj_list, list) {
lib/objagg.c
203
err = objagg_obj_parent_assign(objagg, objagg_obj,
lib/objagg.c
211
static void __objagg_obj_put(struct objagg *objagg,
lib/objagg.c
214
static void objagg_obj_parent_unassign(struct objagg *objagg,
lib/objagg.c
217
trace_objagg_obj_parent_unassign(objagg, objagg_obj,
lib/objagg.c
220
objagg->ops->delta_destroy(objagg->priv, objagg_obj->delta_priv);
lib/objagg.c
221
__objagg_obj_put(objagg, objagg_obj->parent);
lib/objagg.c
224
static int objagg_obj_root_id_alloc(struct objagg *objagg,
lib/objagg.c
232
if (!objagg->hints) {
lib/objagg.c
244
min = objagg->hints->root_count;
lib/objagg.c
248
root_id = ida_alloc_range(&objagg->root_ida, min, max, GFP_KERNEL);
lib/objagg.c
256
static void objagg_obj_root_id_free(struct objagg *objagg,
lib/objagg.c
259
if (!objagg->hints)
lib/objagg.c
261
ida_free(&objagg->root_ida, objagg_obj->root_id);
lib/objagg.c
264
static int objagg_obj_root_create(struct objagg *objagg,
lib/objagg.c
270
err = objagg_obj_root_id_alloc(objagg, objagg_obj, hnode);
lib/objagg.c
273
objagg_obj->root_priv = objagg->ops->root_create(objagg->priv,
lib/objagg.c
280
trace_objagg_obj_root_create(objagg, objagg_obj);
lib/objagg.c
284
objagg_obj_root_id_free(objagg, objagg_obj);
lib/objagg.c
288
static void objagg_obj_root_destroy(struct objagg *objagg,
lib/objagg.c
291
trace_objagg_obj_root_destroy(objagg, objagg_obj);
lib/objagg.c
292
objagg->ops->root_destroy(objagg->priv, objagg_obj->root_priv);
lib/objagg.c
293
objagg_obj_root_id_free(objagg, objagg_obj);
lib/objagg.c
296
static struct objagg_obj *__objagg_obj_get(struct objagg *objagg, void *obj);
lib/objagg.c
298
static int objagg_obj_init_with_hints(struct objagg *objagg,
lib/objagg.c
306
hnode = objagg_hints_lookup(objagg->hints, objagg_obj->obj);
lib/objagg.c
314
return objagg_obj_root_create(objagg, objagg_obj, hnode);
lib/objagg.c
316
parent = __objagg_obj_get(objagg, hnode->parent->obj);
lib/objagg.c
320
err = objagg_obj_parent_assign(objagg, objagg_obj, parent, false);
lib/objagg.c
330
objagg_obj_put(objagg, parent);
lib/objagg.c
334
static int objagg_obj_init(struct objagg *objagg,
lib/objagg.c
343
err = objagg_obj_init_with_hints(objagg, objagg_obj, &hint_found);
lib/objagg.c
351
err = objagg_obj_parent_lookup_assign(objagg, objagg_obj);
lib/objagg.c
355
return objagg_obj_root_create(objagg, objagg_obj, NULL);
lib/objagg.c
358
static void objagg_obj_fini(struct objagg *objagg,
lib/objagg.c
362
objagg_obj_parent_unassign(objagg, objagg_obj);
lib/objagg.c
364
objagg_obj_root_destroy(objagg, objagg_obj);
lib/objagg.c
367
static struct objagg_obj *objagg_obj_create(struct objagg *objagg, void *obj)
lib/objagg.c
372
objagg_obj = kzalloc(sizeof(*objagg_obj) + objagg->ops->obj_size,
lib/objagg.c
377
memcpy(objagg_obj->obj, obj, objagg->ops->obj_size);
lib/objagg.c
379
err = objagg_obj_init(objagg, objagg_obj);
lib/objagg.c
383
err = rhashtable_insert_fast(&objagg->obj_ht, &objagg_obj->ht_node,
lib/objagg.c
384
objagg->ht_params);
lib/objagg.c
387
list_add(&objagg_obj->list, &objagg->obj_list);
lib/objagg.c
388
objagg->obj_count++;
lib/objagg.c
389
trace_objagg_obj_create(objagg, objagg_obj);
lib/objagg.c
394
objagg_obj_fini(objagg, objagg_obj);
lib/objagg.c
400
static struct objagg_obj *__objagg_obj_get(struct objagg *objagg, void *obj)
lib/objagg.c
407
objagg_obj = objagg_obj_lookup(objagg, obj);
lib/objagg.c
413
return objagg_obj_create(objagg, obj);
lib/objagg.c
440
struct objagg_obj *objagg_obj_get(struct objagg *objagg, void *obj)
lib/objagg.c
444
objagg_obj = __objagg_obj_get(objagg, obj);
lib/objagg.c
448
trace_objagg_obj_get(objagg, objagg_obj, objagg_obj->refcount);
lib/objagg.c
453
static void objagg_obj_destroy(struct objagg *objagg,
lib/objagg.c
456
trace_objagg_obj_destroy(objagg, objagg_obj);
lib/objagg.c
457
--objagg->obj_count;
lib/objagg.c
459
rhashtable_remove_fast(&objagg->obj_ht, &objagg_obj->ht_node,
lib/objagg.c
460
objagg->ht_params);
lib/objagg.c
461
objagg_obj_fini(objagg, objagg_obj);
lib/objagg.c
465
static void __objagg_obj_put(struct objagg *objagg,
lib/objagg.c
469
objagg_obj_destroy(objagg, objagg_obj);
lib/objagg.c
481
void objagg_obj_put(struct objagg *objagg, struct objagg_obj *objagg_obj)
lib/objagg.c
483
trace_objagg_obj_put(objagg, objagg_obj, objagg_obj->refcount);
lib/objagg.c
485
__objagg_obj_put(objagg, objagg_obj);
lib/objagg.c
517
struct objagg *objagg_create(const struct objagg_ops *ops,
lib/objagg.c
520
struct objagg *objagg;
lib/objagg.c
528
objagg = kzalloc_obj(*objagg);
lib/objagg.c
529
if (!objagg)
lib/objagg.c
531
objagg->ops = ops;
lib/objagg.c
533
objagg->hints = objagg_hints;
lib/objagg.c
536
objagg->priv = priv;
lib/objagg.c
537
INIT_LIST_HEAD(&objagg->obj_list);
lib/objagg.c
539
objagg->ht_params.key_len = ops->obj_size;
lib/objagg.c
540
objagg->ht_params.key_offset = offsetof(struct objagg_obj, obj);
lib/objagg.c
541
objagg->ht_params.head_offset = offsetof(struct objagg_obj, ht_node);
lib/objagg.c
543
err = rhashtable_init(&objagg->obj_ht, &objagg->ht_params);
lib/objagg.c
547
ida_init(&objagg->root_ida);
lib/objagg.c
549
trace_objagg_create(objagg);
lib/objagg.c
550
return objagg;
lib/objagg.c
553
kfree(objagg);
lib/objagg.c
564
void objagg_destroy(struct objagg *objagg)
lib/objagg.c
566
trace_objagg_destroy(objagg);
lib/objagg.c
567
ida_destroy(&objagg->root_ida);
lib/objagg.c
568
WARN_ON(!list_empty(&objagg->obj_list));
lib/objagg.c
569
rhashtable_destroy(&objagg->obj_ht);
lib/objagg.c
570
if (objagg->hints)
lib/objagg.c
571
objagg_hints_put(objagg->hints);
lib/objagg.c
572
kfree(objagg);
lib/objagg.c
607
const struct objagg_stats *objagg_stats_get(struct objagg *objagg)
lib/objagg.c
614
objagg->obj_count);
lib/objagg.c
619
list_for_each_entry(objagg_obj, &objagg->obj_list, list) {
lib/objagg.c
780
static struct objagg_tmp_graph *objagg_tmp_graph_create(struct objagg *objagg)
lib/objagg.c
782
unsigned int nodes_count = objagg->obj_count;
lib/objagg.c
803
list_for_each_entry(objagg_obj, &objagg->obj_list, list) {
lib/objagg.c
817
if (objagg->ops->delta_check(objagg->priv,
lib/objagg.c
843
struct objagg *objagg)
lib/objagg.c
852
graph = objagg_tmp_graph_create(objagg);
lib/objagg.c
864
objagg->ops->obj_size,
lib/objagg.c
880
objagg->ops->obj_size,
lib/objagg.c
897
struct objagg *objagg);
lib/objagg.c
926
struct objagg_hints *objagg_hints_get(struct objagg *objagg,
lib/objagg.c
937
objagg_hints->ops = objagg->ops;
lib/objagg.c
942
objagg_hints->ht_params.key_len = objagg->ops->obj_size;
lib/objagg.c
952
err = algo->fillup_hints(objagg_hints, objagg);
lib/objagg.c
956
if (WARN_ON(objagg_hints->node_count != objagg->obj_count)) {
lib/test_objagg.c
1005
world_obj_put(&world, objagg, hints_case->key_ids[i]);
lib/test_objagg.c
1007
objagg_destroy(objagg);
lib/test_objagg.c
151
static int test_nodelta_obj_get(struct world *world, struct objagg *objagg,
lib/test_objagg.c
163
objagg_obj = world_obj_get(world, objagg, key_id);
lib/test_objagg.c
200
objagg_obj_put(objagg, objagg_obj);
lib/test_objagg.c
204
static int test_nodelta_obj_put(struct world *world, struct objagg *objagg,
lib/test_objagg.c
209
world_obj_put(world, objagg, key_id);
lib/test_objagg.c
226
static int check_stats_zero(struct objagg *objagg)
lib/test_objagg.c
231
stats = objagg_stats_get(objagg);
lib/test_objagg.c
244
static int check_stats_nodelta(struct objagg *objagg)
lib/test_objagg.c
250
stats = objagg_stats_get(objagg);
lib/test_objagg.c
307
struct objagg *objagg;
lib/test_objagg.c
311
objagg = objagg_create(&nodelta_ops, NULL, &world);
lib/test_objagg.c
312
if (IS_ERR(objagg))
lib/test_objagg.c
313
return PTR_ERR(objagg);
lib/test_objagg.c
315
err = check_stats_zero(objagg);
lib/test_objagg.c
321
err = test_nodelta_obj_get(&world, objagg, i, true);
lib/test_objagg.c
330
err = test_nodelta_obj_get(&world, objagg, i, false);
lib/test_objagg.c
335
err = check_stats_nodelta(objagg);
lib/test_objagg.c
340
err = test_nodelta_obj_put(&world, objagg, i, false);
lib/test_objagg.c
345
err = test_nodelta_obj_put(&world, objagg, i, true);
lib/test_objagg.c
350
err = check_stats_zero(objagg);
lib/test_objagg.c
354
objagg_destroy(objagg);
lib/test_objagg.c
361
world_obj_put(&world, objagg, i);
lib/test_objagg.c
367
world_obj_put(&world, objagg, i);
lib/test_objagg.c
370
objagg_destroy(objagg);
lib/test_objagg.c
47
struct objagg *objagg,
lib/test_objagg.c
55
objagg_obj = objagg_obj_get(objagg, &key);
lib/test_objagg.c
72
objagg_obj_put(objagg, objagg_obj);
lib/test_objagg.c
740
static int check_expect_stats(struct objagg *objagg,
lib/test_objagg.c
747
stats = objagg_stats_get(objagg);
lib/test_objagg.c
758
struct objagg *objagg,
lib/test_objagg.c
76
static void world_obj_put(struct world *world, struct objagg *objagg,
lib/test_objagg.c
775
objagg_obj = world_obj_get(world, objagg, key_id);
lib/test_objagg.c
780
world_obj_put(world, objagg, key_id);
lib/test_objagg.c
791
err = check_expect_stats(objagg, &action_item->expect_stats, &errmsg);
lib/test_objagg.c
803
test_delta_action_item(world, objagg, action_item, true);
lib/test_objagg.c
810
struct objagg *objagg;
lib/test_objagg.c
814
objagg = objagg_create(&delta_ops, NULL, &world);
lib/test_objagg.c
815
if (IS_ERR(objagg))
lib/test_objagg.c
816
return PTR_ERR(objagg);
lib/test_objagg.c
819
err = test_delta_action_item(&world, objagg,
lib/test_objagg.c
825
objagg_destroy(objagg);
lib/test_objagg.c
830
test_delta_action_item(&world, objagg, &action_items[i], true);
lib/test_objagg.c
832
objagg_destroy(objagg);
lib/test_objagg.c
84
objagg_obj_put(objagg, objagg_obj);
lib/test_objagg.c
872
static void pr_debug_stats(struct objagg *objagg)
lib/test_objagg.c
876
stats = objagg_stats_get(objagg);
lib/test_objagg.c
912
struct objagg_hints *hints, struct objagg *objagg)
lib/test_objagg.c
916
struct objagg *objagg2;
lib/test_objagg.c
955
world_obj_put(&world2, objagg, hints_case->key_ids[i]);
lib/test_objagg.c
967
struct objagg *objagg;
lib/test_objagg.c
972
objagg = objagg_create(&delta_ops, NULL, &world);
lib/test_objagg.c
973
if (IS_ERR(objagg))
lib/test_objagg.c
974
return PTR_ERR(objagg);
lib/test_objagg.c
977
objagg_obj = world_obj_get(&world, objagg,
lib/test_objagg.c
985
pr_debug_stats(objagg);
lib/test_objagg.c
986
err = check_expect_stats(objagg, &hints_case->expect_stats, &errmsg);
lib/test_objagg.c
992
hints = objagg_hints_get(objagg, OBJAGG_OPT_ALGO_SIMPLE_GREEDY);
lib/test_objagg.c
998
err = test_hints_case2(hints_case, hints, objagg);