Ejemplo n.º 1
0
void *
cfs_mem_cache_cpt_alloc(struct kmem_cache *cachep, struct cfs_cpt_table *cptab,
			int cpt, gfp_t flags)
{
	return kmem_cache_alloc_node(cachep, flags,
				     cfs_cpt_spread_node(cptab, cpt));
}
Ejemplo n.º 2
0
void *
cfs_cpt_malloc(struct cfs_cpt_table *cptab, int cpt,
	       size_t nr_bytes, gfp_t flags)
{
	return kmalloc_node(nr_bytes, flags,
			    cfs_cpt_spread_node(cptab, cpt));
}
Ejemplo n.º 3
0
void *
cfs_cpt_vzalloc(struct cfs_cpt_table *cptab, int cpt, size_t nr_bytes)
{
	/* vzalloc_node() sets __GFP_FS by default but no current Kernel
	 * exported entry-point allows for both a NUMA node specification
	 * and a custom allocation flags mask. This may be an issue since
	 * __GFP_FS usage can cause some deadlock situations in our code,
	 * like when memory reclaim started, within the same context of a
	 * thread doing FS operations, that can also attempt conflicting FS
	 * operations, ...
	 */
	return vzalloc_node(nr_bytes, cfs_cpt_spread_node(cptab, cpt));
}
Ejemplo n.º 4
0
void *
cfs_cpt_malloc(struct cfs_cpt_table *cptab, int cpt,
	       size_t nr_bytes, unsigned int flags)
{
	void    *ptr;

	ptr = kmalloc_node(nr_bytes, flags,
			   cfs_cpt_spread_node(cptab, cpt));
	if (ptr != NULL && (flags & __GFP_ZERO) != 0)
		memset(ptr, 0, nr_bytes);

	return ptr;
}
Ejemplo n.º 5
0
void *libcfs_kvzalloc_cpt(struct cfs_cpt_table *cptab, int cpt, size_t size,
			  gfp_t flags)
{
	return kvzalloc_node(size, flags, cfs_cpt_spread_node(cptab, cpt));
}
Ejemplo n.º 6
0
struct page *
cfs_page_cpt_alloc(struct cfs_cpt_table *cptab, int cpt, gfp_t flags)
{
	return alloc_pages_node(cfs_cpt_spread_node(cptab, cpt), flags, 0);
}
Ejemplo n.º 7
0
void *
cfs_cpt_vmalloc(struct cfs_cpt_table *cptab, int cpt, size_t nr_bytes)
{
	return vmalloc_node(nr_bytes, cfs_cpt_spread_node(cptab, cpt));
}