Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp12082319pxu; Fri, 1 Jan 2021 08:11:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJxiAjrYD0EgV23chQqts5nK7am6zl6ed2TPbCz9G1zKukaxiPI6ya6xw59MBs6wXdlCB6Zo X-Received: by 2002:aa7:dcd0:: with SMTP id w16mr60385355edu.229.1609517467763; Fri, 01 Jan 2021 08:11:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609517467; cv=none; d=google.com; s=arc-20160816; b=zOl9YaoP/mUJX9x/zxrZUju01NLnzJicQK3qBMHt38Se0+toCjyicbo9jfswthxjxc eQ4zKkEMlg2AyVFNBHsR3LOpMZ+D2dQwDZkIquM6Cz67hHecItCwlfhBa1CCA79Iv3wk Ia9EOTSa7UxWNA6FYfThW5o4Xxy+LmbmS3ocoGDQ3888DF6b6uihnEDTZYDSb6KuXQ2t m0I9JYacY2yUvWt2AMb5nQaxwJvQnD7yX8B1uvjTD1zgEBbcRjuQAlrkxs+eWK+Lg5QR vyAo+/A635GWGOctz72fGqgw8ktiNURYcenn9PMlzl95O6b0CF4FH+BL5cFfcDt+kdVl Akwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=M8c1uetOyG0Mj6opjp7XcYx2IQTFIgfuYZSer50eS9M=; b=EWnQDQPCvVCcU7VTjKqebFFkqlTeZaL7XSpNvqZerRex+LoKjjDLYhy/A43Ch1faer vmpbLXlsc/PJRgrAERoHGhdES3ziYj3KtjZjb7BnKbagJzhadt7Y4Tgkqwzdi25aYCPZ gkIOqM820OtzQfJFY8vxPMC2Z35pDJJlvPLxBuwKnkCGI5PZLHWjjkakIVWN/jrFgs/m DwR8qghVdYMVzs10wW6EVlalJuGJ8qLtExfWapC3yr93owAXMhDzHZT6/S6RhuSDnSL9 oJc4JVim9u09AolqZCivD9yE4DEU8gI+42jdCGISs/EZvNS72VDP3ZPyuqr/vE4jFAl+ 7qkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=smzN+TWH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk23si28607723edb.17.2021.01.01.08.10.45; Fri, 01 Jan 2021 08:11:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=smzN+TWH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727271AbhAAQFx (ORCPT + 99 others); Fri, 1 Jan 2021 11:05:53 -0500 Received: from mail.kernel.org ([198.145.29.99]:59588 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727181AbhAAQFw (ORCPT ); Fri, 1 Jan 2021 11:05:52 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id A0A2A221F2; Fri, 1 Jan 2021 16:05:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1609517111; bh=PE3Yh5iJRE9h1nZoPLqiutJok5vYke190iIOLG7X7JY=; h=Date:From:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=smzN+TWH0xTcFRu0ewdMy89ASPghCXoGhbFTNMW3QrrcCgnXFy0K1CGFQVnJWVJz8 AYy2ZkLwahZYR3TFh7q6uLqEQRFQWW7W+4a4wq/dn1zr7Axmh3MxKFaeyJkDReQU38 +AEi+uhS47amfn6ver5SFXNLtnVVhcEsKwgvkIVkbt8pn90l6KFmO6n8W7/xLkflNH C7dj9rF87JWMKckuSjr9XgPBDk9IvVanz8oqDq6Nj2+NwoFv+J5eTSJln38tQMFA1w ijrbRdIc4RbYtjVCryK3BZR/+IGi1iAfTlgp6G51o+5Ph8cSiijHnEwLTtHGTbPmi3 O3LVFeKk0rgjw== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 6ED513522781; Fri, 1 Jan 2021 08:05:11 -0800 (PST) Date: Fri, 1 Jan 2021 08:05:11 -0800 From: "Paul E. McKenney" To: "Rafael J. Wysocki" Cc: Frederic Weisbecker , LKML , Peter Zijlstra , Ingo Molnar , Fabio Estevam , stable@vger.kernel.org, Thomas Gleixner , Len Brown , Pengutronix Kernel Team , NXP Linux Team , Daniel Lezcano , Shawn Guo , Sascha Hauer , Linux PM Subject: Re: [PATCH 0/4] sched/idle: Fix missing need_resched() checks after rcu_idle_enter() Message-ID: <20210101160511.GB12032@paulmck-ThinkPad-P72> Reply-To: paulmck@kernel.org References: <20201222013712.15056-1-frederic@kernel.org> <4de33f1a-890b-4d29-20e8-a1163b9c1bf7@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4de33f1a-890b-4d29-20e8-a1163b9c1bf7@intel.com> User-Agent: Mutt/1.9.4 (2018-02-28) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Dec 22, 2020 at 05:19:51PM +0100, Rafael J. Wysocki wrote: > On 12/22/2020 2:37 AM, Frederic Weisbecker wrote: > > With Paul, we've been thinking that the idle loop wasn't twisted enough > > yet to deserve 2020. > > > > rcutorture, after some recent parameter changes, has been complaining > > about a hung task. > > > > It appears that rcu_idle_enter() may wake up a NOCB kthread but this > > happens after the last generic need_resched() check. Some cpuidle drivers > > fix it by chance but many others don't. > > > > Here is a proposed bunch of fixes. I will need to also fix the > > rcu_user_enter() case, likely using irq_work, since nohz_full requires > > irq work to support self IPI. > > > > Also more generally, this raise the question of local task wake_up() > > under disabled interrupts. When a wake up occurs in a preempt disabled > > section, it gets handled by the outer preempt_enable() call. There is no > > similar mechanism when a wake up occurs with interrupts disabled. I guess > > it is assumed to be handled, at worst, in the next tick. But a local irq > > work would provide instant preemption once IRQs are re-enabled. Of course > > this would only make sense in CONFIG_PREEMPTION, and when the tick is > > disabled... > > > > git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git > > sched/idle > > > > HEAD: f2fa6e4a070c1535b9edc9ee097167fd2b15d235 > > > > Thanks, > > Frederic > > --- > > > > Frederic Weisbecker (4): > > sched/idle: Fix missing need_resched() check after rcu_idle_enter() > > cpuidle: Fix missing need_resched() check after rcu_idle_enter() > > ARM: imx6q: Fix missing need_resched() check after rcu_idle_enter() > > ACPI: processor: Fix missing need_resched() check after rcu_idle_enter() > > > > > > arch/arm/mach-imx/cpuidle-imx6q.c | 7 ++++++- > > drivers/acpi/processor_idle.c | 10 ++++++++-- > > drivers/cpuidle/cpuidle.c | 33 +++++++++++++++++++++++++-------- > > kernel/sched/idle.c | 18 ++++++++++++------ > > 4 files changed, 51 insertions(+), 17 deletions(-) > > Please feel free to add > > Reviewed-by: Rafael J. Wysocki > > to all patches in the series. I would guess that they will take some other path to mainline, but I have queued these to cut down on rcutorture's whining. ;-) Thanx, Paul