From patchwork Tue Nov 20 01:48:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 10689759 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6B8845A4 for ; Tue, 20 Nov 2018 01:48:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F34429823 for ; Tue, 20 Nov 2018 01:48:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3147B2982C; Tue, 20 Nov 2018 01:48:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CD2AA29823 for ; Tue, 20 Nov 2018 01:48:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D489A6B1CA9; Mon, 19 Nov 2018 20:48:37 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CCF646B1CAA; Mon, 19 Nov 2018 20:48:37 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B70FF6B1CAB; Mon, 19 Nov 2018 20:48:37 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by kanga.kvack.org (Postfix) with ESMTP id 70DAE6B1CA9 for ; Mon, 19 Nov 2018 20:48:37 -0500 (EST) Received: by mail-pf1-f197.google.com with SMTP id 74so313666pfk.12 for ; Mon, 19 Nov 2018 17:48:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id; bh=2hSDOfEzXKUSEBPM9zxdQ1cN2qiSixKCY53KquCz6EU=; b=F/vkxLwz/6VpvqX1hyNRRCKIx7mbqpReXVLTAav54wqTV14kraHOrAZYSeTIbmvYXL 4/Wea+B3YTmzWlNk0rlCGkovQO2WZirYuKmywhJZ69yzT5Lrb4x8ngGP0yBhNVE++RC2 v/EJ7bmiYWkDwytUUIirPpIKExmOlMIQYtjpnmaeBTjpNHx94iHw2v9lVjuezO/98Sgs qrTZ0nbTBavhrxHLQ7RiX0b1VnNZS/ItMEHFKxns9CDoKBXfaMsDIt/Ies2U3dcP1g85 apN9zQmkI+KXsrjK/CNwnmEORWnVySoqf+pJYnZEKXAS/mj8MnckclhJ2SxW2LTfWrRe +PcA== X-Gm-Message-State: AGRZ1gKRb7CE1/BBZI3H3lslNb/WigiiFeIhFEBmU7RbdLvL/BxHt1k9 PsMFx0KoXyuoPrX+4D/mJQ8cnp38+VSNSf6GMa0jOjiterEn+zMKncDp9BwZ9TnzKIaN4C0cYfN XSPqml0wHiGCBiTSDpSSDWhCF51qbBIvIg/025wXzQ7sH6XKxKC9QsC97RQ3sYh6v8Jn0I0MwJL mabqkWObp7Dn0yoXrH8jbxXFzK+6fQpSuWMqhCAt99T0Ab8AVRaVLsTf0qj1r4m1+Kuz0h8Tf6Q quaIYtEku7qUZOVoZfFCkkVE3UGxj7PCRK35OPX382NXy+SnQe97pB+j72+R8VaSQWLyWpbFbOy 2S9iYDze1IUR6+AZNzJfF/VYmegkIdt9tADqYROWPVBdUckFRHwmynli386V0mfM37+m8jgpFJJ A X-Received: by 2002:a63:d547:: with SMTP id v7mr62815pgi.339.1542678517109; Mon, 19 Nov 2018 17:48:37 -0800 (PST) X-Received: by 2002:a63:d547:: with SMTP id v7mr62793pgi.339.1542678516374; Mon, 19 Nov 2018 17:48:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542678516; cv=none; d=google.com; s=arc-20160816; b=ktPhTnkpcsBHZHIOk/U6vdGJzsHjWz2qqm8mT+CfpGgqXjuBfg1QeGO7hhoF0tZxtt tM1Lof++oul0g1WwpA3ebem/PKKpzLWQjyM2LBlCvETNVZfDNdQ7bq48QHUckF/YUsDN 5fLPBqpttnyeLyLqpE4G11JKRyRRWXa6+meLFPSRzExlXbxTbOKjb7jjrwrWkwprmEJU F+m0u4rkZwY2fyrZFsGTB3EMrXhm9M/zgH+8btdS1CNB5aHpftTxASUUa+IN1EgYcG+C Aj/SH5/2/6Iy1X6dr71qdtucwHhEhHnsPHbcKPIzcYIPtSb5rq5UNtLE/1UyJWBEfpfy VWWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature; bh=2hSDOfEzXKUSEBPM9zxdQ1cN2qiSixKCY53KquCz6EU=; b=OcsWpmu2K5NL72sNiZGbek/J7X5uoMq6CsDru0pIBioTDfdbYLcImMvghWy9bih+3r YehD5sAja4Pi6rtGITSfHhow8eD0q6E99CC7Vl5vMLS9C+ldVhlyrlRT2/ah3RSvDsh4 rMr/EHsP+9TQPIkpEsVIVzkaf2BUp7si25F12QeSiY8cRfbsGBwfSsc8a15jQTSpeIk8 w2fysT7FSOiw5cumBDOsWVFbsdPc1VZWTw5gdvUPxWyV8cvPmiLAXvVXzJh8cEW4R3hO olUSAk6yemdk6UyufzcaUlPaIZ0KtVayeruQ0HMt6d0tJmudgcTRim22aNdEfl9f+fZI 9wEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=PofQ9imz; spf=pass (google.com: domain of richard.weiyang@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id c13-v6sor51445078pfc.26.2018.11.19.17.48.36 for (Google Transport Security); Mon, 19 Nov 2018 17:48:36 -0800 (PST) Received-SPF: pass (google.com: domain of richard.weiyang@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=PofQ9imz; spf=pass (google.com: domain of richard.weiyang@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=2hSDOfEzXKUSEBPM9zxdQ1cN2qiSixKCY53KquCz6EU=; b=PofQ9imznyHrSNYk7pKAU9lKRT1bkzbXbPz11EVvGfMOjvPQn93THlWDHm/GH8UFgm lFcRJSkubHlDNilTwvH7PAklrO3mUgykQHwBRE9nAroPXBg7Y9igIY/WHiO7l2bJbn61 vYOsbN25rp7f7RC/yp+VQm5zbhYxAMWNJabZAuTn+w9jEAWNnWwm/5jD4r2T6NU1mkz/ Ixl2qxE9alMCbLp4mvAnWDzGQ8wAivPr0ed8pVKIZ9pwcc4m5dZhwDtileL74cy8r870 GwR9489P/e0A5XHHPYprImV8QjYhO/4hrOy5eBYDm2j8Mynf8WBMc+67nFFuBbokBYfV XB2Q== X-Google-Smtp-Source: AJdET5duWS3JK/dtbT98St9VDFbOhe1J5owyZEo40Ei++gbIRPxKpIiEm29AzuVDVvg+c1DsBew9qw== X-Received: by 2002:a62:8dd9:: with SMTP id p86mr88671pfk.143.1542678516013; Mon, 19 Nov 2018 17:48:36 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id i4sm39626314pfj.82.2018.11.19.17.48.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Nov 2018 17:48:35 -0800 (PST) From: Wei Yang To: mhocko@suse.com, osalvador@suse.de Cc: akpm@linux-foundation.org, linux-mm@kvack.org, Wei Yang Subject: [PATCH] mm, hotplug: protect nr_zones with pgdat_resize_lock() Date: Tue, 20 Nov 2018 09:48:22 +0800 Message-Id: <20181120014822.27968-1-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.15.1 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP After memory hot-added, users could online pages through sysfs, and this could be done in parallel. In case two threads online pages in two different empty zones at the same time, there would be a contention to update the nr_zones. The patch use pgdat_resize_lock() to protect this critical section. Signed-off-by: Wei Yang Acked-by: Michal Hocko --- mm/page_alloc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index e13987c2e1c4..525a5344a13b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5796,9 +5796,12 @@ void __meminit init_currently_empty_zone(struct zone *zone, { struct pglist_data *pgdat = zone->zone_pgdat; int zone_idx = zone_idx(zone) + 1; + unsigned long flags; + pgdat_resize_lock(pgdat, &flags); if (zone_idx > pgdat->nr_zones) pgdat->nr_zones = zone_idx; + pgdat_resize_unlock(pgdat, &flags); zone->zone_start_pfn = zone_start_pfn;