Message ID | 201708311518.v7VFIKtD017611@finist_ce7.work |
---|---|
State | New |
Series | "tcache: Manage LRU lists under per-filesystem lock" |
Headers | show
Delivered-To: criupatchwork@gmail.com Received: from gmail-imap.l.google.com [209.85.233.108] by patchwork.criu.org with IMAP (fetchmail-6.3.26) for <root@localhost> (single-drop); Thu, 31 Aug 2017 17:20:42 +0200 (CEST) Received: by 10.179.5.229 with SMTP id w34csp2089836ltg; Thu, 31 Aug 2017 08:20:30 -0700 (PDT) X-Google-Smtp-Source: ADKCNb5WZ21xV3SZ9V/ilax55LrsptU5hxip7iCi5B+UeibNrcevWuuGGNTSDHMpriNe+P/jedoP X-Received: by 10.99.173.2 with SMTP id g2mr2752455pgf.200.1504192830756; Thu, 31 Aug 2017 08:20:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504192830; cv=none; d=google.com; s=arc-20160816; b=XVvrvwPGmce+kFWVIxtcXpt0FG7JylyD6ES5I43RMlTH7oVes9q95zve8IS9FTPVV4 DUNftEM1DlmxcFYKlwbtVkNwrlmc/kKrUvB6WaMyCsmE1ZIaEpiYrfEz8hVSwh7e7bk2 gzsIZ9Gm94NaqAIIK+ImP2ciH5zuwsvd+//PbqvUZ4KfxNKKkurSGfYZkhyXULL0CLEL 9oIJDX4bm9OPwd9gC4pQCTGyAwb+ejjQK3KsbpRVQGnY6gqJZD7Z2KSgEVSgjhjwMVtJ VnrU8mq1mA/V4TH3KB27xes56wh989UCgiSZceMHztLbD12n+BihUxdAhNSioNEbUxdO snLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :cc:spamdiagnosticmetadata:spamdiagnosticoutput:mime-version :in-reply-to:to:from:message-id:date:arc-authentication-results; bh=DpE5ZnM1vPsnniu+nu8fnKqnOEd8eWSPRXiQJ5W5Bgw=; b=eLUq89yVJYDy2/kbaRTNdzLJVf19IlLAYm1ACPedT8S//fIdXez9b+AqIMzbVKYN+G Ov2tQfy8cg6u+kHMb6cFhvMWLRX51ehTeydMniBh1gjkaLbIp2oeHR0feB859kyCHW4m UkJH+Dfv9bz4XYWnrtGKN4hCKpfJkStj0yO2Q4I+KSPYWHM/nkMtFVCHvcFhwX4rl8VL nhMeOXS/PYJAqKLsGSXidKmNHrEYtuzGpuUN08IwAvxd3dOiHNofGTtyS0N15ZmVtGpd h/VPTXRTL4D6ep/M7ehmFDhk2Uj3/x/Opc2WS2gxmGwJC8vSlkdETUUw66WMfaixg0Uu ooqQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devel-bounces@openvz.org designates 195.214.232.140 as permitted sender) smtp.mailfrom=devel-bounces@openvz.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Return-Path: <devel-bounces@openvz.org> Received: from mail.openvz.org (mail.openvz.org. [195.214.232.140]) by mx.google.com with ESMTPS id o10si6684804pgs.93.2017.08.31.08.20.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 08:20:30 -0700 (PDT) Received-SPF: pass (google.com: domain of devel-bounces@openvz.org designates 195.214.232.140 as permitted sender) client-ip=195.214.232.140; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devel-bounces@openvz.org designates 195.214.232.140 as permitted sender) smtp.mailfrom=devel-bounces@openvz.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id v7VFIjci024936; Thu, 31 Aug 2017 18:18:45 +0300 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp0180.outbound.protection.outlook.com [213.199.154.180]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id v7VFIZCb024896 for <devel@openvz.org>; Thu, 31 Aug 2017 18:18:36 +0300 Received: from DB5PR08CA0013.eurprd08.prod.outlook.com (2a01:111:e400:52c3::23) by AM4PR08MB2691.eurprd08.prod.outlook.com (2603:10a6:205:c::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Thu, 31 Aug 2017 15:18:22 +0000 Received: from VE1EUR01FT022.eop-EUR01.prod.protection.outlook.com (2a01:111:f400:7e01::201) by DB5PR08CA0013.outlook.office365.com (2a01:111:e400:52c3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Thu, 31 Aug 2017 15:18:22 +0000 Authentication-Results: spf=pass (sender IP is 195.214.232.6) smtp.mailfrom=virtuozzo.com; openvz.org; dkim=none (message not signed) header.d=none; openvz.org; dmarc=pass action=none header.from=virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of virtuozzo.com designates 195.214.232.6 as permitted sender) receiver=protection.outlook.com; client-ip=195.214.232.6; helo=finist_ce7.work; Received: from finist_ce7.work (195.214.232.6) by VE1EUR01FT022.mail.protection.outlook.com (10.152.2.233) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1385.11 via Frontend Transport; Thu, 31 Aug 2017 15:18:21 +0000 Received: from finist_ce7.work (localhost [127.0.0.1]) by finist_ce7.work (8.14.7/8.14.7) with ESMTP id v7VFIK9s017612; Thu, 31 Aug 2017 18:18:20 +0300 Received: (from khorenko@localhost) by finist_ce7.work (8.14.7/8.14.7/Submit) id v7VFIKtD017611; Thu, 31 Aug 2017 18:18:20 +0300 Date: Thu, 31 Aug 2017 18:18:20 +0300 Message-ID: <201708311518.v7VFIKtD017611@finist_ce7.work> X-Authentication-Warning: finist_ce7.work: khorenko set sender to khorenko@virtuozzo.com using -f From: Konstantin Khorenko <khorenko@virtuozzo.com> To: Kirill Tkhai <ktkhai@virtuozzo.com> In-Reply-To: <150289512279.29411.16621370115862957210.stgit@localhost.localdomain> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:195.214.232.6; IPV:CAL; CTRY:RU; EFV:NLI; SFV:NSPM; SFS:(6009001)(2980300002)(438002)(189002)(199003)(36756003)(42186005)(26826003)(9686003)(6306002)(4326008)(54906002)(47776003)(356003)(8276002)(81156014)(8936002)(69596002)(1076002)(87636003)(86362001)(8676002)(81166006)(189998001)(50466002)(48376002)(1096003)(40036005)(110136004)(305945005)(107886003)(6636002)(5660300001)(5003940100001)(6862004)(106466001)(966005)(54356999)(50986999)(2950100002)(626005)(4000290100002); DIR:INB; SFP:; SCL:1; SRVR:AM4PR08MB2691; H:finist_ce7.work; FPR:; SPF:Pass; PTR:msk-vpn.virtuozzo.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR01FT022; 1:OEUS0LMU1WbjVGe/SOpezvDIjnzEAO5l8b3zGoTN/j+E2z6bSur/Q/s7vXuMziTNRHZq9RdV2rjrpWQixpAzU8BNmi93K84p9RolOiCfAhu7xGKsvlxr9cAtOOusrDgN MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2d459593-b380-403e-c069-08d4f0838476 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(8251501002)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM4PR08MB2691; X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB2691; 3:a02DwPThSpcC09FMAVGMuc55Cugt4M1sszZ71NH6EJBr8ExtZPY4lxQsbNEP8ld4OIsxmOUVOA7EW74ujnN7RZNN0ArBD8tr+xknamvzr+EiYt2UzkRCTJudkm1P2QC9ZdbmBlL+NonClb7nKeE9/iPrh8aXGigfftoblQowHw+nxk9b3Xtq3m0OC5LGbkOA7WI3j8Huye1ED7LGjdrgsH8KwXM0NhvOdRMKbgpzeoEkQWalpWD8K52XWWm+diSDTU8leq5THP8W6OJMMFbF8iOTdzhsmKxBZwG97oqdG8LIFwqshbVVxv9k//RBdZ6I7jGzzQXV5wby8cwn4QX66VcWAExTaJrOVe3CvbG8IgA=; 25:w02PFDwbogUdYT1b6sZ4SQ9+oqILY79dU5cUwAnBcpjfqXB7VnuCH55BDegl72sKepSe7Ks2YscRECMwv5V7yKRCKQk2wUKzKjJUBa6b1s/TYVSqGpv0Yhmb13ow3aFoKRCcehUMO8feLqJ7Nq6h9ZCYspLUsPqWDHxFUjoiMXPbsZ642oH929oMdolS6sirBV2lqReD6F+EHa9kmHHoFODz4sTSZoSmkd5vPIargMB+eNt6xErDxKHLseK3xFBZRmmCkdkb7+dipXvbVifX72FG/M39vXeD+N3PREF/cf2pjCr4o0a2dDBxb4CRdLZ+Hob/X4bQdTpDSt6k0CVoCA== X-MS-TrafficTypeDiagnostic: AM4PR08MB2691: X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB2691; 31:1LaRBzJr3L8yeNLQRGErAeS3GCYqYn+uSb9Z82wECSRO9bVwymFU4lhy17g76y09lnl1T2U6iSHEeX7BS1RA7nrjVgxPF6tgiTg0mZ3x4NmUpoPj96aqPupLrgAgmS6YXupsoRAwN5IGJtg9iqJeY6qGOURxZ/Ow5VTPh88lBfEH7UM8A7ZVOZQ2SlL/jkmgjL67oT+hsNL3AlQekoziPlv8tz7NGY2hBqetMNQXMg0=; 20:ndY5quyPX9x0IzNvwoOkInHE1H7YzJU3uRRntstBmBtrJMHnbWpBWcC8d7vT6ch/NmbcCqjBXoviTiLXotr85uVP/yISIkkeQVkVt1BQdKDw9BRYQ+JZzHlDRxSbzVrgR0Sq0DDpYpSQLa+TsARwmCmSPcHRdW50V22XjRL+K18SMiRaLta4mCuQ8vpQHGcWH0gm9fnB++eyLMtE0O7TOQqF5tYJTmik/2k2CV4VtRbN9ahEQ4M+ZQNwknHk5RE/iN0hJn7d24uYmZy+rH+N4gX9AOFxMStuevyIp5n0zdj0kLqmwvIhGLZN+a3j45cScWNfuV6p/aNP1NKYJHDXZ//X44Qz64d2TuqFdwnY8WRoXvsod+UiRXCra5hxtj2OwfyNC2oo+qjNHihkmVGVR9eWNzDZaV9UezPLiI/NOb4=; 4:yfVegNEYvIrJBGQgzjd7CVlNnDRkb1BNkpdotC626bWFaOcIYNd2xw6RJ3Myn8ZjiocFN7IBeQzWF5DrRqq9y1FeAQra3GEUgRZ3Z9z0qtoVWXQMPLf2tgrqpp9tjmXCZpRLX/7pwPcNk9a51UhOdYfgP6RNb8hpXICOeKcu648ktNO/rDuZVAoZ8qHJLQWH8+gq2XMssY3pkZe1Cswy1H5MrSq5mwR8XQ8PHC+8v2XcuphDB2mnKMdeos6qeE8n X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(9101521199)(601004)(2401047)(13013025)(13021025)(8121501046)(93006095)(93004095)(100000703101)(100105400095)(10201501046)(3002001)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM4PR08MB2691; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM4PR08MB2691; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR08MB2691; 23:O9hEZm1Q9n23snjlizCzZAgbMjeuG0hPxYuo84qFv?= =?us-ascii?Q?qQPvhR9d0WwqHg4U90iPRK2cju7XNp5E7wxASUgsLxQjskWIfBJ9jdqkw8tN?= =?us-ascii?Q?/YGU7Oa81puINDXDYu7xHIZXWM+yZcLV47aLeJw6nvKPUSVCab/VhVJD787n?= =?us-ascii?Q?loEZvKtrMz10LP52hmGoDd9UzOxg8wIRSd0UjD/ubsNDW5WFOZzkvwaTfJFt?= =?us-ascii?Q?zKc64yOzWnSRjyot23IZB16BHmK7o+kIiNR+YSuUHHkOhEgYrMD8F+3i9z0H?= =?us-ascii?Q?cEV3jZzLBwD72xH2C1JjkfjZqSXH5yz3H52sCESTDKZlt3eBIrHv9F9nQD4z?= =?us-ascii?Q?0mFp8XaeB3ZFmyf0fL54rd+RzVz692MPmITNrwizFOkdWLd87j30VBZBUl8b?= =?us-ascii?Q?QUy21pZeX1H3SaxY1M27qbrJyskH+6ozIBHtxJtfN08vbGWgaHicLoWE8+zQ?= =?us-ascii?Q?baC0yv3SpAml+mCJD+9tIBVHoGeDJ8seNnPdtAfSEHHsfeyKRdcKa8zTKqDF?= =?us-ascii?Q?zJwStlRKr7JEfGzLIX83G10lH8sB9J9HI2xJzvXbrsU82Um20Jks+vOLz6xN?= =?us-ascii?Q?hZPzwnCBPHFt/Efu1Th+FqcqE15H5nqkst56jVuZ3NMghbCI5RMu7DdMB6Wt?= =?us-ascii?Q?4Eq11Lq1NgD35ryZPOEr0tCwOT+05wHHzkLl6e3wBBAhKN1Yn1poB0yDd3jI?= =?us-ascii?Q?x7yITGz5xwYXuSIhyWVi3lIJOzMcO9j7WgDCp6jtJzWQSLED9dAjJM57v9ar?= =?us-ascii?Q?NzsmtAqSzUlj2pUP3F1rTyy7zbGMky3Dz3dxOfdhToYeYnmIV65FdW2UwSum?= =?us-ascii?Q?7H2oQJqsYhDKX/vj6kE+h16KqGlpmZqBIQbj3/cpv0KyzEmLTykJm/QLWOz2?= =?us-ascii?Q?7vfjsNbpf0EANhu+4d0o4Zf7ypgMDRBsbAcbnRrajjt9SU76qlkOG8f8g+5B?= =?us-ascii?Q?04/ZyMt9Ts9PYrbueYvOCUOPCA/cxeScsIOgsULAc8cZlk23ZTNYpE2hAbkK?= =?us-ascii?Q?cds8w4LkauhRXItLZANL/y5?= X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB2691; 6:TbeZoP24b5BqFgLH+dIeubEsnx1i1kOYFbkKnpJKUIZ7M9s/GxQQz533s4CPz5k5URSyODOAqZJcJrSCTNw8S/Q5Ht7L+X4UYuCcVOjY+58VoyV0/Fc4en/2XlIHfVHeH7YGVa7jM1rw7QNjpvWKi7WPJNFRYWUZrPmgg80KcD+Ib13ulqkSsTpMSp3SIwCbeAZMu8ER15XIIqMJow8T+I3MIrRudvr0aouM9E/4cSDuTnebSKByLoFEQ4mbfU8mdvumLIJXDh/tXIs1IFQq3yZ3a8QPg+phDjQScoX4oCGWPuyT0iy6O0mx6zeHABOgLBA1SydtSOx8cLanHzcnog==; 5:th+cmSYRYPMcuk3ScYjM74uvWFE+SvtpK8PYg8W1L5rKl/mLKLFaaI41f/2vvEonN+JJpVlTT6aun+1nUHCO9aE7L/1Zn3Way7rqeLT2DXrQU1WUz/mW7QHonjljxeGxe84jWfyjYKdrkleMQahhVA==; 24:MxCobOOj2mHS5HauQW3kzbDTR84bFLq4X+9VbeKwov5arOkoWSEqkB50xgZ/7Dm02aFu6+Sv8RimnmhX59Tn7Rzjsl9+XirkZxZA8XhPuC4=; 7:JwkygSghfHxJORlEIQPxYCmArVNY32cldnBn1jmj1p4kkuOo5wC2Ifk2ne76ntwLA5RvuDtGsjvyndQAOdoqYFJ76voV7nGHbGGf1iF591OBHNhVI2ItdbGyAfrJ8GeeYSU85rhAJP5RQvARnTwF+Ep0zly8rLtDNSIZm1btv/j4Z09A2VE7q7lqZjzAP3XHGC6MuazTGFJV5Qx9m0fq2l56b9P7OFlFaPZkrEkJF7o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB2691; 20:CkTyIKaDqjBYvXH6qtoZq2OJzh7fkb2QoIX/oGGeJpVWMn4BgumZmWDyaPjwHN3NZJEAySRPXiUCwg5u1UkLNqg5MXUQgTcwGqdlL4FVKhSLP+vWXA1mqmxJQIBSNpuNy7WTrNs8gMFSUyVZ3dBZ3c/WR0I5pZz5PS/uIj8lVIw= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2017 15:18:21.7339 (UTC) X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0bc7f26d-0264-416e-a6fc-8352af79c58f; Ip=[195.214.232.6]; Helo=[finist_ce7.work] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2691 X-MS-Exchange-CrossPremises-OriginalClientIPAddress: 195.214.232.6 X-MS-Exchange-CrossPremises-AuthSource: VE1EUR01FT022.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossPremises-AuthAs: Anonymous X-MS-Exchange-CrossPremises-TransportTrafficType: Email X-MS-Exchange-CrossPremises-TransportTrafficSubType: X-MS-Exchange-CrossPremises-SCL: 1 X-MS-Exchange-CrossPremises-Antispam-ScanContext: DIR:Originating; SFV:NSPM; SKIP:0; X-MS-Exchange-CrossPremises-Processed-By-Journaling: Journal Agent X-OrganizationHeadersPreserved: AM4PR08MB2691.eurprd08.prod.outlook.com Cc: OpenVZ devel <devel@openvz.org> Subject: [Devel] [PATCH RHEL7 COMMIT] tcache: Make tcache_lru_isolate() keep ni->lock less X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development <devel.openvz.org> List-Unsubscribe: <https://lists.openvz.org/mailman/options/devel>, <mailto:devel-request@openvz.org?subject=unsubscribe> List-Archive: <http://lists.openvz.org/pipermail/devel/> List-Post: <mailto:devel@openvz.org> List-Help: <mailto:devel-request@openvz.org?subject=help> List-Subscribe: <https://lists.openvz.org/mailman/listinfo/devel>, <mailto:devel-request@openvz.org?subject=subscribe> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org |
diff --git a/mm/tcache.c b/mm/tcache.c index 40608ec..3d9c5ac 100644 --- a/mm/tcache.c +++ b/mm/tcache.c @@ -1044,33 +1044,49 @@ tcache_lru_isolate(int nid, struct page **pages, int nr_to_isolate) int nr_isolated = 0; struct rb_node *rbn; - spin_lock_irq(&ni->lock); + rcu_read_lock(); again: - rbn = rb_first(&ni->reclaim_tree); - if (!rbn) + rbn = rcu_dereference(ni->rb_first); + if (!rbn) { + rcu_read_unlock(); goto out; - - rb_erase(rbn, &ni->reclaim_tree); - RB_CLEAR_NODE(rbn); - update_ni_rb_first(ni); + } pni = rb_entry(rbn, struct tcache_pool_nodeinfo, reclaim_node); - if (!tcache_grab_pool(pni->pool)) + if (!tcache_grab_pool(pni->pool)) { + spin_lock_irq(&ni->lock); + if (!RB_EMPTY_NODE(rbn) && list_empty(&pni->lru)) { + rb_erase(rbn, &ni->reclaim_tree); + RB_CLEAR_NODE(rbn); + update_ni_rb_first(ni); + } + spin_unlock_irq(&ni->lock); goto again; + } + rcu_read_unlock(); + spin_lock_irq(&ni->lock); spin_lock(&pni->lock); nr_isolated = __tcache_lru_isolate(pni, pages, nr_to_isolate); + + if (!nr_isolated) + goto unlock; + ni->nr_pages -= nr_isolated; - if (!list_empty(&pni->lru)) { - __tcache_insert_reclaim_node(ni, pni); - update_ni_rb_first(ni); + if (!RB_EMPTY_NODE(rbn)) { + rb_erase(rbn, &ni->reclaim_tree); + RB_CLEAR_NODE(rbn); } + if (!list_empty(&pni->lru)) + __tcache_insert_reclaim_node(ni, pni); + update_ni_rb_first(ni); +unlock: spin_unlock(&pni->lock); + spin_unlock_irq(&ni->lock); tcache_put_pool(pni->pool); out: - spin_unlock_irq(&ni->lock); return nr_isolated; }