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 23EBFD20693 for ; Wed, 16 Oct 2024 02:54:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 70DEB6B007B; Tue, 15 Oct 2024 22:54:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 697AF6B0082; Tue, 15 Oct 2024 22:54:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 537B66B0083; Tue, 15 Oct 2024 22:54:45 -0400 (EDT) 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 342B96B007B for ; Tue, 15 Oct 2024 22:54:45 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 202431216A1 for ; Wed, 16 Oct 2024 02:54:36 +0000 (UTC) X-FDA: 82677947478.23.6BE2709 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by imf24.hostedemail.com (Postfix) with ESMTP id E0727180003 for ; Wed, 16 Oct 2024 02:54:40 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eFNgLmXf; spf=pass (imf24.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729047209; a=rsa-sha256; cv=none; b=aOsTg6IEoIAx6SrCHaOQ54/gOrQce+CexwRlZZ42Jy4I6ly2Zx6gfMEgKXH9mgYD+jrmOq cepycCg5BJqgFkgqNRxvd/zRDb/POIcelRJIJFsPAo0ajVdjDr8fIUd+23UQTHWN4sQYI/ uXgFE1Vyx/ltRxsTzPIgHtgrh8HtXrw= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eFNgLmXf; spf=pass (imf24.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=21cnbao@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=1729047209; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=mjSsM4u+z6T2URO29UDtPAQtkW1WFQpe0IZh8Z0p97I=; b=sGzSX1Sd5NQoDQUtGbUDWXyBzJYp9yPyHiuNk37m3eWJc4KCccLL9wy7BH3WL83Uc6TGe/ ePYDBajGjLdd7TpceJgdzGjdfijgAucNc0HzYRScyOAxatP6MAppVuBkqJlIoA6cOJ7g+3 QkY8phXUcb8o/RsDn4p0lEyRZC+b/5Q= Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-71e67d12d04so2170148b3a.1 for ; Tue, 15 Oct 2024 19:54:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729047281; x=1729652081; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mjSsM4u+z6T2URO29UDtPAQtkW1WFQpe0IZh8Z0p97I=; b=eFNgLmXfc8B5ROrzGPF6QoCZynKVHxyWZQr/nxdfZIqC8b6lgmyVzDyq2p0f8e5VHs 2msqC+aFqXLE1BT+xIhzP3RvF19Jw6SxR0FeFC9SwkKB9ebkFhoqCRCaMj5E6F5ryTCx zknvOBp6WqajX/NJvYAZVTgyXemZQOS+xcF2c6SOJsWmZALYaA0eHTz7e8nCr3ejLXlw MNnxQAQ6A4BoxR6c/HV3w8DRWByUwZY7O+wgvBt7/wUnpRmVdqzgDiQHSuwiWedgxg3z 804Onke9m6B5TeYjlEE8+n3RQn6gc/lReTVILwatP+MbVgZbtXeNC1RGU3+5go8W2zsj RLNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729047281; x=1729652081; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mjSsM4u+z6T2URO29UDtPAQtkW1WFQpe0IZh8Z0p97I=; b=inQIuQlGaRJVxohwUglQ0dvBb+Q81rNJn/aZc1+GTN6/lGIyuOVmJkn94WOzxASBVn PjYpRzKt8n4PWYWgTXqXEJQGxv9TpWfAtQwQ1NHHRmnGWsO/Nvf8kYTv3JGQj0NumH9e HW8jlCxyoDV0L2ijxOtjnMprGK5iBguCoRVR8VaZjuT81OVJ0VsRM8nSNmpYkP/oe9qX 1k1GWtkTCQUubgTmj5xwWCw7orpH3Q52jBAMVnMca7/RGQWPuPW6fVj4hGdQt5tIGeAF /jTKBZLBVtL49oZioc/8f6XhTSl3K9ybh75CukilKmQP3zAGDKKgFjIs7giBMSqJw3DA UvJg== X-Forwarded-Encrypted: i=1; AJvYcCWwzC03949pd6g/A4l3b0P0kbpgQmxk7cWgCPh2BDE00CH7xf/tTzb1pKlT57u4VhnTNXBj91VjFg==@kvack.org X-Gm-Message-State: AOJu0YxeNbtZprS0R+2EZC7vUbVbYHJv/mT/tUMSP7xOmgkyJ3MbhNeW N2y8B5hv41omadvmOfpANiKSHb+PBvnRfjIrjNs7vJcIA7uz/GTi X-Google-Smtp-Source: AGHT+IFw7m6WgIryfgceLSDZkZOVayiRbDMwvS2C3teHJC2sgvh3Ey9Pd38bli1Qwsnc/LydWObHjA== X-Received: by 2002:a05:6a21:e86:b0:1d9:2a8:ce13 with SMTP id adf61e73a8af0-1d902a8cf6fmr3988461637.24.1729047281282; Tue, 15 Oct 2024 19:54:41 -0700 (PDT) Received: from Barrys-MBP.hub ([2407:7000:8942:5500:e037:6314:f5c6:369b]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71e773b1634sm2080937b3a.63.2024.10.15.19.54.34 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Oct 2024 19:54:40 -0700 (PDT) From: Barry Song <21cnbao@gmail.com> To: a929244872@163.com Cc: 21cnbao@gmail.com, akpm@linux-foundation.org, david@redhat.com, fengbaopeng@honor.com, gaoxu2@honor.com, hailong.liu@oppo.com, kaleshsingh@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lokeshgidra@google.com, mhocko@suse.com, minchan@kernel.org, ngeoffray@google.com, shli@fb.com, surenb@google.com, v-songbaohua@oppo.com, yipengxiang@honor.com, yuzhao@google.com Subject: RE: [PATCH RFC] mm: mglru: provide a separate list for lazyfree anon folios Date: Wed, 16 Oct 2024 15:54:30 +1300 Message-Id: <20241016025430.4864-1-21cnbao@gmail.com> X-Mailer: git-send-email 2.39.3 (Apple Git-146) In-Reply-To: <014f01db070a$61976220$24c62660$@163.com> References: <014f01db070a$61976220$24c62660$@163.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: yenzbw5q1pufd9bnpx9hzauckeminmpy X-Rspamd-Queue-Id: E0727180003 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1729047280-854649 X-HE-Meta: U2FsdGVkX1/Tk5blEf+xzXXPwm8U5c5k9ExKxX7i88IiOZuo9OcGpWn9hskjt1RQNF7wEwtGpPgpPwv5x5KhcQOlKFtCevEngTirXusyMdeCnROUVmkmN/JgKx0D3BUUqMmlGXNFE3boq7OzIbg4/TZNLX/cyfi3BUqH/WUpxtiw2aBwJlL1TkIqpnM8ZAu0ffBjCHYBHA2uTDiVfJvsoMCZmHK7uRuBSljy8LGkCZyKwcwfbyRnn2fUwiV7I4hpbubKKEIdAXT0N8ANl5OSk3rBBYJ250TwoL8SInqM2yCOAhRo5DQ+cgWdG41nCcT9X5rOlRWvELTo8eD5aUoGzIwTcAiIhgrjWGQVHMtgQ5BTFKBO72xuw5f89yypp3iBiQIbr42mNjm74/7cFgm90e7Vx1lsPKUYk+zVCaaY/ua0E5ELZ+q/aVsQEJ2QcgDeZvv9Ohluu8cfOHf89AMzZpTsUjG8ufYA5Wek0nTosbIS2bBDXmYFRT55DrcGnsayipgOeY/hGP7/Ox5cDFfIS27h4qShzkuZOqDVGALUYCjGxcpRr21+P9DoAtdUDHJ2YDwJCV6FtJ9d7tBBCDuENvC8Tw9wk4BvsEoXRUV8qiqaznIiUH2RncBUjuyBHmkclZVhLPQ9qFvDtCqnaB6p/eM3kMuxEFF52Oy4dLbHn25oZ3E2Xb0b9lPNlK8dweCjorAT+AWNsQhSZ0y2vbHO/rLvgHX3XgqoWBjCJT9OxZaSpWi6Si31/DHnEKSIG7NZzZ9XLRVKcp94WTwMmM6FCuFRsbveTE7GBJaPIkSefrBf8Hmz8kZQHbx6kPV0V7IcN0k7JwNJQ74RpRl92kqhFcvMPNObZxfxRqsb3uRUcePfP6F4I8PadXc5wmYS+k3wwDiVYRHnWTqT/jWL6PK7ledprsjNaI7x54/XpP9+lw0nuO0ZyW/Am9TYd/aEYp6I93Vm4/q9EttnwojcZlz yGihBQMr cy/+E02QM7HualAmeTNssIkNsD+P3LAowJxfklzP0dlnr9H3rdXBLv+CqtSwI5xzm4FlGyGafyRlDCCWzHJSnLcNyt/aKr1lIrgssBQlo+cJljWuMvOZqz2vroUrOMOxROBPrtAyn3CCizN0Y0+yKinRhRp9jjALXiepFNW8WbRI9jJ4eZpaiOssrI1b2QM0BPVpdW9LNWF2jgE+SYI9EMGHnWAV3yj9CvAwRRMFTfqnQm+jdCmRRlFr8vPJ9lrxUDkVe5X8zzPiDNupakPykQjBiMdvmC8NlWfP/lbLn7Qbur2RGWxEnC1tNgmZziHELrCgQM5sf+z/rWowmun2QI+WdvUhwZEP407KuG07Mna6PIfy3hzxXO7eiSOdo6m1t9kvnePYeXweLAnI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000024, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: >> +++ b/include/linux/mmzone.h >> @@ -434,7 +434,7 @@ struct lru_gen_folio { >> /* the birth time of each generation in jiffies */ >> unsigned long timestamps[MAX_NR_GENS]; >> /* the multi-gen LRU lists, lazily sorted on eviction */ >> - struct list_head >> folios[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES]; >> + struct list_head folios[MAX_NR_GENS][ANON_AND_FILE + >> 1][MAX_NR_ZONES]; > This also divides lazy free filio into MAX_NR_ZONES generations. > The gen of a lazy free filio depends on the gen in the anno list before > it is marked as lazy free. Whether it will happen that lazy free filios > are released in an order that is not consistent with the order of the mark? No, this separate list ensures that lazyfree folios are released in the same order they were marked as lazyfree. Note that any newly marked lazyfree folio is always placed in the most likely reclaimed generation, regardless of the list. static void lru_lazyfree(struct lruvec *lruvec, struct folio *folio) { long nr_pages = folio_nr_pages(folio); if (!folio_test_anon(folio) || !folio_test_swapbacked(folio) || folio_test_swapcache(folio) || folio_test_unevictable(folio)) return; lruvec_del_folio(lruvec, folio); folio_clear_active(folio); folio_clear_referenced(folio); /* * Lazyfree folios are clean anonymous folios. They have * the swapbacked flag cleared, to distinguish them from normal * anonymous folios */ folio_clear_swapbacked(folio); lruvec_add_folio(lruvec, folio); __count_vm_events(PGLAZYFREE, nr_pages); __count_memcg_events(lruvec_memcg(lruvec), PGLAZYFREE, nr_pages); } Thanks Barry