Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2276543pxp; Mon, 21 Mar 2022 15:39:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxWCmHmeKeJwRjgE86hF5LB99Oar1/RtLMxoglJYbACMAg+76Sx4tQRpU+6h9Wd5UmqUdA0 X-Received: by 2002:a63:5110:0:b0:374:2312:1860 with SMTP id f16-20020a635110000000b0037423121860mr19913576pgb.146.1647902345121; Mon, 21 Mar 2022 15:39:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647902345; cv=none; d=google.com; s=arc-20160816; b=mfU4bzZ5ygaTivh69k4W5ykJHpw91fIz9aHgsIwCTD2KfVnNQ0hmGLKSedDllr8ABl 47xP2Hff45cTqUexU295+nuDbWuP1j7cUoMBcf03DFb4tYTFLl5D8q72ws33mgr1GPku ErLb6kx/mKAq0B5eln2DfbzD41XzwIh15TKVWhOnTo+TxLdw5848T3gheYKsSD6wEiJy Uxnh+VtlfUs6tub5dVjPmGvgO0lxvutmbW7BqDR6Ayg4qAboolbDGeV49aXCwH0qKQEh CLiRNyosAoLa6eSMWUYsgbFTgN2REHdKTcVMdzX+aFCOimKwVATCRmhDP6Yy3xV6PCb4 CVNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=D28RjDg0IIqsedMZiUTeTKR3AfquY6OXe4oxRWEJ2lM=; b=sJ/OmrZ3byOtiZt8aXQk0Tn90IMrnhsrj/qRWkfEa5QXbZb23adXzLDant0EmNXvGg J0OUOfbybwpn1OnpZ5c35FjAhOxF2A8zTHdVggq6cyGuAibhGFo5efrQcpLnlPa1bpNN ydn55Ji2HbNstSggo/Qg3L1cIE/N6hBCf+ol1Z6y1ynhZb3JXFmYxPtsrZ09MBtWFNU7 5aCPq8NcuheMIImiPxpjlQ/5F1T8PG+CKqLth/pZSuIZS3ciI7v0hMm6IOf99DKo5Inm x4BGK3EXLbRN5JCiJLUmtoB2Fa+dsOBzaIEB9DtUshN2vEiW+4gK/g7sPuAblJc/Ujxq YwNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=QGQCc9TM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id o5-20020a17090ad20500b001c62430d1b5si483274pju.75.2022.03.21.15.39.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 15:39:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=QGQCc9TM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9B142334D14; Mon, 21 Mar 2022 14:51:38 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242667AbiCSKQR (ORCPT + 99 others); Sat, 19 Mar 2022 06:16:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235071AbiCSKQQ (ORCPT ); Sat, 19 Mar 2022 06:16:16 -0400 Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com [IPv6:2607:f8b0:4864:20::112b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5925C1AFE85; Sat, 19 Mar 2022 03:14:56 -0700 (PDT) Received: by mail-yw1-x112b.google.com with SMTP id 00721157ae682-2e5969bdf31so112725737b3.8; Sat, 19 Mar 2022 03:14:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=D28RjDg0IIqsedMZiUTeTKR3AfquY6OXe4oxRWEJ2lM=; b=QGQCc9TMOPGLYL8s5mQbPX8X6J7/it2KQjPcOjm3W5A1X1wJr6lt11KRnCf4khbnPl W2RcZ1hTzC0lFofJf2N+HyT4A7715ZrFGsRd56ADXzkC3mhgR7xZnjiA3S2PAZWzvBce qBmrgRjYbV9Dtz+p9VxWq9DdvNe6r9L9KXnUadtwjQVEKqLGS11ox028JAQFMOdTw565 FlvhTZoXpMFJqyUdZrzDxHYYlm1uVq3o96a4onOm9BKYZQL5CHmFBL0Jp2d3C0CS50Y0 g8bnLQyCo8c+aEC/PMDcUVDE7TBkNK+sQNi+sAsrUAIkE+DGWpvx8M1hz0wgTf8lfoof shnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=D28RjDg0IIqsedMZiUTeTKR3AfquY6OXe4oxRWEJ2lM=; b=ygxETty/QsU3MaaYwNOOH0Poh2Rg04q583+t63/K0ziJtBRceXblXbRUKNS9yDCVnm apLPoS1GLwEZAIUWIByHCO/Ax/Kptek7wc88MXh+xidJL9PK5VGeHFibAqmLA04+QJcQ D/KpHhQPDT1HfDDxrinnCB7UvlHR5n6W5e//LBVBMD817HlmZcTOo4BCfaEWCS9PFDDb wHsK8iL3ufyK6uDjCIvIv/bRTkV1nPZhCTWdUvagC6TwhI64WjmyElvORZp6u2vfok7E +5ZCkxD48EYRHxrVaUrSIUvSd8qSQ+1BbDQVD6ukBhhrVj6MVHDQlaq5zUtrPmQbbON/ J+Cw== X-Gm-Message-State: AOAM533xxhePWa/X2hCnAcq/he0hxAG2UP4zI0fOFNmGlakIH2jXMX58 9zlHGThUA+3dIuYVbEYJPFR0HdO4RwWI8/me7oA= X-Received: by 2002:a81:944:0:b0:2e5:e5cb:a04a with SMTP id 65-20020a810944000000b002e5e5cba04amr5799603ywj.406.1647684895529; Sat, 19 Mar 2022 03:14:55 -0700 (PDT) MIME-Version: 1.0 References: <20220309021230.721028-1-yuzhao@google.com> <20220309021230.721028-7-yuzhao@google.com> In-Reply-To: <20220309021230.721028-7-yuzhao@google.com> From: Barry Song <21cnbao@gmail.com> Date: Sat, 19 Mar 2022 23:14:45 +1300 Message-ID: Subject: Re: [PATCH v9 06/14] mm: multi-gen LRU: minimal implementation To: Yu Zhao Cc: Andrew Morton , Linus Torvalds , Andi Kleen , Aneesh Kumar , Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Jesse Barnes , Johannes Weiner , Jonathan Corbet , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Rik van Riel , Vlastimil Babka , Will Deacon , Ying Huang , LAK , Linux Doc Mailing List , LKML , Linux-MM , Kernel Page Reclaim v2 , x86 , 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" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 > +static void inc_max_seq(struct lruvec *lruvec, unsigned long max_seq) > +{ > + int prev, next; > + int type, zone; > + struct lru_gen_struct *lrugen =3D &lruvec->lrugen; > + > + spin_lock_irq(&lruvec->lru_lock); > + > + VM_BUG_ON(!seq_is_valid(lruvec)); > + > + if (max_seq !=3D lrugen->max_seq) > + goto unlock; > + > + inc_min_seq(lruvec); > + > + /* update the active/inactive LRU sizes for compatibility */ > + prev =3D lru_gen_from_seq(lrugen->max_seq - 1); > + next =3D lru_gen_from_seq(lrugen->max_seq + 1); > + > + for (type =3D 0; type < ANON_AND_FILE; type++) { > + for (zone =3D 0; zone < MAX_NR_ZONES; zone++) { > + enum lru_list lru =3D type * LRU_INACTIVE_FILE; > + long delta =3D lrugen->nr_pages[prev][type][zone]= - > + lrugen->nr_pages[next][type][zone]; this is confusing to me. does lrugen->nr_pages[next][type][zone] have a chance to be none-zero even before max_seq is increased? some pages can be in the next generation before the generation is born? isn't it a bug if(lrugen->nr_pages[next][type][zone] > 0)? shouldn't it be= =EF=BC=9F delta =3D lrugen->nr_pages[prev][type][zone]=EF=BC=9B > + > + if (!delta) > + continue; > + > + __update_lru_size(lruvec, lru, zone, delta); > + __update_lru_size(lruvec, lru + LRU_ACTIVE, zone,= -delta); > + } > + } > + > + for (type =3D 0; type < ANON_AND_FILE; type++) > + reset_ctrl_pos(lruvec, type, false); > + > + /* make sure preceding modifications appear */ > + smp_store_release(&lrugen->max_seq, lrugen->max_seq + 1); > +unlock: > + spin_unlock_irq(&lruvec->lru_lock); > +} Thanks Barry