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 9773CC433F5 for ; Fri, 28 Jan 2022 11:52:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 053946B0071; Fri, 28 Jan 2022 06:52:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0033A6B0072; Fri, 28 Jan 2022 06:52:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E33F26B0073; Fri, 28 Jan 2022 06:52:23 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0138.hostedemail.com [216.40.44.138]) by kanga.kvack.org (Postfix) with ESMTP id D893E6B0071 for ; Fri, 28 Jan 2022 06:52:23 -0500 (EST) Received: from smtpin05.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id A1D3F94FD5 for ; Fri, 28 Jan 2022 11:52:23 +0000 (UTC) X-FDA: 79079532966.05.838AC08 Received: from mail-ot1-f54.google.com (mail-ot1-f54.google.com [209.85.210.54]) by imf17.hostedemail.com (Postfix) with ESMTP id 4CF274003E for ; Fri, 28 Jan 2022 11:52:23 +0000 (UTC) Received: by mail-ot1-f54.google.com with SMTP id w27-20020a9d5a9b000000b005a17d68ae89so5431962oth.12 for ; Fri, 28 Jan 2022 03:52:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=O60yGiuWnnbcMYfMLAv37vqkxweJf6XzlR6Lpk0bdI0=; b=P6xylPxu3oTF9ElqWG2+KKyUYq5JMNnqiPQRZUeDXqQie4aQmyPakvGVQD017+Sq5j w8WBVC0gRu5xZKxAFyYY2+ykLjSZ+O71IYW2FlMwViM/WIiwXp03lW9R8sZe5cCUlKfy P8c6ut1lo3vrggu9qgXKs1LoMnKbJoy9NFW8ZJeXZvE7GKCnAU39YhigoMzswo9cVR6f AN7r7VuDpulWZS82z9ushmAgLKUGp/8dAFq31IbINk/a43TB8V/KRTywy/HtecTt4Qt6 nXeKqrtg9ysDBm4AJvx3Q87lxFKbMQc4SIwbwvGxp8+ia4JOg/O1GYhE3VU8wXtXX1j4 VPsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=O60yGiuWnnbcMYfMLAv37vqkxweJf6XzlR6Lpk0bdI0=; b=VzvltjY1JH+lFIub05mntskyDfHeb7O8JwfVtKYS/Lozb5wzYfjCOa6/9PhUSlGIBb benC8RBnVG8PLtVu0CYZ0onx2l28iQe6ai4kXYyw8e3pUyrQPe9DKjIBxWlwLDG0Y06W jUNcFYkhcJMKM/XvAuL8Rub6kYly5znd+DOCN4H45ajKSlgjHJBAXYyTg3iWEvN/7LQC scAvgauWXoeKGSmZW9yWnXE4c+ZZvKbMT39d3EojqgHMJDPL+1CzwCjlYWN25hS2GxJX SEdiqu/qW0bghyPH8o2xCjrTMSM4qU8DkFG1Z2OnK9SABR01wmZJ0mWm1gictrk/vUdd cfCQ== X-Gm-Message-State: AOAM532kEaBTXNCETpvk73QOrrJvhPZuBTi3iWSkqj/XCNc8Q2eBJ/kX oPBEQ3VxPrVcIVXazGtMChQkmcgsI7krwR5i2zSEuA== X-Google-Smtp-Source: ABdhPJxFKUeb+z6L0PRMViTxwQseod5Vc2HUsrALgKw44oNXB9A/OsmkbGwTROjG05J4k1ROmFYME63G71BRWJvmWSU= X-Received: by 2002:a05:6830:25d5:: with SMTP id d21mr3350658otu.246.1643370742236; Fri, 28 Jan 2022 03:52:22 -0800 (PST) MIME-Version: 1.0 References: <1643370145-26831-1-git-send-email-yangtiezhu@loongson.cn> <1643370145-26831-5-git-send-email-yangtiezhu@loongson.cn> In-Reply-To: <1643370145-26831-5-git-send-email-yangtiezhu@loongson.cn> From: Marco Elver Date: Fri, 28 Jan 2022 12:52:10 +0100 Message-ID: Subject: Re: [PATCH 4/5] sched: unset panic_on_warn before calling panic() To: Tiezhu Yang Cc: Baoquan He , Jonathan Corbet , Andrew Morton , Peter Zijlstra , kexec@lists.infradead.org, linux-doc@vger.kernel.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 4CF274003E X-Stat-Signature: 4ccymsyuheiz68nrp5fb7i4qx794xpef X-Rspam-User: nil Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=P6xylPxu; spf=pass (imf17.hostedemail.com: domain of elver@google.com designates 209.85.210.54 as permitted sender) smtp.mailfrom=elver@google.com; dmarc=pass (policy=reject) header.from=google.com X-HE-Tag: 1643370743-674697 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 Fri, 28 Jan 2022 at 12:42, Tiezhu Yang wrote: > > As done in the full WARN() handler, panic_on_warn needs to be cleared > before calling panic() to avoid recursive panics. > > Signed-off-by: Tiezhu Yang > --- > kernel/sched/core.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 848eaa0..f5b0886 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -5524,8 +5524,17 @@ static noinline void __schedule_bug(struct task_struct *prev) > pr_err("Preemption disabled at:"); > print_ip_sym(KERN_ERR, preempt_disable_ip); > } > - if (panic_on_warn) > + > + if (panic_on_warn) { > + /* > + * This thread may hit another WARN() in the panic path. > + * Resetting this prevents additional WARN() from panicking the > + * system on this thread. Other threads are blocked by the > + * panic_mutex in panic(). > + */ > + panic_on_warn = 0; > panic("scheduling while atomic\n"); I agree this is worth fixing. But: Why can't the "panic_on_warn = 0" just be moved inside panic(), instead of copy-pasting this all over the place? I may be missing something obvious why this hasn't been done before... Thanks, -- Marco