| /linux/net/xdp/ |
| H A D | xsk_buff_pool.c | 15 void xp_add_xsk(struct xsk_buff_pool *pool, struct xdp_sock *xs) in xp_add_xsk() argument 20 spin_lock(&pool->xsk_tx_list_lock); in xp_add_xsk() 21 list_add_rcu(&xs->tx_list, &pool->xsk_tx_list); in xp_add_xsk() 22 spin_unlock(&pool->xsk_tx_list_lock); in xp_add_xsk() 25 void xp_del_xsk(struct xsk_buff_pool *pool, struct xdp_sock *xs) in xp_del_xsk() argument 30 spin_lock(&pool->xsk_tx_list_lock); in xp_del_xsk() 32 spin_unlock(&pool->xsk_tx_list_lock); in xp_del_xsk() 35 void xp_destroy(struct xsk_buff_pool *pool) in xp_destroy() argument 37 if (!pool) in xp_destroy() 40 kvfree(pool->tx_descs); in xp_destroy() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/ |
| H A D | pool.c | 9 switch (resource->pool->type) { in hws_pool_free_one_resource() 11 mlx5hws_cmd_ste_destroy(resource->pool->ctx->mdev, resource->base_id); in hws_pool_free_one_resource() 14 mlx5hws_cmd_stc_destroy(resource->pool->ctx->mdev, resource->base_id); in hws_pool_free_one_resource() 23 static void hws_pool_resource_free(struct mlx5hws_pool *pool) in hws_pool_resource_free() argument 25 hws_pool_free_one_resource(pool->resource); in hws_pool_resource_free() 26 pool->resource = NULL; in hws_pool_resource_free() 28 if (pool->tbl_type == MLX5HWS_TABLE_TYPE_FDB) { in hws_pool_resource_free() 29 hws_pool_free_one_resource(pool->mirror_resource); in hws_pool_resource_free() 30 pool->mirror_resource = NULL; in hws_pool_resource_free() 35 hws_pool_create_one_resource(struct mlx5hws_pool *pool, u32 log_range, in hws_pool_create_one_resource() argument [all …]
|
| /linux/net/core/ |
| H A D | page_pool.c | 46 #define alloc_stat_inc(pool, __stat) (pool->alloc_stats.__stat++) argument 48 #define recycle_stat_inc(pool, __stat) \ argument 50 struct page_pool_recycle_stats __percpu *s = pool->recycle_stats; \ 54 #define recycle_stat_add(pool, __stat, val) \ argument 56 struct page_pool_recycle_stats __percpu *s = pool->recycle_stats; \ 75 * page_pool_get_stats() - fetch page pool stats 76 * @pool: pool from which page was allocated 85 bool page_pool_get_stats(const struct page_pool *pool, in page_pool_get_stats() argument 94 stats->alloc_stats.fast += pool->alloc_stats.fast; in page_pool_get_stats() 95 stats->alloc_stats.slow += pool->alloc_stats.slow; in page_pool_get_stats() [all …]
|
| H A D | page_pool_user.c | 18 /* Protects: page_pools, netdevice->page_pools, pool->p.napi, pool->slow.netdev, 19 * pool->user. 25 * linked to a netdev at creation time. Following page pool "visibility" 32 * to error, or (c) the entire namespace which owned this pool disappeared 36 typedef int (*pp_nl_fill_cb)(struct sk_buff *rsp, const struct page_pool *pool, 42 struct page_pool *pool; in netdev_nl_page_pool_get_do() local 47 pool = xa_load(&page_pools, id); in netdev_nl_page_pool_get_do() 48 if (!pool || hlist_unhashed(&pool->user.list) || in netdev_nl_page_pool_get_do() 49 !net_eq(dev_net(pool->slow.netdev), genl_info_net(info))) { in netdev_nl_page_pool_get_do() 60 err = fill(rsp, pool, info); in netdev_nl_page_pool_get_do() [all …]
|
| /linux/drivers/net/ethernet/ti/ |
| H A D | k3-cppi-desc-pool.c | 2 /* TI K3 CPPI5 descriptors pool API 15 #include "k3-cppi-desc-pool.h" 28 void k3_cppi_desc_pool_destroy(struct k3_cppi_desc_pool *pool) in k3_cppi_desc_pool_destroy() argument 30 if (!pool) in k3_cppi_desc_pool_destroy() 33 WARN(gen_pool_size(pool->gen_pool) != gen_pool_avail(pool->gen_pool), in k3_cppi_desc_pool_destroy() 35 gen_pool_size(pool->gen_pool), in k3_cppi_desc_pool_destroy() 36 gen_pool_avail(pool->gen_pool)); in k3_cppi_desc_pool_destroy() 37 if (pool->cpumem) in k3_cppi_desc_pool_destroy() 38 dma_free_coherent(pool->dev, pool->mem_size, pool->cpumem, in k3_cppi_desc_pool_destroy() 39 pool->dma_addr); in k3_cppi_desc_pool_destroy() [all …]
|
| /linux/mm/ |
| H A D | mempool.c | 3 * memory buffer pool support. Such pools are mostly used 41 static void poison_error(struct mempool *pool, void *element, size_t size, in poison_error() argument 44 const int nr = pool->curr_nr; in poison_error() 50 pr_err("Mempool %p size %zu\n", pool, size); in poison_error() 58 static void __check_element(struct mempool *pool, void *element, size_t size) in __check_element() argument 67 poison_error(pool, element, size, i); in __check_element() 74 static void check_element(struct mempool *pool, void *element) in check_element() argument 81 if (pool->free == mempool_kfree) { in check_element() 82 __check_element(pool, element, (size_t)pool->pool_data); in check_element() 83 } else if (pool->free == mempool_free_slab) { in check_element() [all …]
|
| H A D | dmapool.c | 3 * DMA Pool allocator 14 * The current design of this allocator is fairly simple. The pool is 48 struct dma_pool { /* the pool */ 75 struct dma_pool *pool; in pools_show() local 81 list_for_each_entry(pool, &dev->dma_pools, pools) { in pools_show() 82 /* per-pool info, no real statistics yet */ in pools_show() 84 pool->name, pool->nr_active, in pools_show() 85 pool->nr_blocks, pool->size, in pools_show() 86 pool->nr_pages); in pools_show() 96 static void pool_check_block(struct dma_pool *pool, struct dma_block *block, in pool_check_block() argument [all …]
|
| /linux/drivers/md/ |
| H A D | dm-thin.c | 42 * The block size of the device holding pool data must be 194 * A pool device ties together a metadata device and a data device. It 201 * The pool runs in various modes. Ordered in degraded order for comparisons. 232 struct pool { struct 234 struct dm_target *ti; /* Only set if a pool target is bound */ argument 290 static void metadata_operation_failed(struct pool *pool, const char *op, int r); argument 292 static enum pool_mode get_pool_mode(struct pool *pool) in get_pool_mode() argument 294 return pool->pf.mode; in get_pool_mode() 297 static void notify_of_pool_mode_change(struct pool *pool) in notify_of_pool_mode_change() argument 307 enum pool_mode mode = get_pool_mode(pool); in notify_of_pool_mode_change() [all …]
|
| /linux/drivers/gpu/drm/panthor/ |
| H A D | panthor_heap.c | 79 * struct panthor_heap_pool - Pool of heap contexts 81 * The pool is attached to a panthor_file and can't be shared across processes. 90 /** @vm: VM this pool is bound to. */ 102 /** @size: Size of all chunks across all heaps in the pool. */ 114 static int panthor_get_heap_ctx_offset(struct panthor_heap_pool *pool, int id) in panthor_get_heap_ctx_offset() argument 116 return panthor_heap_ctx_stride(pool->ptdev) * id; in panthor_get_heap_ctx_offset() 119 static void *panthor_get_heap_ctx(struct panthor_heap_pool *pool, int id) in panthor_get_heap_ctx() argument 121 return pool->gpu_contexts->kmap + in panthor_get_heap_ctx() 122 panthor_get_heap_ctx_offset(pool, id); in panthor_get_heap_ctx() 125 static void panthor_free_heap_chunk(struct panthor_heap_pool *pool, in panthor_free_heap_chunk() argument [all …]
|
| /linux/kernel/cgroup/ |
| H A D | dmem.c | 113 static void dmemcg_pool_get(struct dmem_cgroup_pool_state *pool) in dmemcg_pool_get() argument 115 refcount_inc(&pool->ref); in dmemcg_pool_get() 118 static bool dmemcg_pool_tryget(struct dmem_cgroup_pool_state *pool) in dmemcg_pool_tryget() argument 120 return refcount_inc_not_zero(&pool->ref); in dmemcg_pool_tryget() 123 static void dmemcg_pool_put(struct dmem_cgroup_pool_state *pool) in dmemcg_pool_put() argument 125 if (!refcount_dec_and_test(&pool->ref)) in dmemcg_pool_put() 128 call_rcu(&pool->rcu, dmemcg_pool_free_rcu); in dmemcg_pool_put() 133 struct dmem_cgroup_pool_state *pool = container_of(rcu, typeof(*pool), rcu); in dmemcg_pool_free_rcu() local 135 if (pool->parent) in dmemcg_pool_free_rcu() 136 dmemcg_pool_put(pool->parent); in dmemcg_pool_free_rcu() [all …]
|
| /linux/sound/core/seq/ |
| H A D | seq_memory.c | 22 static inline int snd_seq_pool_available(struct snd_seq_pool *pool) in snd_seq_pool_available() argument 24 return pool->total_elements - atomic_read(&pool->counter); in snd_seq_pool_available() 27 static inline int snd_seq_output_ok(struct snd_seq_pool *pool) in snd_seq_output_ok() argument 29 return snd_seq_pool_available(pool) >= pool->room; in snd_seq_output_ok() 225 static inline void free_cell(struct snd_seq_pool *pool, in free_cell() argument 228 cell->next = pool->free; in free_cell() 229 pool->free = cell; in free_cell() 230 atomic_dec(&pool->counter); in free_cell() 235 struct snd_seq_pool *pool; in snd_seq_cell_free() local 239 pool = cell->pool; in snd_seq_cell_free() [all …]
|
| /linux/include/net/ |
| H A D | xdp_sock_drv.h | 27 void xsk_tx_completed(struct xsk_buff_pool *pool, u32 nb_entries); 28 bool xsk_tx_peek_desc(struct xsk_buff_pool *pool, struct xdp_desc *desc); 29 u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, u32 max); 30 void xsk_tx_release(struct xsk_buff_pool *pool); 33 void xsk_set_rx_need_wakeup(struct xsk_buff_pool *pool); 34 void xsk_set_tx_need_wakeup(struct xsk_buff_pool *pool); 35 void xsk_clear_rx_need_wakeup(struct xsk_buff_pool *pool); 36 void xsk_clear_tx_need_wakeup(struct xsk_buff_pool *pool); 37 bool xsk_uses_need_wakeup(struct xsk_buff_pool *pool); 39 static inline u32 xsk_pool_get_headroom(struct xsk_buff_pool *pool) in xsk_pool_get_headroom() argument [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/ |
| H A D | dr_icm_pool.c | 24 struct mutex mutex; /* protect the ICM pool and ICM buddy */ 82 u32 offset = mlx5dr_icm_pool_dm_type_to_entry_size(chunk->buddy_mem->pool->icm_type); in mlx5dr_icm_pool_get_chunk_mr_addr() 94 u32 size = mlx5dr_icm_pool_dm_type_to_entry_size(chunk->buddy_mem->pool->icm_type); in mlx5dr_icm_pool_get_chunk_icm_addr() 102 chunk->buddy_mem->pool->icm_type); in mlx5dr_icm_pool_get_chunk_byte_size() 111 dr_icm_pool_mr_create(struct mlx5dr_icm_pool *pool) in dr_icm_pool_mr_create() argument 113 struct mlx5_core_dev *mdev = pool->dmn->mdev; in dr_icm_pool_mr_create() 123 icm_mr->dmn = pool->dmn; in dr_icm_pool_mr_create() 125 icm_mr->dm.length = mlx5dr_icm_pool_chunk_size_to_byte(pool->max_log_chunk_sz, in dr_icm_pool_mr_create() 126 pool->icm_type); in dr_icm_pool_mr_create() 128 switch (pool->icm_type) { in dr_icm_pool_mr_create() [all …]
|
| /linux/lib/ |
| H A D | genalloc.c | 16 * available. If new memory is added to the pool a lock has to be 146 * gen_pool_create - create a new special memory pool 148 * @nid: node id of the node the pool structure should be allocated on, or -1 150 * Create a new special memory pool that can be used to manage special purpose 155 struct gen_pool *pool; in gen_pool_create() local 157 pool = kmalloc_node(sizeof(struct gen_pool), GFP_KERNEL, nid); in gen_pool_create() 158 if (pool != NULL) { in gen_pool_create() 159 spin_lock_init(&pool->lock); in gen_pool_create() 160 INIT_LIST_HEAD(&pool->chunks); in gen_pool_create() 161 pool->min_alloc_order = min_alloc_order; in gen_pool_create() [all …]
|
| H A D | objpool.c | 19 objpool_init_percpu_slot(struct objpool_head *pool, in objpool_init_percpu_slot() argument 24 void *obj = (void *)&slot->entries[pool->capacity]; in objpool_init_percpu_slot() 28 slot->mask = pool->capacity - 1; in objpool_init_percpu_slot() 37 obj = obj + pool->obj_size; in objpool_init_percpu_slot() 40 pool->nr_objs++; in objpool_init_percpu_slot() 48 objpool_init_percpu_slots(struct objpool_head *pool, int nr_objs, in objpool_init_percpu_slots() argument 63 nodes = nr_objs / pool->nr_possible_cpus; in objpool_init_percpu_slots() 64 if (cpu_count < (nr_objs % pool->nr_possible_cpus)) in objpool_init_percpu_slots() 68 size = struct_size(slot, entries, pool->capacity) + in objpool_init_percpu_slots() 69 pool->obj_size * nodes; in objpool_init_percpu_slots() [all …]
|
| /linux/drivers/staging/media/atomisp/pci/runtime/rmgr/src/ |
| H A D | rmgr_vbuf.c | 22 * @brief VBUF resource pool - refpool 27 * @brief VBUF resource pool - writepool 34 * @brief VBUF resource pool - hmmbufferpool 115 * @brief Initialize the resource pool (host, vbuf) 117 * @param pool The pointer to the pool 119 int ia_css_rmgr_init_vbuf(struct ia_css_rmgr_vbuf_pool *pool) in ia_css_rmgr_init_vbuf() argument 125 assert(pool); in ia_css_rmgr_init_vbuf() 126 if (!pool) in ia_css_rmgr_init_vbuf() 128 /* initialize the recycle pool if used */ in ia_css_rmgr_init_vbuf() 129 if (pool->recycle && pool->size) { in ia_css_rmgr_init_vbuf() [all …]
|
| /linux/net/ceph/ |
| H A D | msgpool.c | 14 struct ceph_msgpool *pool = arg; in msgpool_alloc() local 17 msg = ceph_msg_new2(pool->type, pool->front_len, pool->max_data_items, in msgpool_alloc() 20 dout("msgpool_alloc %s failed\n", pool->name); in msgpool_alloc() 22 dout("msgpool_alloc %s %p\n", pool->name, msg); in msgpool_alloc() 23 msg->pool = pool; in msgpool_alloc() 30 struct ceph_msgpool *pool = arg; in msgpool_free() local 33 dout("msgpool_release %s %p\n", pool->name, msg); in msgpool_free() 34 msg->pool = NULL; in msgpool_free() 38 int ceph_msgpool_init(struct ceph_msgpool *pool, int type, in ceph_msgpool_init() argument 43 pool->type = type; in ceph_msgpool_init() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/lib/ |
| H A D | crypto.c | 13 * (for example, TLS) after last revalidation in a pool or a bulk. 19 #define MLX5_CRYPTO_DEK_POOL_CALC_FREED(pool) MLX5_CRYPTO_DEK_CALC_FREED(pool) argument 33 int num_deks; /* the total number of keys in this pool */ 34 int avail_deks; /* the number of available keys in this pool */ 35 int in_use_deks; /* the number of being used keys in this pool */ 288 mlx5_crypto_dek_bulk_create(struct mlx5_crypto_dek_pool *pool) in mlx5_crypto_dek_bulk_create() argument 290 struct mlx5_crypto_dek_priv *dek_priv = pool->mdev->mlx5e_res.dek_priv; in mlx5_crypto_dek_bulk_create() 291 struct mlx5_core_dev *mdev = pool->mdev; in mlx5_crypto_dek_bulk_create() 313 err = mlx5_crypto_create_dek_bulk(mdev, pool->key_purpose, in mlx5_crypto_dek_bulk_create() 334 mlx5_crypto_dek_pool_add_bulk(struct mlx5_crypto_dek_pool *pool) in mlx5_crypto_dek_pool_add_bulk() argument [all …]
|
| /linux/include/net/page_pool/ |
| H A D | helpers.h | 24 * allocated from page pool. There is no cache line dirtying for 'struct page' 25 * when a page is recycled back to the page pool. 29 * page allocated from page pool. Page splitting enables memory saving and thus 48 * the same page when a page is split. The API user must setup pool->p.max_len 49 * and pool->p.offset correctly and ensure that page_pool_put_page() is called 67 bool page_pool_get_stats(const struct page_pool *pool, 88 * @pool: pool from which to allocate 92 static inline struct page *page_pool_dev_alloc_pages(struct page_pool *pool) in page_pool_dev_alloc_pages() argument 96 return page_pool_alloc_pages(pool, gfp); in page_pool_dev_alloc_pages() 101 * @pool: pool from which to allocate [all …]
|
| /linux/tools/testing/selftests/drivers/net/mlxsw/ |
| H A D | sharedbuffer_configuration.py | 16 objects, pool, tcbind and portpool. Provide an interface to get random 18 1. Pool: 22 - random pool number 30 for pool in pools: 31 self._pools.append(pool) 47 def _get_th(self, pool): argument 50 if pool["thtype"] == "dynamic": 58 for pool in self._pools: 59 if pool["type"] == "ingress": 60 ing_pools.append(pool) [all …]
|
| /linux/drivers/gpu/drm/ttm/tests/ |
| H A D | ttm_pool_test.c | 80 struct ttm_pool *pool; in ttm_pool_pre_populated() local 87 pool = kunit_kzalloc(test, sizeof(*pool), GFP_KERNEL); in ttm_pool_pre_populated() 88 KUNIT_ASSERT_NOT_NULL(test, pool); in ttm_pool_pre_populated() 90 ttm_pool_init(pool, devs->dev, NUMA_NO_NODE, TTM_ALLOCATION_POOL_USE_DMA_ALLOC); in ttm_pool_pre_populated() 92 err = ttm_pool_alloc(pool, tt, &simple_ctx); in ttm_pool_pre_populated() 95 ttm_pool_free(pool, tt); in ttm_pool_pre_populated() 98 return pool; in ttm_pool_pre_populated() 141 struct ttm_pool *pool; in ttm_pool_alloc_basic() local 151 pool = kunit_kzalloc(test, sizeof(*pool), GFP_KERNEL); in ttm_pool_alloc_basic() 152 KUNIT_ASSERT_NOT_NULL(test, pool); in ttm_pool_alloc_basic() [all …]
|
| /linux/drivers/gpu/drm/amd/display/dc/resource/dce60/ |
| H A D | dce60_resource.c | 824 static void dce60_resource_destruct(struct dce110_resource_pool *pool) in dce60_resource_destruct() argument 828 for (i = 0; i < pool->base.pipe_count; i++) { in dce60_resource_destruct() 829 if (pool->base.opps[i] != NULL) in dce60_resource_destruct() 830 dce110_opp_destroy(&pool->base.opps[i]); in dce60_resource_destruct() 832 if (pool->base.transforms[i] != NULL) in dce60_resource_destruct() 833 dce60_transform_destroy(&pool->base.transforms[i]); in dce60_resource_destruct() 835 if (pool->base.ipps[i] != NULL) in dce60_resource_destruct() 836 dce_ipp_destroy(&pool->base.ipps[i]); in dce60_resource_destruct() 838 if (pool->base.mis[i] != NULL) { in dce60_resource_destruct() 839 kfree(TO_DCE_MEM_INPUT(pool->base.mis[i])); in dce60_resource_destruct() [all …]
|
| /linux/drivers/gpu/drm/amd/display/dc/resource/dce80/ |
| H A D | dce80_resource.c | 830 static void dce80_resource_destruct(struct dce110_resource_pool *pool) in dce80_resource_destruct() argument 834 for (i = 0; i < pool->base.pipe_count; i++) { in dce80_resource_destruct() 835 if (pool->base.opps[i] != NULL) in dce80_resource_destruct() 836 dce110_opp_destroy(&pool->base.opps[i]); in dce80_resource_destruct() 838 if (pool->base.transforms[i] != NULL) in dce80_resource_destruct() 839 dce80_transform_destroy(&pool->base.transforms[i]); in dce80_resource_destruct() 841 if (pool->base.ipps[i] != NULL) in dce80_resource_destruct() 842 dce_ipp_destroy(&pool->base.ipps[i]); in dce80_resource_destruct() 844 if (pool->base.mis[i] != NULL) { in dce80_resource_destruct() 845 kfree(TO_DCE_MEM_INPUT(pool->base.mis[i])); in dce80_resource_destruct() [all …]
|
| /linux/drivers/staging/octeon/ |
| H A D | ethernet-mem.c | 17 * cvm_oct_fill_hw_skbuff - fill the supplied hardware pool with skbuffs 18 * @pool: Pool to allocate an skbuff for 19 * @size: Size of the buffer needed for the pool 24 static int cvm_oct_fill_hw_skbuff(int pool, int size, int elements) in cvm_oct_fill_hw_skbuff() argument 35 cvmx_fpa_free(skb->data, pool, size / 128); in cvm_oct_fill_hw_skbuff() 42 * cvm_oct_free_hw_skbuff- free hardware pool skbuffs 43 * @pool: Pool to allocate an skbuff for 44 * @size: Size of the buffer needed for the pool 47 static void cvm_oct_free_hw_skbuff(int pool, int size, int elements) in cvm_oct_free_hw_skbuff() argument 52 memory = cvmx_fpa_alloc(pool); in cvm_oct_free_hw_skbuff() [all …]
|
| /linux/include/linux/ |
| H A D | genalloc.h | 16 * available. If new memory is added to the pool a lock has to be 46 * @pool: the pool being allocated from 53 void *data, struct gen_pool *pool, 57 * General purpose special memory pool descriptor. 61 struct list_head chunks; /* list of chunks in this pool */ 71 * General purpose special memory pool chunk descriptor. 74 struct list_head next_chunk; /* next chunk in pool */ 98 extern phys_addr_t gen_pool_virt_to_phys(struct gen_pool *pool, unsigned long); 102 static inline int gen_pool_add_virt(struct gen_pool *pool, unsigned long addr, in gen_pool_add_virt() argument 105 return gen_pool_add_owner(pool, addr, phys, size, nid, NULL); in gen_pool_add_virt() [all …]
|