bpf: arena: reschedule while freeing the arena pages - #13440
bpf: arena: reschedule while freeing the arena pages#13440kernel-patches-daemon-bpf[bot] wants to merge 1 commit into
Conversation
|
Upstream branch: 5e289c5 |
AI reviewed your patch. Please fix the bug or email reply why it's not a bug. In-Reply-To-Subject: |
|
Forwarding comment 5399007475 via email |
71e031f to
909ca3a
Compare
|
Upstream branch: d83fba2 |
f31c4f0 to
988a694
Compare
909ca3a to
b010507
Compare
|
Upstream branch: ce36e38 |
988a694 to
cbafff4
Compare
b010507 to
975b11a
Compare
|
Upstream branch: 05ea1b6 |
cbafff4 to
e8b7d32
Compare
975b11a to
f8c8078
Compare
On non-preemptible kernels that is long enough to trip both the RCU stall detector and the softlockup watchdog. Observed on production arm64 hosts at Meta: rcu: INFO: rcu_sched self-detected stall on CPU rcu: 37-....: (20999 ticks this GP) idle=3834/1/0x4000000000000000 Workqueue: events_unbound bpf_map_free_deferred Call trace: __apply_to_page_range+0x404/0x518 apply_to_existing_page_range+0x18/0x28 arena_map_free+0x54/0x98 bpf_map_free_deferred+0x70/0xf8 process_scheduled_works+0x17c/0x400 worker_thread+0x198/0x498 [...] watchdog: BUG: soft lockup - CPU#37 stuck for 44s! [kworker/u288:15] Kernel panic - not syncing: softlockup: hung tasks arena_map_free() sweeps the whole 4GiB arena address range in a single apply_to_existing_page_range() call and drops every populated page from the walk callback. Give up the CPU after releasing each page, using cond_resched(). Fixes: 3174603 ("bpf: Introduce bpf_arena.") Signed-off-by: Breno Leitao <leitao@debian.org>
|
Upstream branch: 1555de3 |
e8b7d32 to
4da863b
Compare
Pull request for series with
subject: bpf: arena: reschedule while freeing the arena pages
version: 1
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=1151075