netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] bpf: add schedule points to map alloc/free
@ 2017-12-12 22:22 Eric Dumazet
  2017-12-12 23:33 ` Alexei Starovoitov
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Dumazet @ 2017-12-12 22:22 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann; +Cc: netdev

From: Eric Dumazet <edumazet@google.com>

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>
---
 kernel/bpf/hashtab.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/bpf/hashtab.c b/kernel/bpf/hashtab.c
index e469e05c8e83bc3256378644e3f3c26555651261..3905d4bc5b80d74f0b8f9e2e8f8526a0115ce239 100644
--- a/kernel/bpf/hashtab.c
+++ b/kernel/bpf/hashtab.c
@@ -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:

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH net] bpf: add schedule points to map alloc/free
  2017-12-12 22:22 [PATCH net] bpf: add schedule points to map alloc/free Eric Dumazet
@ 2017-12-12 23:33 ` Alexei Starovoitov
  0 siblings, 0 replies; 2+ messages in thread
From: Alexei Starovoitov @ 2017-12-12 23:33 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Alexei Starovoitov, Daniel Borkmann, netdev

On Tue, Dec 12, 2017 at 02:22:39PM -0800, Eric Dumazet wrote:
> From: Eric Dumazet <edumazet@google.com>
> 
> 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>

Applied, thanks Eric!

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-12-12 23:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-12 22:22 [PATCH net] bpf: add schedule points to map alloc/free Eric Dumazet
2017-12-12 23:33 ` Alexei Starovoitov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).