From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4487C433EF for ; Thu, 4 Nov 2021 16:39:53 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6533C61244 for ; Thu, 4 Nov 2021 16:39:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 6533C61244 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id BA0CA940007; Thu, 4 Nov 2021 12:39:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B50686B0072; Thu, 4 Nov 2021 12:39:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F0E2940007; Thu, 4 Nov 2021 12:39:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0023.hostedemail.com [216.40.44.23]) by kanga.kvack.org (Postfix) with ESMTP id 8FC146B006C for ; Thu, 4 Nov 2021 12:39:52 -0400 (EDT) Received: from smtpin06.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 4BB5F1852463D for ; Thu, 4 Nov 2021 16:39:52 +0000 (UTC) X-FDA: 78771809424.06.DE0CA67 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by imf30.hostedemail.com (Postfix) with ESMTP id 9068DE001983 for ; Thu, 4 Nov 2021 16:39:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1636043991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WtWxj5bVWIRUkIdmlTWUpr8g05fwqa8qk6FC6Lvym2I=; b=a5wZpinWfSw5hgL9uRg0J/KYSAOQ2HoMvJlL7SmpTKV5f+DmvViQuyRSwvGQoCYZZanCbn 5++fVr1K4EG21wqrlIhTElJkT5FYgs9E9oo+JYGB3onruWRlmPw5meYxB6PpCXqw2u1V/u 0kjaALJFhYSmSaduMr/E2qNlJSJOpgU= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-567-ORySt1tKO9KRX2URQz7R_g-1; Thu, 04 Nov 2021 12:39:48 -0400 X-MC-Unique: ORySt1tKO9KRX2URQz7R_g-1 Received: by mail-wr1-f71.google.com with SMTP id h7-20020adfaa87000000b001885269a937so58503wrc.17 for ; Thu, 04 Nov 2021 09:39:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=WtWxj5bVWIRUkIdmlTWUpr8g05fwqa8qk6FC6Lvym2I=; b=TppGuoqaIUkVyZEDqgYxXSjGqvpmewts/GkmdEE9NyLBfHQw3Bo8Ye0yUcURUq/cHe CS/8NZnWEZCR6FysCnch6xuQW4xWRAGsgq+osMrilgyayXlvoFE9w9Y/IuMQWxB2UhK3 dO6EgEGV43Z5w80Lr7m4Jy5QSmsW413CxCcjHHRtCB8G91sdgv7aqns/pxbRONB08T+N niEwT6UXjcdOFxjixC0Mbr/Q7RGqQakymnoGd6kYz4CM/BwakxlWPifLCDHk5Yrbaua4 uFBUzjtCSlAYuekWKgy75NdiU4UNhEHRL9mNf31XIKXCaLi4+xK2rvifCDks13WwFhMi Rzqg== X-Gm-Message-State: AOAM532r0d+g8B+MKICSo7MR6/r4cE68KYnqby7cHVSZngs5mQ75WwOm sztZCbkG5Huo6MT5T30d1niJYbA7Cfn3b8YLDWKEh1xEZzAeIQJf3ue5A9QI5cnbDp3Ttl819xe i6HLWlxin8zA= X-Received: by 2002:a1c:27c1:: with SMTP id n184mr24191267wmn.190.1636043985953; Thu, 04 Nov 2021 09:39:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyIH+cjej3i1dltEBRmTsfN3a+98KZkYrNCWjyE5e0C19BkFlHpqTrypOIBu2BPOpHV6iXeUQ== X-Received: by 2002:a1c:27c1:: with SMTP id n184mr24191228wmn.190.1636043985650; Thu, 04 Nov 2021 09:39:45 -0700 (PDT) Received: from ?IPv6:2a0c:5a80:3c10:3400:3c70:6643:6e71:7eae? ([2a0c:5a80:3c10:3400:3c70:6643:6e71:7eae]) by smtp.gmail.com with ESMTPSA id u16sm8594883wmc.21.2021.11.04.09.39.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Nov 2021 09:39:45 -0700 (PDT) Message-ID: <3190fc080138108c189626e22676aaae80b72414.camel@redhat.com> Subject: Re: [mm/page_alloc] 5541e53659: BUG:spinlock_bad_magic_on_CPU From: Nicolas Saenz Julienne To: kernel test robot Cc: lkp@lists.01.org, lkp@intel.com, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, frederic@kernel.org, tglx@linutronix.de, peterz@infradead.org, mtosatti@redhat.com, nilal@redhat.com, mgorman@suse.de, linux-rt-users@vger.kernel.org, vbabka@suse.cz, cl@linux.com, ppandit@redhat.com Date: Thu, 04 Nov 2021 17:39:44 +0100 In-Reply-To: <20211104143809.GB6499@xsang-OptiPlex-9020> References: <20211104143809.GB6499@xsang-OptiPlex-9020> User-Agent: Evolution 3.42.0 (3.42.0-1.fc35) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=a5wZpinW; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf30.hostedemail.com: domain of nsaenzju@redhat.com has no SPF policy when checking 216.205.24.124) smtp.mailfrom=nsaenzju@redhat.com X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 9068DE001983 X-Stat-Signature: 46mxh3oey9jo5boof5c8npxomfdaz41m X-HE-Tag: 1636043975-146538 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, 2021-11-04 at 22:38 +0800, kernel test robot wrote: >=20 > Greeting, >=20 > FYI, we noticed the following commit (built with gcc-9): >=20 > commit: 5541e5365954069e4c7b649831c0e41bc9e5e081 ("[PATCH v2 2/3] mm/pa= ge_alloc: Convert per-cpu lists' local locks to per-cpu spin locks") > url: https://github.com/0day-ci/linux/commits/Nicolas-Saenz-Julienne/mm= -page_alloc-Remote-per-cpu-page-list-drain-support/20211104-010825 > base: https://github.com/hnaz/linux-mm master > patch link: https://lore.kernel.org/lkml/20211103170512.2745765-3-nsaen= zju@redhat.com >=20 > in testcase: boot >=20 > on test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2= -m 16G >=20 > caused below changes (please refer to attached dmesg/kmsg for entire lo= g/backtrace): >=20 >=20 > +--------------------------------------------+------------+------------= + > > | 69c421f2b4 | 5541e53659 = | > +--------------------------------------------+------------+------------= + > > boot_successes | 11 | 0 = | > > boot_failures | 0 | 11 = | > > BUG:spinlock_bad_magic_on_CPU | 0 | 11 = | > > BUG:using_smp_processor_id()in_preemptible | 0 | 11 = | > +--------------------------------------------+------------+------------= + >=20 >=20 > If you fix the issue, kindly add following tag > Reported-by: kernel test robot >=20 >=20 > [ 0.161872][ T0] BUG: spinlock bad magic on CPU#0, swapper/0 > [ 0.162248][ T0] lock: 0xeb24bef0, .magic: 00000000, .owner: swa= pper/0, .owner_cpu: 0 > [ 0.162767][ T0] CPU: 0 PID: 0 Comm: swapper Not tainted 5.15.0-r= c7-mm1-00437-g5541e5365954 #1 > [ 0.163325][ T0] Call Trace: > [ 0.163524][ T0] dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4)= )=20 > [ 0.163802][ T0] dump_stack (lib/dump_stack.c:114)=20 > [ 0.164050][ T0] spin_bug (kernel/locking/spinlock_debug.c:70 kernel/lo= cking/spinlock_debug.c:77)=20 > [ 0.164296][ T0] do_raw_spin_unlock (arch/x86/include/asm/atomic.h:29 i= nclude/linux/atomic/atomic-instrumented.h:28 include/asm-generic/qspinloc= k.h:28 kernel/locking/spinlock_debug.c:100 kernel/locking/spinlock_debug.= c:140)=20 > [ 0.164624][ T0] _raw_spin_unlock_irqrestore (include/linux/spinlock_ap= i_smp.h:160 kernel/locking/spinlock.c:194)=20 > [ 0.164971][ T0] free_unref_page (include/linux/spinlock.h:423 mm/page_= alloc.c:3400)=20 > [ 0.165253][ T0] free_the_page (mm/page_alloc.c:699)=20 > [ 0.165521][ T0] __free_pages (mm/page_alloc.c:5453)=20 > [ 0.165785][ T0] add_highpages_with_active_regions (include/linux/mm.h:= 2511 arch/x86/mm/init_32.c:416)=20 > [ 0.166179][ T0] set_highmem_pages_init (arch/x86/mm/highmem_32.c:30)=20 > [ 0.166501][ T0] mem_init (arch/x86/mm/init_32.c:749 (discriminator 2))= =20 > [ 0.166749][ T0] start_kernel (init/main.c:842 init/main.c:988)=20 > [ 0.167026][ T0] ? early_idt_handler_common (arch/x86/kernel/head_32.S:= 417)=20 > [ 0.167369][ T0] i386_start_kernel (arch/x86/kernel/head32.c:57)=20 > [ 0.167662][ T0] startup_32_smp (arch/x86/kernel/head_32.S:328)=20 I did test this with lock debugging enabled, but I somehow missed this st= ack trace. Here's the fix: diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 7dbdab100461..c8964e28aa59 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6853,6 +6853,7 @@ static void per_cpu_pages_init(struct per_cpu_pages= *pcp, struct per_cpu_zonesta pcp->high =3D BOOT_PAGESET_HIGH; pcp->batch =3D BOOT_PAGESET_BATCH; pcp->free_factor =3D 0; + spin_lock_init(&pcp->lock); } =20 static void __zone_set_pageset_high_and_batch(struct zone *zone, unsigne= d long high, @@ -6902,7 +6903,6 @@ void __meminit setup_zone_pageset(struct zone *zone= ) struct per_cpu_zonestat *pzstats; =20 pcp =3D per_cpu_ptr(zone->per_cpu_pageset, cpu); - spin_lock_init(&pcp->lock); pzstats =3D per_cpu_ptr(zone->per_cpu_zonestats, cpu); per_cpu_pages_init(pcp, pzstats); } --=20 Nicol=C3=A1s S=C3=A1enz