From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932555AbbJPTvz (ORCPT ); Fri, 16 Oct 2015 15:51:55 -0400 Received: from mail-am1on0100.outbound.protection.outlook.com ([157.56.112.100]:7634 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932365AbbJPTvv (ORCPT ); Fri, 16 Oct 2015 15:51:51 -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: Andrew Morton , Christoph Lameter , Michal Hocko , Linux Kernel Mailing List , Lai Jiangshan , Shaohua Li , linux-mm , Tejun Heo , Linus Torvalds CC: Chris Metcalf Subject: [PATCH] vmstat_update: ensure work remains on the same core Date: Fri, 16 Oct 2015 15:51:33 -0400 Message-ID: <1445025093-32639-1-git-send-email-cmetcalf@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD017;1:sgk2Ph8SRd4E8n0oLscAFzlot1Ck4C5/8I3T52GOUDYGpWQJdIWhxSjHfFAt0dRgkXcqew8Ke5IGkd1+hwblaWA3ttesCVp5TMBtmr2NItoV27buOA7ZpsnsjchlH1ik4CHNXePp6sExHq/qAgXKhScshmdQ0JW4CHPYmEHLTUs89PF80eJKFaG1fR9NsrPtTokLI/51lWwqSXaHI5xV/c9vz1pK4ujA/GSpGRo/zEVDXXUb8jH42jNa1Yb6j+y1UZTMq4gLfdaH619Hc9QXDlc3ThAgXvMxC1aPm7DHm4P3NbLW25/JVTQQY7Ud3Moesn5OQ1RN2ABVI4ddwSBoNyZpSgGYDYDfQDbjrLeUskMdFvOuIcGWX+pL+0/3SptDVXxPylrycpz2K/Vi2OUuWA== 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)(229853001)(47776003)(189998001)(50226001)(97736004)(86362001)(106356001)(87936001)(19580405001)(105606002)(64706001)(81156007)(5001770100001)(85426001)(33646002)(5001960100002)(19580395003)(5008740100001)(48376002)(5003940100001)(6806005)(2950100001)(50466002)(107886002)(92566002)(42186005)(106476002)(106466001)(46102003)(36756003)(50986999)(5007970100001)(104016004)(9376005)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR02MB0783;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;VI1PR02MB0783;2:H8BG7p0M6/vhSzjxoVDLKfKrSNBcJcRom4esTdQ3zPgreFu7BIcThkLbDspGN3fnTKsJ9jC7GjS/wOLu6Xv3wDCcxW59N4xx83tiq0/br82D5ymJOrnpU3GNkbwXrcvaZNkM1g9UvTQYM76+Ti1q5+SswEXMsTNlvZ/4YPnxuIc=;3:f1tpLsocjgIpsrRyXN7Y7xTooyqiwrtV1szWdaxt4y0bi/5LmJrc5RgZw1Pi0jdcb2nLz5p8OUlsoT+diClfkTU64T4TxM7cwFX/FjVPYNpfyHFpsVYiP5k4XzgH1zatwe+t6AxnuPSiwet2S3sI0SfF+2b+EGx0DEWalzeOYvDfRt0kyQVHMtbh2LXF9aTu8qO05NuL4thrnxEJv+6Huzj/r5RtRLhEL5xdXwRVhsFEB7IPDulCEic98T+gi6wE;25:azlVddMYHEAIJKmjuc2AwAg/9RCOsMNmI4HdW3pYpHkC2cf/TtuWLngLQj3/AaaZh4UGDO7AX7+qDWPtGDTPP+HIKU0j8svWfF2QXUE8u7ODlMKGpWYqrg6ubgLref8DUdpifPQ7sisDBYS+7VQ6hhZu7Cv+4U2lkHUfFLqgoLQz1wkuGEhbaphI4p5NLYgSiBklGvHZ8Zj0s/WmxroGvzuEAkrLEa2Nbhy14HITb7WysYEt0bG84R0PAbIY4uAHg0Jc7rJBcr++sSH/F1CvqQ==;20:HfgSG6JVmZd14p9ShpoggYqfnQ+CFphlG2w4JHCZ7ToWMyf2FHOGbBJ0gJgpzfCHPli5snJk4q54Plj+hU2p9ojAAMoj8PaDMUOjwFh/tb+G9TpO2F3me/dBgDJMLQCTGSvufS8Op8egnbLM/n36TSTEa9HOlN17Wx6pLuUZANg= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB0783; 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:VI1PR02MB0783;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB0783; X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB0783;4:9VZq5bWnYjHmLLCcwh70Hu10jUa0zww616SerKM1FEPBqnI9XWf1dfzcYToX+R2uO7kxCLajdyDKl2cUuIBxof4CT23sAoCXCnXSU4WoCkZhLSY2UUEI2ZJPYP/cirQLczBwwgcvweoxy/Oa3NWC9YylcoWMnH+TwFfx0QeZ1ucUPic+OgiMkm3BYSOqbJcQGQWyV9IZ/vEaBUVys6uk4aYcvaZsP8UAkXMlCyhP2H704JhgeZBWW5k8LEFSg9MJd2rHKnaWMjLoVo24WbQWYpEsfqUl5NUghDStZObLKO1bfaIlIAMOplP7zLVVlGxHFaolx7vMW/nmnUyltd2gxvaZVHDwAE1oRhbtbkamICw= X-Forefront-PRVS: 0731AA2DE6 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR02MB0783;23:/KKv5yD+X3lPNOHFC5Q6a9U9BMiayu8pPC7Pphwtc?= =?us-ascii?Q?t0IK1oZZUDhsnAM0Y+WtVM+clhbaGlbASlwrsGDK1Tp6kOMkRRtFd38zAPEF?= =?us-ascii?Q?d3Ll0TF6bZnPKxnsa/FMYo7Pw6CHAmwXz39Ts4v2ST0SaRf/vTu9EPNpnvOP?= =?us-ascii?Q?7ELNzUXkr7sIw3RkiSdHH3E7wMIy1R5l0DCqnnx9LVejcHlc/BrGk21/oN4g?= =?us-ascii?Q?PeZJZ7YfJ9H4q8diqFJdqXpvCV454dnTbVzUatly1/HoKgrfzlQ22MWMsxfX?= =?us-ascii?Q?eHAsIjH2BsS5r9MsZy++gs/7VOiy2RIpYBYObYsBBce803HsRytep6+/DbUX?= =?us-ascii?Q?zaXdXZtfcI0piT6mR95Y55CPoIQ2tmnCKaj2f9ZGBh5n2nCIKoRO2H4Y5seZ?= =?us-ascii?Q?NoqJRyMpWUjaf3UAdW+kqVLqJctS95UIZxb344xncgLWQjkBrNIhsdlKSS41?= =?us-ascii?Q?r/AGByaAvVqmdNygROj93xyCbDQFhZM7WoR4VMucDjr+aF+tskTXE5i2GUZ5?= =?us-ascii?Q?jUCMqKivVnS31/2usTohU6fFt1m20ysYV8TwYbsBTr7AGdaoeCgi/cQ0irOt?= =?us-ascii?Q?NS2yJRfNh3vHZXH3zTFdm27O9Q4NtYltP1OdIYzcROszEgtfUEco0Pmp4kva?= =?us-ascii?Q?KJf5RlnhdfZuP+o/oAsTDT7ZjdaH0rvEJhFvAS4LNo6gXYrzKMAt7wA/5Qxj?= =?us-ascii?Q?Ep4TAKovK6ckLI4vIJh9Lx4uADEL4UNVej7dVU1vwglTIVAf8iOTB4QAlZpZ?= =?us-ascii?Q?PxMfLmfRuZOxw4DlqejkvT0qJSlB9/RzgF5UH1CQ6m+URCOoFnn73uV5HWsZ?= =?us-ascii?Q?9YHaZhpz0nutTdeE7xJJ+SF8Bk2b+6LjSU30QOiIFeZ2TBNvb8Q0Orbhpmez?= =?us-ascii?Q?dD2PDXqZ2Nf/CmqI7768xY0VqyF60cXPuVcWCHhAuPMSz8YdGSAV/L1g1a55?= =?us-ascii?Q?qUahia5shPVduHFdZzPRe28sIaQxPRRzZuja4/Eoehr769dgLwOuXH7VLRXa?= =?us-ascii?Q?GFSZmSE7CzPXfzzJjH488oq0dth2lvc1ntMk1xX2fQisP4aB3zgGWdFSGrTK?= =?us-ascii?Q?DbZuh+ex/GOfSmUXNvnJcuupiyqGJrynrvurm6m1nqjm8zAbCVWOcCFuhUKM?= =?us-ascii?Q?78IXWKA1gK0CnilwbAWKgvXBNimhqcd?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB0783;5:MWxH4zIFQeYNrTuVFhAJdLbdoGjeipNx01wQzrierNnjRaHqUa/hyIoccv/5v+T/+4MezF9tHAJkRDN9JILWgHSe6CpzSsCKKNJEsnKNh25gcMGNrxWgz3LcJ3NuYinCZGMUeqyj9IkwT/rxD+4MCQ==;24:GNolBuWHnOqkr4KW+Xch0X7XbEMydSag4SfgexHvXooDgP2B508/s9dm/7PH0VHnQdZOOClhxK50g+/RZoZNZBjSSKZ+BuPWTeZ29gBF0uo=;20:lbUVzyXbrs8+7Wx1jBJfj0817OmWZlwVZQY7UpGt9wfiq4zA2xQtvojw+6DPvwb/lnnYFvCFVsPGHPQ5b+fCwA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2015 19:51:44.9395 (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: VI1PR02MB0783 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org By using schedule_delayed_work(), we are preferring the local core for the work, but not requiring it. In my task isolation experiments, I saw a nohz_full core's vmstat_update end up running on a housekeeping core, and when the two works ran back-to-back, we triggered the VM_BUG_ON() at the end of the function. Switch to using schedule_delayed_work_on(smp_processor_id(), ...). Signed-off-by: Chris Metcalf --- This change that I made a few days ago in my local tree is particularly amusing given that the thread I am appending this email to ("workqueue fixes for v4.3-rc5") also fixes the symptoms of the bug I saw, but I wasn't aware of it until just now. And it took a while for me to track it down! I think this is probably a "belt and suspenders" kind of issue where it makes sense to fix it on both sides of the API, however. mm/vmstat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/vmstat.c b/mm/vmstat.c index cf7d324f16e2..5c6bd7e5db07 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1369,7 +1369,8 @@ static void vmstat_update(struct work_struct *w) * to occur in the future. Keep on running the * update worker thread. */ - schedule_delayed_work(this_cpu_ptr(&vmstat_work), + schedule_delayed_work_on(smp_processor_id(), + this_cpu_ptr(&vmstat_work), round_jiffies_relative(sysctl_stat_interval)); else { /* -- 2.1.2