- if (mp->flags & MEMPOOL_F_SP_PUT)
- rg_flags |= RING_F_SP_ENQ;
- if (mp->flags & MEMPOOL_F_SC_GET)
- rg_flags |= RING_F_SC_DEQ;
-
- for (i = 0; i < RTE_MAX_LCORE; i++) {
- if (!rte_lcore_is_enabled(i))
- continue;
- bd->buckets[i] =
- bucket_stack_create(mp, mp->size / bd->obj_per_bucket);
- if (bd->buckets[i] == NULL) {
- rc = -ENOMEM;
- goto no_mem_for_stacks;
- }
- rc = snprintf(rg_name, sizeof(rg_name),
- RTE_MEMPOOL_MZ_FORMAT ".a%u", mp->name, i);
- if (rc < 0 || rc >= (int)sizeof(rg_name)) {
- rc = -ENAMETOOLONG;
- goto no_mem_for_stacks;
- }
- bd->adoption_buffer_rings[i] =
- rte_ring_create(rg_name, rte_align32pow2(mp->size + 1),
- mp->socket_id,
- rg_flags | RING_F_SC_DEQ);
- if (bd->adoption_buffer_rings[i] == NULL) {
- rc = -rte_errno;
- goto no_mem_for_stacks;
- }
+ bd->lcore_callback_handle = rte_lcore_callback_register("bucket",
+ bucket_init_per_lcore, bucket_uninit_per_lcore, bd);
+ if (bd->lcore_callback_handle == NULL) {
+ rc = -ENOMEM;
+ goto no_mem_for_stacks;