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 885C5C83F03 for ; Wed, 9 Jul 2025 18:11:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1724D6B014E; Wed, 9 Jul 2025 14:11:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 149A86B014F; Wed, 9 Jul 2025 14:11:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 05FCD6B0150; Wed, 9 Jul 2025 14:11:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id EB5806B014E for ; Wed, 9 Jul 2025 14:11:05 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 942F1129360 for ; Wed, 9 Jul 2025 18:11:05 +0000 (UTC) X-FDA: 83645517690.07.91C1ACD Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf15.hostedemail.com (Postfix) with ESMTP id A3A30A0004 for ; Wed, 9 Jul 2025 18:11:03 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nbERJZiW; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of adobriyan@gmail.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=adobriyan@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752084663; 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: references:dkim-signature; bh=ecY2fLdFbED+54mDeblvrbXpU8PvP0LCjxPUJFq1bj8=; b=z3hbz+RF7WTTmBDZEsXme9FTjGh4GvT0VvDiKS7vJpjX2DpVQMXaX/oIdD3KZxXr86VwQT c/Szt/Aeo6hXY3i0w34WZjoNiyUYeu0raKfbhklrATrXYAylTeB52CidV3bPGgaSE+Rq5T 5GodVYX28f9QET+PnpSEq1pc4rtsJYo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752084663; a=rsa-sha256; cv=none; b=X6iZZGDOecnDsSZ8HTzFz/pLOJ4H7S2NfY1DSJ5nFwlygWCTIL3JsKc6btfCtSubBYvkmE +NDmcDHv/AonDCWXwMpflQjK0bYaT1uLP5SNFxwij+X4D093rnXFGVCKGx0ld37c5TDIyl 4L5ycAEb66VxZwYxod+ttgH+xb/eG9M= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nbERJZiW; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of adobriyan@gmail.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=adobriyan@gmail.com Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-60707b740a6so148381a12.0 for ; Wed, 09 Jul 2025 11:11:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752084662; x=1752689462; darn=kvack.org; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=ecY2fLdFbED+54mDeblvrbXpU8PvP0LCjxPUJFq1bj8=; b=nbERJZiW2GN2blKAMdT5hhw7sKY+/WXbvR+N2/vfy73Df9P0mg9JBOZ8H5qGJYcv29 rKtkfxN4e1BJOFLfXl+JNzcFudAiNzg92vP/UUTsnUyDfmVb5cPUxYqdXyz8nAB1RHRv Js//y45Uq1BalZ4040h84JIGAU+kG+sX8PCyZVZdFwjpxELc+hGQ7s18lnUf52U6lPnz mIxbEPy+8QSzn9tmEftL8/Eu0xBnSeqWjB/8St0EI19Ze86JpSWUzt/zsx0S7198ezc6 YWwJSOPTC6uEm2m1WvimrF98N4G1c/JkQcFSnFwyoajax8ul6sPBhTxi3SqDS1UN9Ibu I2rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752084662; x=1752689462; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ecY2fLdFbED+54mDeblvrbXpU8PvP0LCjxPUJFq1bj8=; b=thdOKZgVis6gS2uuRJb103ciHUErc67ISfOAf3M4kIbKZqrh2xKe5z0LpvxcckmzbF gG6Fhm9QzMANcDzEGFz2SGT23mrl7C4KRLQnql3iZ0ioggMzOnAY9m4MIarrPfjnRYIW 1/8uVnuwCCCnqcNa1W8DDCHR7McwKqR6Z73SE0176ucfKzcyYs9L/S81JAW2SOXU75HY 6AHXW29kDnr0zFBhZwELoXxFmy1boLFKjjh5PvZko6avm67tmJ5sCPgV8Sh8vRuKOPQ2 SRHKSjT1AkPGJrNR6CkLzW10ZCaa9WEuG6VUEv3edFiM1n3gWbprscp8Sv2Zp4/GPXHO jXdw== X-Forwarded-Encrypted: i=1; AJvYcCXyrQ+F4qNG1r6ChxZYe/zlFpQ/JOWG0Io5O47Lwx7MYUIGqkJIl9xRH/nb93p9DAeWUg5SMTgY7g==@kvack.org X-Gm-Message-State: AOJu0YzIfIGxV5A28/oHLxXqZh0997tKceSMyUlhg1OWub5cbnkAKZOb x9/msLDem9MBRon2+iUnwqAdWXWXj1g9O+YcYAwmOyjRAdi1mN+tOGk= X-Gm-Gg: ASbGncu2sjSMdDGVQ3CfI6e4XCigM6PFVmkoFsgNDThPSt4p9kGuv5hW3CjewX196T0 zvOn8DXu1dlXsyFU3fDrcZSRsmqllGKeCGkAKDiC2VPsNAR2zkNffOvLVE+o5NxDq50JVdoJrCm MtHXXHeQt8cKPiyo0E9uSkS2Q2v+zOeVf4pz4mc7rO2WEvc3VGBHURo2/7hPEYdk+XvpZmxxjr3 zEHmF3sQp2Pt47dLX8J2PdX7tr1+C/gwM8771crnYjvm8pb3uKD6YnwMwH4KOoMaGbTq6PsarG1 syOCEvrRH7O2sM5Suu60YRXR5RS5uiqSmDlhOeX/Afiz8LaQ/w== X-Google-Smtp-Source: AGHT+IGHMG4NjofHbzi5qMzLNucF1LMq4d5PXYeTelG1BFDrADXv095cP4+i3C8xqtztoEL+46QGQw== X-Received: by 2002:a05:6402:274e:b0:606:f836:c657 with SMTP id 4fb4d7f45d1cf-611a736ee52mr3276544a12.28.1752084661665; Wed, 09 Jul 2025 11:11:01 -0700 (PDT) Received: from p183 ([46.53.253.232]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-60fcb1000c6sm9127465a12.60.2025.07.09.11.11.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Jul 2025 11:11:01 -0700 (PDT) Date: Wed, 9 Jul 2025 21:10:59 +0300 From: Alexey Dobriyan To: akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko Subject: [PATCH] mm: implement "memory.oops_if_bad_pte=1" boot option Message-ID: <4e1b7d2d-ed54-4e0a-a0a4-906b14d9cd41@p183> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspam-User: X-Rspamd-Queue-Id: A3A30A0004 X-Rspamd-Server: rspam03 X-Stat-Signature: nf3urwfbpu6s541tkukod38zsjxbdxcf X-HE-Tag: 1752084663-160923 X-HE-Meta: U2FsdGVkX18ClTjtkCxARw2BanzrOoGu5mRzPOXD2w9Haa9SEgM/yos7Bq9NeCG0bfzaa+EykcGEdfJMIC0zhJWdp5ESUEtFX+UDKxrQpbYD8MuZ8KjVublWpvqPZwfDd5C2Sq/9yFospPEeUpYCVlMYWDoGmcIkoUUHzEaA4gcpMGcFCUP8b2TDpOYUG4mY7pktkThdxtUEcbQk0MJ/JvSHEt7gtxx8nL4fK3CPK+B8gK651wGlvCYiss1ttNv+c6gDcT6ZYilp/N0Msuruh0aiDXRqxzInIquUZUVXWYljlWuflJ71Lu4sAbA88i42VtA3EETviEMzidLIu6CYZNoaSA6ifim2rBBLXBOXBEz0rrx25pdKMMrp6lX574SLE/nw8BDgkYj/EWPr55bjwnZLtRe4y4+cwqEYxqgmF9S7EwhADKLj2sgOO/LSjkmk50DjHQDo8W3xYL0/A4cZdPO7d0CFF3A2m90+e4/dPBm8U6UZoP4YwvyBPbjZrSMHdy4milQdypApdBVsayrYBgmG3yFqzIWa5I4qkkuNfxn5f0SPSnH6TlnIiUpplvo2UiZ1wh8i0Lv7mCdcmLwwHSHSRL9kH8PHf7A7PdtOofUT8MkfY7RW9EDe6T8ocdhmtpNKBsrYsVjF7CjqKNm2ga5x9EB3PpOT+dVsBjyOgs3oZg6vNx6vZVSnIY0EGPzwix1u/vUzMDreNADnl3zpBDVvKvrgOeeoTk/BSMt6hXSBkckbgcYez6gMd2K9zU2IgFOLUkpAzU5kp0Jg6R9FJJX9zEVdbi949qoy71tXyf+cOSouQGeml1EmfUBlAg1skG6laQmOBmcioTLvyBJXejShNQHVrVkRI07oYEqRVzku0xlTdRb3pLNPBtbInXm6zLzj7mJ9KqymeilXCmP93Ftp0e1Z5dA0COEwXcI/Tz5d2S8QvnPL8SyHyp1sgxSzmv61OHcbtD3w38omQOu BmtRuAm2 GleJekbWK1u1a+gpgvCugX6pANf7BrNd9kMuy9mwGCNMJquBbMsXHgGmLo4ueYUYemLryps8K+RGUdZiyxXddYU0Rzy/sZ2vIqJhyQ9nQ6rnrEDbP3F4kSW3Pq5fswP3S5MCcDbnjIsZiSbY2cfkJw7qXpf8QGvdBjRveSU7U2yw0BcHDw9z18sMwTXkBeWtlpx8HECmzdjd/Wn2KnVWk/cd7wfUggX5Oo8qhgIMS2ZaAypY+vTOrEgs3tkf++5s2gkPrbLNuEL88JZKEX8bqxVeRlEcgV5qkc3q1N4/PKsJKDyRXgnG4lcmSjDDvYGQohstkD/7UCuIeoWey/xV97vq5215W8nrUr0awilYWqaT7htxMyDL0q0KNoYDd66G9nvyokyPdcEvTPf1CXa4NSAvrQIZL4LsJ8o2kt9dR9r113vBvp38YUxRbxF5qca4FmOUnHk0OuCfIJbGP95SE1eFzFmmvTriy+uHmp1v5gFrv7fETCVkolJQqDerU6BPpweiN7DeJ4oiQFVsRiUy/aBi3A1UGpgRDkuzr8wQfkIuEbPgrW+ld3D1BigNs/PK0rtHZ 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: List-Subscribe: List-Unsubscribe: Implement memory.oops_if_bad_pte=1 boot option which oopses the machine instead of dreadful BUG: Bad page map in process message. This is intended for people who want to panic at the slightest provocation and for people who ruled out hardware problems which in turn means that delaying vmcore collection is counter-productive. Linux doesn't (never?) panicked on PTE corruption and even implemented ratelimited version of the message meaning it can go for minutes and even hours without anyone noticing which is exactly the opposite of what should be done to facilitate debugging. Not enabled by default. Not advertised. Signed-off-by: Alexey Dobriyan --- mm/memory.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mm/memory.c b/mm/memory.c index b0cda5aab398..90b92b312802 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -480,6 +481,13 @@ static inline void add_mm_rss_vec(struct mm_struct *mm, int *rss) add_mm_counter(mm, i, rss[i]); } +/* + * Oops instead of printing "Bad page map in process" message and + * trying to continue. + */ +static bool oops_if_bad_pte __ro_after_init = false; +module_param(oops_if_bad_pte, bool, 0444); + /* * This function is called to print an error when a bad pte * is found. For example, we might have a PFN-mapped pte in @@ -490,6 +498,13 @@ static inline void add_mm_rss_vec(struct mm_struct *mm, int *rss) static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr, pte_t pte, struct page *page) { + /* + * This line is a formality to collect vmcore ASAP. Real bug + * (hardware or software) happened earlier, current registers and + * backtrace aren't interesting. + */ + BUG_ON(oops_if_bad_pte); + pgd_t *pgd = pgd_offset(vma->vm_mm, addr); p4d_t *p4d = p4d_offset(pgd, addr); pud_t *pud = pud_offset(p4d, addr); -- 2.49.0