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 601F9C27C5E for ; Wed, 5 Jun 2024 03:52:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E13416B008C; Tue, 4 Jun 2024 23:52:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9B4E6B0095; Tue, 4 Jun 2024 23:52:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C3CF46B0096; Tue, 4 Jun 2024 23:52:20 -0400 (EDT) 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 A6D026B008C for ; Tue, 4 Jun 2024 23:52:20 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 597EDA1ABF for ; Wed, 5 Jun 2024 03:52:20 +0000 (UTC) X-FDA: 82195462440.08.4BFF1FF Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf22.hostedemail.com (Postfix) with ESMTP id 24BA9C0009 for ; Wed, 5 Jun 2024 03:52:17 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YE1TRjGK; dmarc=none; spf=none (imf22.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717559538; 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=3POy1FIH2RHjs/HGPJUYdvo+L8U+AxFwiVjDX3JZVoI=; b=EyGAZt97+toAxjmYK22nKMwKV/xIe6iX/rOl4DRlyinVmOqKue6YtzrKx2xO0ZMKeI+bPY TdB24n/qLnqevL9LJpdty6da8f6eJ9+Q00CpZ9ZEYRnScwtX9v4AuP6z3fcDGBTFu6JBjw NYzCEAamZviQDH5k7QMgAwQ/NkFmrog= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YE1TRjGK; dmarc=none; spf=none (imf22.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717559538; a=rsa-sha256; cv=none; b=l30YBPaTR3ZJkdkvVMhX1D67spdtRjKSaCi1KCdAPuXcyC5PSEQJuogGc/Z7VHVyXYEPVZ 4lXMpWbtKe4IeUkC0wJmGxCZvd0jt9pDR0FxQy9CWdvot3mSICmJ8JqwR70LHhrVwiAfRu HrT0MJaeSo0LgBNqLhI7AUtBGkcxajo= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=3POy1FIH2RHjs/HGPJUYdvo+L8U+AxFwiVjDX3JZVoI=; b=YE1TRjGK1Uxhh0ehvyS01xTlYU 0Hs1W+uZUdGCQC8S32VLHfwjp2qMaEVm1Eqc6dj9vQA5Vu6ZXiNygagaWAvtj5H2GFd0rij5dtvsx JTEeZE8dd5bidCHJO3mkLSYNIHc3dTtaNh4szhrQQCnIH104fopXN7vLiSCfLGLHbOE6oeqo/MBES pGPiTKBENM0OU8BZBb9w6WMxSY5MmQSOFJFpGxz5ey0jhA7/fTpLLPOkSiealVm7yjZpX7QegYwW8 8iXgR2m3mQuJmoMC1y6qd1ZooVORjAimAzF5U19DcPw6Q0wgru5GvxKqhBSqUz9aVGko22958ZxBk +TJSyipA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1sEhh8-0000000FL2U-2fpp; Wed, 05 Jun 2024 03:52:14 +0000 Date: Wed, 5 Jun 2024 04:52:14 +0100 From: Matthew Wilcox To: alexs@kernel.org Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, izik.eidus@ravellosystems.com, aarcange@redhat.com, chrisw@sous-sol.org, hughd@google.com, david@redhat.com Subject: Re: [PATCH 02/10] mm/ksm: skip subpages of compound pages Message-ID: References: <20240604042454.2012091-1-alexs@kernel.org> <20240604042454.2012091-3-alexs@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240604042454.2012091-3-alexs@kernel.org> X-Rspamd-Queue-Id: 24BA9C0009 X-Stat-Signature: icp9g59uxxgiugsrw361x4jtnyn6c7xx X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1717559537-234694 X-HE-Meta: U2FsdGVkX19I8pAId9vcrnxWp3j2uTZUxpkl1yAWDMjrTGRU7EGagfLi+p6v0GPL6bYMA+k7HD6ZunhzLKJONMFdR79EZ4kt/0MunDFn17MLWctKBjHfCUNlZqy6KvsESZt0RljYwDU9V3fk2s0x4mg4Ihjpf9kMzNymxxecXIanrZrLzk4YxM8rvtjejsx73Sv77SB2eXybO4+5c4nBmTmZMPQAdqnalfqtG9WHzzPuUsfcfMakw1APMDrDgxeT8YzBANt7AcvYdtx6PULBmDsIWeatyc26XgrY9A5dF3BLQcSVyTWd5inFBpwAk0c5bReLi32H3Fikd/tv4N3KfyCB/aGw2AuyS8VZorLGTB3nuB12+S5mVMr8UEzYXYBwqHDIR16eSneS8ZR2iBW7ljsPXSmKZ6aQgKMQgvWsIMiCcAB2Udew3gEFDo61dUIkKCcvELE280/pzt1KNSWc9pdd2q17w9mlZnMbCSkv6TaHcRPgNjJvqqce+fRoBZ7nr8mvhDPn80UZPp2OzIEbWca6DuBWtuNBqOO8DMnv4U36HtYc2NUJj9qfW1yOt5UiV3Sr93s0fT1zujqPOlymPPGgccjrlo6LFYw5YbSyyAbr60ZIr4/VIYvbCAWtx4fGV6RNQjnz4vZ+cNgb3Q+OF/2Zzu4fquX9Y5rJSF+kYCB68AD+ncIXffz4pwlFSgnMbfSJm9jfzKYozobIliIvVT9uJL59vg0RC4I703qyqYlz4jHZShYWBJjDPp0GEwxlsScYY+G/To/XKg5gZ8eMuPZ/N5hr+1FCRXPEVGlf3PHTvdX15acv/11KiYcGs2uVe6vN/aH0nTuHLhKLDAtaINAULxKdADnqRZnIzBltFGsf8nla1DuS7l6GnbNedpnArxNK0GoobJuugSdu4ck+WzHHBGD0O0S3lHrK+R75zd2v++M/bTxqua/u0FDbL/Id/0fGY1a8vR7eE69AxAX kRAJwL9I ifEuNV2FmYq5zDGpLxuf2Dc9Ys3czAviHp4FREKX3pJkEZfIiE9kr1X4YSNU63oH2Wb7OcZQKxb78Fiw3djFWq4+nmb5BDchzmk3EYnULTntEn6zKRkO9KcZiiiVNXQFUw7M4sg0FvC5uu5bbw088rVLpcDVNyy3LXsanH4TP89jJgd5MTsMV0Hmwg7Cidjmat/4vCtwh9UK6Yzhqq/c4TBG9U5SOv6z7mv1v 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: On Tue, Jun 04, 2024 at 12:24:44PM +0800, alexs@kernel.org wrote: > From: "Alex Shi (tencent)" > > When a folio isn't fit for KSM, the subpages are unlikely to be good, > So let's skip the rest page checking to save some actions. Why would you say that is true? We have plenty of evidence that userspace allocators can allocate large folios, then use only the first few bytes, leaving many tail pages full of zeroes. > @@ -2660,6 +2662,9 @@ static struct ksm_rmap_item *scan_get_next_rmap_item(struct page **page) > cond_resched(); > continue; > } > + > + VM_WARN_ON(PageTail(*page)); > + nr = compound_nr(*page); And this is simply wrong. *page can obviously be a tail page.