Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp907375pxp; Wed, 16 Mar 2022 20:53:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxHgwQxP+tzBC9LhH5mLyyo5Xtq7LDS9mODEFTVxjCa3azaBg1XT1R59oSbCVghyOhvvY5O X-Received: by 2002:a63:2d05:0:b0:34b:3f1d:2fa8 with SMTP id t5-20020a632d05000000b0034b3f1d2fa8mr2090038pgt.447.1647489232518; Wed, 16 Mar 2022 20:53:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647489232; cv=none; d=google.com; s=arc-20160816; b=vmyPInpxdRg5T64aY1CD2EGt5XDXQvwDT/+uPZG9eCGzDBHUKi2cJqhJlw6st9iZ3o YSMfury+X1LLdPn8Yn54Vxnmajs2H4uahW5h5f/gluBfO0ekvJlObezb/BLmKx0daV8N /FJZmINkAYl1lpGfZukr2Na1LxLbfNclmWDjqGeIOAWrjC5HPlX9AbmYnRxrxrgI3p2b t9DzwD4hxE71RcCF77cIHG3oBo6dXfmiPFRXlUJQjcraw55vyb8PGaa/5NU+jY/nF6xN EM9lHcvPk0C87ICAUL3gLNybMlf1mbT1VMKRomtLp3bThMG9e4csd3371JwB0D6X7Fqq Gt4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:from:user-agent:content-disposition:mime-version :message-id:subject:cc:to:date:dkim-signature:dkim-filter; bh=Wl8eLmn2EyVMIbzbpeaNnxsMHJboV9nFjzpk/4KzOkE=; b=D4XeXcXkjBe425HhAHoI81JMTiNs2l1DKGruiWqLr5Zrz5KMoYo++D5PP5rzG+P1t0 WF/8XRj/FTkM9lA+T1YyFYHaZmRMS+YIfLfzyN4FQVV1/J85enEFXrlxUdZX/3qOsr/w FsUxGEPVGuwetRSa9SbIvUUG7N+i2Xnh9KALNmEXERKoHkx4x0GiqcGW343iOs1oVHQ+ a0oPb/8An2gJjqZUGhMtNKA7/6eO6bwg2wch9qRYdk+XsIrPafcUOFVkjmj7mYz+3vQl hvoNdwd2O/XZtG3Rl6SFS8v6hFupz5rjmDji1A3dg0T3BxEJoDCpLdtMCuVZ+LEgYoyA SJWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b=zBBxlsA1; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id t5-20020a635345000000b003816043f04fsi916048pgl.580.2022.03.16.20.53.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 20:53:52 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b=zBBxlsA1; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C0FD27EB3E; Wed, 16 Mar 2022 20:41:10 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355839AbiCPRom (ORCPT + 99 others); Wed, 16 Mar 2022 13:44:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355558AbiCPRok (ORCPT ); Wed, 16 Mar 2022 13:44:40 -0400 Received: from fieldses.org (fieldses.org [IPv6:2600:3c00:e000:2f7::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 252D717046 for ; Wed, 16 Mar 2022 10:43:25 -0700 (PDT) Received: by fieldses.org (Postfix, from userid 2815) id 1CD1648F; Wed, 16 Mar 2022 13:43:24 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.11.0 fieldses.org 1CD1648F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fieldses.org; s=default; t=1647452604; bh=Wl8eLmn2EyVMIbzbpeaNnxsMHJboV9nFjzpk/4KzOkE=; h=Date:To:Cc:Subject:From:From; b=zBBxlsA1m1y04DG77zWHK91zWwZexpegElKCeRRQsAAOGVz6jkaRT4Y43z0tHKno0 ZbEWWlpkHiM5RaWK4xfrJMEwtApTqrkUtJ91AFw/+uLgUfHBkRoDUS6MR6k2rG1mMv u9zB9cXONokvgYmVbxprMe628XN95oMI3ESiscUE= Date: Wed, 16 Mar 2022 13:43:24 -0400 To: Chengming Zhou Cc: Peter Zijlstra , Ingo Molnar , linux-kernel@vger.kernel.org Subject: failure to boot after dc6e0818bc9a "sched/cpuacct: Optimize away RCU read lock" Message-ID: <20220316174324.GA16511@fieldses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) From: bfields@fieldses.org (J. Bruce Fields) X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org One of my test VMs has been failing to boot linux-next recently. I finally got around to a bisect this morning, and it landed on the below. What other information would be useful to debug this? --b. commit dc6e0818bc9a Author: Chengming Zhou Date: Sun Feb 20 13:14:25 2022 +0800 sched/cpuacct: Optimize away RCU read lock Since cpuacct_charge() is called from the scheduler update_curr(), we must already have rq lock held, then the RCU read lock can be optimized away. And do the same thing in it's wrapper cgroup_account_cputime(), but we can't use lockdep_assert_rq_held() there, which defined in kernel/sched/sched.h. Suggested-by: Peter Zijlstra (Intel) Signed-off-by: Chengming Zhou Signed-off-by: Peter Zijlstra (Intel) Link: https://lore.kernel.org/r/20220220051426.5274-2-zhouchengming@bytedance.com diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 75c151413fda..9a109c6ac0e0 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -791,11 +791,9 @@ static inline void cgroup_account_cputime(struct task_struct *task, cpuacct_charge(task, delta_exec); - rcu_read_lock(); cgrp = task_dfl_cgroup(task); if (cgroup_parent(cgrp)) __cgroup_account_cputime(cgrp, delta_exec); - rcu_read_unlock(); } static inline void cgroup_account_cputime_field(struct task_struct *task, diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c index 307800586ac8..f79f88456d72 100644 --- a/kernel/sched/cpuacct.c +++ b/kernel/sched/cpuacct.c @@ -337,12 +337,10 @@ void cpuacct_charge(struct task_struct *tsk, u64 cputime) unsigned int cpu = task_cpu(tsk); struct cpuacct *ca; - rcu_read_lock(); + lockdep_assert_rq_held(cpu_rq(cpu)); for (ca = task_ca(tsk); ca; ca = parent_ca(ca)) *per_cpu_ptr(ca->cpuusage, cpu) += cputime; - - rcu_read_unlock(); } /*