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 6A5B0C4828F for ; Fri, 9 Feb 2024 19:41:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EBE206B0071; Fri, 9 Feb 2024 14:41:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E6DC36B0078; Fri, 9 Feb 2024 14:41:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CE78F6B0080; Fri, 9 Feb 2024 14:41:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id BA9E96B0071 for ; Fri, 9 Feb 2024 14:41:02 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 6AA1AA03F1 for ; Fri, 9 Feb 2024 19:41:02 +0000 (UTC) X-FDA: 81773283564.13.0854B7F Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2048.outbound.protection.outlook.com [40.107.94.48]) by imf05.hostedemail.com (Postfix) with ESMTP id A416E100010 for ; Fri, 9 Feb 2024 19:40:59 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="dPAxCu/c"; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf05.hostedemail.com: domain of ziy@nvidia.com designates 40.107.94.48 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707507659; 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=+Ve+m2x570FPXiEIV/Oo63Q9e7loyCass9PBk8KtrX4=; b=ldZO0Ys3WDGjeGaNdtgAzqPiUmLxKVyv6aHlQhAqOTpkz2D8zJ3zhPJOsiHqnJ/2/VZDAK iG54ZJwe/mIgKmAu5cLUBBLpyOf+OownHA+5ELdgS8M8OjEZMDTqUdsCf6zp9/Jvg5LZhT ioZkHCPnt3Bu0D0Tcz75CMV5K+mG1Zs= ARC-Authentication-Results: i=2; imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="dPAxCu/c"; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf05.hostedemail.com: domain of ziy@nvidia.com designates 40.107.94.48 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1707507659; a=rsa-sha256; cv=pass; b=Ue0Oo9nVcdPadmlN3B2vFGQE6x2ZpXiH8Ni4GjXe6A9+tvM6Sg2gLUhoKSDUNYjUmPznYi mpWI7MdfJFqtG0f1+2jCgk0goZdaq7v4BWx3k4ktYYSVhCOFexoBX5ZpGIXWTANcOA+l/O D7+INparcgG/saZX+sbrrc3Jv1TqXaE= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BiJFymEtTUtkBgSPmtzH48KA3SLX4GQl9Q/gzkGDjDBIEhp93QUrlz8nW/9FllDvwbMivMPqTTVHly9GNt/5hkyn/K93gdkfP5elnQzGEKlUuAsR76i2TuGxTVqWoysHCsvfenE4oKUIrykhOwGQIkFZb+elGZun0+ykb5S5FlERd5j31PQEdiLNL77j+f1Y8ihAnzG3Jt9VN+mz9JK7C2OiK94emR3g8mGx6ab2G8dA6vvUaksKWVtJKzHA1bTxJ6tOIiyfmssocNg2N7q3V1ni2CWFPthpizpUbe9qGJZYmsVX9p9Vrkf3I8gCJQbz4VcSqW3sm8o636eiMXUqjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+Ve+m2x570FPXiEIV/Oo63Q9e7loyCass9PBk8KtrX4=; b=TIkEKhGsv9LfrIkdpXhgT5WQGC4oB+3db4xgImrcVs0WX4NuNcK46SCu2ZUu9UY3D3mur6LMozUFTSavWTN1jNNKmd41LxrbI68BTRYXGCUJIKke5RZ+NRNdbjk14iNwsBjPwaHb3LeGHMpJnOLnYcwJ8t2LFmI2y1gdYGiY+cAxobo5Ytq/eNxDQBc1sEqPo+bD5kP1bo/6TYGAmfkzv1DTSrIl0LYpubrCq+FYaWNIkpc/lukZithD3cmzrck6u6c9r8mHj99wIlxAPdNfR440B3vMhooFtjLPNedZgzEy1++pbLEGTJVhz39NnUJucMsZlndPmdepy1zCzYwaqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+Ve+m2x570FPXiEIV/Oo63Q9e7loyCass9PBk8KtrX4=; b=dPAxCu/cPQgPvDEANLYqNXSHD/g6/sH+teCkOaJ5+JJaTRwKFrpkXMXS3qQblZ2IGkMD2cDgIq91D2dMqGSP8Mix+Vz5aWjD8EvIBiHZnR4o2YxsXvMk00o4ci7fQ9qVclnGQr4NwO4XvnvyoPLk0RoO4X8AyFr8oQD4xBvnhE4Vq90j4T8x2uUOKIhToPgdY8X+DTgucHYNGe/uzRZJxUvwvDpIjg2HbcQE6q/Jv2XUjNfkn/g6OZBJMimtjXQ8f4RIv7beeLCVLhQEtgyAXZ9WXtjz77lXJA2R74uHs9c9cf+4mRNJ2rBFySNgvsK0O+SIpAAegre4BaCVQlvCbg== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by PH0PR12MB7011.namprd12.prod.outlook.com (2603:10b6:510:21c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.12; Fri, 9 Feb 2024 19:40:56 +0000 Received: from DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::db3e:28df:adc1:9c15]) by DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::db3e:28df:adc1:9c15%5]) with mapi id 15.20.7292.013; Fri, 9 Feb 2024 19:40:55 +0000 From: Zi Yan To: Vlastimil Babka Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, "\"Huang, Ying\"" , Ryan Roberts , Andrew Morton , "\"Matthew Wilcox (Oracle)\"" , David Hildenbrand , "\"Yin, Fengwei\"" , Yu Zhao , "\"Kirill A . Shutemov\"" , Johannes Weiner , Baolin Wang , Kemeng Shi , Mel Gorman , Rohan Puri , Mcgrof Chamberlain , Adam Manzanares , "\"Vishal Moola (Oracle)\"" Subject: Re: [PATCH v3 2/3] mm/compaction: add support for >0 order folio memory compaction. Date: Fri, 09 Feb 2024 14:40:53 -0500 X-Mailer: MailMate (1.14r6018) Message-ID: <193E0D43-0084-48AA-91F5-8316A130ADC3@nvidia.com> In-Reply-To: <5F394663-0AFE-4C12-827C-3A0723863395@nvidia.com> References: <20240202161554.565023-1-zi.yan@sent.com> <20240202161554.565023-3-zi.yan@sent.com> <025b7e7c-b17f-47c7-8677-ee36fc6dbc52@suse.cz> <5F394663-0AFE-4C12-827C-3A0723863395@nvidia.com> Content-Type: multipart/signed; boundary="=_MailMate_1412060A-F69D-43E1-8BC1-DABAD362161D_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: MN2PR05CA0062.namprd05.prod.outlook.com (2603:10b6:208:236::31) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|PH0PR12MB7011:EE_ X-MS-Office365-Filtering-Correlation-Id: 738ec603-99b7-410c-d4cc-08dc29a7086d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cjHuRM/zHzzwT6Kr9gf2YkxIkRj4d4JqGWv4b8g4fAsvhs6mHD15Lqzh+tn6eCxZoU0dNrQ7NzQmDVNfxjyMU9mhTI/IlI9XZA0TjxVpQlgEy1SxV8Kgjnh6jx4Au4vycAHlCGyfOMRebCRb8ReYKjrV96vh/29FXwCXYFoNs7Eqf7JZ6QyM8BSYcJEIXgXvW3uucONEgDMbzpP8soqYZ7d+DvkrcxiCS6D4m3mjuum8nH+wkVPWhT9NpnvaSSqaBfrfYXB93mT4eDVcz445hXluovzUJ0Ich6ZVd1sLbfY3MtURO7OFJ2S4X6SwBqzNWaC2Wn7sdGFR57G4mpIRB8RzT+q9ZlVoGtzmRcuXvghuJTSRMpeKRd9CWclw1+UUBYdhM8rJr45g3HDLImJogGN6mnf4OuCFh93QRfeMI9N+dPXE2uSJdHXfFmlO7KmTZeINFuMdbeZtYcX55ZLh3IGZ6rIIgbc8lcdn3sWAypIsUCbcrrGDHysPUyxtOFDEWXwEUOELShb8kwVpiks2E11+xsgv7ETpnap4xRKVQ7nZaY6xKpZ33IQinI+z8jpF X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5744.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(39860400002)(136003)(346002)(396003)(376002)(230922051799003)(64100799003)(451199024)(1800799012)(186009)(478600001)(6486002)(83380400001)(2616005)(26005)(53546011)(6506007)(6512007)(2906002)(7416002)(316002)(5660300002)(235185007)(6916009)(66946007)(54906003)(66476007)(66556008)(4326008)(8676002)(8936002)(33656002)(36756003)(38100700002)(86362001)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qRR+oGpe4BytcF3oJo8rVhqLKwHbaSI/YDvTfADWl3d864Xj9hHD61DJ/PTy?= =?us-ascii?Q?UM5PWDAAuyFoNy5WZ5KHfvIQw7v5XGBCeRhb7HR/DtNoqb8vTW+Dvn6LihLK?= =?us-ascii?Q?PBykfAPnvIBP1P6m93rMRkw8Q7l2EIRjJzNh6s1NASPth3A8W1beq//U9sgC?= =?us-ascii?Q?gsNncXPCuGcFA4HxJoMPsZBxf+DwIWkNk+wDHy9otGv+gfSsZk96MGZKz4cL?= =?us-ascii?Q?YwvdtY5CN4J4hCASV7cOLYb5d08yd8RaGVwDBOB2ieqdTgDtm2TfHBd8hwPu?= =?us-ascii?Q?fDszESV8mhg1zSknBadPXYfr1uRsigbSarK+efROPZ8I0w/fO06VES3bikD5?= =?us-ascii?Q?PPUNKglWSd65b/g53IBCMLfGri5b4X1QENrlZpV17IiVX2sy/9leKu9A9C8V?= =?us-ascii?Q?2cUp2Jk5KpZ8ak5TUBJGtFFEwHCEh7X+ErJJJlauVjoo2GxldHiT3DAWbkiH?= =?us-ascii?Q?4IWKoe1nOwm/GUPs8Nbh5WHgir7FwW0XLHGAQoLPK3Ylbyoqqiy5vzG4H9H/?= =?us-ascii?Q?WSpD27ZzBvvARud6IORaeZZPJXaznV/mf++BPmu6CjyYd9x1E0heW80Al3XS?= =?us-ascii?Q?CGTg/k+mGWisE7GeJhXWnh6SfrgrBoG3oXmNA8wUL+mxCu9tJ4GFN/s5Qpgs?= =?us-ascii?Q?Kw0/2zBEo3H+TvqPcPsDNV3he9a5BS8NwYb+9e+gg9Eg2ThMO8TRbWLpiIdq?= =?us-ascii?Q?OrkUaNcJ2UwvU2a0AFX6zVfiDxTcIc7uvWsJqjOiXzLzm7co8vFU8Nr9cbJd?= =?us-ascii?Q?pIzRaE1ZXt7YxQE3lcct6w8CBMUwO65NHW24YzfmaF6KjNJOwv1w5FFSxw1f?= =?us-ascii?Q?b/2bGyWFfYP2oMVPJoaHunebnko0He/9akaaWXBai6/A7iyrGX65x7j/DuTs?= =?us-ascii?Q?ouWM6CkGIwdP4DDnxvR76HE9wMlxiPXLAGdIHHCMPUtRHi7qyixZuw16puzl?= =?us-ascii?Q?yIYOZd6uIU2tX0UxJ1E9XyCexoSJQOSW405WEklsU9jBqnTkEzZbZM1AfABb?= =?us-ascii?Q?TUCq0rmTMvHN42Ysu2t+8KmnpBO3Z55tHY/ffzfn2rJukQPZdSCX/iQaSaar?= =?us-ascii?Q?r2wi1HxXOwymWuN9rY0JZgyarvxIcEHdYQkBUEnKThFdIVEk9lApjUJbdnH+?= =?us-ascii?Q?b86uFCOIJD4UKknUveJ1uUGkq52FWpGlG/U6IQXpfo+olHt9lm2z9bvx1UeV?= =?us-ascii?Q?6dmyM9T8Z9CsmVrn2UTxofGfW5e6o8UuB+0ajQG2dpO0yszFnakFagMAOTvj?= =?us-ascii?Q?ETQ8AnXNqd2/jf15jbO6EXZJwJ5LOiEaWj8kgnrWSGSOF6PWL9CuCkUTeq7L?= =?us-ascii?Q?D6Nd43fgA5QJkLYCUI11ZlVrK8KhZJMYKNmcgF7pb6nROsTWUms8552tV/EW?= =?us-ascii?Q?zDF907rmMFTbNDfY6WffKZw6lshcVt/BmqeOzQkhqmugQ/QZykCSo69DRb9Z?= =?us-ascii?Q?rmW7lpy2pSYRV1jSoS1HTvD/r3RsSA70sDY0GIP1lG0tAs24815QeJI7YzE5?= =?us-ascii?Q?Sp7EXP8Ubuk/63qBg9F568cQnsrMRZjmP89XpFnM6HOna3c2wUg13w8nlpoG?= =?us-ascii?Q?2I0vIHc3zfcP3H3B2hW2zoRlKVPjkUR5BkAHjA98?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 738ec603-99b7-410c-d4cc-08dc29a7086d X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2024 19:40:55.8703 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lvyl49MoTTB4yXKQEoSB+EpE2ezX+67FmWXfMJj+ScA8Bi+pLqYUTlmliiDch4bU X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7011 X-Rspamd-Queue-Id: A416E100010 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: kspd8pgr9zijkn5gkeod1jaiua9jgp3s X-HE-Tag: 1707507659-890059 X-HE-Meta: U2FsdGVkX1+Q6tlxy0BGMp/Ul1fgcQE9gWECmAsiq/2OAPuIVZhSz8DMDtNigu2NEf+hV6oQHN5BDU148sUcX/Bt2iEEveiX2cXMBao+eaN8HEuFok9XL6ua3pIinU/ogNnjY2cEdl0A8b349+3bhUO8vOfsRdt6dOU7lIdWCpZK/jbZ/wM8HMO+cwRIAJKSb6y3ddHgy97cx6uIxMHYP9p7mgRA0ZqAVJMIE/hXc0RWkM7OIA+AJzxBzEyod40BGyZrTdHOWD1IkRPNPIBX9zJUQuz4WO3exM6TrjbS7ff3/ptmFNpF3nuW7r84L3pEOkIObfj5/P5t5S58A0oSEq28n7NFzIO28rKdAAVarh9PXD1oEeGZ7/vVS39d63WPVVYH6AfULufkn55w1EiHr4pRVf2sapx89/epPZzM6czoHLmc9SRGWwy1T9tg0qC0R/YU4sETbCIUXKvyvv55oENbo1P6BJlC4GNw3DtLP49FoyMZEZVVDtaux2hMtGWdEWnlVupahHDcLBx2BxJbRG8Ri6W8iy1tPl2TNaVdDsukkXQlu+VDK/MeWkGom0K8aJ3RLNwopR57kcLHSlXhfg6VmobFCNHLltBH7VurMvblVLTfTkT39opooVk+QC+kl2aZJEBdADIy4fv4IrJzs5Ofx9vmV8oTtz7NHIVEnQ8BeOtDO0DDW0c/Mi/GzHZVDJMSfAJaeE91NGCcfNWVzrlTpMUTPwy1YGrxkPxSScWH5Kq9c67DSrFGR7VV46cCCTClEG7gq7hD2iBl4DeaZATE4hoGwvnQa/12woQSl1MylaT5fjmxV5fTTVhTrbXPV6/1Uh1Pn5us2AQH1TUKA6lB0+KAeWGXDNtG9xVuQL/uZUvVgcYLZBdlPbK15nEuJrNmveAGFzXq+RduXdJkIU2aOwT+ER1efcLWuWmZ6kwmErSO8wZ6echxMWgF6XlpWYdd/IyZx16sIURSbfo 8WAmeAq2 /Csft+YEQSMYJY/aKdYaH8Hfr9TyHhdgn15eSgFOrVEWmvCPGqiLsbMB0sq0XxUMfLIBOafFiuSwLq/HxZcY9zaQLLyLLkeROgh6BvQUhP5BS2vCk2dZdNJpZQT8BM3yAyqG8FrgFTdroOMj3jGBDx7OCdPVOFHzEqZ2+YkiDfLDy8B5VUCd/inbZoPGN78zSB4hCW756r8ek3jYZU5yBZqmLbthwNKN1Lff94bd42AqcEOKSCMmfLm3PXT4RdYyg4KVk42rj9UcxTB+zhy6oGTwjUrLF/vAlRopbnak6FOWEw5acHHHPskXaQNtlAnOHY+hZL/bZdzZ6AtfJf0P3HJYpWUX6P2HQ4Yf+3WIoPi83QwC10Jegibg/0sj9ywRXHpHUPUKZN9CbwK7Ut5FmxV39/WGSYh0Q2M0GBKDjp8xfmTaZs88ROEKunw== 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: List-Subscribe: List-Unsubscribe: --=_MailMate_1412060A-F69D-43E1-8BC1-DABAD362161D_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 9 Feb 2024, at 14:36, Zi Yan wrote: > On 9 Feb 2024, at 11:37, Vlastimil Babka wrote: > >> On 2/2/24 17:15, Zi Yan wrote: >>> From: Zi Yan >>> >>> Before last commit, memory compaction only migrates order-0 folios an= d >>> skips >0 order folios. Last commit splits all >0 order folios during >>> compaction. This commit migrates >0 order folios during compaction by= >>> keeping isolated free pages at their original size without splitting = them >>> into order-0 pages and using them directly during migration process. >>> >>> What is different from the prior implementation: >>> 1. All isolated free pages are kept in a NR_PAGE_ORDERS array of page= >>> lists, where each page list stores free pages in the same order. >>> 2. All free pages are not post_alloc_hook() processed nor buddy pages= , >>> although their orders are stored in first page's private like budd= y >>> pages. >>> 3. During migration, in new page allocation time (i.e., in >>> compaction_alloc()), free pages are then processed by post_alloc_h= ook(). >>> When migration fails and a new page is returned (i.e., in >>> compaction_free()), free pages are restored by reversing the >>> post_alloc_hook() operations using newly added >>> free_pages_prepare_fpi_none(). >>> >>> Step 3 is done for a latter optimization that splitting and/or mergin= g free >>> pages during compaction becomes easier. >>> >>> Note: without splitting free pages, compaction can end prematurely du= e to >>> migration will return -ENOMEM even if there is free pages. This happe= ns >>> when no order-0 free page exist and compaction_alloc() return NULL. >>> >>> Signed-off-by: Zi Yan >> >> ... >> >>> /* >>> @@ -1835,9 +1857,17 @@ static struct folio *compaction_alloc(struct f= olio *src, unsigned long data) >>> static void compaction_free(struct folio *dst, unsigned long data) >>> { >>> struct compact_control *cc =3D (struct compact_control *)data; >>> + int order =3D folio_order(dst); >>> + struct page *page =3D &dst->page; >>> + >>> + folio_set_count(dst, 0); >> >> We can't change refcount to 0 like this, after it was already set to 1= and >> somebody else might have done get_page_unless_zero(). You need to eith= er >> put_page_testzero() and if it's false, consider the page lost, or leav= e it >> refcounted and adjust the code to handle both refcounted and non-refco= unted >> pages on the lists (the first option is simpler and shouldn't be too b= ad). > Got it. Will fix it with the first option. Thanks. Do you think we should have a WARN or WARN_ONCE if we lose a page here? -- Best Regards, Yan, Zi --=_MailMate_1412060A-F69D-43E1-8BC1-DABAD362161D_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmXGf8UPHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhUfCkP/RObzF0yMMxUpImoc8bBlSJ770k8EawyvwrX rxW1Fwgo9ZbnVorKSnDwi6RsnAbogepowwXJB3NReEPq5cwGhxgJQjvr9YL/JVbj 31boDgp9cTtWH3Y09Ojmw+zw/b59rxJnj+ypqiEiVwaeEZ/j0pCYDMu1nF3/SUXB HnDw5H55aRw9st+dGO+6G6b5b7HHNs65wij2e9eppmKgbcsCGd3U/hPOHGUOB1m1 h19Q4McZUTWRCIBSBGFYxvTm6Mwv3l+fEbPvvyzNHZaoTG5H2IAuBTxqTvMWNcEE Ka1SCQEABmMdunrYc8hstvkLLMG7+ewwCwlVfZOimJ4Pu+Dh2zmsXQoRqyxwEJvS nST2rucMym3MB3CWTV/oafs5CwGrsdW+iSD7ZLq6cxGjYrGStXLqOWGIK/+fNCu+ mHUylCVHZubsGAPRPNamAKGnrhv8aJyT+25PF7xs5tZh9j8kfUYiXxYyzkaeCgqS qDwoSaav7GcST/a5Gy+qNV3ddniLubNLVGF3jtE5NOp5EVhbDBNaDGwEYRlyHarP BC8l+L1fjoWSTBaGXQ+LFnlyw7x2rdeEVjoalCaO0iX1cKv6JxOITu3Y3JQmTAPX yrSXmhuV3AnV3SnW4Wax7fjjZeLK8AtUGQmfm9oFNRTlZC3Vmqr3BVWgk7EYWuPA n3Iv9rHn =zHN1 -----END PGP SIGNATURE----- --=_MailMate_1412060A-F69D-43E1-8BC1-DABAD362161D_=--