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 6E22BC25B7A for ; Wed, 22 May 2024 11:23:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BAD376B0085; Wed, 22 May 2024 07:23:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B5D0E6B0089; Wed, 22 May 2024 07:23:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A24866B008A; Wed, 22 May 2024 07:23:37 -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 830C26B0085 for ; Wed, 22 May 2024 07:23:37 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 07C8AA13FB for ; Wed, 22 May 2024 11:23:37 +0000 (UTC) X-FDA: 82145796474.19.63594F8 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) by imf17.hostedemail.com (Postfix) with ESMTP id 2B49640021 for ; Wed, 22 May 2024 11:23:34 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TmPRjcQp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.45 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=1716377015; 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=CKvW/e/4RnItdVLQb65PoHq6f+Hy9fq9cA+PAi3QsG8=; b=ZlTTH+r0iLGI63DS/bAS39rKivDuxUA7kiT9uiPmDEPqEY1MAfGWF1wOg3/nSvZmr5Oshj a0lgGFTfF2oS9sG3kNF/kXAwYq3OR4EmEHO83Vig9C8pmyGp/tl5xwrcDRDF/tNgdJw3SK 9dhl0/NCUnDlZ6qJL439TZkp6qdxJOM= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TmPRjcQp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.45 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716377015; a=rsa-sha256; cv=none; b=0IJQ5I1z3JeNFg3iQDkDmp/bOw52a1s/uvzj0wd0uQAOpRLfmK9S4/X/5+6ZfBOSxi78Im HbPK5XZ9JzImKGZQWl0g9oMhh6LDNebg/GD2YbI+ff3HLIt9DSsEOAf8V2HlLI2TQqnRSY j/GgPaJ4uBpk+ZbxZSLElqWe9GwtWUU= Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-56e6a1edecfso13890614a12.1 for ; Wed, 22 May 2024 04:23:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716377013; x=1716981813; 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=CKvW/e/4RnItdVLQb65PoHq6f+Hy9fq9cA+PAi3QsG8=; b=TmPRjcQpPEKEQ2tgCluCl8IC03nCuJ04p87cAYe5A/gaM+vnONQxEw3wJ0p92lPBEA T4SzYtkS/eFUKDPn1V7JBKVZ56P5eET9t117t3Od//Zbd+rTRGWPI8IInS7ZwYpVggwu JApWBhMM4FE6afhZFRQo4K37YJYX6JUBY6f+WVZhG/WgWEckepkXPOl9PDeWijZiOkER eXiKyhC4bxBg0tGX7Dyo+bD4F4QsT28mPh0m90M7aLRdTBwaXcalKRGKyxfC8KtzjQft 2CVZZGim5PXZTtPv8cVRywL4+xJjfJfD5eCFOA6nPRxD/FDlM9RzIB5hqrtBFCry2nnD Hltg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716377013; x=1716981813; 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=CKvW/e/4RnItdVLQb65PoHq6f+Hy9fq9cA+PAi3QsG8=; b=qDdzkipherszFNGsf24fVAYjhGWs16grbVrD1B64JDw34iOvskcv3DBvGWn/Nho1c+ 0ieIahpaZoYGdz+EQZkclORGnuQjOEyvzEAx6B15fxB+7TZkuiXOLFf2cSGHGhjDj27R /lMXnj6WWTBeeoIIIGyiCxTa92N70GRic9VNwG72mOqkl16jawHN4YB4rmxhufLuvldD dn3r8gWkOsySMtQJ+fwgatKvZXCWbh/iDIz1XSLji5GQdRRfoGJDVG49jtUBilKmIUvF 0Sjxh5kmu2g5BHY1EgxOvn6ghxAYzA0+ycXKNWs7nZa2+XkzXUYfUHLFezoibDgA8+Jo YSbg== X-Forwarded-Encrypted: i=1; AJvYcCVL7xEpqaddzVtciHWWbON6RBPL1byCu2zouCNYfCHZrau8HLEC61m+0OnJCVd7LdnHnr3UbY3275dZ8uVzNojJ3eY= X-Gm-Message-State: AOJu0YzCD7yF73A7cfeuwW+8aVOfgUBXgMtImzgCXfczkkQVOYC99KiN NI+jvhAonxRc0uJRhxgRNJa2L8+2Bwlycl3Zul4d9LJ5+v+bGicTLMM2WttXae9ze28sLItFrTR YhZopW7U8p2mFUyC1W1EkoXokOxQ= X-Google-Smtp-Source: AGHT+IGr7qe/8BHMcSxEWmeTPmWJu59chEoX9tRLp2zcpEeslci+7hANSI/7DUiWuVLayDwYem1YGsNP8+m9V8E6Ha0= X-Received: by 2002:a50:c05a:0:b0:572:9d24:257a with SMTP id 4fb4d7f45d1cf-57832a807e6mr1148057a12.23.1716377013349; Wed, 22 May 2024 04:23:33 -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 19:23:20 +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-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 2B49640021 X-Stat-Signature: i9nnq3r4uur7txkrxkxcwaunu17nb667 X-HE-Tag: 1716377014-856808 X-HE-Meta: U2FsdGVkX1/EvdwXdjAE6vEbNNj9tfK80Z054Kqh/3LrQ5dVqGlQlWxJigkYQMvysUXLnw2n1HjiE+r7aT5OCrOjfyy1yl6PaK3xn9TwJoxHeMk3872W1c0rQfu8LvYU43hC8lrxTNLNwBvJOyZtc30iHBZ5BrNCpAVUJVT0ZUntmASJTEk43D5e3zM2D6+L6UUkc5R4A+qg/+2fTpvUwANbyk48z2SIOLB9oaAx6w/Aqtt3yyRsCTfOeMI7VPVGKkkIvvlP0qwGczP6ec4vdvTRANbRiCkcbOfZUwEUUa4FIaYUJPf+8UtpK/k/BKMYTVq3z7NFi/fNVGVGTtLcXpQ8YKABk6jtIs5x6J3cPOBppqu8KvHARb6AJ86TK9UTnDvXJ7sANQwV5vI5m/PpoC40oQqbm+hCJBrrO7z5tGQEtzIjPOaEkZyiGYK7f+tJ+z2bbkWLJlIKsHfneiI7SX4gIQVO8dvfGM6S2xOyuF10IKX3G7PoW5Ghn60p0jNF4C4HukUcMKniGqNX8XZl/U0W1yspkXqTw0Efq8gw8F3UJfDOcmtTHavTd3yhBVx8sikkY+nUIbbr0ezJ3xBTsFeuNRcTIjH2cQ9EXdHsR8j86WP4jB7HxIqK3dC49SfN0D9iHmjxjMBKtIx4zDrofxxEp340S+Sv2y/D247v067+hwo/IdAHBnyTsW/6hjHlJa6YbzZcqxdolj3OI9e1/TwMVj85VjYzjT6/nvA0cj9RPnjxR80aU+gAUhf4JTcC0q+1+mIVgJUARd9+2C7ZysSNqwL8LDwY1/W6o+UnwKyiuv3JV8lLLbPS8a5aM9nCEw+JYcV9+wXhr2KsaIFM3q6PohGyrQvdCjmneVs5l+41ds+kk+XHk8obnA7yLH+8sWhevhtycEFdqGkQUb+Zv39KFvCqSmqkI3fsbQIqo/KOadhPkwq9bcElDJ2CKHcHyVBV4Kc1sxLf09kUQsq NeGnjGtf QEuUkh5bw7HgwJRIKci9dRjRpkUVP5wdHiUeMAjH0lkCr2i1yjgoW82NVGJZ61o2SzQyuVRg7GuNQ4y1YQ2REONfbjC4taLZoeoICebU/pGzaeaSSByQ18UUXJpl+lazffaUpJ/28XOj5YdgCztTQI8afnjl1E0xsnPrfCM/sWI2lVORWuRhGSG5MVvLLs9/zcMH7iDgtkqAr/Aew/Ipsjxuft1WHOZX1DejrAdl1CHXSqjUmL/CRqVZqQPuRvjeIttdeTr+tyvW4v9yADir+zXMmZdvVesl2HjZgRnUqYci8uCsxpUdnwL10ZJpg0lemoYLb5EF/84J3M7HvlWqodydUZ50yf7tZ5Iyo7QpV3PxEhrgJFtn0L0dYR4srL4jAJXIbdQWWhR7QogzpCgce5U1UXa2CTtkTyNnk82tGa6XloB4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000727, 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 6:10=E2=80=AFPM Brendan Jackman wrote: > > On Wed, May 22, 2024 at 05:20:08PM +0800, Lance Yang wrote: > > 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 = *page, 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_= 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? > > > > 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? > > Ah gotcha, thanks for clarifying. Loads are protected by > mem_hotplug_lock here, so it's fine for them to get split up (because > the value can't change between loads). This is what I was referring to > in the bit of the commit message about not needing READ_ONCE. I see, thanks again for clarifying! Lance