From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752995AbcADTf2 (ORCPT ); Mon, 4 Jan 2016 14:35:28 -0500 Received: from mail-db3on0100.outbound.protection.outlook.com ([157.55.234.100]:17472 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752626AbcADTfR (ORCPT ); Mon, 4 Jan 2016 14:35:17 -0500 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 v9 02/13] vmstat: add vmstat_idle function Date: Mon, 4 Jan 2016 14:34:40 -0500 Message-ID: <1451936091-29247-3-git-send-email-cmetcalf@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: <1451936091-29247-1-git-send-email-cmetcalf@ezchip.com> References: <1451936091-29247-1-git-send-email-cmetcalf@ezchip.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD015;1:nnd63jP3z59xnm+ZdgRFP463s9GrlOoBxCxvvcO8EjAbBka/DLZXSk2aNEDuuxJ5t+WV9HfhI+zVoO2wVG830mry077ea27gYVP0fKjYhTs/puSU3KrIa+sLLdkL04gZgk87mr/0zHcql6ohpj0kHJIXJx7/MGDLT3gpSLV9fc1rBkqHxzpcey/tnw4MfH8A4aFBYA+Y0aUveTtWsraQ8CRDFjEYMM5Pbamr8UkUDv6Tn0+kWmYvQc7i/E8i8MAlgb0SYBxzl1FzCK1JcJOi14JfNEOAZv3QvJWmBL6I5aQfqz7ydooFukuFMA52Dl3x2PxRl4hF2IbxpFTxrPRtJw+WpJ0cW8lWtLPQMuPxsmvLTvT7gwNtDtnbBq/d3TGB X-Forefront-Antispam-Report: CIP:12.216.194.146;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(106466001)(47776003)(107886002)(2950100001)(85426001)(42186005)(87936001)(48376002)(4326007)(50986999)(92566002)(50226001)(76176999)(19580395003)(229853001)(11100500001)(86362001)(1096002)(5003940100001)(33646002)(4001430100002)(36756003)(105606002)(189998001)(5001970100001)(6806005)(104016004)(1220700001)(5008740100001)(19580405001)(50466002)(586003)(5001770100001)(921003)(83996005)(2101003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM2PR02MB0419;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;PTR:wb-fw1.tilera.com;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;AM2PR02MB0419;2:y3k8heSvw9WBTXB3JOZtOyTMYr1o7d8Eh5QZDzJGsoqcjLSK5NKFk2WFUFsNPmD20uGbWVESKX/nCPQq58dGDNTqgnQR0jBTLaFby+OzCrxbsQeSeASVcImsDY+OILoKl/kf1i447VsMfajUh1rqqA==;3:kTq/s8RUcr7V1bNs76EYIP1etHP73HbKfxX2SY0x10Dh2yOqiO6KE/eGFwZPDL+oSYfUEh5Ep1XNVnchCoisBReGBsH5BHAU3Ey11pb/7dLBR4Qylx9RIYKulwByMZg/B1QJ5N3Lc5zJTn72mD9hi7X+AMPOk03cUDhlNibVHGvUR1Y8kOWd8C82vYbVuvdxvZjL8pNj9Nk9zL6THF7D8XV0wI3M88BrkHoF716M3aM=;25:z4cs6XcaTgLStaHcrJrQVYvJbWtbEfzfb71jOFBY4lkGSssyzaqnNHKFNTaU3lNz0V4pETncPBEGDfXCCmLZU4uBIuttCGOVkudtQumS8EZknNVrx2fhFBd02EtbgvsUuK4aTnZlKvHaHTjUmyyHUIGEBBCoXDMYF8pnCIzxJ+cdRQjn7/uVav4heOVopfAdH4e7BsWbFvjcvT63ipx3Pb7f7ewZkhgEsgh6j+JJCdj56MTikNEWhq9iRoiiskCGPLt2fY0f0m/U7d3jPFFHIQ==;20:iKop34j+CFEjtcTEFU2uBEfZSGTewm1l3onUKvsOVwMXTZaON/iU2Uv8MPl7MqVBuFaApTAZ2Prj1Lqc0HKkcANYeQyrgA8DUNjm4JrgS1YbO2i+ww3sTiWTtdI47ay/UD3FpX2HfRcBLGaAi7uPysqi3GHFRa6GyTBVfTntBAw= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR02MB0419; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(121898900299872); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001);SRVR:AM2PR02MB0419;BCL:0;PCL:0;RULEID:;SRVR:AM2PR02MB0419; X-Microsoft-Exchange-Diagnostics: 1;AM2PR02MB0419;4:FBwEiJKtRUr4ujzdVwgbrAHZ5y6v/2wAe8KvxWQaTn0btakZwLu1opXSC7dcMjbVOY5xxCUV+JTsulFRSQ0hmvMA5+wm+LbL8V4A4vUtKhB97Ku0qeG2iieWgUL81XsbQWCCFuSdFRPYMjhVf7QIxmBTQ6+89P93StYW6qHVe/ytgq31uuTkIHIBXJ5CdwEEBIpM0vKoLnbPz58gJkBCXK7pSAkRmNV3gB5EtEQoN+74flBFYtv53wJ2KU7IlUzJ1K7fjsHD2hjKcUCinUBOOSI3YNbFoAslSMrcUvIPb8V8zxCYx8S9VrMYBGMt+pN0mVL7H8C5+Hx+3nog2MJn6CW4B0lOvqosEKin5w4zCPkjQKO9/HLQZoiflr6eDCZLRoh5ZhMgxocP6XotnF2dL+bXamn67sgXRu9wNt/YfQ6t/wJbN5RIzXmSMT9fNzc9 X-Forefront-PRVS: 08118EFC2B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM2PR02MB0419;23:gUuoAjlp5KW8n/MZ3y3iAp8MBVzjW96aIcHRYNk/+?= =?us-ascii?Q?nlVgSGGdh6blLoYVqXC58O/I2/twWsLUPzRapnpEc3JyWXQSSzpxAwn9lEzp?= =?us-ascii?Q?cWNduUt8RdZ417FI/33rWQH7OFYOJ8D2xm87YTG7qpLZIKsKxB1HGV7RmfP5?= =?us-ascii?Q?lYq7pKnWwWJuaxTv0KTPe+vGs89T6nZH1G8OkBeTCJux4ECyPhSN/rOc0noO?= =?us-ascii?Q?Ng3hAYBGNL9t7OzQGifLubQNAoXv190fH/jVI1NekQTi6ygoWHWZe28ttCLQ?= =?us-ascii?Q?Pw/CU+2oxvTujTP50GqrYSH0K1TNnseRBzuogWEELRUuF38aDmoiNoz3dkWH?= =?us-ascii?Q?Uq9JqZVqz0kzapUP5AcL3rnrr561JxNtwv3UxXfrz+2dcUYzVAoN6hTbKloz?= =?us-ascii?Q?U4BzBQxVQoUVBQ63tGUcjfMUFooRdJt+zDTmppTXyctvcejeEOKcpxTxyrjD?= =?us-ascii?Q?s7iQEyS4G7ydbuDraMxLYuRkJtVuR5yRH/R6FW1SknnRMiIqCOXVpVXNXv9e?= =?us-ascii?Q?nk5AilK0nulApKXGwBEkjmLEEG0aoSwtvs4SZgPR091cqLYdmrzxNs2vqmhZ?= =?us-ascii?Q?SYaSQIO4JpSsmhOv2sIliOxOyJLd/RwNcL+TLhyAY5JdhauzwQnNEBMIeiym?= =?us-ascii?Q?RYc+KaekDM8PF83kJ/TqaAcIqBYxDgCAVKMAdKCNIaV430kHg8tbGvRMllDR?= =?us-ascii?Q?j/IAECp3fcPEC6ZPMcD/o+9HCKQmKdDDyj/JoyTl2PX4rzVjtdwJs7v3M45p?= =?us-ascii?Q?FYVlP3OJotyHRIkMaW80EpMYIV6M+1df90eMf3PuJahd/IJxrhaqwLEHPVoQ?= =?us-ascii?Q?t2r+QbtHU97S9qulooIY70qFBGZ+wdCwzjHQtCrF0FBXGHETPUV1Q8J9xbnZ?= =?us-ascii?Q?OcXR36KRlZDj7yKWqiwMyF8/SQpiJDZDAtwsAU/z8k4Pl/gcFbaSzdQTzpWR?= =?us-ascii?Q?L23IXrzQxHSMF3rICHBDMOliGCRW44U6qqYgEurQWHlWPBHG9APoP4ol3zue?= =?us-ascii?Q?TPU1jiQmlWt46/+40/c7t2d8+4qDNkcEcopxjin7r6cEBEXJNNC65rzZRWZK?= =?us-ascii?Q?bg1cQGvgt7s0hQM3XquzfuJjgJ041HIdXnuf0gOfnBjxaRJ4ULSdyZoKQZMI?= =?us-ascii?Q?rvVIe58Yef6VmdiO+Pkmt4Xy/rtVFeoUzls5deQ3nMJkGz7I0G6IQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM2PR02MB0419;5:lf044MVg8OVP2MFSDBlrzSoRDXgm/5NJLVjVf//CSNzljQt1oha5tHnckCn5D+j6YUNm6a7RcetqxeC0LfRw0ZP6f3yixDrtkJvEFpLZqhDMTzwHwCsuLMnWGZQHDj3tj9ZYfhpKrfe/VKRfD106tw==;24:zFj/CzfIbcMhol6x0+b+NxjJ9tufqQLlBZJmqvLMKUw5n5VLXQ5vunOeO6hapf1xSjouj8FuNPghVJHsF8eptzg6CLqD8DEfydIUFqpT0Bw= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2016 19:35:12.4642 (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: AM2PR02MB0419 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. Acked-by: Christoph Lameter 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 6f5a21993ff3..3dc82bf5bce6 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -190,6 +190,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); @@ -251,6 +252,7 @@ static inline void __dec_zone_page_state(struct page *page, 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 0510d2ec31a6..ccc390197464 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1454,6 +1454,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