Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp5101981pxu; Tue, 22 Dec 2020 08:23:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKLlpWOKgGZEExso7HXiSou0XF+LOjN0mIRUScegs0j8TTJm/xyW250/2sKzDuPqUmFnY/ X-Received: by 2002:aa7:d0c5:: with SMTP id u5mr20455065edo.46.1608654230189; Tue, 22 Dec 2020 08:23:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608654230; cv=none; d=google.com; s=arc-20160816; b=XZUR9iOL6HerHiYG0CAFWBXLUao8tB52SqOl/v0iZqBtYJDwCd/kWH9NK6jOHuGdep 0wX/k/+D3qnQNzUJRqDgXtM9vQdIYp9jffw0xyI65Wt4zpQGXUcIT+FnpLasP7qWkMLg x2Q7/hQxAMPPydfRbV62Ba1VBnnzxRcN+f3efEj6E8LjpE8+wBIXUAeY32LMt8FtZc7D bgstuWgMNC+2L5wj+06UV6mRY7ccQulySaGKsR6g/Eo53M1/gN8k8hOBWIfyEvxqV4Eu oLDTwGnIS3jx2EmDBNT4DSEXdwWAhYL1gRZzCJOuSRLXtw1EZLXlqqOvY8odUE3ZAvyP boQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:organization :from:references:cc:to:subject:ironport-sdr:ironport-sdr; bh=wQ/lQR2BjvV4Q7OwNcqRdNYeHTKdF8seD1Olp1Lqzf8=; b=Os9xwI0lmR9O0PJFhSWIcYkLrD6KD319Ua3e3FnzKMzizNPHca7FWkw8w24acF5Jyn Nf/MpoPTLG+hmxuFZNgJX0ZaeACBGJ/0HDyLWhEJuB9H+IVu593XTxBtoZiJaaXTdQWt vUfnrX9DjaMvBmNFVRB657MhY5SpTMa4SfZZQCkbOabCiS0NMmQoLMFX6oZYUeb3HhTz oSERFcacFr2iw3Wk6Ml0zBf1GrlzV58DY/HFumtf9H46vPrJ5f+Gc+nTt2PBzsxzsiU+ Bv95HwM2aDi0pRSGQM6kl9BNllzXEb2+kcLz8RLhL7RyHJQZm7L4w9NwzU6+oyVN0dYw Zvmg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hb44si10971267ejc.150.2020.12.22.08.23.26; Tue, 22 Dec 2020 08:23:50 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727952AbgLVQUl (ORCPT + 99 others); Tue, 22 Dec 2020 11:20:41 -0500 Received: from mga02.intel.com ([134.134.136.20]:53139 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727387AbgLVQUk (ORCPT ); Tue, 22 Dec 2020 11:20:40 -0500 IronPort-SDR: wJ3qN26PD/dNR4HkCZVWga8B/kNYAl/K99WjNWd5MyjxrDrtkilx/yEKvdVHy9ph/Mq7VZ/yu0 wWpX5p4cYBgw== X-IronPort-AV: E=McAfee;i="6000,8403,9842"; a="162944845" X-IronPort-AV: E=Sophos;i="5.78,439,1599548400"; d="scan'208";a="162944845" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Dec 2020 08:19:58 -0800 IronPort-SDR: 12rptsdCJSkXnNELEo6p7KKDIZMPPCuDrn4JQ5o5p0l7PODcnORGkAM8Vx9HwFeJbacaokFhYf curmvMTQegVg== X-IronPort-AV: E=Sophos;i="5.78,439,1599548400"; d="scan'208";a="344269264" Received: from rjwysock-mobl1.ger.corp.intel.com (HELO [10.249.132.204]) ([10.249.132.204]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Dec 2020 08:19:53 -0800 Subject: Re: [PATCH 0/4] sched/idle: Fix missing need_resched() checks after rcu_idle_enter() To: Frederic Weisbecker , LKML Cc: Peter Zijlstra , Ingo Molnar , Fabio Estevam , stable@vger.kernel.org, Thomas Gleixner , "Paul E . McKenney" , Len Brown , Pengutronix Kernel Team , NXP Linux Team , Daniel Lezcano , Shawn Guo , Sascha Hauer , Linux PM References: <20201222013712.15056-1-frederic@kernel.org> From: "Rafael J. Wysocki" Organization: Intel Technology Poland Sp. z o. o., KRS 101882, ul. Slowackiego 173, 80-298 Gdansk Message-ID: <4de33f1a-890b-4d29-20e8-a1163b9c1bf7@intel.com> Date: Tue, 22 Dec 2020 17:19:51 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <20201222013712.15056-1-frederic@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Thanks!