From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753099AbcCKW0f (ORCPT ); Fri, 11 Mar 2016 17:26:35 -0500 Received: from mail-db3on0092.outbound.protection.outlook.com ([157.55.234.92]:1663 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932697AbcCKW02 (ORCPT ); Fri, 11 Mar 2016 17:26:28 -0500 Authentication-Results: spf=fail (sender IP is 12.216.194.146) smtp.mailfrom=ezchip.com; mellanox.com; dkim=none (message not signed) header.d=none;mellanox.com; dmarc=fail action=none header.from=mellanox.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 v11 02/13] vmstat: add vmstat_idle function Date: Fri, 11 Mar 2016 17:10:12 -0500 Message-ID: <1457734223-26209-3-git-send-email-cmetcalf@mellanox.com> X-Mailer: git-send-email 2.7.2 In-Reply-To: <1457734223-26209-1-git-send-email-cmetcalf@mellanox.com> References: <1457734223-26209-1-git-send-email-cmetcalf@mellanox.com> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:12.216.194.146;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(42186005)(36756003)(1096002)(2950100001)(47776003)(6806005)(86362001)(50466002)(33646002)(4326007)(2906002)(50226001)(229853001)(4001430100002)(19580405001)(19580395003)(104016004)(92566002)(5003940100001)(105606002)(106466001)(48376002)(87936001)(5001770100001)(107886002)(189998001)(85426001)(5008740100001)(5001970100001)(76176999)(1220700001)(586003)(50986999)(960300001)(921003)(1121003)(83996005);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR05MB1686;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD003;1:VKxIKvttTvnniy4Vbu2WM1m9p6RpjnnzOCQw++iiSbX4h8gCakVzwBBz7Z/2cNI2v7wipXm2z5Yy3QOLJ8P4tXV21yd2KPKD6qjyxqcD0A3SB5h2KHZp3aczkl474AGn1RR3KmFBNS9ddd23x9Wd2P3vyCToWwrAkz3zILjgRO4Edjiy23yes8guiMM2uLntSRDa4itwf5TpVdpSuEnHlcVpbNGFpIvjANxEeOaADXVcixZWrSvIbE2qTpdEaWoAYZSHxxgFLpK7xuEczojHr4gcUSOjPgBA0elUcROH2lt/6+WooQP8hcN/CoCGwJ7Sp/MEeuf29fOuSdVlV8Xt9Jw6u4nsoJHlbdEoy+d7kfzIkUFpVZbqX8eDSK3/XG5xC+x8ufZWl8JiJtp1iOjUtsEBWiLeXsjlKsLDa8XQina0x5FNcmT4oahxDVZiIfQuE/IEGIe+fDk9HpHkhjIaXKpHpsIarMzIc0pX0f4Y/lpWNHuZzpd7X0hHKf4MeDuk3yvlk/AW5/mbeprdpJ+WvPwUSPRgiKAUy12NZroIwQRHSakJlsgpDDcW9l+KSqOT MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 045ea92b-fd6a-4596-8fdf-08d349fa0587 X-Microsoft-Exchange-Diagnostics: 1;DB5PR05MB1686;2:tElmGFiEbsv5lZ38mGxFJULO31Dn6VsOo/zPecQcckonqF4gDAmRb4aBpFJL5wHdrrAPVRKya5JWvNWj1A1L1+BDwe3oYuA9rcuLKznGGC/PF6dgS/e10WsL2NPFpxQtA1/CTUxfga+6BsoLTHO31n71Z8p30aWR5Z4SRolawbzqd5nT67C0XSZei7zXpgtL;3:pt50aNMPoXj/jRdcyizBJxM2RE84MHEsxQ31Piox07weXtRytV3gkZjJ2IVR5dKbXtqylBoTwwy6KBEnDQQYl6o5a3aSoCNp7dm6XUGS6DK3CaJSuDdtsHvJspnWcQDfgj6YpN3g2To1Y6FP2kWHU+UamLcVBJITFdF4z5Y29b4SkwmorpHUX4rLtRv6kmRQyF2TyJ/V9/RnITEBOpgmNE2QQRptrPZvBHImNQj8G3A=;25:/tvGDgObrx3hDRXoqSA4VTNWbadMtP1k39vEGj8P/IFQ2vN/8udYT8VvbsBNh8MC/7pgznzPohwqDje6xeSj4dIHrA7JoGjX4VhJa2TPckeaFM+I/6Zqn9rwd23nxPdmh0BKR86q81RVrNLDaTJqVsPtl2XMGB0oBlFVXTMkmUe47m6rYv0sP7tAfCjThyWqvyOzrg53gKzDQsEQ2NiUbCG8CRKFN3xz+EIaUeZ64NZnQJlOi4qCiK16zroSLndOSpIh5RjBbFIAbgiK41Z36v3hcscKM5klfMzIlSOkM5r9elHSOJicaiuOV7et2x0jSZD1Kqkpxa+2EUF4AsmmjQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR05MB1686; X-MLNXRule-EZCH-Linux: Rule triggered X-Microsoft-Exchange-Diagnostics: 1;DB5PR05MB1686;20:XbuyBZJNql1NQBuAIpy14Ga+ggyu1XQlLLkRFF/SoZIBh0Ez4L1EMfnubZ5Jhd4yOmcyfLclF/Rhx8Y8JMhpDljdxMegMbiKwn49HJmFmi1nbNmcOMEyl5ihXJm5nMn4TSKPpRm/0/kHCx7xGKJV8JkgjJJ5jq/5Y8Fus3eVPwlDq0CCS2F2bACOu6bI5FQsutwrbFOqcy6JSyyF0rs6Mx4a+4NZwkTQ1j66sHbFgHupgG7PSXDhHhyZYyZ9jLSjSc2YWN1ENOHr81a80aFaa9ykUOzTs1pICzsievi+fpWEd6RM9JPp1gi3ezi5HONOHMiAQhPpAGY7qto7kKI2gDHSsbuvAdeXFN9wurZV5l5GrJFLmaCDBHFv96k+dh6jLqZ1EUf4ysMtqZjuT1sVFRpQDgfSNl2KvW1p3Il5IVGU2O6Gv1+CY+z1BNNNglbu8mKlkOcParK2b8qioJmowr35eUartF0Cz82d9WSeZntzWvkTVsIlm03xVYA6RiPR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13015025)(13023025)(13018025)(5005006)(8121501046)(13024025)(13017025)(3002001)(10201501046);SRVR:DB5PR05MB1686;BCL:0;PCL:0;RULEID:;SRVR:DB5PR05MB1686; X-Microsoft-Exchange-Diagnostics: 1;DB5PR05MB1686;4:U2ldgt4zcn79is4Ju1NvFbxd1hDKg3T97yRbn8YqcK97QMO3A89bVTVD+OFIcmtMGKFbUBzMwjZSxdFkUKfdzkvJPhkvhBq3HpHE6QTEnkxU0w3Af8vfF0JWLcTdlra0DPGpLHvQOrjQwv/IwioklLc3bPXLAPH0dyZzvBNB+E2jyjN2QHpb85l/Ym3MyNxtVrWiRBAVoRmftqBwLrpIDrSOZZqdEw83rMDGjqtRiJr6AuEeLoCD7M8eIlqlLNo3bwOmOab1GBeZGh7KHcNAsDa32bcWO5LLiuIMrO93/Rgil/BG6/unviGTsa0vVqkjlCC3oy4YY5e2t3aircifAFjVQdfpP7ncy1TKnNxIIIGsQQ9ERTYluJXtY2OT7cLc6YByjhSlSrn3464ZbbpbhSjIe3AGJXLwfsmmzGodpFopfYItD8PGT4HAmxid2txW1mdEkC+EfCrUH5h4/hJATQ== X-Forefront-PRVS: 087894CD3C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB5PR05MB1686;23:1ZRnT4b5RfR0OcyrjDA8noew8B2Dn51Fza1ytIBII?= =?us-ascii?Q?y/UCLHDbk0jEjko3lBJsCMMiJKAcwxAZafSTY6GPqJx5zhNhIC232lMBQq1n?= =?us-ascii?Q?mLG+MYXg5jegfGI3f4+xv8H0dnJ8q2CG29x0R0AMtXX4itpCiLTvnfH/ezvo?= =?us-ascii?Q?9JzoeiDhlbCCpNYutbR3WhLgkgCyS+PemczwwxzgRwTMQuCFgnylCSIj+c9R?= =?us-ascii?Q?N5g3PVAWliMa4VMd38L7uZjhgHXpEWXpWYHrVV0NALHdoDXezvODjeVe+wzb?= =?us-ascii?Q?G74QO9FZOSLEbl/0xWun6r5QEXEJkfgPpq8xdfvZnHBWJMueeFQLxD/DscLC?= =?us-ascii?Q?0bgEKriaKv55kKXPUVr8ps4pZlviIUcPfnt8Vc4jS2vUIyNzThwFKmwhBjve?= =?us-ascii?Q?slpIJy/brri5q6l4QzFuoMFiQSu/LSnkneBMLw8RiI8ghQ2mOqDpEu/bZDc1?= =?us-ascii?Q?B6dYN0ga8mur4BHNI7UHTwNG85IhVkbWJXJIp1psnuiuCfEbj1xMMOVPz7oX?= =?us-ascii?Q?qmSXdaOgUW9P5pR3CSFSGq/MLFVhRsPbhiT2LzAd1wFG3x+XAZv2yiLbZSML?= =?us-ascii?Q?xeSAEglKgG5m3m7ddW2M5K4u5lQUqecUd5jZYsF0cFaQJUy8NF94BVeD23iq?= =?us-ascii?Q?B1f+ZASEukXOO/8vMdMCYw4uaDhLqgTrPTBa5jGRgc2hwPs+ATNjBFUH21lp?= =?us-ascii?Q?936N2CpcWfCnsIES87KlOYgxA6rWla72nPp+l61o+4IonN0Q/T0zHLZKSUqw?= =?us-ascii?Q?9P/mtZ/1kADGXkpGiuaraURBWq291VqeKVo4IpXHhc50wOYDrY040rbkRkp3?= =?us-ascii?Q?6LSls3QrMZ/vMYuBVrybol03OVBcaD1/hRpJRRMKM/bdQEPz5hxU1qJKlsLo?= =?us-ascii?Q?Psq85iDjoqOXiYhwFZydADYi521aLKGCNgUmDUHzBzyaV+TVSPST2RZOgjs8?= =?us-ascii?Q?4+AL2NcDsKCSdMyarrj00yfBowQ6DrxM1PLcg/9gKL9O9vw/sr7UjZprx6Pm?= =?us-ascii?Q?UA7rqArpkxtMVSkgD2f1Xyx/G4RmC0TE9iOyDoj6gWhoNFVmkA+Griwp3fPt?= =?us-ascii?Q?+WAYFdzXdjHn7PSStjfCuuh3r4yi1QL3HNWdh3ele3sZE8j9oQmi16MMK5wU?= =?us-ascii?Q?DAltgB3HvI=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR05MB1686;5:AfGZNU9VIHEJ1KxwrQsb0Gy2qs3nFyGnsAydBk5uiL/hCq3DDdLGCcIQT12xZ8vbFMXgry/JbB2LmK1lwtJx2po88dq3p8fye+GNBUMm5fzn36hT12AXkNQn27VyQsZVlbKOqYILD5xxF0PLF+nbdQ==;24:eYVAUZzUrzOqSA5bhel92YV9FChxirB0St0DeI1Xj198hWwnlrkf5R68+9ts+TK7SJNRhg442BlAB+OjKovo+tvphO+M3Se21EuaAWIkXNg= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2016 22:10:50.8053 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b;Ip=[12.216.194.146];Helo=[ld-1.internal.tilera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR05MB1686 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 | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 43b2f1c33266..504ebd1fdf33 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -191,6 +191,7 @@ extern void __dec_zone_state(struct zone *, enum zone_stat_item); void quiet_vmstat(void); void quiet_vmstat_sync(void); +bool vmstat_idle(void); void cpu_vm_stats_fold(int cpu); void refresh_zone_stat_thresholds(void); @@ -253,6 +254,7 @@ 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 void quiet_vmstat_sync(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 ff569246fcb5..3840c42f029d 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1480,6 +1480,18 @@ void quiet_vmstat_sync(void) } /* + * 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) && + !delayed_work_pending(this_cpu_ptr(&vmstat_work)) && + !need_update(cpu); +} + +/* * Shepherd worker thread that checks the * differentials of processors that have their worker * threads for vm statistics updates disabled because of -- 2.7.2