From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753314AbbJTUgo (ORCPT ); Tue, 20 Oct 2015 16:36:44 -0400 Received: from mail-am1on0058.outbound.protection.outlook.com ([157.56.112.58]:19040 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753214AbbJTUge (ORCPT ); Tue, 20 Oct 2015 16:36:34 -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;ezchip.com; dmarc=none action=none header.from=ezchip.com; From: Chris Metcalf To: Gilad Ben Yossef , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Andrew Morton , "Rik van Riel" , Tejun Heo , Frederic Weisbecker , Thomas Gleixner , "Paul E. McKenney" , Christoph Lameter , Viresh Kumar , Catalin Marinas , Will Deacon , Andy Lutomirski , CC: Chris Metcalf Subject: [PATCH v8 02/14] vmstat: add vmstat_idle function Date: Tue, 20 Oct 2015 16:36:00 -0400 Message-ID: <1445373372-6567-3-git-send-email-cmetcalf@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: <1445373372-6567-1-git-send-email-cmetcalf@ezchip.com> References: <1445373372-6567-1-git-send-email-cmetcalf@ezchip.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD048;1:6OpCIv2gXCuGmtVrpHZBAe1DHD6GlGv6Kk/NQbBSZ5PAN8CvJXayg+gpYLnn0kCbeMdCZqp9sRDT0lUQJ7Q7FOckqM9evcCU8Xr+FnOVQHFq29vwQiypEP9SjhkA+xgj/lvncc2FseWxXeVhYhGVsU2DdpnaCCd/zOUbZzizgU/k3WG8xfJ4DiwZiqlZ7Le1Udi4IORYn6bqnk4bibJGAQxjZKNs0+cfPHgmWQdoeOnz2Qit6GHcLkYwF6V0VUyqMIFjjM1K7plOxWfhhdZbla5RFFgXvOfgOBTNk7pEqPnVM/0qQUkFDJ6SPmpN5annuwOvYsYxpfOwLdym0J2rlCSaywwAFI/gqXUVcxZ/iBQ= X-Forefront-Antispam-Report: CIP:12.216.194.146;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(36756003)(50466002)(48376002)(97736004)(19580405001)(104016004)(6806005)(64706001)(76176999)(47776003)(2950100001)(5001770100001)(81156007)(5008740100001)(19580395003)(86362001)(105606002)(50986999)(85426001)(5001960100002)(106356001)(87936001)(92566002)(106466001)(5007970100001)(106476002)(107886002)(50226001)(189998001)(33646002)(42186005)(46102003)(5003940100001)(229853001)(575784001)(9376005)(921003)(4001430100001)(83996005)(1121003)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR02MB0776;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;PTR:InfoNoRecords;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;DB5PR02MB0776;2:m451WadVGxfQrIeiuIHytYaAW0/p+Fx665fZiBUlo9ALsSlvgim0BIxaclVTDH5ZHchRO0hQwBM0vRCEC858y/9UwvHHsvY7JNHFV//XbIV15A23lf11+FdlaGKdWTY8DFo2S/JMUUiBIEcdtM+YE0NpPjalLnZrJHBVZXxQhm4=;3:9cXYCzTC6sucrQ+/9i7wYgF15RRAqvheMRz0w6tl/xyIRNAoEftsIdSHSEVvhj3WkhPO1iljkSYy0ofRBqfbyFkh0Ll9cy5GFcgyhA2Mzcr2F9STzPTZM/2YGM8Lqy7HglSF0EFPvXd+4lfo/1aCDI3o3OIY5nkiMuhyl2BL+5XzAqbt7DRLL+3frWAq317crU8r1VyhkaAzfTZ3PD4gT7wNw5tT7BRJxL7gktkDodIzSzQfOCGCcCqvx86rS9Hv;25:wqBETfIL30Rys88dOrk4+XLEzRGZ/Yxgb59hSCz/N/zvXPpsN5MmL4ygTs3Q7SKgygax0HGEH4N3ZueAVYSOj+QZvzgTXfzZvzDLF13AonKV3gUKxPy8SGhIpmQARPFPQsiT0fj0Cz+YgqwvFuZomWYc5ig0TSjJfi19AMW5gjxKU4PVg8uitH0Q0wZv+KcQW2EjlFn3GMRbKv2bz1TvvQZjn2jXiV06MJpgtsdLav9twvhpdWwgTLZh7qgkqCQW3cdM0rvYz6KwvIaJJovPmA==;20:JXNL9kPBuVkHm++Ir3vpqecMi2rYrrZ8sOHNOTSq1RmUDFMeSmEuoTAMrJb+imoUVxPpDxhDSS0ghNth1TtOAxPzUYl/bpF7GZQ8TnSu9eIvQDhNkvHsscB39+phZ4SGs7os9IVbWCC3N2ga2rb6X/rVYTy8j+pXw41K83vizjM= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR02MB0776; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(121898900299872); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001);SRVR:DB5PR02MB0776;BCL:0;PCL:0;RULEID:;SRVR:DB5PR02MB0776; X-Microsoft-Exchange-Diagnostics: 1;DB5PR02MB0776;4:4EbipNuYy5CCJhAwSUQOkQdA+NK2o2xF/5T+GOv25aeBHtb5L7kM41NyNwVQ26u7OPaDVQJSNtXhaM1RlvcUTYTF9LbcGPKPI5QBYM9dk2hYTF6Lzl+tH7FS1BvB5/egZ5Jlfisyi+Ho+OM+5eqaH7s6Koe99J1/lXgQqqenlrB4FZbYKkU32KlVKdxrRvldKiOXGSdvqadTBqnWlyG7uRwxq6meKDWXQYlbUvPLVjWiUmHtrC6C4UKKOscvUvp2X6+t643y7QlJEHC7WJJO90/k2aXZLPc2azYp14j5ZjlkAdzzn4ttbRsdtji9sMS5ILlE1krJX3p8PSQIHICOje7WVyqHf58yXiCRABJZXCk= X-Forefront-PRVS: 073515755F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB5PR02MB0776;23:3Ab2etDkl0ZndtB3ek1zf+xR1Ks5Kt3pjoZ+JI1Eu?= =?us-ascii?Q?d4bSkUSXfJTYpm1kT3G5cEQIbfsRj/ErOJZnq+KUbyLCTJKbuIIULcu0hYVe?= =?us-ascii?Q?nwqU4MbaYsEGH/JTz41RRdoWDPozu8Uw5U5vzxXKLv5OuOG4LNw3m8yNqUEI?= =?us-ascii?Q?gxQjP56Jv4jeDy7wQviq6icDR0pdQHK2ThcM+RGU5kwLkkxtrCAId15UcfFy?= =?us-ascii?Q?+sqzIWdX/fQsLqZ676K9joQR6JtVcj/iVMOfu0uf8KHrBpk4/a9dZtxJRwbZ?= =?us-ascii?Q?/FAMd/KfI+D5EUp/956IliFz2hBIoMycyB3qtW/UN4S6G2RM4ubz02Pc01it?= =?us-ascii?Q?XnwrK857PbswJT9eDT6fLlv2gOHtZmEqI8oEf+Y/kDVQ7HXSUkOMTXffjbgi?= =?us-ascii?Q?3xLuekBfpLJH6gW4DLa/f9CQuJgpeFi9uzh39shQCwLFOEgCPRgU3SnSDRl7?= =?us-ascii?Q?885xqFGI9xnYizq+TO6Wn1GdYt/9dghgNyj3OMZlfEKWwwbAlKmIw7KccPPh?= =?us-ascii?Q?r4r2pBRRi7BFra1gsXj4kB/WP1dV3Pgczv5V+UDB5nVNpzM2oGKGoiqSM9Ax?= =?us-ascii?Q?3xlt/WRWrQy2nw6Di4fE2WkM7k9UTtMACs33e6dolHzEYYsC3XtxTAkHywY0?= =?us-ascii?Q?6yIcE56BcsMmKBdJXP6LIW2W295JAGMrYtekHHyB1nxLZR9Oyj7UH/qM2Ibp?= =?us-ascii?Q?A0VSUn7j7KXPUGSyQnTVqPnqYdRVYMfZYyTEipVINmH5NEJmsGGJhOSy1zlE?= =?us-ascii?Q?14cnvfUYAT/Ji7pU875KjHAijymo0fBJCbgMxMjPw51+fRKWsyN1QQExpowh?= =?us-ascii?Q?fZ8JbxBaPPRfxO3ecXsM4QB98fytyd4srGU6VAEyncOKzzUTRc5RaF8J7lGq?= =?us-ascii?Q?msmWWUrwMgeckyTULlgOFajq0vqHizybMpfD6GFZsaXk8jxuDVcl4IpeZPxZ?= =?us-ascii?Q?NveAXvy769fSJa+0E2jg/dg7tCU0XlbjsPGUSxe8lzoahd6awdELUuKdmBKW?= =?us-ascii?Q?JrTpywrSV2OVab6p0gtwJmcteacTVaXM6mjVMNHPqmodZrob8RlpMJXxpxgP?= =?us-ascii?Q?erMVTeeVuN5VXf+ZQUAAzM6Kqn4lNaPiYNyPS0t9gasLMMvxmKiWA33lwexC?= =?us-ascii?Q?7nTWu2mIVRZEefAgK1b+mG1hZIZk+gSi0j4Msy91XpneDTcXoStz3kHP+aiB?= =?us-ascii?Q?DaP1LKNalKlsK8W9zkhjrY0auIW6lo+oG+KzdFCrk1oxVCboNCce+JiB+pG5?= =?us-ascii?Q?pGJbfLPt24jzPtJxlw5LSQDExgpkOgxlpaB74cA?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR02MB0776;5:aVYV9BXmdDPlkETEcSngMl2kIUI/VVSK/r20YWg12DNmphGTC/zQj4PqWPauJLh2IJMZxrZ4fzu+0OHfXeByldh6af+iUa9cSQEOg9QSFNqvV+zZldiYgZX2FKVV2bA50GjEKF5rH2u/t1Nfn0izSg==;24:6CGKzF7JgdQDvPwr022AMSGAvg7PIpieydtq+hs9NeRp0hHYR6s1EA/VVN3EKukof3ySeRDAtqd4URMJ/MZhdNnTZ23/cAh+H5urxO7gLzI=;20:Sj9aocX3NpaXSECZ/Cq56wrOUvmNUZ++XeRyEmd1yIOE2Lbd1cG0RMX47VStHtP8FX4U6bJEdwYGQaCmNkrl6w== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2015 20:36:28.7770 (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: DB5PR02MB0776 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This function checks to see if a vmstat worker is not running, and the vmstat diffs don't require an update. The function is called from the task-isolation code to see if we need to actually do some work to quiet vmstat. Signed-off-by: Chris Metcalf --- include/linux/vmstat.h | 2 ++ mm/vmstat.c | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index c013b8d8e434..34e3b768e432 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -212,6 +212,7 @@ extern void dec_zone_state(struct zone *, enum zone_stat_item); extern void __dec_zone_state(struct zone *, enum zone_stat_item); void quiet_vmstat(void); +bool vmstat_idle(void); void cpu_vm_stats_fold(int cpu); void refresh_zone_stat_thresholds(void); @@ -274,6 +275,7 @@ static inline void refresh_cpu_vm_stats(int cpu) { } static inline void refresh_zone_stat_thresholds(void) { } static inline void cpu_vm_stats_fold(int cpu) { } static inline void quiet_vmstat(void) { } +static inline bool vmstat_idle(void) { return true; } static inline void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset) { } diff --git a/mm/vmstat.c b/mm/vmstat.c index a9c446353c7e..05fa1f0eefc8 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1431,6 +1431,16 @@ static bool need_update(int cpu) return false; } +/* + * Report on whether vmstat processing is quiesced on the core currently: + * no vmstat worker running and no vmstat updates to perform. + */ +bool vmstat_idle(void) +{ + int cpu = smp_processor_id(); + return cpumask_test_cpu(cpu, cpu_stat_off) && !need_update(cpu); +} + /* * Shepherd worker thread that checks the -- 2.1.2