forked from Minki/linux
bpf: add schedule points to map alloc/free
While using large percpu maps, htab_map_alloc() can hold cpu for hundreds of ms. This patch adds cond_resched() calls to percpu alloc/free call sites, all running in process context. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
9dbd2d948e
commit
9147efcbe0
@ -114,6 +114,7 @@ static void htab_free_elems(struct bpf_htab *htab)
|
||||
pptr = htab_elem_get_ptr(get_htab_elem(htab, i),
|
||||
htab->map.key_size);
|
||||
free_percpu(pptr);
|
||||
cond_resched();
|
||||
}
|
||||
free_elems:
|
||||
bpf_map_area_free(htab->elems);
|
||||
@ -159,6 +160,7 @@ static int prealloc_init(struct bpf_htab *htab)
|
||||
goto free_elems;
|
||||
htab_elem_set_ptr(get_htab_elem(htab, i), htab->map.key_size,
|
||||
pptr);
|
||||
cond_resched();
|
||||
}
|
||||
|
||||
skip_percpu_elems:
|
||||
|
Loading…
Reference in New Issue
Block a user