Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp593162rwi; Tue, 18 Oct 2022 23:41:57 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6Q/dzvZxiJFNvhnxHwqIbr0Fno8wgUEEaVL/4mWIgIfZFPKPahN65uAnFYcgiEwkKa5PDp X-Received: by 2002:a17:907:703:b0:78e:25be:5455 with SMTP id xb3-20020a170907070300b0078e25be5455mr5306394ejb.630.1666161717486; Tue, 18 Oct 2022 23:41:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666161717; cv=none; d=google.com; s=arc-20160816; b=RGYYBM1cpDNdbAxz1ENSqmLsjOSt2Ng20fBJuy4GjJ/W6VjH9kB3o5CfvBWy5Ln1c7 pgEo66YtExgxHO1b+0E8CP827mHe6XgUgLL614kFMAhCIGlIaTukctWYox+s7zDXfx1G nMz/2w9v5yCQGMVVpPNfGmcDLkB4WicqBtw/ZOCZ0V4g5I7UvaCo0DzTHGx+Wu4CUJ+1 3f39Zb30WwJuUFM3HwJ3k7eIeHDnzh+htO+ZnQMVMNUNBKl6TPkU3h+HVHbNulANWq5r 8bmZ4JH7uYpBkJEklnYJkIiFyadq2MQKO+7x42ZBNTO442dmC3w12AJbzaShA3ML0ojr V2jQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=mFGd93jrtvQiqJNlNhKuSpttJ7R1kimxCliY9JMGiO8=; b=bpXLC4BXTfWxCCF+DC+jq48IIK8GuJhPMI+4DwcoRhctKv3+lI4+dku35CD8vkEtXL xGDHUrbUL7CvTshgpxMfqXaNa8q1TmFHE4GOUKFFHv/x//SlGb7o3VIt803NfQYW+t6A 4GQ0otIyaTN74N261R6/FI1PHVjX4lpNzmA/rSI1AjtQQjdJn8mVbtTZkcVQUd3L/JfE 047d0pz3jR7I/p3Il4+blDJnmrcBwgBPENnOjG3JJhwaRumHZoxysEkDkJEyUT4e/8XY dI413dWg2k2n3woUqlUVjncUj+IjuCUOrVjS2M+8yOc8qqhR1rvqkLQMg9s6Vc4MSxuV G8yA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=rJov42dE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ho10-20020a1709070e8a00b0077f92be81adsi14283217ejc.212.2022.10.18.23.41.31; Tue, 18 Oct 2022 23:41:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=rJov42dE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229682AbiJSFvk (ORCPT + 99 others); Wed, 19 Oct 2022 01:51:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229675AbiJSFvi (ORCPT ); Wed, 19 Oct 2022 01:51:38 -0400 Received: from mail-vk1-xa31.google.com (mail-vk1-xa31.google.com [IPv6:2607:f8b0:4864:20::a31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C087B1FF89 for ; Tue, 18 Oct 2022 22:51:37 -0700 (PDT) Received: by mail-vk1-xa31.google.com with SMTP id a66so7898948vkc.3 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=X0QeVlpeNfnz9BOttZ/UgcCtViQa1wSmfVwtCx4rAkC5689SHZsg+im0Ix+HTkdUtv +lfKOaIKMXp+Z+IXwnNE/BGBPq24rSWgrLzPStXEEbmOYJy+pIbTFQJd9701Jr6H7QDt B/ewk/DDo6Wl4D0zRBqPhy71HEbgZDgkoZuJqKroJPUAqEvLe6o05mRDL7etjOpndPj6 /Bv5wWkJOGNXh/LHuY/G8samainEgvvryzcZHGJxK01WfErAQGczH99jexoiNVZW0aTX EMXV+yjBky6pRU1d2MJLNVATGygvdrt/l9huoi6Ub1hQo70iwwXhevkDM2phee73i5Xz 58DA== X-Gm-Message-State: ACrzQf2+Y877e69FcUg1LQv1iz+C2iXVNpiNJqBLUvBQg67kFY/PAW4w yPzevssg7bR7daRuM3SQelHtmIKdSNA8ndVqT1wNjw== 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" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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.