From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753056AbcCKW0M (ORCPT ); Fri, 11 Mar 2016 17:26:12 -0500 Received: from mail-am1on0079.outbound.protection.outlook.com ([157.56.112.79]:6912 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752606AbcCKW0K (ORCPT ); Fri, 11 Mar 2016 17:26:10 -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 03/13] lru_add_drain_all: factor out lru_add_drain_needed Date: Fri, 11 Mar 2016 17:10:13 -0500 Message-ID: <1457734223-26209-4-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-Microsoft-Exchange-Diagnostics: 1;DB3FFO11OLC003;1:TxlxH/vxZwhYMytSfCReqMJagpueVeShfqy6Mj3sUc2MpoVZPeUHjYTE5mO4Y41kdfMNw1rzvu+LEOdQverpyH79dYsS2vOGGVv1C4t60DtEFAFcigLFErJ/y3ZQHlpeBIJmzNliekWrtUyoxG6JNhJCAJAme/EAdFo2DiDniHC6hKDMAnYJcZg9a5ICcdoFIU6ZWPphTZsd4NnL6kYHHKWeRLGD0y6/nPDve2nkemFFNopKGq93gYfBTpcog3qiq8wX3i6ePVwKkGNB0/IXXpoxLihvDy1GePzNauES1+LwzdVAVMgPTkkK8HuSRwuWMt6QxYEE79W+anauzpblhhNOgoGxoeh5a6p7u/MvI38O5vcndswxMjvE++aAhVMk6cBJXDMgjf4yXNQohMCDrLFUdayT1iRfbwzkYD8vuAis9tHoRzEHqR7rJ/hpzQXw14w1BBPSBZ/fEPNJL1rNxxhQ/LbX91IOA1vSlWc5TOMsZtVE4J467DAh1Gca8/RjZQI/qklNlsUi/6AMdrMTPA== X-Forefront-Antispam-Report: CIP:12.216.194.146;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(47776003)(4001430100002)(48376002)(1220700001)(1096002)(50226001)(19580405001)(19580395003)(586003)(11100500001)(85426001)(2906002)(2950100001)(5003940100001)(5008740100001)(50466002)(6806005)(104016004)(4326007)(105606002)(92566002)(86362001)(36756003)(189998001)(76176999)(107886002)(5001970100001)(5001770100001)(229853001)(106466001)(33646002)(42186005)(2201001)(50986999)(87936001)(921003)(1121003)(83996005);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR05MB1523;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;MLV:sfv;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 4543ff52-3365-4860-db87-08d349fa0ad4 X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1523;2:APLpkdanzW1RSfHMQyioy9TlaV4lDg5zeyiqhlRK/LMO5ut49xeiTPOv7MVXKsYkoH7oDgtZEfl9vJJaVVF0IIulew94p6VUUEel4dxrTWTNafk8E0s6zxas2k0xe9cA4j8T/pCm7lq87eihI/Cb8Jfh7sflyzRlAlThs4L2XHpFOel05q6Zywi4/lgsj69N;3:DLoW1FDRRbdIlr6YrVhLNOEmKAHwv37pOLUwZR2/hALkC4rAMuq2pC0LCZfTQBTbpA2s3/GGUuWq3RGIHqFuGZKF1nOrF8OMgknN4/MX0CaJ9S3xB1fsOKI+POd2M98FB3IvlmPXbuxFVtvGQsJBu2HKaF5rOPryqejYLB3u9Eeeofh03vRJwdSb0tLb8QnB2KsEpPjpsbma1OLskutLdvyTb9hRGGwexFq+wtVanLo=;25:WOpb7+e6WLz8O/zwl/x1AdK3WRAIIzBKYc+3HxFkvOMfbXUYPcKki2HFq6OPTE24ZV+4PzpBya3TrN5VWW6McE/VAmtEnz3ZlYZMa0FKZ5kYwyUXhWe3AeRLnjimO9ZlrkwiwrwdeDw3qVhG5ruQrUf6PX92xo7KvE8ANABo9526OTlZkJDTtAXPiF1aIN4Tvqu6nB2kGWB0nNsA67q8lBZgXqI+/fhoicHGZUXBRs7YFQ3HXmfWBqOaBI/Bf6E+H/UViJFx8UO6AjyGfQY/IC2faKml0CqRcDy1AVfV37Gn+fQIarmcLXJw4dkIH16/lWN34EBPN8hq+a/PZVFIcA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM4PR05MB1523; X-MLNXRule-EZCH-Linux: Rule triggered X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1523;20:lqTmqF1/t4DGdg3DhLcmC8eAj7FsxedKw1pj3VnlAyrzNABN9v9mSvQuV4/i3aS0DITmbI/+HPjG/hYzplI5ne3osn9TJvj5SXqtpeMoCrvw0WGE2/RZyAtpHKFFNwyKLYIzsxe32EjUn/G56j4166B9PNwiq3/VuU8VdP1HKo8VAOJFY3mWTR29eDGiukU6bEIb7lzPDI0X0hBpioKbDrrd62ZcO4fAygqFXXIVRO5yGkog4SYbtHZWmupY1SJN3dEMJy+Ix0xU7luXs85ttEF37MHbZQl0K3xOJF8K14WdJ9Wa/3SRsb8fT0NQuZpiBITo8kysG0f7iWAbMOb5PoayWwygHvMMU2R1ntWl+xxlzvAM945aGavfR1CYKsN2/16r0RI6ywqAc5DB5UEClzJeSbCNioE0yj4V/cNBsxPKWmbkAm7MVkFDaf+EEHsN6/6ezFm0ZMl7WiFrXzFLn0PWugpGlLPobNt98M5twos4ISfLy1HL0cYLKbNCMAeU X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(13015025)(13017025)(13024025)(8121501046)(13018025)(13023025)(10201501046)(3002001);SRVR:AM4PR05MB1523;BCL:0;PCL:0;RULEID:;SRVR:AM4PR05MB1523; X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1523;4:v+/i64zdJSHCuFZg2aeb2No4Ndm/y5zHzIPUX44Ic8IJOwt2tALGT8SFkowo3cvxDle26KVCznRtfylCuVzd8CxnApd+WkV1YRYdHUyK+tMn9I55uen3tnQkX3lucXKd+qd0XaVI4Td5AZssjwgkuBo46gP27Fm29XrP61mMxyXuO4FMY641R68MrfsYZt4gD2c3puNbJ1SvN1EIEqQD1ymlHQ0vbXTdUo65onoxUDU4FTYKwjLbsznC5bM+K2dA/qELj5YSv0ydNG/twO9ESEwdyXYUK7ZbjfZ48OVhBeLWKSTk6EF3y/AIVSz2iEcZMF8pvEAvrZDpJMEUwUJv5ypOV0IbGMelVwxtHp6WpOAyqOHrGMDVGcKK36/CVbehGr9JMocvlW7Kg89/JwGiLrRx+2U6zLczQQMWazAM0HS95p0EEFBxAQjuM25uen0RgXUW1zveTISQ/9XGAC0dbA== X-Forefront-PRVS: 087894CD3C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM4PR05MB1523;23:KieTRDlgyrw/JU+iCehp3Hok4ckT5nTJKKbyGg0Sy?= =?us-ascii?Q?UjhmqqJKkDif2wDNAqtR/1/tN7I8QqQhfI/fGvx8xT5w0TRhD+tIRtp2oIba?= =?us-ascii?Q?W8V0rUZVCrPQXf8E5WYvcvab+g1PhUNbTbmmNQTDVmPj7/3Iq2+EFz0gqPUW?= =?us-ascii?Q?CLd8Vln92OSIJ7dTEAntjU/k38HhiV8DcIYp1za+1lZ749vUbUWd/CuEnJTy?= =?us-ascii?Q?GIHILqkWztIReH8sKgRr6E3mpkxYNJIwzPoebZs/md6s+btOH9wSeFPiE4MW?= =?us-ascii?Q?tRFox9zMT9hRX0eIwrR/99s/LfTMlHJLaR16N/BLkV9ueQjI17UzwcG3v4Lw?= =?us-ascii?Q?shBSey4T0spq1UPlfDawvCIAbovEfLCHW5UjwIIaIX16jTmsFs/a+uUTDjJx?= =?us-ascii?Q?FYbvgwXrNFWPBM2+uZ3TO+aFBhcvK3xppWsTyv/x1oZ85Qq0HpfI51QGds4R?= =?us-ascii?Q?SOoRePaou7/12TRVcYmXJDDIJH5DeMO4Dxnsq49Q+N5HsmC+hTYHfhY/pNV5?= =?us-ascii?Q?nT+aqmIhWqL9gjYkmz4rY44ybnSxiwb3JjEI9OTy+jEV6/ns2QIjleCBdDHw?= =?us-ascii?Q?6XnD63KU+T2/Ywu4lh0A3GDUKJu2hewrT8Ag2WvJswMGGCXsQvtMOS/5OOvj?= =?us-ascii?Q?J4necDQzntqb5dAi2GCl5Leu9islf3qMoWaZRFxPTf65Gdsps8KnO1USa2yV?= =?us-ascii?Q?urOB3uezBc3GgwsrAiaRI3fihkmc7tEc5xPIB724U40ZtvrjQYVHWv1EcXe5?= =?us-ascii?Q?nWUCAaK4yOegggJUbw8iNP8qGo9bsP0LYlGH/B4/CCOSVzyaJ03aFJNUtv3i?= =?us-ascii?Q?eKm7slh0nVyRRUKKEl9jh3hGBhgDL7Z1Yn0Kru6unxw+Gy+f/yKqEJJ1khmT?= =?us-ascii?Q?AuQaJSwNmYYNWS1LnSWXDYN5HiUVonnUQpdwlEmAwVGEJuWFQR/vvfghAw4y?= =?us-ascii?Q?aFD2d33p7v6jxz6bk+zq2rmMbIkGYnS7M1OeBHVS5gVBgvW+aCSY9cM/nbW6?= =?us-ascii?Q?jA/E4eQLnqbEcgRXOsga3haVSnoSv3x0QS2GMzOG4IgNrvsT1zrZZNkLf2eZ?= =?us-ascii?Q?yRu+ru+w4lljCdZqdrACaToxRRZF2lyvQPFjnbsi6HH41B0L5IcmLD1Clb/Q?= =?us-ascii?Q?XgJuOfp3NCCZu+A9w1K+aHeaGH12pzH?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1523;5:EPcEevxOu9kRvBlHrpjwIBROoOOBF99++Siz5+y8MNC5bqmACA+Et0gGZeGCqQT/KB/Yxc7YNWMn2Y2ZHSqpVHRjVbLAe/HH7rGqg1I5tBxYsZtWndSQLAMM4JhC4UVhBlc5chB8HgUtE4vHCJqy4A==;24:Wcj+JGgjwCGKHk3ejiwaRYNM6fb3i+eWOtp8w9/fY3Yp1BbsoxZR3+8GGoXZIvePoIOm3txfDuuDZso8oZEDknaWOADt9KfIwIpnKgoawT4= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2016 22:11:05.4257 (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: AM4PR05MB1523 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This per-cpu check was being done in the loop in lru_add_drain_all(), but having it be callable for a particular cpu is helpful for the task-isolation patches. Signed-off-by: Chris Metcalf --- include/linux/swap.h | 1 + mm/swap.c | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/include/linux/swap.h b/include/linux/swap.h index d18b65c53dbb..da21f5240702 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -304,6 +304,7 @@ extern void activate_page(struct page *); extern void mark_page_accessed(struct page *); extern void lru_add_drain(void); extern void lru_add_drain_cpu(int cpu); +extern bool lru_add_drain_needed(int cpu); extern void lru_add_drain_all(void); extern void rotate_reclaimable_page(struct page *page); extern void deactivate_file_page(struct page *page); diff --git a/mm/swap.c b/mm/swap.c index 09fe5e97714a..bdcdfa21094c 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -653,6 +653,15 @@ void deactivate_page(struct page *page) } } +bool lru_add_drain_needed(int cpu) +{ + return (pagevec_count(&per_cpu(lru_add_pvec, cpu)) || + pagevec_count(&per_cpu(lru_rotate_pvecs, cpu)) || + pagevec_count(&per_cpu(lru_deactivate_file_pvecs, cpu)) || + pagevec_count(&per_cpu(lru_deactivate_pvecs, cpu)) || + need_activate_page_drain(cpu)); +} + void lru_add_drain(void) { lru_add_drain_cpu(get_cpu()); @@ -679,11 +688,7 @@ void lru_add_drain_all(void) for_each_online_cpu(cpu) { struct work_struct *work = &per_cpu(lru_add_drain_work, cpu); - if (pagevec_count(&per_cpu(lru_add_pvec, cpu)) || - pagevec_count(&per_cpu(lru_rotate_pvecs, cpu)) || - pagevec_count(&per_cpu(lru_deactivate_file_pvecs, cpu)) || - pagevec_count(&per_cpu(lru_deactivate_pvecs, cpu)) || - need_activate_page_drain(cpu)) { + if (lru_add_drain_needed(cpu)) { INIT_WORK(work, lru_add_drain_per_cpu); schedule_work_on(cpu, work); cpumask_set_cpu(cpu, &has_work); -- 2.7.2