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 274B5C25B79 for ; Wed, 22 May 2024 08:42:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A015B6B00A3; Wed, 22 May 2024 04:42:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9B0AF6B00A4; Wed, 22 May 2024 04:42:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 878746B00A5; Wed, 22 May 2024 04:42:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 695996B00A3 for ; Wed, 22 May 2024 04:42:25 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id CD209120195 for ; Wed, 22 May 2024 08:42:24 +0000 (UTC) X-FDA: 82145390208.13.19659A9 Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by imf01.hostedemail.com (Postfix) with ESMTP id DEA4040021 for ; Wed, 22 May 2024 08:42:22 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=thysK7U0; spf=pass (imf01.hostedemail.com: domain of jackmanb@google.com designates 209.85.167.51 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=1716367343; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=hQKnMOlxl1U85TXCOdkXJ6lbOT1vGIVpWb1iMwW2f6c=; b=A/izOd6hD680bxJeVmFi5Qgliww47kT8gvlattfXiW4esqg2hcI2ym/xNxFT2+672j7Bex frksvL828uuBjmgRjtng7Uyaybb3x4Zo/m2cXKGNlbwJc7e88pmdFmeuBUC9Ifc3FNxCEq E7mWZ4apJ7l8wyry0Kfkg2UIMmtloW8= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=thysK7U0; spf=pass (imf01.hostedemail.com: domain of jackmanb@google.com designates 209.85.167.51 as permitted sender) smtp.mailfrom=jackmanb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716367343; a=rsa-sha256; cv=none; b=tThQLseYKCf0HqYW7Hy8VxUk+wZLavuAQwLEdfheoHJf2mhQHpsHKXknO4E8pIVVFTTGVa p7W2GRsZ1vUU5Opw9XLBjsL88LaBHQUVA1ezfkSRcLAmyCMtg9EaB8lHr0/e5onjvlJ9rI waFC/xiZf4GsZOgbUeAmpEWW7IfzB/U= Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-5246ecdb5b2so2394e87.1 for ; Wed, 22 May 2024 01:42:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1716367341; x=1716972141; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=hQKnMOlxl1U85TXCOdkXJ6lbOT1vGIVpWb1iMwW2f6c=; b=thysK7U0oXFmeEuzfT79Xj1WiOajoqbsxjD/4xM2aqcAy8wOfbKzAStzrhEQcXGfHy 0kXWjutXC4yaGm/azBayZNSKcSTzfhMKsgLEs/sMlZ9uBXku+DLbYnUq2qs4dmuiFNCn g7F0JQVhC7K7lrIncfLcQgJLVCaiFyH9BmfFa+xFOft8fsNMHKP3vnxi7+X3LdetGQ/J Vqd5/vhkTefxIQ2A3K6fVQR8Z1AkL2yy21bAmMpdcy60ekPZbQhCklnYsl6SbxgVPGZN 5v6arPpIdMfeo2vLMKuWZti0v4tVGccj/DujCQSQ/3ocvuVvh3gxmKdfEW9uXukKdxfC EmZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716367341; x=1716972141; h=in-reply-to: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=hQKnMOlxl1U85TXCOdkXJ6lbOT1vGIVpWb1iMwW2f6c=; b=Sbg35PeVhdQiRinUZGfws+GOnDQ1BVkt30pqjLvn6bD/zPeIQrGqOquNTxOJiKToH+ 4EcZFTVZ9O0A3QVLzmrohzdIAujmaeAaowkkMjDeWQgSSIR9Qz8Z9zhVMO/B9MGZoWvo ur1LEizwCJd/BT0qnuK9/raRjZywe4jzeI2+Z9Iaf6oTpXD+9ix3s5uPdUyZDuxysCcA d+ckbVJuY+S3PQYlRQXQoSjgyUJ6BqWWUAf1ipSWsBqCHgZyn9vdQCxjhqefT9nFOZww 6/f/NPpQSFXDdDElME2QHsBk637uso7dOy415c5UtPy58BTYBVZHwvPhgVizhFxC/FFM 2VgQ== X-Forwarded-Encrypted: i=1; AJvYcCW02KnVK5yLcpRpQ6uPq0/Hz7eixPSklVmWDdDGbhup3yqhiVZY2xNOB3fKQIKEgFdJjCIg0TezJaFPWJOhj/kreDU= X-Gm-Message-State: AOJu0YxohsyO4M0KGo8OnRYXSn6n0o1PdAk/nj9bMqkRuMC6cTy1weF0 hHD3yh9Qjjncl5diLJB2wBXwHobyoLDh98QNw/jFLeIdO4x/jcjntaUo9hYeGg== X-Google-Smtp-Source: AGHT+IF/LNQRnVQWxxSSjY+8dq19JFT8GCORQ35jVMu0UDIxZWiT9kZ6GiOOsvb2fTDm8QT3Qr7iJA== X-Received: by 2002:ac2:4d0d:0:b0:51a:d690:48a4 with SMTP id 2adb3069b0e04-5267f271ea6mr98499e87.0.1716367341048; Wed, 22 May 2024 01:42:21 -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-354dd239e73sm942534f8f.12.2024.05.22.01.42.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 May 2024 01:42:20 -0700 (PDT) Date: Wed, 22 May 2024 08:42:16 +0000 From: Brendan Jackman To: David Hildenbrand , Oscar Salvador , Andrew Morton , Mike Rapoport Cc: 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=us-ascii Content-Disposition: inline In-Reply-To: <20240521-mm-hotplug-sync-v1-2-6d53706c1ba8@google.com> X-Stat-Signature: gsd3ujfpx6ydpm7iwiorsih1wjzjddnx X-Rspamd-Queue-Id: DEA4040021 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1716367342-505609 X-HE-Meta: U2FsdGVkX1+WXQ/QC8f1UIiQO4fwv5+aVMYx7YWVBbTWMm1qTU1USfV72OO0q4aVWhoD6SsBm0jHaTFUsnP+bTUQqh/fKgcS/WiRrzYhnOgMX+WkNP78LGLhGuQDUCf4aeDYyj/NuCY92QweBLxVC0ILZT+V4pkcPN0SweRAak79cyPXnvPRyV0mQoWHdrRZgo0IPkdFnv7tJHrkC+v4ESFGvX4jxOWTCXoxtc/EdIyo3fNwKjHx7r/ZOk7hTSf65/r1q4l7KCsXWOXJP/qJqKHW052PYw/8G5PvdvWaBilKAEzYB5SEckq+ua0/pdPt8EzzU6GML9ev53MT7lFDGmj/o2ha4Efb+F6GdF2Wcd4mWjSPqt3lAYQDEIUocbVhxyLyUjYDtuM1eaRh4uI3GueCfkStiBAdtw0J8OeZZ6QIqlkHLahP6NwIRYnVvaGeYpr8vg+ccTuH87UcZnhjBQfrcr+jvQiXJmP/poLlUOyH99x1ewuYf+l52/+2KNyAV2Hr4R7zU+o4+KHCb4S5Qc+lDavToydP0Vrd393Bj5W2Mjgp+cVar+u4FEyZqlylPWBOPclZq2x6qi4X3q2Y6PQf5MmCWNfuoGznW1hTKq5Onfkrq1/pBLfEQgFflFJUeLMR1KqwEBbYYdrziv0LMGwXMd4Px3Zb92zQ9srJWVj9pr3xk1U7nm7eJZPEDI2lN42Fu2/CNj3w6BBC1887exUWmZbDLyM5VNBoRz/lqLbrZQw05ePDGAqwAptW6RLCtxZ7Dw0J9m1mK1UEuQ0D31mAfzcNngUpe/7N5RA3EgHyJ122QAW+2J0VksLeUCtCyjzbS85weNlHQ3SlyVjgfR4pDynP0Zbs2KJ17Wp3uOlqMWn+kNonh33AL0KG/L7oJwMMYwkxkPBAVUycwBLahsGLGaTHWz82pzt4oCDwvUFkppcPfP8VX5oCreqbLm8h081d7zHAyvYT6urZ5RO Ar5WZlsR pMwIbIXK+uvfrtbC6kpKrMELAn8GQzs/h+QY0BpMI9njpbxnzsS73Vpnkq1itMGqW6MLckgqHEIuqYDzXc/+jDcTbHHIfPV+4sbN1QLqsljLEE2kFwUZ1pNa1jhAu+NJY8zV9ogQQXBAzFCqnz9S1++x73cCaI0QaUJBsO6u6M8MWgvx0laPZkjrjXq2HTP8WgFHFjVae0RyqKLLcyVCcsW92+atrRPl4vkOeSEbq5iGwZeZ0EemKQa1EIrQi3OkdxT6ad22HiQ6ZlbVpT1s4cnpnlL1N3RFPtwD3Wfc1hDQ+ftZInEd+lLK8+shtLvL4CElS8TIhh8vPdNywMnnGIHm8dZ8yTV3A9EhKZMGLFPOecWLtf5eIAAne5dhF8MtrReL1QVvZvdPfPufR8i5hwlo2DZhFhSfo9lMuJTvttWNaQ1D9sYMq38MQKxcp/D+GTKAuaeQKWn6CmkNToFYI2K/4doqhczyST0c55GMNPB2ECwwtTzoCpYGW8RMlrHTAU3RMvzJZt1PvFXNXwrFWcqsSsBYPVIba3MHhfk8LpD9Gi5l4MUV4Xm/iu+J1Yh+t6t7H X-Bogosity: Ham, tests=bogofilter, spamicity=0.001180, 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 Tue, May 21, 2024 at 12:57:19PM +0000, Brendan Jackman wrote: > These fields are written by memory hotplug under mem_hotplug_lock but > read without any lock. It seems like reader code is robust against the > value being stale or "from the future", but we also need to account > for: > > 1. Load/store tearing (according to Linus[1], this really happens, > even when everything is aligned as you would hope). > > 2. Invented loads[2] - the compiler can spill and re-read these fields > ([2] calls this "invented loads") and assume that they have not > changed. > > Note we don't need READ_ONCE in paths that have the mem_hotplug_lock > for write, but we still need WRITE_ONCE to prevent store-tearing. > > [1] https://lore.kernel.org/all/CAHk-=wj2t+GK+DGQ7Xy6U7zMf72e7Jkxn4_-kGyfH3WFEoH+YQ@mail.gmail.com/T/#u > As discovered via the original big-bad article[2] > [2] https://lwn.net/Articles/793253/ > > Signed-off-by: Brendan Jackman Oh, from a quick look it seems cma_pages would need this too. present_early_pages seems fine. I'll wait a few days in case anyone points out this whole thing is garbage, then check more carefully and send a v2.