Messages in this thread | | | From | Alexei Starovoitov <> | Date | Fri, 15 Oct 2021 21:58:40 +0200 | Subject | Re: [PATCH] bpf: use count for prealloc hashtab too |
| |
On Fri, Oct 15, 2021 at 11:04 AM Chengming Zhou <zhouchengming@bytedance.com> wrote: > > We only use count for kmalloc hashtab not for prealloc hashtab, because > __pcpu_freelist_pop() return NULL when no more elem in pcpu freelist. > > But the problem is that __pcpu_freelist_pop() will traverse all CPUs and > spin_lock for all CPUs to find there is no more elem at last. > > We encountered bad case on big system with 96 CPUs that alloc_htab_elem() > would last for 1ms. This patch use count for prealloc hashtab too, > avoid traverse and spin_lock for all CPUs in this case. > > Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
It's not clear from the commit log what you're solving. The atomic inc/dec in critical path of prealloc maps hurts performance. That's why it's not used.
| |