percpu: remove pcpu_alloc_size()
pcpu_alloc_size() was added in 7ac5c53e00
"mm/percpu.c: introduce
pcpu_alloc_size()", which is used to get the allocated memory size in bpf.
However, pcpu_alloc_size() is no longer used in "bpf: Use c->unit_size to
select target cache during free" because its actuall allocated memory size
may change at runtime due to its slab merging mechanism. Therefore,
pcpu_alloc_size() can be removed.
Link: https://lkml.kernel.org/r/tencent_AD5C50E8D78C07A3CE539BD5F6BF39706507@qq.com
Signed-off-by: Jianhui Zhou <912460177@qq.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: JonasZhou <JonasZhou@zhaoxin.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
43c9074e6f
commit
47baed6a13
@ -135,7 +135,6 @@ extern void __init setup_per_cpu_areas(void);
|
|||||||
|
|
||||||
extern void __percpu *pcpu_alloc_noprof(size_t size, size_t align, bool reserved,
|
extern void __percpu *pcpu_alloc_noprof(size_t size, size_t align, bool reserved,
|
||||||
gfp_t gfp) __alloc_size(1);
|
gfp_t gfp) __alloc_size(1);
|
||||||
extern size_t pcpu_alloc_size(void __percpu *__pdata);
|
|
||||||
|
|
||||||
#define __alloc_percpu_gfp(_size, _align, _gfp) \
|
#define __alloc_percpu_gfp(_size, _align, _gfp) \
|
||||||
alloc_hooks(pcpu_alloc_noprof(_size, _align, false, _gfp))
|
alloc_hooks(pcpu_alloc_noprof(_size, _align, false, _gfp))
|
||||||
|
31
mm/percpu.c
31
mm/percpu.c
@ -2216,37 +2216,6 @@ static void pcpu_balance_workfn(struct work_struct *work)
|
|||||||
mutex_unlock(&pcpu_alloc_mutex);
|
mutex_unlock(&pcpu_alloc_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* pcpu_alloc_size - the size of the dynamic percpu area
|
|
||||||
* @ptr: pointer to the dynamic percpu area
|
|
||||||
*
|
|
||||||
* Returns the size of the @ptr allocation. This is undefined for statically
|
|
||||||
* defined percpu variables as there is no corresponding chunk->bound_map.
|
|
||||||
*
|
|
||||||
* RETURNS:
|
|
||||||
* The size of the dynamic percpu area.
|
|
||||||
*
|
|
||||||
* CONTEXT:
|
|
||||||
* Can be called from atomic context.
|
|
||||||
*/
|
|
||||||
size_t pcpu_alloc_size(void __percpu *ptr)
|
|
||||||
{
|
|
||||||
struct pcpu_chunk *chunk;
|
|
||||||
unsigned long bit_off, end;
|
|
||||||
void *addr;
|
|
||||||
|
|
||||||
if (!ptr)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
addr = __pcpu_ptr_to_addr(ptr);
|
|
||||||
/* No pcpu_lock here: ptr has not been freed, so chunk is still alive */
|
|
||||||
chunk = pcpu_chunk_addr_search(addr);
|
|
||||||
bit_off = (addr - chunk->base_addr) / PCPU_MIN_ALLOC_SIZE;
|
|
||||||
end = find_next_bit(chunk->bound_map, pcpu_chunk_map_bits(chunk),
|
|
||||||
bit_off + 1);
|
|
||||||
return (end - bit_off) * PCPU_MIN_ALLOC_SIZE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* free_percpu - free percpu area
|
* free_percpu - free percpu area
|
||||||
* @ptr: pointer to area to free
|
* @ptr: pointer to area to free
|
||||||
|
Loading…
Reference in New Issue
Block a user