Re: linux-next test error: BUG: using __this_cpu_read() in preemptible code in __mod_memcg_state

From: Dmitry Vyukov
Date: Sat Apr 18 2020 - 03:04:54 EST


On Mon, Mar 9, 2020 at 2:27 PM Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> wrote:
> å 2020/3/9 äå5:56, Alex Shi åé:
> >
> >
> > å 2020/3/9 äå5:24, Kirill A. Shutemov åé:
> >>> check_preemption_disabled: 3 callbacks suppressed
> >>> BUG: using __this_cpu_read() in preemptible [00000000] code: syz-fuzzer/9432
> >>> caller is __mod_memcg_state+0x27/0x1a0 mm/memcontrol.c:689
> >>> CPU: 1 PID: 9432 Comm: syz-fuzzer Not tainted 5.6.0-rc4-next-20200306-syzkaller #0
> >>> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> >>> Call Trace:
> >>> __dump_stack lib/dump_stack.c:77 [inline]
> >>> dump_stack+0x188/0x20d lib/dump_stack.c:118
> >>> check_preemption_disabled lib/smp_processor_id.c:47 [inline]
> >>> __this_cpu_preempt_check.cold+0x84/0x90 lib/smp_processor_id.c:64
> >>> __mod_memcg_state+0x27/0x1a0 mm/memcontrol.c:689
> >>> __split_huge_page mm/huge_memory.c:2575 [inline]
> >>> split_huge_page_to_list+0x124b/0x3380 mm/huge_memory.c:2862
> >>> split_huge_page include/linux/huge_mm.h:167 [inline]
> >> It looks like a regression due to c8cba0cc2a80 ("mm/thp: narrow lru
> >> locking").
> >
> > yes, I guess so.
>
> Yes, it is a stupid mistake to pull out lock for __mod_memcg_state which
> should be in a lock.
>
> revert this patch should be all fine, since ClearPageCompound and page_ref_inc
> later may related with lru_list valid issue in release_pges.
>
>
> Sorry for the disaster!
>
> Alex

+linux-next, Stephen for currently open linux-next build/boot failure

Hi Alex,

What's the status of this? Was the guilty patch reverted? If so,
please mark it as invalid for syzbot, otherwise it still shows up as
open bug.