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 776C0C4332F for ; Wed, 19 Oct 2022 05:51:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 147B26B0072; Wed, 19 Oct 2022 01:51:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0D1596B0073; Wed, 19 Oct 2022 01:51:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EB3836B0074; Wed, 19 Oct 2022 01:51:38 -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 D87AA6B0072 for ; Wed, 19 Oct 2022 01:51:38 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0990D1A025D for ; Wed, 19 Oct 2022 05:51:38 +0000 (UTC) X-FDA: 80036627076.01.A4F5C48 Received: from mail-vk1-f172.google.com (mail-vk1-f172.google.com [209.85.221.172]) by imf26.hostedemail.com (Postfix) with ESMTP id A9773140012 for ; Wed, 19 Oct 2022 05:51:37 +0000 (UTC) Received: by mail-vk1-f172.google.com with SMTP id h25so7492461vkc.6 for ; Tue, 18 Oct 2022 22:51:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=mFGd93jrtvQiqJNlNhKuSpttJ7R1kimxCliY9JMGiO8=; b=rJov42dEZxyrkHBKooMuGFtyzEjE4ZBDyIxL72lQMhBaeYY6i92BmHDEPO0B0wqlwm aHK68k7QphWmEUwpaLnaps9i4e3xGcwIIfdVeqpqI4bwpxCvaJ6jyRCjyxHdJj23NVqh kk3/vJ/JyO2IT5LGQcCJVw4BXWRWy1cVROSxF1Xx+u/d83nJLOT6iVZVMttVgUQdV/NM dCxMC78eZgziUDScLpEiAcir1junGES6X7m/KrNQaxvtB0F9K7ZcETXi6YtMinZhkTTk 3XHZ9UpInXF+eLXMQU8g3z4I165lKqAAsi+inDQCuy6iOSF5zZ2fq/E3OttwUDjXVOR3 vFBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=mFGd93jrtvQiqJNlNhKuSpttJ7R1kimxCliY9JMGiO8=; b=0mIshPBrm0On7WURPi5hpXmlcGxQRLHoFxhnzYHZfhkGfchLs+sUBjdi4AqtQd8/E1 e/R+GGpWHbThmDf5QZMVbic9eUT4YflHe1mR3mEuKazzOz6fKFM42F/nRSI5rAhS22hp VRpyMgaKt6wL3n8hzf/5lsR8nqh5UuGd14hULIP3wy65aWkCBAikJUIcukqXEU6uGbHG pqxbhCoJUH78FsQ+1EnFdOd+CHB/6BZcz8z1XMq/w5QuH1gyUh6UPoVSIDJk6Rasxerv MXXFznO8c0Fu4VwayhWCua+w0H/jYn2gWfOzX60HsJm6F9iL0FH1Gitbs8bZGuZbOPnV lmyw== X-Gm-Message-State: ACrzQf06AfWExXjHgdcbQgLfJHhI771X7yp3gYUgqq/GRboQInHWvUk7 8cl//m+pwSAmbsIVURx0UCb2DEZZoO7Mq36bMS+UJw== X-Google-Smtp-Source: AMsMyM4guPNgQoa7KlximIDZAmk9KlZ4Y4bJcH4mqoVFcaNoTZPJTr8XAHHByaU++HZ+c2XUuSu3ELrJpZlkGkFLxYw= X-Received: by 2002:a1f:988c:0:b0:3aa:cf0a:e0f7 with SMTP id a134-20020a1f988c000000b003aacf0ae0f7mr3164429vke.24.1666158696774; Tue, 18 Oct 2022 22:51:36 -0700 (PDT) MIME-Version: 1.0 References: <20220815071332.627393-1-yuzhao@google.com> <20220815071332.627393-9-yuzhao@google.com> In-Reply-To: From: Yu Zhao Date: Tue, 18 Oct 2022 23:51:00 -0600 Message-ID: Subject: Re: [PATCH v14 08/14] mm: multi-gen LRU: support page table walks To: Peter Zijlstra Cc: Andrew Morton , Andi Kleen , Aneesh Kumar , Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Johannes Weiner , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Tejun Heo , Vlastimil Babka , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, page-reclaim@google.com, Brian Geffon , Jan Alexander Steffens , Oleksandr Natalenko , Steven Barrett , Suleiman Souhlal , Daniel Byrne , Donald Carr , =?UTF-8?Q?Holger_Hoffst=C3=A4tte?= , Konstantin Kharlamov , Shuang Zhai , Sofia Trinh , Vaibhav Jain Content-Type: text/plain; charset="UTF-8" ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=rJov42dE; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf26.hostedemail.com: domain of yuzhao@google.com designates 209.85.221.172 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1666158697; a=rsa-sha256; cv=none; b=Ogs1mM2jXuaAq68g2TPRKaKkP0axfrPfQ7nVt6du1xwA8H6ybt/wYC8fWKA1OkBL9XJ2v3 hWBJQf0ZkU62a7zRwBK6+5fLh32vI4kLtdQl5lsD4fPGY7dHosvrl8IZ3mnFkdHsySCJ4a NUhKO/vYLx2RsfOQ2BizQ3x5MH8uDAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1666158697; 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=mFGd93jrtvQiqJNlNhKuSpttJ7R1kimxCliY9JMGiO8=; b=sSXoxgvRDIDqSNlZ5KW/9+kgWpKubHxdhjLmfD5UyXIu9wIz49TiII9jfGyVxMnmaklkB5 lBl3ipKglFg4GXI+Bn1wsZYwf+LwxRvq8ZffXiva0TIfogjushqf4f2ls+qZgJhgVACLUs js6PmpMWiDGIoGDSmASzHUAEz082wc8= Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=rJov42dE; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf26.hostedemail.com: domain of yuzhao@google.com designates 209.85.221.172 as permitted sender) smtp.mailfrom=yuzhao@google.com X-Rspam-User: X-Rspamd-Server: rspam06 X-Stat-Signature: htsqm79akocx4sycuq13t5s8mw9pdyk3 X-Rspamd-Queue-Id: A9773140012 X-HE-Tag: 1666158697-719375 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: On Thu, Oct 13, 2022 at 9:04 AM Peter Zijlstra wrote: > > On Mon, Aug 15, 2022 at 01:13:27AM -0600, Yu Zhao wrote: > > + for (i = pmd_index(start), addr = start; addr != end; i++, addr = next) { > > + pmd_t val = pmd_read_atomic(pmd + i); > > + > > + /* for pmd_read_atomic() */ > > + barrier(); > > Please clarify the above. This is an entirely inadequate ordering > comment. If it's acceptable, I'll copy what we have in pmd_none_or_clear_bad_unless_trans_huge(): pmd_t pmdval = pmd_read_atomic(pmd); /* See pmd_none_or_trans_huge_or_clear_bad for info on barrier */ #ifdef CONFIG_TRANSPARENT_HUGEPAGE barrier(); #endif if (pmd_none(pmdval)) return 1; pmd_read_atomic() should have a built-in READ_ONCE() in the first place. If we have to use pmd_read_atomic(), it means we are not under PMD PTL. So we can also race with pte_alloc(), regardless of THP split. In this case, compiler reordering probably won't cause any real damage, but technically not having barrier() is still a bug and will trigger KCSAN warnings, I think.