From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752895AbbD3Tje (ORCPT ); Thu, 30 Apr 2015 15:39:34 -0400 Received: from mail-db3on0075.outbound.protection.outlook.com ([157.55.234.75]:58136 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751878AbbD3Tjc (ORCPT ); Thu, 30 Apr 2015 15:39:32 -0400 Authentication-Results: spf=fail (sender IP is 12.216.194.146) smtp.mailfrom=ezchip.com; ezchip.com; dkim=none (message not signed) header.d=none; From: Chris Metcalf To: Frederic Weisbecker , Don Zickus , Ingo Molnar , Andrew Morton , Andrew Jones , chai wen , Ulrich Obergfell , Fabian Frederick , Aaron Tomlin , Ben Zhang , "Christoph Lameter" , Gilad Ben-Yossef , "Steven Rostedt" , , "Jonathan Corbet" , , Thomas Gleixner , Peter Zijlstra CC: Chris Metcalf Subject: [PATCH v10 0/3] add watchdog_cpumask to help nohz_full Date: Thu, 30 Apr 2015 15:39:23 -0400 Message-ID: <1430422766-19703-1-git-send-email-cmetcalf@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: <20150428151759.GD98296@redhat.com> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:12.216.194.146;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(339900001)(189002)(199003)(50226001)(85426001)(19580395003)(6806004)(47776003)(50986999)(2950100001)(92566002)(106466001)(46102003)(50466002)(87936001)(36756003)(48376002)(42186005)(5001770100001)(33646002)(105606002)(62966003)(86362001)(104016003)(229853001)(77156002)(5001960100002)(107886002)(921003)(1121003)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR02MB0781;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;MLV:sfv;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB0781; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:VI1PR02MB0781;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB0781; X-Forefront-PRVS: 056297E276 X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2015 19:39:27.1484 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[12.216.194.146];Helo=[ld-1.internal.tilera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR02MB0781 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series allows the watchdog to run by default only on the housekeeping cores when nohz_full is in effect; this seems to be a good compromise short of turning it off completely (since the nohz_full cores can't tolerate a watchdog). To provide customizability, we add /proc/sys/kernel/watchdog_cpumask so that the set of cores running the watchdog can be tuned to different values after bootup. To implement this customizability, we add a new smpboot_update_cpumask_percpu_thread() API to the smpboot_thread subsystem that lets us park or unpark "unwanted" threads. And now that threads can be parked for long periods of time, we tweak the /proc//stat and /proc//status code so parked threads aren't reported as running, which is otherwise confusing. v10: improved documentation and comments [akpm] made watchdog_cpumask a static struct cpumask [Don, Uli] print warning if update_cpumask fails for watchdog [Don] v9: move cpumask into smpboot_hotplug_thread and don't let the client initialize it either [Frederic] use alloc_cpumask_var, not a locked static cpumask [Frederic] add and use for_each_watchdog_cpu() [Uli] check alloc_cpumask_var for failure [Chai Wen] v8: make cpumask only updated by smpboot subsystem [Frederic] improve documentation in "Documentation/" and in changelog [akpm] v7: change from valid_cpu() callback to optional cpumask field park smpboot threads rather than just not creating them v6: use alloc_cpumask_var() [Sasha Levin] change from an "exclude" data pointer to a more generic valid_cpu() callback [Frederic] add Don's Acked-by v5: switch from watchdog_exclude to watchdog_cpumask [Frederic] simplify the smp_hotplug_thread API to watchdog [Frederic] Chris Metcalf (3): smpboot: allow excluding cpus from the smpboot threads watchdog: add watchdog_cpumask sysctl to assist nohz procfs: treat parked tasks as sleeping for task state Documentation/lockup-watchdogs.txt | 18 +++++++++++ Documentation/sysctl/kernel.txt | 21 +++++++++++++ fs/proc/array.c | 8 +++++ include/linux/nmi.h | 3 ++ include/linux/smpboot.h | 5 +++ kernel/smpboot.c | 55 +++++++++++++++++++++++++++++++- kernel/sysctl.c | 7 +++++ kernel/watchdog.c | 64 +++++++++++++++++++++++++++++++++++--- 8 files changed, 175 insertions(+), 6 deletions(-) -- 2.1.2