From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 923A5C25B77 for ; Wed, 22 May 2024 09:20:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D99AE6B0092; Wed, 22 May 2024 05:20:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D4AA76B0093; Wed, 22 May 2024 05:20:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C11C66B0095; Wed, 22 May 2024 05:20:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id A1C5A6B0092 for ; Wed, 22 May 2024 05:20:24 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 5AEB3A0200 for ; Wed, 22 May 2024 09:20:24 +0000 (UTC) X-FDA: 82145485968.19.23D4475 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) by imf25.hostedemail.com (Postfix) with ESMTP id 8D346A000A for ; Wed, 22 May 2024 09:20:21 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MVFM1QCV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.47 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1716369621; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8frwoHH9r4REDJsQ1v90IzqVikRQs2mKIsV/33z1n0s=; b=LgsDjMp23wLIDhkw8g691F655fiawHzbyRJ6twdCJbfUhWeBvYa5gQxK1fx3wzISJVPZ+u /SOe/XI7bUlHtFI8E6IKNDES5xC1jKr3egGCEJ1mgOtLZlzOsQ3BWZBlmCo3slQ7BHtmb5 MZn81mH0uafLyxKU1Z760xAtN422r5M= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MVFM1QCV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.47 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716369621; a=rsa-sha256; cv=none; b=4LZuzhmhXkpZcSjDMW/Z9K9qHhE5W8aPBmeC+ZJBOi9oVmpf0PWJ8uvxmLtZvq+CjyPcdc pz6Z2LZcrtjtsPquFqc5h7F6mnk5S/3BDMCqunyX0zmOPQnyZZ/s+xtmheEwjjRdQkPSHL M42Dzl1eLdLljPFDvcTA6IaN5MWAHCM= Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-57342829409so1282470a12.1 for ; Wed, 22 May 2024 02:20:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716369620; x=1716974420; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=8frwoHH9r4REDJsQ1v90IzqVikRQs2mKIsV/33z1n0s=; b=MVFM1QCVXpJzbv9t2FI6B6BfWiBVw/rlHQSI5iQvbrI/4He3y3I+HoV2rkLVYLD4T5 BSorWuM36JkGWRFrNYSimMETT/pZgjEjPQJtneBa/X/mW2JIrTKaQd23+ApYvefqAqti elJbbq+FYWiJ3ETMvP7KLZZy9k67HN+dEIWh2zKsRAJcVHSsJg/dCVo3dA8/+sQB8lE9 Ffa01BnU5nC26pEN+J43ZKDZweF4GFqKjVz0RJlgz6vCXiCksaA0j7qwv0QJ1QzMxCFP RMnDDawg1GisNUkIyVZ0qJq7pu1WQk7chlac9RF2lMuhxlwSfWsC1fs1DsHsFYvejTbi oPgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716369620; x=1716974420; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8frwoHH9r4REDJsQ1v90IzqVikRQs2mKIsV/33z1n0s=; b=mQq2PEK+4lNmHZK/iQcVRD/zywSY6HTrflFvTEG+eSru/gZQ1DKDEPtC8glDEjQplK dYtMQib/zrlXusPC4xMppsagS3GpMO1fJ6nvweTCybmQ3v6/NaAdPRIx8+KuBU/xihJ6 UKFz2L2wzzlMGsC9u2h9wG2SBw7NpJYECjZ3gv7qajUPFQ3NNwhlFh+S1wq4htAalFzE 14/26gecqiAXEShqufS6klrWzzW8fCBKyIYI79XqX6Ub6jPaG/sOWajuvzt/z9Osm0Ei rx0/ZL3UE2dFRSykWZkr7tkSL3aca+XGBNygX+zyWKE8bbEhe8aA4FETaXUXE4+r4VqE KUFg== X-Forwarded-Encrypted: i=1; AJvYcCVGH6sjaLpPZLg9Za+gu0CXSLR8nbKdSkafY4dAeia9jv5aJAO72Ft57WNeyBtxBrjJ3FkqV4lSUwHHASVjYOWg/EU= X-Gm-Message-State: AOJu0YzpUxSLvXJmm9CCBR7EjkECcqm2c1wrqkJAGsHnhtXFfeyqMxTm HUrwz2zrcI5kOmzrZVU7YWquvIISzoYsXNDMM7HsyO9npuJ4xG+TB9Wdw5T4IAEnph4HVb0Vayt 3MpPFFExRpHkQljBqwk/Ecc4kY/0= X-Google-Smtp-Source: AGHT+IG6guLTEh+seYJRKPgfju5QEgDon9Su32zl7gl/BCFQ1l64+1U6R1bp7AMq32bZzNuot9hKMUg6mKzQioIkHkE= X-Received: by 2002:a50:9f45:0:b0:56b:d013:a67e with SMTP id 4fb4d7f45d1cf-5783117a404mr1304445a12.18.1716369619931; Wed, 22 May 2024 02:20:19 -0700 (PDT) MIME-Version: 1.0 References: <20240521-mm-hotplug-sync-v1-0-6d53706c1ba8@google.com> <20240521-mm-hotplug-sync-v1-2-6d53706c1ba8@google.com> In-Reply-To: From: Lance Yang Date: Wed, 22 May 2024 17:20:08 +0800 Message-ID: Subject: Re: [PATCH 2/2] mm,memory_hotplug: {READ,WRITE}_ONCE unsynchronized zone data To: Brendan Jackman Cc: David Hildenbrand , Oscar Salvador , Andrew Morton , Mike Rapoport , Michal Hocko , Anshuman Khandual , Vlastimil Babka , Pavel Tatashin , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 8D346A000A X-Stat-Signature: og3m8phrafo1tag1pd3f1p9ofg6am6c8 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1716369621-668319 X-HE-Meta: U2FsdGVkX1+IcizoC23EnSQTUgQgYfX28p0wCMGa/Z0kJQs0aeuWFSAoU5Kh6JxZJtNzTsUJH6vpfVf4FeS2hjjg6vYT9kwK1pU2twbws6EfMkh2jlrOa5u/muAP4GXK04lwg7ZK6RYTbscjiPOc61Dvgz3VPO21vMyBtqi3dQqi7AdU2U+0VZR8GNQu3l3ANwrYjwgTH8Z3cBd19RCqpjsmmTVJA6wel04IsBDtyeywQoMuGSBPG6yQdVB+4fZ9A/wwfFMxBuorh6eR+1lQnsgLa5gCYz1wEXaTmFEyTCxYmL4waqx74z9WpmRRQs5IVw4+sfAsClHQ+6v4tIqLQxD8GU+eJeXA0fRFHirvaZPFgcvCO5F7ZnewyRzkoR3Pvms69gbEuPvppGoQ5B64WkzBKQJVfbP4UUdLNDmsmtJ9GCOp1mtboMYqz1FAnuoUIMHs0sj3SgOKDWDs++OeUVF1WDTS1yupXDGIAHbQgMrO7kKohGqMqlEbL8/1WG+jYNINfiGWlIeL41hLpmfG2WYwnlUjmTLRR8M9PvZMAI5pup+8BgnI2xaprC/Aib/KxfS2NdoGYJNn6pfsCC3A3EeV/Q7Xh7L+GO+/M6E6JglWmrDu0i/7cNw8pA5HwpiTxPwB5dvjXLzmeeJjBWVaQaG7KOFA/DJSHhoLglrr9SoV9aRqAdz74CVXcR+rTYe+hasP37oFYu++a34PSfjSJbv2KCLR2bdMijDpKtFbTb5xJGM8dU7j0hAbJ/s2LHH7hey1a2W7RdzTfpuy19p2v5/y38UzlmqssxZtiKndtZLBsIFvqVt+rpsvrgLy8ReY8ubC2w2MLSkMNdY3tGIK58Znbk/EuquffS4LmKJTNMpYHvgitDNfgSL2h0hgPkCNvspR4pBzdn8dF4TetiPfz8NZuKxs8Ne1SM/zf1pIYdr+WcMs8daRAAS4iw5iuLuinAvu56KpDrD/NUFMqyI kOeXMHM6 /m4dZlPGP4ZVSDuLqaCaVk86Wvez6DtkcoOv0Az5ycuUEWZDWbswWTz7iGD/jp1Y80FwiiMtScnrZv5mzb6MoYT5MjliIO2Oi62+Be1MpMnQk6k/7rPDe9dv6b8Up76gHFfsW8fZ2ghXyd7qT6ZtXUt9mUXnP3I0+s6ThEnz13b6eLGBaDzBtqhXD4LYWKUDKZXWuymapjcwxoIXX4O9O16bSmaUVHqKhKh0pHf1cjKZJGfNWXvERYsD9rSHbieKaRBC3mPUIkpC1YSi45Xec7sZztrxgD4BzTvMlNJp7JvNRRw8366k1du/bAyQwcDj8qU1YbQu8iMyehLnnr540pmNrLNb89I8Kgi1FznbwYd5VfOfT/Nj0c6eroR4mIFe3CegYC7szeaa6pItPYVZ2AdSSIirW9whEqRFtYr7/TmUvy/wJbGZbeijbWJwqXhN9i/+nQInP9s54mZvjg8A8PRe/Cso3s0MR5iqz X-Bogosity: Ham, tests=bogofilter, spamicity=0.029193, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, May 22, 2024 at 4:38=E2=80=AFPM Brendan Jackman wrote: > > Hi Lance, thanks for taking a look. > > On Wed, May 22, 2024 at 12:25:30PM +0800, Lance Yang wrote: > > Hi Brendan, > > > > On Tue, May 21, 2024 at 8:57=E2=80=AFPM Brendan Jackman wrote: > > > @@ -1077,7 +1081,7 @@ void adjust_present_page_count(struct page *pag= e, struct memory_group *group, > > > */ > > > if (early_section(__pfn_to_section(page_to_pfn(page)))) > > > zone->present_early_pages +=3D nr_pages; > > > - zone->present_pages +=3D nr_pages; > > > + WRITE_ONCE(zone->present_pages, zone->present_pages + nr_page= s); > > > > I'm not sure that using the WRITE_ONCE() wrapper would prevent load tea= ring > > on 'zone->present_pages', but it's probably just me overthinking it :) > > Hmm.. this isn't for load-tearing, it's for store-tearing. I have a > feeling I might be missing your pont here though, can you elaborate? Sorry, my explanation wasn't clear :( I'm a bit confused about whether 'WRITE_ONCE(zone->present_pages, zone->present_pages + nr_pages);' is equivalent to the following: 1 a =3D zone->present_pages + nr_pages; 2 WRITE_ONCE(zone->present_pages, a); If so, is there any possibility of load tearing on 'zone->present_pages' in line 1? > > I have just noticed that the original "big bad optimizing compiler" > article[1] only says store-tearing has been observed in the wild when > the value being stored can be split into immediates (i.e. is > constant). But it doesn't really seem wise to rely on that. From what > I can tell from tools/memory-model/Documentation you are really out in > the wild with unmarked accesses. > > [1] https://lwn.net/Articles/793253 Thanks for clarifying! Lance