From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932839AbcCKWK4 (ORCPT ); Fri, 11 Mar 2016 17:10:56 -0500 Received: from mail-am1on0086.outbound.protection.outlook.com ([157.56.112.86]:46512 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932084AbcCKWKw (ORCPT ); Fri, 11 Mar 2016 17:10:52 -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 , Michal Hocko , CC: Chris Metcalf Subject: [PATCH v11 01/13] vmstat: add quiet_vmstat_sync function Date: Fri, 11 Mar 2016 17:10:11 -0500 Message-ID: <1457734223-26209-2-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)(50986999)(87936001)(1096002)(5001770100001)(85426001)(33646002)(1220700001)(76176999)(36756003)(107886002)(960300001)(104016004)(5003940100001)(189998001)(4326007)(586003)(2950100001)(106466001)(2906002)(50466002)(4001430100002)(5001970100001)(47776003)(5008740100001)(19580405001)(11100500001)(229853001)(48376002)(92566002)(86362001)(19580395003)(6806005)(42186005)(50226001)(105606002)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR05MB1529;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD023;1:i2oneHVXYP4XCQ5WwdD/rqRgAaoVcs61e5YWX+DvYBPcccP7rCrMM9vuGTZRbWsL+QzaR5OCug6nVTMmOPgBV5qGOTSFPOPc7qgVW8yXDig1ZitibD6zxSTEZ1qr8uPSHRSyGkjKokIRVUv0/s9jhbF2dHtb5OkbmyBePrfMeAI0lDWGL+B4KaV9IAKuKMSnV71w3iTX2H3gKTdPCBb1Nz1Pj08DENM5BN6Xt5l7u7srPxFavbdtvs1pWD0+a7q/sQ4fwEz2mbFdJYXhAtiHTpk6FEexwZXmaaeBr4a86ud3R1sHA++eO7ETk9HGhmEcqIRln7WJXX6qe+/x9KhdM2h7SbeQ57UGfVGYuakIFm5vwegJVRpNW2YERqJwig8VeISYF+vZFBOu/3I/uig5wxjuHWAzl/2mSXpbN8ACVtnfkUIZ3q1+ECikOeS1jrw9v9EVc7RxqbYjOjN37iMo/3YXe7Z1H7XX5QVG/5ASQXOX73YLY9JxXw9mmBWXyl40jp/Z1yaCARe+xFGN8rOLY7ODa+Ard3W3zoD55bBEz+oEPwblPuhCB0dPJuOrE2tx MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 39bee260-8aff-404b-3ada-08d349f9ff2c X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1529;2:meqei25PWao9LMXMm+sMz0d+WRPJDS9e+DNXS8sgrec9tJZFNyHoM6z9AxIKbFqtcdaajSNoB7XGpUJqkZmSRCVxuklQvK1NleTDK3k+B7z/UEnqBjMcdPbaJ7QKsa0tWEBSWdpazOW4g597IE8k7Te787/qCP52PQ/go5ld6iT+6ci8GsrbY0DkIq69BmpL;3:cxpbVbA6MPvj+L47/6EJhfoGEmKHZxeX1PPb/qOWTao5d021ntbpy02DHbo8jOsy7JcbCOb2JF+wouR2MIbcNAuICEE/XJEuF2eox94WMxKoO62LtM6Uvx/2OjFWoYR5jZqBj7jAbl9U73JWwJMj17T9pdU/HtObuRYO+RMtvlwlyFnHCPDs8F5vHsaSJ5Aqe111vndd7FU5hXQr4Ts3B8+FQgPYUjAN8JQg501I5T8=;25:mZke1GR8UP19GvVPo7XNjzQuFccdVjP10x+T1MK2fkdcTMsOzMbhBH9ApEL/FMdTQMYH04ger5mH8QoxO1iprJ+RrTX0kd8AH4tLCrT6dIjZ+VkbtseC5Mwof1QFzdtWsSu8L30rFPQcSEOb07ZRTDki1nUZc7vOi3lDcKkxWxaWIC3lP9tApBbqxhVuNb1+Zy1+Q6m3+hzmGhsdaEZp7UaBLQVhnDHHJZjCrxzhq2dB+lHs58RPhi/88SOiL0Ha0O4TJLMF3QNWLXm4F7RfZ6LQ6whfvmHNjSb/46wqwUnkgnXJUG6kIB/l1rxcyhddD62Op0KqkVs8BZU5CIS4xg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1529; X-MLNXRule-EZCH-Linux: Rule triggered X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1529;20:q9MCYK28RqvWzeumX5WfegRSYj7oAW5iubu0esx6c+Uwug9O7QAbLTrEB83ehKvX3zjMos9YjUNsYGmFptCNMcgL6tLpT+cxWAvQQDnIefeYCgMofSnOTEpZaO26cfh7F1QcnBZrUd5NKQXo2SlAmi9oOzSdzQ7FRZJxS3I8eIOVVHExSJAxamcNazkZNG6LxGEtwRmbuyQxk9rwmZ52D0OIDgXORpBT2IdQ7sS83bviwhN9qTTnDx60lxr7hRA34SY6bMIQSG87opzNjYXFn1v/s7iBfN7wrVi4oJKT4aWN/MTtDs0flox4J9VCVoKAHdPReQaAbiT5/+Op9K/jg6zGbsmZlr4Go0SOULkI1jTgK7NVbG7Mh3jUsmoV5jK8KYQnTmUlFPIAprLH2GkNX8BgJfg5yTVlhjpszWI34gQ+ev16KbcfuoU32r4C6cLGkQyaGpaPruUo9WH8T9YgAhRkkBGNnboePrO9BN361RO3QqbkA33VxXuVGQfFGnhq 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:HE1PR05MB1529;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1529; X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1529;4:wivW+PTyN1d7FaZT7lRnXZ9I1Sol5yNS/d6Sug+GnBqDnl+KFtHn0S2rbJAW/uci7wj+Hfmzj6RhrYVuiH+9iQFMaeIwx5tHT+5xLdbBz7R/zqLAhpjuXLlPIiU8Twjtvaq+jNUoh1haeAm04zuiLDuXgobTtnpVw/OKjov4+KeVXjLXopibbn+lMeUtqhxlTzcsJj8T9tXh/2YCUvAywyidU4QZvFvoOJZ29jcFQxc1DFaTX94cna2haX07hsMpxNefTgChOs9T+6pLs966OnGFApdtZxKyRQmNr0SzwnkFeXtRtvZ0zB+m5FHN92Y7ExXmYr/iro3P/DoLnWgdPsy9Uvd4p05BoNeDzda9aJd3kVSk9X9GPmavrIWyUOdnqNqyEXNJBW3BLi3/Qb9zgyXTws3KJNnRhmZqwYHlxbwFCtWlhCl5LCgpTXgqX0NGpOiXEYxbezzeYT9Fz9s+zA== X-Forefront-PRVS: 087894CD3C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR05MB1529;23:fJoX4M5T1t/4EHAhnzIUrHwA3kEZFRO401HDwLhmc?= =?us-ascii?Q?wp3Z1zz1/u8hsZDdk+7tjMoSt+jnOz/H9h/3Lm2Abki5qL/OgJx//iWwlH7N?= =?us-ascii?Q?pGpFdzsc6PsYL9dsbkbdUsLLQzgwkfKUH1lKi40dp7gotSmMRVy9pQ3y9+fJ?= =?us-ascii?Q?Q1zmrzc2ybx8r6Ygndz1ODMFZCYqP4nstjWN7FpRPG4s1cSClF+hp9x7M91y?= =?us-ascii?Q?wls7t3DDRMLFAYhoMvGSNUkwFR8w1x8x5ekqYB7LL9sKCQEm7CCaGQ4YiS5n?= =?us-ascii?Q?VPXmg0kAlqIeB7J6ZQqizPpLge8oHh1HBAkelK6/dgDcdXx5Zi+a3DIQUq16?= =?us-ascii?Q?ck2t5r5r7ywGwsh8HaNEJf1NqIvUN7U3b7vLwv5cARI2XBlL9rh9k2397I52?= =?us-ascii?Q?PQMv+j21CFhjulHrzQB0pEXWJWwztX6/Pkoyfe9s8hvVFHGigZFvuhX4efhB?= =?us-ascii?Q?H1E33mWaA2qqe88i5dMbWso8z/OyPsXb5Uk9UzBe42YZdqQ9Xd6ifqO3qPe2?= =?us-ascii?Q?jjA957Y7BRPfF16W6c+fXMENhGaXxv4Y5N/XFh9sXCzhyTKEDSxKM3cFpqXh?= =?us-ascii?Q?00R61nbo5IF8PCpv3ZiYDIf3iNhMZIRkUdHpYQW5tMEr6n0P/8vO5Ih0s3fY?= =?us-ascii?Q?IqoN8S+wvMfJ+mQjGakTHBJlBCEWxwzLegy3s+YcDwZEhRlS+f70W6SWIBQC?= =?us-ascii?Q?oBEoeNhL/CKKnDwLD/1oq8MmvlM3TvHFIKYABhhnAK++d1/SDkcnBP+Cjlau?= =?us-ascii?Q?bB5VhL7LtQibYVAjzNKyIVzT18QbUktAtZQpBAUkqohaLYElqDYrGgHTa2uT?= =?us-ascii?Q?D5ZOLnedv9pcsTdjnOVy9CbXuV5LxhfB8c3StgFcyhqAmwx4GEeQq7hOe3ck?= =?us-ascii?Q?qMQlhFSN+b1sQreJhg7RsUhcBpjxoFfB3omgsFrUQ13q8dl/YtAVE9zD8pV6?= =?us-ascii?Q?d2S0w6LA1Bkhy4iSAR4i2MLVLyXOtTiMDR4Gx0Rb2sNOgVcBXJSFlTDsi81O?= =?us-ascii?Q?8OeFhM3snhDLdVzwvcJH9weiNNivPpbrVPcZpFpYS5J8bx270T3kKgQ0qFIk?= =?us-ascii?Q?AqRqo8HMgP8ZFJT/B5Lsgq9hM528fFqm2CFM0Q+JvtpcU82GVYdnXR3nsR7p?= =?us-ascii?Q?FnUJfxlbEQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1529;5:vlh+EoEC0Tm+W1MJMrTfQhQbjasPJAbwZdyCtzNDvPQCZxxEMGDHqpc2L9eZxlodyGxn031FolfQ1SaFIyDSEwRdWgRq0UVXg2cWDZh8ffq2GfTg8RUEFLk2WvuKH1N+sAoU3YBOK9+hAqAK4wwCcg==;24:9Qj+MEibiWtISYO4BJ4yPnucgSm4SsgtIlxndvhgbuJ5xYmZK2Vpk5xZ2n07bhKotNsNKK89PKS1KqdXfMRgI0WLSBe8uMNjUH2GQlgQ4Iw= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2016 22:10:36.2248 (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: HE1PR05MB1529 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In commit f01f17d3705b ("mm, vmstat: make quiet_vmstat lighter") the quiet_vmstat() function became asynchronous, in the sense that the vmstat work was still scheduled to run on the core when the function returned. For task isolation, we need a synchronous version of the function that guarantees that the vmstat worker will not run on the core on return from the function. Add a quiet_vmstat_sync() function with that semantic. Signed-off-by: Chris Metcalf --- include/linux/vmstat.h | 2 ++ mm/vmstat.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 73fae8c4a5fb..43b2f1c33266 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); +void quiet_vmstat_sync(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 void quiet_vmstat_sync(void) { } static inline void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset) { } diff --git a/mm/vmstat.c b/mm/vmstat.c index 084c6725b373..ff569246fcb5 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1469,6 +1469,15 @@ void quiet_vmstat(void) refresh_cpu_vm_stats(false); } +/* + * Synchronously quiet vmstat so the work is guaranteed not to run on return. + */ +void quiet_vmstat_sync(void) +{ + cpumask_set_cpu(smp_processor_id(), cpu_stat_off); + cancel_delayed_work_sync(this_cpu_ptr(&vmstat_work)); + refresh_cpu_vm_stats(false); +} /* * Shepherd worker thread that checks the -- 2.7.2