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 0E7C3C25B77 for ; Wed, 22 May 2024 08:38:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 914BF6B00A1; Wed, 22 May 2024 04:38:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8C4AB6B00A2; Wed, 22 May 2024 04:38:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 78CE06B00A3; Wed, 22 May 2024 04:38:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5914B6B00A1 for ; Wed, 22 May 2024 04:38:46 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 080F61C1DFD for ; Wed, 22 May 2024 08:38:46 +0000 (UTC) X-FDA: 82145381052.02.10305DC Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf04.hostedemail.com (Postfix) with ESMTP id 157B14000A for ; Wed, 22 May 2024 08:38:43 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0KVhIhpO; spf=pass (imf04.hostedemail.com: domain of jackmanb@google.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=jackmanb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1716367124; 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=m+G67b4GxIThbEafe87WEoBwf+8+QKS2G2eyvZIlV5E=; b=RZMpKInv5N8wdfiab4nGIysUpPPdmMLrWvZXI6wUH29gnSOkRadWaj+dIqMc6yJeb4C5FM BnChg0F7kyH6oxGs+3wOK8BdFlYCq6sV50ibuJMB9v3z32WOvfF+b9FKyNLUTnrMw47Qj+ oTHe5QxCwwlRk6ergkQKI4xvoEuOWcE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716367124; a=rsa-sha256; cv=none; b=hMraCerlZkDlT5nLcDedVe/kuEMm/Vcc9CNXxl39Yc+FbtS+kx8AIK8LqzA/nfdCxowpGA y8MNlg9PUNzqd2N8y2csDrIm2sW0+6P8rDVF2/3VrUxl3wUCZ3/k3+VKUJdnwX0YWYGBM0 22SrqKKb7CE6hzPUZtHia3kfTZ6j6vQ= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0KVhIhpO; spf=pass (imf04.hostedemail.com: domain of jackmanb@google.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=jackmanb@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-572f6c56cdaso11958a12.0 for ; Wed, 22 May 2024 01:38:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1716367122; x=1716971922; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=m+G67b4GxIThbEafe87WEoBwf+8+QKS2G2eyvZIlV5E=; b=0KVhIhpOxtJ23vSLDNYpcvgqiyJpwq69Zego5Jtg6mnfVv+Z0j39DSfP0WCBcOqIcz NPXk4mKtiHmk5hUu9j6kgDFJhdwpc3snzYsmD60l7aLNZoXMigEEf68rH0V4ycYdN52e HjAU6+HKJC8aYKILN6JBeA7THddiWSJB+jItjPDaCVBrJYQFkvKhBhV9/e/p+OrW68Ik wet/pBhj2DoRySMb0M+P9hUeIKS/dqbRKaEgkTABhArMghwrUNA3EMMs7Fqxp+PGe9N9 vUhLSqCTIRHdRFPl5rSrnUZxGoDiQTX1SxqnWCCWBhHtLXUzrR7Nwag4J/5NtoNMnV5W haMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716367122; x=1716971922; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=m+G67b4GxIThbEafe87WEoBwf+8+QKS2G2eyvZIlV5E=; b=NmFx0BEb32QHkEHYkFf5Igpk1M7zm8kg4ssz8maLWDFFp7c8aIssJJi6dLPOe7UqYl DSo7UFZD7hA72976UJCIublBlQ8X8yp9IfduNwd+ZZU8QxDWrlUqTi3Sbezu20DTOVsu XxQqI0tQKUbwduULYw7vALuIkkfkHaLEhyC4Vmiow5O4flguAiWHh2A4nvNWA7m3qoc6 w1lgixWGJZ/pKmsGhsWrl4MI+oQH/SOqcfWJ0D8tNn3TQxHCmLc/pVg31vTVy6zLQqnM I6Qzgxcy3q4Iko7ciZFzIOpnga8GBYXxwj2K6MGXeHPsQ/FJ/9yhSz2c4gvwS5Cjxil3 W+HA== X-Forwarded-Encrypted: i=1; AJvYcCXyvMF4u0A800u4oAdqpJ0g7LCHCm3PLKeVTfjsw5r+4gTR3C/2Z4UmmJWGN82WICi/+68i9/GMPOQx4WgjWVBfAX8= X-Gm-Message-State: AOJu0YwULdJtiKGGdrbZ5vAfaNn9FB/RolZWYoNcInefVY9b0r5wGioC 1hG+H30uOEoSp32tpqODniAqwHevslF0OmmCZaBiSoJYeiMcTm6IqBB1j4u/yg== X-Google-Smtp-Source: AGHT+IHH7O6UHB3CPQsag/IvObOgeU2NNagvZ48JB2VhjbHMXHJqB6094MVSZkbPabRRQ/efkorrQQ== X-Received: by 2002:a05:6402:2904:b0:578:33c0:f00e with SMTP id 4fb4d7f45d1cf-57833c0f3a4mr63801a12.0.1716367122156; Wed, 22 May 2024 01:38:42 -0700 (PDT) Received: from google.com (49.240.189.35.bc.googleusercontent.com. [35.189.240.49]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-354f1664c7dsm275885f8f.86.2024.05.22.01.38.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 May 2024 01:38:41 -0700 (PDT) Date: Wed, 22 May 2024 08:38:37 +0000 From: Brendan Jackman To: Lance Yang 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 Subject: Re: [PATCH 2/2] mm,memory_hotplug: {READ,WRITE}_ONCE unsynchronized zone data Message-ID: References: <20240521-mm-hotplug-sync-v1-0-6d53706c1ba8@google.com> <20240521-mm-hotplug-sync-v1-2-6d53706c1ba8@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Stat-Signature: esue8iipueheh5jth7ipmoin8o53ajuh X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 157B14000A X-HE-Tag: 1716367123-966949 X-HE-Meta: U2FsdGVkX18ou5F2RpUfmgfmpKZtc4R3EmCycbgVJDr1KEx/ieauIlCFIHHPSDqPg+JZjXsJSxvcJWLo23+dxL6wUEw84g3vL5fRxdc+tSIeSK52hs68jQRlqwwhgirtHQsfYObWBEhTjHxYLqEqi2E2dPmHXvUTxDTlq/1T7+OJmVf5K/4GUiboZzJOPl5RKVwIHiz+AKyRO8vEh5aK17T1l+iJzY3KzPX+DmiwcQJN8t53mXj7bojBtBdwc7dY1XuxAzDHG/kJVhONLd8VUSWeIOWtdNdCOdi5xj1olEVba6daLOGrynXZIoS7w/15njR0bv+j4OI3LaPsUHnFXw6s6HnZSqTQjp9cONIyI3hTDFZuQ8VaCPiCowwnzay6RHLddLU59lkG+zwMAlNsD+fCPSfGLZXeZs6zm676PsOZGsekn4yLJrCEg9kYBpQqMBAkhYuOafGQ8KYb1h9+mBgS3LDhcS+Wgink1sEv2Vwhf8tE3z3RNQk/HB9idDMAc1Oic/oJtRM6l/d8tC+gIMVXgdzlRuTUx6ki4QiYIvUjKedtKu2qHDQpFfxivCh+taNV4loYDjqtTUGu3tMW/jrRSgkBJmr8Sv/rJBdlV/fp5xCffYBvj0znoVVXnjVuotX4zW4iVMBlhC5o47hJggk+7Ds4hD2LpEQfSSH+Z5Bqt4M/Wy7S4PVxZiFdAPdkM6Thvsya3/A0+NfQKFAGLVMoeMu6+mwukWjkzujPgdmCsrr5MV58BtMteqXR8CSb2rv3k6NwLAVucybTnjGfor1Eqe6U4gBIPgQEPh9lat0+/MzEnLGQ+ssmbrro+FXLZ9NUMp39maByE+n2E1u5pWAxXtZTLGv5kkz8Lvj/u3T25xa0EmOULL0IZvFgr64q3Xz9unht0bO0JHnpdZ2tYtUzBsv3Xv5PhjlV/Qb7mVuFdSj59hoSml6yeC7vCP8ICKLLa73REh7wHdrqvk5 WDzea3vl 8Vjhzewkc0NVQZ0FNflKsk+hlaug9SOEG+IcFifYys7V9tEycl+bXoLkOGqkYmd23+T3QTGi+USfYY7i2D86kMAkVtT5HmehaaTEtUmogrHUv+6wJAF0kKR0lJctv/rh5koeEdEn6Xe2upMxrV8wXk4t0eLG/Cl4o1uZlUogpgpfIayAGHwypcnuWKay438JkRhdyGeucOv0dZgFgaDniotarF2UXHZwBjRqomSeMjW8ngjUNNSUrRo1+Ct6SqWvOnw7We87RGVUU2q7en4SE0QVjR+8U6clCht+zxLc8vBFAeege6U85mSI0UJn+KiKQvfYImEk/6gFXPyGB2Drj3hqy39IoGtzC6r1HLUebe7G/iT+o1/6ZGfhGCV+qEor/sKwLR/96oSwN32irs3LAq8XCkP4/hkjzJUR04CUzxdAWGi8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.004009, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 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 PM Brendan Jackman wrote: > > @@ -1077,7 +1081,7 @@ void adjust_present_page_count(struct page *page, struct memory_group *group, > > */ > > if (early_section(__pfn_to_section(page_to_pfn(page)))) > > zone->present_early_pages += nr_pages; > > - zone->present_pages += nr_pages; > > + WRITE_ONCE(zone->present_pages, zone->present_pages + nr_pages); > > I'm not sure that using the WRITE_ONCE() wrapper would prevent load tearing > 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? 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