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 X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 015A3CA9EAE for ; Tue, 29 Oct 2019 11:10:38 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B5DD7214B2 for ; Tue, 29 Oct 2019 11:10:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lca.pw header.i=@lca.pw header.b="CFk0NZNw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B5DD7214B2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lca.pw Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 3CBA96B0005; Tue, 29 Oct 2019 07:10:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3A12C6B0006; Tue, 29 Oct 2019 07:10:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B8116B0007; Tue, 29 Oct 2019 07:10:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0241.hostedemail.com [216.40.44.241]) by kanga.kvack.org (Postfix) with ESMTP id 082646B0005 for ; Tue, 29 Oct 2019 07:10:36 -0400 (EDT) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id AF4724DAB for ; Tue, 29 Oct 2019 11:10:36 +0000 (UTC) X-FDA: 76096554072.01.start09_3f7aa4b2f0d15 X-HE-Tag: start09_3f7aa4b2f0d15 X-Filterd-Recvd-Size: 4916 Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by imf05.hostedemail.com (Postfix) with ESMTP for ; Tue, 29 Oct 2019 11:10:36 +0000 (UTC) Received: by mail-qt1-f196.google.com with SMTP id g50so19561091qtb.4 for ; Tue, 29 Oct 2019 04:10:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=content-transfer-encoding:from:mime-version:subject:date:message-id :references:cc:in-reply-to:to; bh=W7Kz1lk1jTiGFiH/QrMM5e5TkKbKcEVmB9JU/Z9Ifbo=; b=CFk0NZNw6lCtY4pC7kLl4vONt0CmFR3XcfKQ/PYZQlQmFD2CgeX+YztULXSrWGAg+m /O8gONnFpYX79HHdNe9rEdCjKraeRKekFR4BE7kxjQchY+8z0Cm2CryJOBqGdTn39HUD e7LvnYgFVv3ejl9iyWn72GT2ySonqaVExz3e3AIlTB6aFHK0bHMd7Eqf7nyq/Hdiot28 MX6kNjrV7CtJMIbaVuXosiv/hSi6RCuMc9Yz65uvHu3Be0LhO13+OC9All0f2wu+vHlk 9i+QdoPhGFOXZZ2Oz80/wkcxUDlVGTNcABucOv5lHCxcNHf+HkcWf+n81XEf+mFiS/im RgjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:content-transfer-encoding:from:mime-version :subject:date:message-id:references:cc:in-reply-to:to; bh=W7Kz1lk1jTiGFiH/QrMM5e5TkKbKcEVmB9JU/Z9Ifbo=; b=rRaqcyxG/yqfLTiKkJLgWlBIX8QuuyS5EsTYe4Wc04mmxc/aiz/2+DN0t8ZU1FkdUM LfQktdyBs7KXn5YD+MgwqBKtBySAIv3W8AZnRBiZKEYK9g/0Wn1tR7PpohqpZDQH8nsr FwD+C9veWU9zXsCopOevpNcvnN8I+YzgH44isl7FUMNCZd3KErxtB8FPNE54S6i5b84y lTk0lx0CBf+u2wHtX8TtAwerIJbA4WcOf6Oy8aXi5zz6Lr2pb1uVqblG6jBA49WxTVT2 36EQkqoVkHjwShulyu9jxYI7jKkr4K8STnWXsFCUUzc7doel7a7MulvcdCl6beL4b9Dm 3yyg== X-Gm-Message-State: APjAAAVDuIraOxLHPg9hlJVMCOPvrR7M3IxSK6G/hsIa8kOEfVqVRaG5 LVeWXDviNbiBmneUajRWGq+PPA== X-Google-Smtp-Source: APXvYqzquRGYq6C8pQjQPQfyYnvfNC542XcJbzJYQEkQZ/5Z/Q8g43Fp4LNgLIPcQISTgbwUVtSRig== X-Received: by 2002:ad4:450c:: with SMTP id k12mr12072073qvu.61.1572347435363; Tue, 29 Oct 2019 04:10:35 -0700 (PDT) Received: from [192.168.1.183] (pool-71-184-117-43.bstnma.fios.verizon.net. [71.184.117.43]) by smtp.gmail.com with ESMTPSA id q34sm9332310qte.50.2019.10.29.04.10.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 29 Oct 2019 04:10:34 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable From: Qian Cai Mime-Version: 1.0 (1.0) Subject: Re: [PATCH] sched: Avoid spurious lock dependencies Date: Tue, 29 Oct 2019 07:10:34 -0400 Message-Id: References: <20191001091837.GK4536@hirez.programming.kicks-ass.net> Cc: akpm@linux-foundation.org, bigeasy@linutronix.de, tglx@linutronix.de, thgarnie@google.com, tytso@mit.edu, cl@linux.com, penberg@kernel.org, rientjes@google.com, mingo@redhat.com, will@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, keescook@chromium.org In-Reply-To: <20191001091837.GK4536@hirez.programming.kicks-ass.net> To: Peter Zijlstra X-Mailer: iPhone Mail (17A878) 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 Oct 1, 2019, at 5:18 AM, Peter Zijlstra wrote: >=20 > Does the below adequately describe the situation? >=20 > --- > Subject: sched: Avoid spurious lock dependencies >=20 > While seemingly harmless, __sched_fork() does hrtimer_init(), which, > when DEBUG_OBJETS, can end up doing allocations. >=20 > This then results in the following lock order: >=20 > rq->lock > zone->lock.rlock > batched_entropy_u64.lock >=20 > Which in turn causes deadlocks when we do wakeups while holding that > batched_entropy lock -- as the random code does. >=20 > Solve this by moving __sched_fork() out from under rq->lock. This is > safe because nothing there relies on rq->lock, as also evident from the > other __sched_fork() callsite. >=20 > Fixes: b7d5dc21072c ("random: add a spinlock_t to struct batched_entropy")= > Signed-off-by: Peter Zijlstra (Intel) > --- > kernel/sched/core.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) >=20 > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 7880f4f64d0e..1832fc0fbec5 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -6039,10 +6039,11 @@ void init_idle(struct task_struct *idle, int cpu) > struct rq *rq =3D cpu_rq(cpu); > unsigned long flags; >=20 > + __sched_fork(0, idle); > + > raw_spin_lock_irqsave(&idle->pi_lock, flags); > raw_spin_lock(&rq->lock); >=20 > - __sched_fork(0, idle); > idle->state =3D TASK_RUNNING; > idle->se.exec_start =3D sched_clock(); > idle->flags |=3D PF_IDLE; It looks like this patch has been forgotten forever. Do you need to repost, s= o Ingo might have a better chance to pick it up?=