> On Dec 21, 2020, at 11:25 AM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > > From: Eric Dumazet <edumazet@xxxxxxxxxx> > > We noticed that with a LOCKDEP enabled kernel, > allocating a hash table with 65536 buckets would > use more than 60ms. > > htab_init_buckets() runs from process context, > it is safe to schedule to avoid latency spikes. > > Fixes: c50eb518e262 ("bpf: Use separate lockdep class for each hashtab") > Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx> > Reported-By: John Sperbeck <jsperbeck@xxxxxxxxxx> > Cc: Song Liu <songliubraving@xxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx> Thanks for the fix! > --- > kernel/bpf/hashtab.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/bpf/hashtab.c b/kernel/bpf/hashtab.c > index 7e848200cd268a0f9ed063f0b641d3c355787013..c1ac7f964bc997925fd427f5192168829d812e5d 100644 > --- a/kernel/bpf/hashtab.c > +++ b/kernel/bpf/hashtab.c > @@ -152,6 +152,7 @@ static void htab_init_buckets(struct bpf_htab *htab) > lockdep_set_class(&htab->buckets[i].lock, > &htab->lockdep_key); > } > + cond_resched(); > } > } > > -- > 2.29.2.729.g45daf8777d-goog >