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 0FDA9C25B78 for ; Tue, 4 Jun 2024 13:11:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 904EC6B00B4; Tue, 4 Jun 2024 09:11:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B45A6B00B5; Tue, 4 Jun 2024 09:11:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 77BE56B00B6; Tue, 4 Jun 2024 09:11:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5AF236B00B4 for ; Tue, 4 Jun 2024 09:11:04 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D797B40817 for ; Tue, 4 Jun 2024 13:11:03 +0000 (UTC) X-FDA: 82193241606.19.69E4F82 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by imf01.hostedemail.com (Postfix) with ESMTP id BFAAF40021 for ; Tue, 4 Jun 2024 13:11:01 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=luop4leq; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of seakeel@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=seakeel@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717506661; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=WqRWfZWbvnjoGxU6H+VNtcwLKh0+wvggr84zkrj+n6k=; b=P/yaSEZrBF1M5zLlbmuK9Ky1leIvvWBec951fAieNie7GVvGVPpiKgGT8Ul2AySMzFs0ty 9E516hLMkpQdr8aJggIZg8T7LHm+tWadgV6ssrTCZl1Lh1qg5pz2GFmQR01LIRuQzrCHKJ SAtTLc0CsMb10dEz9K+icjIjCn1CWf4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717506661; a=rsa-sha256; cv=none; b=fIIJXTbt5tQCTfuslrYA119BK4mLEm84/nJQMkf7IxsnsQLDif8EneH5cKndlfCQRSe1eG eB8fCO+illOIUSzXSJqn+6oCSfLR9kxD7cIEIi5A0RpubcwK8L95WsEH/+3AFNNMfDHE/2 OM17BuDr4XrtASsrHwSmcYYnfdxnXm0= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=luop4leq; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of seakeel@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=seakeel@gmail.com Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-702342c60dfso781512b3a.2 for ; Tue, 04 Jun 2024 06:11:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717506660; x=1718111460; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=WqRWfZWbvnjoGxU6H+VNtcwLKh0+wvggr84zkrj+n6k=; b=luop4leqPea53pCpJw7gg4Ps7g/E+1W2Yxm9W6y65AcSRsv8xwWkmDCy8r8/64nDV7 fTja8P7J5NJHHsjmfqYucQs8ffvYTntNVAZCKXbfEZj3bw790KwQkPxhtFr5Qp80RPoy 90oRFYVtp/aGxpb6i44y/EeffuoquJQ6sGcdrtNmLE39LNSxazrb/6KpmOGtspXQuW+z nE7d6pVpAcz+8H/LxthSxUuR2E/zFj+eljFCkgR0cO1am47WYpt1xxzm0GYx66dGbMUd +WOpL3ckcT5bRTjz6+7dChhoVPN43ZTIBki1zhpAZ1hlKnEiTRueGPV9FCVnDfy1tqxb lSiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717506660; x=1718111460; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=WqRWfZWbvnjoGxU6H+VNtcwLKh0+wvggr84zkrj+n6k=; b=DZylHD1afEU0iN7DIx2PYhrBM5e830BfwySjwHPB1WMsJ0rj43aNEH8RRrYq4+75m5 llM6cm6VxejENdWCgT8RH5lbUQ4QxtnxRHxwXu98zs4y32yUEGfyvKc6Enx57/xLtAdQ 6BEAFJpwSGn1JnsnZrA8kzsTHy5gbrABJW20SzQjlC1YiUhJI2I75I8C3+ATcqxu5dZp YC+iHSW4WHJHbnWcciSIJCdseZKlEC0B9hIBaXSLAzOuvGI078tZaEW+6UEwRzh5EhEw fYscrN8EYegoB4T5eBdfu7vxTZrY+vSXIpf3kUVqQj3KIw7xM5y/vZY1aeAz/Z2lzuPy dZIg== X-Forwarded-Encrypted: i=1; AJvYcCXpIwW31dsPqf77xBzwWNzbZDhfO8qq7cAwWVCKuwWoWElJxNYr3XC2ltDfkoE23W6rgZ/7pqEO7MlbQgBax/HOsLY= X-Gm-Message-State: AOJu0YyPw78nEK6sIy6HQMtKwtS9sGFKWhwmEufJkJc2p6406PNZ8fs9 MfhPb1PcaZ+G+egUnCKdR2t1rz9/NElsWGAuufl3NSD3A/1fkUAX X-Google-Smtp-Source: AGHT+IFuPN0egSCqzumzY+9vyDIFi0UnLGicFW1BqDvHlelENXwvNr3lmTC3upQAkjJxJY0xGG74Eg== X-Received: by 2002:a05:6a00:130d:b0:702:7bfa:3457 with SMTP id d2e1a72fcca58-7027bfa34dbmr3813719b3a.28.1717506660401; Tue, 04 Jun 2024 06:11:00 -0700 (PDT) Received: from [192.168.255.10] ([43.132.141.20]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-70242ae89b0sm7018235b3a.101.2024.06.04.06.10.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Jun 2024 06:10:59 -0700 (PDT) Message-ID: <9f4f6f0e-81e8-4bd0-9f20-412a543a452d@gmail.com> Date: Tue, 4 Jun 2024 21:10:54 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 02/10] mm/ksm: skip subpages of compound pages To: David Hildenbrand , alexs@kernel.org, Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, izik.eidus@ravellosystems.com, willy@infradead.org, aarcange@redhat.com, chrisw@sous-sol.org, hughd@google.com References: <20240604042454.2012091-1-alexs@kernel.org> <20240604042454.2012091-3-alexs@kernel.org> <8d3a60d5-06c5-4df4-aeda-2fbec45a8ae0@redhat.com> <00dcd224-6333-4f1e-9087-bdb5024ac236@redhat.com> Content-Language: en-US From: Alex Shi In-Reply-To: <00dcd224-6333-4f1e-9087-bdb5024ac236@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Stat-Signature: 9wtcpd8btoo1bpnsarrmynpueqnq3xgo X-Rspamd-Queue-Id: BFAAF40021 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1717506661-481896 X-HE-Meta: U2FsdGVkX19YPxPPLanh6bX6yqSOt5Laq9n0UaZFiE5c3jDhTdmh+A/af5mv256MZK/0m54NZLKoM8hEkd3naGNQzpGk+N7Fwiwu/CF1VwZ6pubE5Jy4i3Tr7pkh7MURzRL6PAnjrN7WztIGHlsOFpKZy8oR3qIEXrDf5JbeSMxijNhrF4m635PnrdS571VEMD3tAEPJYqAAM7szlONm0msvHbEUuUTrafPCX2DrXbtyTbBErEdcGXfTBIfdTRxc5fFyZxbFMdBTZKFfY5KERg6czhlupJu5wcNm0YYr8jdu5H3gpB0PaEBB6/BTW6OQCVG/Bjpt8kHbptpmjSJHSGMP1c/RR2WJVhCYx2EtvokgEUv8kHyWpdqZybIs/NPecZQqx/Yl4Z1QjSAR2B/3tA88uu202YlHUQVV6BaUTn+7lI23D39DnFxBoa2uDM5qEOo9YRiI5l9mGyNulH8chXJfRaAkRaACcg3U1qkFnHYKW/wf7EMab5T6ycQDlovjz2avkvw9KpAjFj+fVmalxxl4YbMI2EVpBJhVTSp1ZkYt0Fc5v6vXRf2MJZrKK5cCuqlhHHWhXVXkjOiNa94J8xbACIKdI4Yr6EvpLAjupV1ctNlwrvsf8+feVgK7nMzP4Nwi94KoDo6SjWj5nV6zgQS98hQeUefzbXSXdTvBfiLnnxdWZ9FixwC7jb+5fFz8ndiJ2VpAdktaVlu1A3AgJ5GuajK3Y0MKdB3wPUyjoINIItz0pdgvIifTj/A3XqAn4vx1rS5i99mpeW+RY1nOIzAzI4W/IKpuQ3Yi/F4NUB1zcqScBwPEUmjLczU9lFHzEoscI34kRpEUPebZYEO8+oR7Xcg37+3BN8kKRTj6JPqkLjCeaKT68gwMTxXaXeL1yPOaD8Z+uiLeVB5H77rSvGAIggq+ozo0pgKlwr38/nyDHsMC5TXHpavumfveCWA6qD70IdeU6CuJKbwTC7q dyp+KyjU rtUvy1KxNoy9KIj8mpjFc/v2WrUBa2ss1fJXZZmX2Ua48sGBe+ant2yiKnSj88DoMXrokVXtqgAkcffdLmArHC2hipPrlTsKSSF9OSM0w/wnj5aaXnFDXNgxcKXBQQjzXeL6OiB/ZGFL5CC61TF6akvehVeWcOr4+Cr1B4tmuCO0NSAFqUFqv65ULm5l6swrhggk8up8ApG1IneZUHhZmDSRze1LNV57W3n3e8fNv/Tar3diO/3nokXEwd+pqTdBF9Mpd0MfaUbZ3FVZN0O47gqUP+Rf18HU2yaFNjtQfDDweXwb24AgwE58dnoIMFJ78qRbFyrsnRzhxoEQl6FiLB/s+2/I2hp8hQqgPHMgqQiJiZkRS7UuLzwmHDzrxlKpC0TMObCdW26gLcWgrct13vcj+p+mXrAGsGKbu/Djqg8YQypEGODhOhfJCm3NrjV7i7M9tsSHBGmzK8+32iBczcgzNHdmYSPUHxT4phDLySbqRfpuqQw8qUd9DSw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000389, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 6/4/24 6:43 PM, David Hildenbrand wrote: >>>> >>>> @@ -2680,7 +2685,7 @@ static struct ksm_rmap_item *scan_get_next_rmap_item(struct page **page) >>>>                } >>>>    next_page: >>>>                put_page(*page); >>>> -            ksm_scan.address += PAGE_SIZE; >>>> +            ksm_scan.address += nr * PAGE_SIZE; >>>>                cond_resched(); >>>>            } >>>>        } >>> >>> You might be jumping over pages that don't belong to that folio. What you would actually want to do is somehow use folio_pte_batch() to really know the PTEs point at the same folio, so you can skip them. But that's not that easy when using follow_page() ... >>> >>> So I suggest dropping this change for now. >>> >> >> Hi David, >> >> Forgive my stupidity, where I jump over normal page that not to belong to the folio? > > IIUC, you assume that the folio is fully mapped by all PTEs that could span it, and that follow_page() would give you the head page, correct? > > As a simple example, assume only a single page of a large folio is still mapped, which could be any tail page. You couldn't jump over any PTEs. > > Or am I missing something? Uh, thanks for explanations. for what's we concerned, the following code could take care of the FULL or ERR pages. And it still keep the step of single page. page = follow_page(vma, ksm_scan.address, FOLL_GET); if (IS_ERR_OR_NULL(page)) { ksm_scan.address += PAGE_SIZE; cond_resched(); continue; } And after the above code, step folio_nr_pages on address should be safe, isn't it? Thanks a lot Alex