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 75805C46CD4 for ; Wed, 27 Dec 2023 10:23:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D55EB6B0072; Wed, 27 Dec 2023 05:23:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D04096B0074; Wed, 27 Dec 2023 05:23:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BF3316B0075; Wed, 27 Dec 2023 05:23:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id AE81B6B0072 for ; Wed, 27 Dec 2023 05:23:09 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 81C844070E for ; Wed, 27 Dec 2023 10:23:09 +0000 (UTC) X-FDA: 81612210498.16.16AD49F Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by imf21.hostedemail.com (Postfix) with ESMTP id B509F1C0003 for ; Wed, 27 Dec 2023 10:23:06 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=bvBTsA1A; spf=pass (imf21.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.170 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703672586; 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=zWEBKp33uVGlNchuGTUp5xMHWUT1mc4rjOp6MiUpCLw=; b=FF1FSGCdkQNFkjzs5vgD4apy+VKUsd4GlyV3pE7VGuGgChHOHVne8bZaJRhjpP4e7Y+efn yKurL2jAPrC7pFME5ZpGxrd5F3O233ZwZh+oX9uAvj9rS2WD+FYVYSBiYu32gb1M17OnJU OTeQkhCm8kchZcv2BUX1DX0BnrljQes= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703672586; a=rsa-sha256; cv=none; b=Ow1FznrgeWdyi1KVr7hasET0RU4cRiGQdRG7Ef+ek7TDSNrEn+st5bImgplfJ+urJePWdg U2rW+fynHMAk/SnSpgEHT7oYPbShx/hARrKjQjzR1FiTUMKyKLMO37pmOPdENnGm/qJoiO UtqjJrB2AYx2WAE4ZyRdPq4qCe3R7oE= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=bvBTsA1A; spf=pass (imf21.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.170 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2cc9fa5e8e1so49999121fa.3 for ; Wed, 27 Dec 2023 02:23:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703672585; x=1704277385; 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=zWEBKp33uVGlNchuGTUp5xMHWUT1mc4rjOp6MiUpCLw=; b=bvBTsA1APCaLa7SEojYGdGwBtEUUpg363AfRzsmmW2tRxXDlvFijmQJT36NN+63HfV 2aQDZfF/3n7KQNt3l4DgKBQlX7i/o7byBO4cFBIe1vHY2k8264lxpUr0PTtfKIv2tDAm 2xqiQhr9di3Q6K9EcPWncCp62jQhpx/G5ZBuCuJm1Swdn+z3Pfra5hPno7Y2ZAS7qX0J eKcsA6Nrt9uZxMmngCIsPB43aPR5GTwnFbsyY/jK2QSS4TcTkxjSHATrcdAk0WHg/OkD iRxrkXp+bdfk4NNHVDxffD89yLfATqdBnIzUbBYqoi7sBN4RcEO9eKx0SmW47jqU2lDG eb/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703672585; x=1704277385; 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=zWEBKp33uVGlNchuGTUp5xMHWUT1mc4rjOp6MiUpCLw=; b=K9fe2BIkCo202sNttEXGpxWEMNxoz9ni2/ouf5EuBjKQnd4qmQMooslEjpRprgMVw+ g4d+OW44VLALzVxBetgjdy8RVIWqJw+zR9SF2/vz+2IbdDdojfbVLVaLYZKIfGBqaLPp 5ammZl7dXSlRBTOdVQaLTF/TxLRkE8pPHVC+WRpne+mP6NstK5m15wdxE/8sMUJ3Zxsh 09hJH+CFeeL+xpxrwC5huhxfGYTjej4s8/9JmramZRZuoC06rhyXGdnsamIWBosOGfVC zD/w0i9+58ktfYUqcNRmF/kijzRYV2z1EUTPF8BYgg0hGqnhXKUDm888mK/r2yRxK4FJ dNsA== X-Gm-Message-State: AOJu0YzdQV9K2T29Ppnig1mY4nVs7Fi7pM05bkKtXLJ6w9GrTiLKZ1XI hhpktXnZLnEAoTxIgQZGQFgCPZrOfP2S04YjLWM= X-Google-Smtp-Source: AGHT+IEfiuI8ruMSqrE9pC62hOSMKH4DHm+C5Yw54mqvJLfYaUGnfIa3LqKRr1xYgFjim+gB27B6l+sihzt0z3W64YA= X-Received: by 2002:a2e:b1c2:0:b0:2cc:695a:ab4f with SMTP id e2-20020a2eb1c2000000b002cc695aab4fmr2964406lja.104.1703672584484; Wed, 27 Dec 2023 02:23:04 -0800 (PST) MIME-Version: 1.0 References: <20231222102255.56993-1-ryncsn@gmail.com> <20231222102255.56993-2-ryncsn@gmail.com> In-Reply-To: From: Kairui Song Date: Wed, 27 Dec 2023 18:22:46 +0800 Message-ID: Subject: Re: [PATCH 1/3] mm, lru_gen: batch update counters on againg To: Chris Li Cc: linux-mm@kvack.org, Andrew Morton , Yu Zhao , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: B509F1C0003 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: cjkwakd74fs3kwi96gjdkgh1r1osgy5r X-HE-Tag: 1703672586-263882 X-HE-Meta: U2FsdGVkX1/h+AreBq2mNXvK5V8yqDN1CpOS4fDO3F5qyn20qye8V38ytuqTESezFF+ozQz0j5HFhj5H/L6RUWnc1+gtdxNvm5t8RAZguLrBN4JIjypSbaN5nCbgPO+wWkF+CsUY+FpagTFD/EQV3IaqD9SNyzwrXYAD4fhKTJ9+nEPU0HiW0TGGw5zwhSxeJBmQLg7jPew0GghMSFF3qFbNjJpjAnyqyvvNaP5rlL7FFLf/iTXumj3qxV4WKyJRaYGnNm+aRtVcsJf+OadhL5oEHChNrSps0w7nRyneC136U+l4jgxEDXbA2tj4j9SGw6KX2cTH/UkwgH0WWcjm8ZDtAtXxJu2WlFIl4mVwnhN8ZrnYROJRTHYBtdqvm7hR4y8jVqog8OxM+zTG1pGh/wLuKVDUda1nr0O1ZUF+q28w9jHoLnhew3ANiwxH9q0iIpX9uMCOtERfpHLIGH6LIFnRTIFea1gpuUSxxiVEWqBgm8aHAVOQLtlvbW5NS8R80tAyJFyDT8I9vKH/qH1pPMnXuUzyogRHpKcOnOBQCykiBvF55fNo05aLwC+8jDGzAH7cCeV8Ephzym+pRgLF8n9LWf4PpVLTaTzUip29z+ICTxPwkViy+ECvnGFAfsueIJUf0IlSrnhfjvy8rPnZK+QNp23vhKIZ9JVczM9v74Pj/Iw55UOD2KYzoCNFdz5Jfy8kZfnetuHmY5zzYcdnzkVs9sBB1od7lQwnc4g09le8wsAeagwIl07nRaBE2wQ0O9TVIg6YX8B6FBB9OV/9wgYMH6FgyF2jvNjYOM6cjtx9ZIFol+EtF+Jn42Fh+brZbsCRTP9D+G7USjSvJ5e4dW0q2ccI84zH7jgYzG0JVilEUvYDD2zE4NbbUp5ms1zLOnKyUan1uVBLxDLH/Dt732xKnzeNrR2hScXali6oYIQLvDzRdz8aSkzBZKYo1fcXIRjiWoPA4pgQ7kW/sR8 VsMjivgu 9b02VnRW2nXdL0irWbtHPK4rrqlccTyuNFL3LzMBOSwZdc166P+BS2lD/zpKVOsSeby4fJRyd/8AVWcYV6uRLsif3FxmKnK5Og6k6XhRs5YmMaZj5DsmRDmNsnG0pC1Po9vut5MRBcImfempbji7Uq2V6FWJ9tIir2rjipanvSdh25/zR7h8WMIYV45jgSotioW48Kr0GUu5afnspBfHsSzD8CfjqAfzZmQkFnu8PgDNHfffz8aVzteFozTNbVYMim3asDkYCZZe/LwN/iTY3dIY+OAJ4/b3G2Dh5cZa4tbGkVIWpA4VE2XcQ8eIvITxx/qJf/QhMkijM1EOHa4UIE9vHHHabZbyLeAk70fwATgtSXPRRMVINX0ZwGFN9zWAr2sQPhtk3jwJxQqU7AA15cGSRZ3tQiY0fnwgHEreIdSEZN5w0/LaYAeYMgpIDCYXUEC6v/8spDpBEp/LPDjJ3wifB9B8dutTMsIQvgDu765FQ32ltqGYKGRiNDr+I3466/1aYLgNe1BmuyE9RDU6tkGCKU/aklhuvmLsm X-Bogosity: Ham, tests=bogofilter, spamicity=0.083989, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Chris Li =E4=BA=8E2023=E5=B9=B412=E6=9C=8827=E6=97=A5= =E5=91=A8=E4=B8=89 07:43=E5=86=99=E9=81=93=EF=BC=9A > > Hi Kairui, > > Some early feedback on your patch. I am still working my way through > your patches. > Might have more questions. Hi Chris, Thanks for the review. > On Fri, Dec 22, 2023 at 2:24=E2=80=AFAM Kairui Song wr= ote: > > > > From: Kairui Song > > > > When lru_gen is aging, it will update mm counters page by page, > > which causes a higher overhead if age happens frequently or there > > are a lot of pages in one generation getting moved. > > Optimize this by doing the counter update in batch. > > > > Although most __mod_*_state has its own caches the overhead > > is still observable. > > > > Tested in a 4G memcg on a EPYC 7K62 with: > > > > memcached -u nobody -m 16384 -s /tmp/memcached.socket \ > > -a 0766 -t 16 -B binary & > > > > memtier_benchmark -S /tmp/memcached.socket \ > > -P memcache_binary -n allkeys \ > > --key-minimum=3D1 --key-maximum=3D16000000 -d 1024 \ > > --ratio=3D1:0 --key-pattern=3DP:P -c 2 -t 16 --pipeline 8 -x 6 > > > > Average result of 18 test runs: > > > > Before: 44017.78 Ops/sec > > After: 44687.08 Ops/sec (+1.5%) > > > > Signed-off-by: Kairui Song > > --- > > mm/vmscan.c | 64 +++++++++++++++++++++++++++++++++++++++++++++-------- > > 1 file changed, 55 insertions(+), 9 deletions(-) > > > > diff --git a/mm/vmscan.c b/mm/vmscan.c > > index b4ca3563bcf4..e3b4797b9729 100644 > > --- a/mm/vmscan.c > > +++ b/mm/vmscan.c > > @@ -3095,9 +3095,47 @@ static int folio_update_gen(struct folio *folio,= int gen) > > return ((old_flags & LRU_GEN_MASK) >> LRU_GEN_PGOFF) - 1; > > } > > > > +/* > > + * Update LRU gen in batch for each lru_gen LRU list. The batch is lim= ited to > > + * each gen / type / zone level LRU. Batch is applied after finished o= r aborted > > + * scanning one LRU list. > > + */ > > +struct gen_update_batch { > > + int delta[MAX_NR_GENS]; > > +}; > > + > > +static void lru_gen_update_batch(struct lruvec *lruvec, bool type, int= zone, > "type" need to be int, it is either LRU_GEN_FILE or LRU_GEN_ANON. Yes, I'll update it with some more test results later.