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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D684CA0FE1 for ; Fri, 1 Sep 2023 09:08:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6BFDD28000A; Fri, 1 Sep 2023 05:08:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 66F3F8D0002; Fri, 1 Sep 2023 05:08:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 51A2028000A; Fri, 1 Sep 2023 05:08:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3D82D8D0002 for ; Fri, 1 Sep 2023 05:08:31 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id E9D7A1201AB for ; Fri, 1 Sep 2023 09:08:30 +0000 (UTC) X-FDA: 81187452780.07.CCF7877 Received: from mail-yw1-f179.google.com (mail-yw1-f179.google.com [209.85.128.179]) by imf01.hostedemail.com (Postfix) with ESMTP id E306940020 for ; Fri, 1 Sep 2023 09:08:28 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=MJTsq7LQ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of hughd@google.com designates 209.85.128.179 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693559308; a=rsa-sha256; cv=none; b=j7TtPyZ4rnCtUhb9ox7DkGJXxRa9WdIImIDQMZDDYn2o5N1+zODv7wQp80X8UOwdlolJUx eLA4Nt875FA+sm5QboNgELzieWanMq1OcwdpBtPSyI4bTRls/wsLy4KYo2briy31lFlvAR lLl4/SA1Z3auGaHt0hmU3IYX4B9OjWY= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=MJTsq7LQ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of hughd@google.com designates 209.85.128.179 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693559308; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=wQp453fyxfLaIMKLm7m/qCORi7oMVxxUFQzr/Nzu5P4=; b=pj7nD10CcCGPEEHEgI6M7btEw8LjXuCGhQoryAQHuzZaIZ5BT4JtPWrobdk1yfxtaG/ly9 O0LbOjdQUDUa9DlGb4Ac3GuOhhgFKsmsMOWs4suqt/FB/zdXJaFSb5Lyd9yJKeA26+nZle t6VA6kbXfVp4iBpBRdg9y7K71TGGwZE= Received: by mail-yw1-f179.google.com with SMTP id 00721157ae682-594f8a7125cso19675367b3.0 for ; Fri, 01 Sep 2023 02:08:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1693559308; x=1694164108; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=wQp453fyxfLaIMKLm7m/qCORi7oMVxxUFQzr/Nzu5P4=; b=MJTsq7LQtaZbMAhRLcLLZMsdMro1cqZ4A0Ty6FpA5jn4TJ2Rde7Y6U3qxqjK6tEerf HHHf+bDVPdDIUe8dXQGYK8gp0T2xa/wCN9yemWE/f9bAUo2kUPIL8wAs4ZHC/O1dr4Eg oWrc32ycK43/JlAiA94YBQc6fBJ8XI0q3E6gwLLmepu71kUjZUsUBffrL1wJJSoeavZ4 SP0aZ3RAZu+EZPHaBSE7iKJGwkofXZyqU13w1Rk76vJkwWMkj4w+zUP2KtG5krmBtfop 3FTUi0lsTQUT/uyl/FvrvHWgw7z4msEAJz+Ev2xuLnXi6gwe+ku0KEKfcJya8JUsykis Fq+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693559308; x=1694164108; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wQp453fyxfLaIMKLm7m/qCORi7oMVxxUFQzr/Nzu5P4=; b=Tb/j5IGnibK5GAiBPYTW+3mcGhyr1OY/P3hilbTun6eQcpviT4UBDammDSTb1mcN5Q ot1/KYEPmW3ruQGD7SW6Oo+O+QOPfJ7un/l3nmx7Lv7HJuKggc8LxD61ykwNCAn/rLZs YCdaUM9nHmaR6IxkbYS6iZchbxyEfDnP+DmL0suojs4jBaA+P/Z0HfXudnKwMyf0A1iW 2qLyjW4A34NAdY5tiVJnS8Mz8mUAyQt9kGvYI6PGYALiI7z1lQyx7xklnHNLszt23EBE lTzKK/zNhV81+63g5VwhO/7J7sfMBJ33/0eKe9yk7u+d5Qt2TNUN4jTwskStPd9RnnHJ EX7g== X-Gm-Message-State: AOJu0YxHV2zwImfCxwhRZWmtxR3JGXMj5wquF4VBPkLYY92fKLrGns91 itHIy/IQ75gpiB/8+YmQy5Nseg== X-Google-Smtp-Source: AGHT+IHcez0sRgs5TYw0I8gyY+EH/oBmuOE7IGCCPuDhc8AqV6eyui+E7HM9ojHfdeHqBTEcVYJWuA== X-Received: by 2002:a0d:e305:0:b0:58d:7599:676a with SMTP id m5-20020a0de305000000b0058d7599676amr1997048ywe.37.1693559307844; Fri, 01 Sep 2023 02:08:27 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id i184-20020a0dc6c1000000b005832fe29034sm959288ywd.89.2023.09.01.02.08.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Sep 2023 02:08:27 -0700 (PDT) Date: Fri, 1 Sep 2023 02:08:18 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Mikhail Gavrilov cc: Hugh Dickins , Andrew Morton , Bagas Sanjaya , linux-kernel@vger.kernel.org, linux-mm@kvack.org, regressions@lists.linux.dev Subject: Re: 6.6/regression/bisected - after commit a349d72fd9efc87c8fd1d16d3164752d84a7275b system stopped booting In-Reply-To: Message-ID: <98eb1ba4-5bd3-ee7-1a88-47b054dc938@google.com> References: <3548ca67-ce58-3bc6-fef5-348b98d7678b@google.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="-1463760895-1745119313-1693559307=:19235" X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: E306940020 X-Stat-Signature: 73dxcjgfb8pff34x68znnfgett6kzx94 X-HE-Tag: 1693559308-311767 X-HE-Meta: U2FsdGVkX1+jEfs9mfvZFLpZFQmv8ZFYESGVczaYJY4T3KCM6IsGJ6pkiCyKSsgnfwy9iwfnF11t3+8NA/MdloiGQw5CwnSzvMmOw9VgCJsdlPpwso/RCMq2AdNeXDcu0WX2j/tRjol/y1ZELmJWxZFIJt64ySDOXHfPKSC+tHr9awf9qk4wj/3L+DWeqlNlukuym/FOFWvTloeLUDZd3p97bq6vKakbxwBqHXsAITuIlIoTZJLR00o3yykCymQ96WvsRNX7b602Iq+GoXZodDTo9DpICZqhfaUAaY7DPjHaKw9DloJ8u2QZuuv3ljuKCFwz3rlqw5i2q9yoylfqHnXAypzH0rVwXbbiCxPFUJJWwx+L2ns4DPt51pL/tRC5Ml0veSGJ4Qrtxgk18cFK1FZOyAr+7q32YYWqKcBOdswKHHQSrMG41vsi8gkWMZ61571XiNlRe/f2vAYYZo1HJ/Ui2PI2RgS+1Wqo+fXrIuIqbiT1dX34Lyueq4CDya6DDB905bczAnKBSGmURRNqK0YFI8Go1gOsCBmJ6KW8WXx4HbYbRG8amHzwpvERg9nugJrMgZ+pYctCsTZRjNjrKrkixEIpm4jQPYfbng/Iy5b9wae8/BwLnHOL83zAA+PxsZGik3bZmborlc066w7wYc+5UvPS24OSf2Uy29cOAP8C6Xg88QHI8IV+xZyRo8nM3vcp09w69cUoqD+Kq/LikXs6RaxBma4zGwWs1ojAdlIsyQbFP4b0DFVNU7tA2Chs+yP/HxECNtNP6oZoLQJDugVhQwbegJ+1Uh50HoIyYxg2R6YqKf8gSInSfbiLyI9xyby1iNNgY9D7MUgbn+3yXVfD/f4sGkOsPuAOVwgteJbtzGHgvxZyufyXH07ycbduM1ENPeUBgCAWuOJXmLeE8aTS99Mh6Ows9BGBvDci0sdfbLytMoshhG+4mF/OFVsh4ziHlq31AeYvF0U1yMB qzq4PgpX /YstE9+2MKE5ZR53kMx8MebH5cGwbjw25k893so8C+NjM2h4gR1i8C84LW9oYUc6EoVy5JVZvlz67EX+PWdPgw6BAhYFE7Sdj7SPgpBS6QCc/L41iwiYjIYh3WP62+UNz2qIYDQHuTo8gP3AmP7dUIT0od7iyzjrxoWvZu8UFGglt6bp3m2pKZDapY24Y5NbQ/OiuqKJtrke/0e/ZFAhVTSqtpTNB7rgVjGGVMz3VIUJ+dd9H6oCsDiFO5+jryVcBWnA1eIF05dJx3rX9ZaGiVUPwRA+ZN83Lur/LzVPYrZ4AfYxT1YSoLBbRTe6grc49OBmK/ok19EpBqn+mvuor8pH4rbZS7KYd9AOz4+veHupnnothNEYTlMf4i7Y1xEnakHXn+nkUOkOy+xYyriMqgAujmTUIoht7XXxlKwstCApDao7GDbmBBVQy4tVcPZhDGgwXjw6+FK0A5jfnT3x9aBzAC5aV25NP0RgjbtfaNI5dW+JCKfDL4JgcuY2nO9gJGF0+QFvs80nz+t+yC8uvGtv7uQ== 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: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463760895-1745119313-1693559307=:19235 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE On Fri, 1 Sep 2023, Mikhail Gavrilov wrote: > On Fri, Sep 1, 2023 at 12:29=E2=80=AFPM Hugh Dickins w= rote: > > > > > > Thanks for all the info, which has helped in several ways. The only > > thing I can do is to offer you a debug (and then keep running) patch - > > suitable for the config you showed there, not for anyone else's config. > > > > I've never used stackdepot before, but I've tried this out in good and > > bad cases, and expect it to work for you, shedding light on where is > > going wrong - machine should boot up fine, and in dmesg you'll find one > > stacktrace between "WARNING: pte_map..." and "End of pte_map..." lines. > > > > To apply on top of a349d72fd9ef ("mm/pgtable: add rcu_read_lock() and > > rcu_read_unlock()s"), the bad end point of your bisection; but if you > > prefer, I can provide a version to go on top of whatever later Linus > > commit suits you. > > > > Patch not for general consumption, just for Mike's debugging: > > please report back the stacktrace shown - thanks! > > >=20 > Thanks for digging into the problem. > With the attached patch I got FTBFS when build kernel at commit a349d72fd= 9ef. >=20 >=20 > LD [M] drivers/gpu/drm/amd/amdgpu/amdgpu.o > MODPOST Module.symvers > ERROR: modpost: "pte_unmap" [arch/x86/kvm/kvm.ko] undefined! > ERROR: modpost: "pte_unmap" [drivers/vfio/vfio_iommu_type1.ko] undefined! > make[2]: *** [scripts/Makefile.modpost:144: Module.symvers] Error 1 > make[1]: *** [/home/mikhail/packaging-work/git/linux/Makefile:1984: > modpost] Error 2 > make: *** [Makefile:234: __sub-make] Error 2 Sorry about that, please try this instead, adds EXPORT_SYMBOL(pte_unmap). --- include/linux/pgtable.h | 5 +---- mm/memory.c | 1 + mm/mremap.c | 1 + mm/pgtable-generic.c | 41 +++++++++++++++++++++++++++++++++++++++-- 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index 5134edcec668..131392f1c33e 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -106,10 +106,7 @@ static inline pte_t *__pte_map(pmd_t *pmd, unsigned lo= ng address) { =09return pte_offset_kernel(pmd, address); } -static inline void pte_unmap(pte_t *pte) -{ -=09rcu_read_unlock(); -} +void pte_unmap(pte_t *pte); #endif =20 /* Find an entry in the second-level page table.. */ diff --git a/mm/memory.c b/mm/memory.c index 44d11812a88f..b1ee8ab51978 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1033,6 +1033,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct= vm_area_struct *src_vma, =09=09ret =3D -ENOMEM; =09=09goto out; =09} +=09pte_unmap(NULL);=09/* avoid warning when knowingly nested */ =09src_pte =3D pte_offset_map_nolock(src_mm, src_pmd, addr, &src_ptl); =09if (!src_pte) { =09=09pte_unmap_unlock(dst_pte, dst_ptl); diff --git a/mm/mremap.c b/mm/mremap.c index 11e06e4ab33b..56d981add487 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -175,6 +175,7 @@ static int move_ptes(struct vm_area_struct *vma, pmd_t = *old_pmd, =09=09err =3D -EAGAIN; =09=09goto out; =09} +=09pte_unmap(NULL);=09/* avoid warning when knowingly nested */ =09new_pte =3D pte_offset_map_nolock(mm, new_pmd, new_addr, &new_ptl); =09if (!new_pte) { =09=09pte_unmap_unlock(old_pte, old_ptl); diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c index 400e5a045848..958ee5cf91b1 100644 --- a/mm/pgtable-generic.c +++ b/mm/pgtable-generic.c @@ -232,11 +232,48 @@ pmd_t pmdp_collapse_flush(struct vm_area_struct *vma,= unsigned long address, #endif #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ =20 +#include +#include +#include + +static depot_stack_handle_t depot_stack; + +static void pte_map(void) +{ +=09static bool done =3D false; +=09unsigned long entries[16]; +=09unsigned int nr_entries; + +=09/* rcu_read_lock(); */ +=09if (raw_smp_processor_id() !=3D 0 || done) +=09=09return; +=09if (depot_stack) { +=09=09pr_warn("WARNING: pte_map was not pte_unmapped:\n"); +=09=09stack_depot_print(depot_stack); +=09=09pr_warn("End of pte_map warning.\n"); +=09=09done =3D true; +=09=09return; +=09} +=09nr_entries =3D stack_trace_save(entries, ARRAY_SIZE(entries), 0); +=09depot_stack =3D stack_depot_save(entries, nr_entries, GFP_NOWAIT); +=09if (ktime_get_seconds() > 1800)=09/* give up after half an hour */ +=09=09done =3D true; +} + +void pte_unmap(pte_t *pte) +{ +=09/* rcu_read_unlock(); */ +=09if (raw_smp_processor_id() !=3D 0) +=09=09return; +=09depot_stack =3D 0; +} +EXPORT_SYMBOL(pte_unmap); + pte_t *__pte_offset_map(pmd_t *pmd, unsigned long addr, pmd_t *pmdvalp) { =09pmd_t pmdval; =20 -=09rcu_read_lock(); +=09pte_map(); =09pmdval =3D pmdp_get_lockless(pmd); =09if (pmdvalp) =09=09*pmdvalp =3D pmdval; @@ -250,7 +287,7 @@ pte_t *__pte_offset_map(pmd_t *pmd, unsigned long addr,= pmd_t *pmdvalp) =09} =09return __pte_map(&pmdval, addr); nomap: -=09rcu_read_unlock(); +=09pte_unmap(NULL); =09return NULL; } =20 --=20 2.35.3 ---1463760895-1745119313-1693559307=:19235--