Message ID | 202007151526.06FFQCXK031854@finist-ce7.sw.ru |
---|---|
State | New |
Series | "mm/memcg: fix css_tryget(), css_put() imbalance" |
Headers | show
Delivered-To: criupatchwork@gmail.com Received: from imap.gmail.com [74.125.140.109] by patchwork.criu.org with IMAP (fetchmail-6.3.26) for <root@localhost> (single-drop); Wed, 15 Jul 2020 17:26:33 +0200 (CEST) Received: by 2002:a5e:a91a:0:0:0:0:0 with SMTP id c26csp680411iod; Wed, 15 Jul 2020 08:26:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyu9KUWXwG+f8AM8LvN22AKKL+2YnRyzQPvphs1ZLPdO9eyDA7cuq7sGeH2YjWxccB480oK X-Received: by 2002:a05:651c:554:: with SMTP id q20mr5033224ljp.137.1594826789102; Wed, 15 Jul 2020 08:26:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594826789; cv=none; d=google.com; s=arc-20160816; b=l07493VLBmUVwbmAsDlYKjJhy8WYP7FVNQlid6bl7TVw2q4/RFg2eoS6ZW0ru9HcYq PRwJ8Z2+FuQ+CiuMwovOIjrJcLLqZdwJTpamNQf5uNA3fCzynJkWNrI9eEq5erlWYKy8 WUPqogHhjgDy8Q1ckahId3eNLh59ej7GBiIkeemtQoRd5d8GjZi84+DOGPlaFsFJmIjO PzZe4DKBOzeDpi9cyA2s0fqnpBdt6OyAgCis4MXVdBeSkcFtQRUkp70RPN26GjAjGfKT fpb+U2Vs8kO4NNxnjCPiC25Ed5M5Aq+seUTlyH8i2QcD3DTs4phduKTcNmVSD4KuHVuF sfeA== 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:mime-version:in-reply-to:to:from:message-id:date; bh=t0DkkZiTXUlEvCKM7odoywOGnURe/iQUj1zBexX7raM=; b=uBNX3E4icsbBEyylwKdL2axKbIR2eYXvE3dUEoVJyHqnscnMbtrXqQmwc0DrZEXtYs oj7n3gk7CJ8S+BjTM+LVrWUIS67ktBI97PKji+zgG3F1/vRjay+0Pq5+WEM+DFNezuaZ nEymr+zt0QYJGseoTSgSdf9JZCcm1pKfdUS1C3WSWF/imq/4x9GfTQmQnQ0cZYw7umJv GpoLs4h3O4IW79v4eazqxN84340T30DFMngJ9H4DRK8BqCrA4MWyKvOQJVa6eTUBqSyd 4B8agJej5MIcfsSKV8IQ2R1+lpGD+uXjmdSG/W6j5iDMTQEFgwyM0GzPU5kTU7rWoDU5 qkCw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devel-bounces@openvz.org designates 185.231.241.50 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. [185.231.241.50]) by mx.google.com with ESMTPS id j11si1276035lja.211.2020.07.15.08.26.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Jul 2020 08:26:29 -0700 (PDT) Received-SPF: pass (google.com: domain of devel-bounces@openvz.org designates 185.231.241.50 as permitted sender) client-ip=185.231.241.50; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devel-bounces@openvz.org designates 185.231.241.50 as permitted sender) smtp.mailfrom=devel-bounces@openvz.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: from localhost.localdomain (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 06FFQCPt010964; Wed, 15 Jul 2020 18:26:14 +0300 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01lp2050.outbound.protection.outlook.com [104.47.0.50]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 06FFQBdK010961 for <devel@openvz.org>; Wed, 15 Jul 2020 18:26:11 +0300 Authentication-Results: openvz.org; dkim=none (message not signed) header.d=none; openvz.org; dmarc=none action=none header.from=virtuozzo.com; Received: from HE1PR0802MB2218.eurprd08.prod.outlook.com (2603:10a6:3:c7::11) by HE1PR0801MB2123.eurprd08.prod.outlook.com (2603:10a6:3:7e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20; Wed, 15 Jul 2020 15:26:13 +0000 Received: from HE1PR0802MB2218.eurprd08.prod.outlook.com ([fe80::f4e4:ca6:29ff:b5b7]) by HE1PR0802MB2218.eurprd08.prod.outlook.com ([fe80::f4e4:ca6:29ff:b5b7%11]) with mapi id 15.20.3174.026; Wed, 15 Jul 2020 15:26:13 +0000 Date: Wed, 15 Jul 2020 18:26:12 +0300 Message-Id: <202007151526.06FFQCXK031854@finist-ce7.sw.ru> X-Authentication-Warning: finist-ce7.sw.ru: khorenko set sender to khorenko@virtuozzo.com using -f From: Konstantin Khorenko <khorenko@virtuozzo.com> To: Andrey Ryabinin <aryabinin@virtuozzo.com> In-Reply-to: <20200715132557.2249-1-aryabinin@virtuozzo.com> X-ClientProxiedBy: AM4PR07CA0036.eurprd07.prod.outlook.com (2603:10a6:205:1::49) To HE1PR0802MB2218.eurprd08.prod.outlook.com (2603:10a6:3:c7::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from finist-ce7.sw.ru (185.231.240.5) by AM4PR07CA0036.eurprd07.prod.outlook.com (2603:10a6:205:1::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.13 via Frontend Transport; Wed, 15 Jul 2020 15:26:13 +0000 Received: from finist-ce7.sw.ru (localhost [127.0.0.1]) by finist-ce7.sw.ru (Postfix) with ESMTP id 5EFE062B5C; Wed, 15 Jul 2020 18:26:12 +0300 (MSK) Received: (from khorenko@localhost) by finist-ce7.sw.ru (8.14.7/8.14.7/Submit) id 06FFQCXK031854; Wed, 15 Jul 2020 18:26:12 +0300 X-Authentication-Warning: finist-ce7.sw.ru: khorenko set sender to khorenko@virtuozzo.com using -f X-Originating-IP: [185.231.240.5] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dade8268-a9e9-4eac-266e-08d828d368e4 X-MS-TrafficTypeDiagnostic: HE1PR0801MB2123: X-MS-Exchange-Transport-Forked: True X-MS-Oob-TLC-OOBClassifiers: OLM:747; X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kBcWIRfrEXo61oV8plj6QRHlwECPnQbXpdSaLMcpoVCEnSBkqqxjrGrVmIcRI5/53eDxu1SscTLatDFdAoNNcUt2QpXXwVGwCVQDVcZ/rOfqi35RBuloPd+BWhlG7bYxmnRhpQc4wKdjpej0tFrNQA1bf8M892f/sYgxzK1e9XwNJwRJNGTOl4f6V9SkLsd5KzIoS0jdBVOQe7uvflv44MMNr7spX+AuQoqq72RcQDMTmG33EZ90QYgXM0xc3hSvLe/ISfzr4mexTBhAclmFHo58w1TwNddgb66Ahy8b2ICizK0JmGTMIa/CRudctU/w/9ZFP8oOa2IRJLnWCFqMjJEl83m6ayxQdTEvUm2rUUw= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:-1; SRV:; IPV:NLI; SFV:SKI; H:HE1PR0802MB2218.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:; DIR:INB; SFP:; X-MS-Exchange-AntiSpam-MessageData: s+cIl6BHPZK0C5G84x0Tx0xn0oESpdni0vA+bXcRubE5cqJNZVlPCjDGe+gI2SiyfAD1VmDpHjnrNRXYWn9lcbdVWRe60NW1vd9sYQy/HvfLB0EMu2pn1zrZhTzw8yIRF9ydguYv64h3gNujjWU9hSBURPk11CbifxPKWShHLS676LO7SbAet+F7tHh02q+Wd/MyB1FHgMtGeWTd2uDDTpk/Kwy25wFhgBSuedf+7JogFmGBSkl9x3iGLlPM61X9Rm4HhJNtjSOecXDht3qxoPpdPQhGfZNIae1ey75MqFICrnmZMYht9x4sdg9p2pt33jOP5SRsWMOtwCQ9IRAYizxibX3wF5dcEvgg+subqCe49FoSh1ybt/qXlWHAyY9Vb0aiwSdP1ZbPcth7yYgcbsYuUz63qPH6dgfGYvEB24TKL83tpDNw3Kp4WOhjsYo/R4R1nhktlFYZpcHkXVmEXzUsw9UtIFS14jnzTUvOcl8= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: dade8268-a9e9-4eac-266e-08d828d368e4 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0802MB2218.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2020 15:26:13.7537 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ovlgZjUKK+l4+985e9/yY/RRrEHB9WhfJN7/zkvpWywhOzpK16xUFyAA/wa2yj7yyovq7YA1FMmU67gtC38rRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB2123 X-MS-Exchange-CrossPremises-AuthSource: HE1PR0802MB2218.eurprd08.prod.outlook.com X-MS-Exchange-CrossPremises-AuthAs: Internal X-MS-Exchange-CrossPremises-AuthMechanism: 06 X-MS-Exchange-CrossPremises-Mapi-Admin-Submission: X-MS-Exchange-CrossPremises-MessageSource: StoreDriver X-MS-Exchange-CrossPremises-BCC: X-MS-Exchange-CrossPremises-OriginalClientIPAddress: 185.231.240.5 X-MS-Exchange-CrossPremises-TransportTrafficType: Email X-MS-Exchange-CrossPremises-Antispam-ScanContext: DIR:Originating; SFV:SKI; SKIP:0; X-MS-Exchange-CrossPremises-SCL: -1 X-MS-Exchange-CrossPremises-Processed-By-Journaling: Journal Agent X-OrganizationHeadersPreserved: HE1PR0801MB2123.eurprd08.prod.outlook.com Cc: OpenVZ devel <devel@openvz.org> Subject: [Devel] [PATCH RHEL7 COMMIT] mm/memcg: fix css_tryget(), css_put() imbalance 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/memcontrol.c b/mm/memcontrol.c index 13b9e0cd7b5b6..15cd07144d5a0 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1520,7 +1520,7 @@ mem_cgroup_iter_load(struct mem_cgroup_reclaim_iter *iter, struct mem_cgroup *root, int *sequence) { - struct mem_cgroup *position = NULL; + struct mem_cgroup *position; unsigned seq; /* @@ -1533,6 +1533,7 @@ mem_cgroup_iter_load(struct mem_cgroup_reclaim_iter *iter, */ *sequence = atomic_read(&root->dead_count); retry: + position = NULL; seq = read_seqbegin(&iter->last_visited_lock); if (iter->last_dead_count == *sequence) { position = READ_ONCE(iter->last_visited);
The commit is pushed to "branch-rh7-3.10.0-1127.10.1.vz7.162.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-1127.10.1.vz7.162.9 ------> commit 14d28933c5bf98a273525c526f02f17b6083177e Author: Andrey Ryabinin <aryabinin@virtuozzo.com> Date: Wed Jul 15 18:26:11 2020 +0300 mm/memcg: fix css_tryget(),css_put() imbalance If mem_cgroup_iter_load() goes to retry after failed read_seqretry(): retry: seq = read_seqbegin(&iter->last_visited_lock); if (iter->last_dead_count == *sequence) { position = READ_ONCE(iter->last_visited); if (read_seqretry(&iter->last_visited_lock, seq)) goto retry: and the condition is (iter->last_dead_count == *sequence) false, mem_cgroup_iter_load() will return non-NULL position, without doing css_tryget(). This leads to extra css_put() in mem_cgroup_iter_update() and kernel crash later. Fix this by NULLifying 'position' on each retry. https://jira.sw.ru/browse/PSBM-98148 Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> --- mm/memcontrol.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)