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 66F98C3DA4A for ; Thu, 11 Jul 2024 20:47:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3FE56B0092; Thu, 11 Jul 2024 16:47:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EEFA26B0096; Thu, 11 Jul 2024 16:47:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DB7666B0099; Thu, 11 Jul 2024 16:47:05 -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 BB1186B0092 for ; Thu, 11 Jul 2024 16:47:05 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 46E84807ED for ; Thu, 11 Jul 2024 20:47:05 +0000 (UTC) X-FDA: 82328656410.09.506D937 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf06.hostedemail.com (Postfix) with ESMTP id E6094180016 for ; Thu, 11 Jul 2024 20:47:01 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="fur/ZVA0"; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720730797; 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=CGNTumT7OinIGSCEASYIzgO9rLYWSW+FBDUcoPMeSXc=; b=ckOJ41eniGpNwy7B0LG4rLPBCyxIc2vw8VgEs1fRijbL/mmMHXV/i9XfdaZHjfbR7YCk9p b0wdZvB4p/8KR1TOmqp9GEYfBgDY3u1GexcJo3MMoZSZabLnS2WwNzpFjXL4althHW5vde P8uS4SRurknbajbdeamSZg6LaTQBo5c= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="fur/ZVA0"; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720730797; a=rsa-sha256; cv=none; b=7hDb9vMcqnkYLhkh6ZPt8RteaCbv4wxF/qqsBUbW6bvoXHa3jYYFzk5Py+VbdeiXHpva+u RxhxYX5s9YrjtjUqKba8gSlhw+42oI9wJbJ76Jovxh6oGjzGxVPY17gTcwwv2Uhn56Yafi eJ9Ge/KwD7LVVK4yw5gLvDyvBoubKbM= 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=CGNTumT7OinIGSCEASYIzgO9rLYWSW+FBDUcoPMeSXc=; b=fur/ZVA06a3gup76tulcIgpPEf NlvLiW4EqqSIuUSON1uy5l1Pusblw1VVLVRrbPd20udAc48UWnk/xwkQOCyKRzBzprC0pOsQH7Qch +iIj0/7+Y9muvMwZNNCpI7ijn29UKbwby74L8lsTxEe6KKrM8iuiGTO/wADOvlVaK00+UxkZWZpzz 0yrbR0iyn554g7M6UM6fZhABI715JSHjv7zAoGimrgK4ckkXEkdCc6twxS0nNLy1LtbToH8ohrjJp RvElKrNO+lB3Ambu/94OY+gOu3gtaTJhTVWM9wTmBuYd3FZNiF+O2o2FG1PqM5sem9YSAw4CmQ/94 IUhzPVuA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1sS0gq-0000000Be2U-1wqg; Thu, 11 Jul 2024 20:46:56 +0000 Date: Thu, 11 Jul 2024 21:46:56 +0100 From: Matthew Wilcox To: Gavin Shan Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, william.kucharski@oracle.com, david@redhat.com, ryan.roberts@arm.com, shan.gavin@gmail.com Subject: Re: [PATCH] mm/huge_memory: Avoid PMD-size page cache if needed Message-ID: References: <20240711104840.200573-1-gshan@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240711104840.200573-1-gshan@redhat.com> X-Stat-Signature: tiwq13kwjnsercgj87y5b5j1sdf5mamy X-Rspam-User: X-Rspamd-Queue-Id: E6094180016 X-Rspamd-Server: rspam02 X-HE-Tag: 1720730821-441663 X-HE-Meta: U2FsdGVkX18nHuk9CAvQGl03D3H3sd6pz8JVa6+KZU0l0hyb8B49dUc8IMDWm3JJhIt34oTN3G7lHge7XcvYH5XG0OHWK1FGk3V+JfAFeF0hOFmp2p4BXRvlUjQPlXMwcH4Qf96CCnL+AYijKJ/zS2UZzFPmKjGoMpse8aevH3lu18gAbBLmEG4xrGv8U9/u7G1oGJenNNjUKBcHNBS17c0FAUl9W2UeqFwQa8C73zMe20TQ1wcaFhvtcpkug/9WQ0ci3axCeeYF4JYs4lYb8oIjfNgTl+ms41DNVvDmvM77HHu6Ig6iWi4bfyaR/xJPZJEhJgUl0wW+LfHWwQzXkOdhyj1bRnPTz7J8Dd1MtLHMKj6keJwH/n8T1+4EsXIJA4L9SHXtblsu0uHpXtjSNUiADlRJEYiL3RRiujWxpQcAkpfEG2sdDzQlw/Gvdp91XyB+hT4iXcVmyfDNNGYKaRsP7gGaU7diADzcirZ43VrDjhWD55cJ8pOvLKhkFGDSfq56+4dxKTK4V8y47JAo31WHMsTkwRkU7L7wcZVKvnp67wakPpHsygkQJn3yT/eHv2Pq95H86hLXIuAyV4AIYmAC7RiGLu61iKVitDvYjvRtGXM4f+YZoOjxY9sNBuvx04/ejPKOYFNXZhU4yLsLYQPR4jruqPW7Hdb8hY9YWQ8MTohDkf9xQ0m0Oahaw4tZq+4YIxCFDW/tjvNsDpC0XTekm6pg2V5PYll8uH8vyJFXIbRdvIh27RRW4c4s6Uu9OHaZUxNld86EIGehIDRNK8su5INkN9gyqa8bCNUGxkzs0F/NC0d6NMY/FstPA/Ha5IvUT2X11fI+X3Gl/iuf5TltBXxv+FVeGmPjRk5eXzeMtHrbzBxhOiwC8kfiHmp6GfzFvEyxID4a0UY6x/p+a7Kc68YBrtCPT6M3MkBdnoK4hmJqc08rWXa1sIfIb8VXQeEocg6HdvSiG7LC5cU kX68zfcQ hBcwEFe4bL/YpgqRrtejO7HHoYAOpSYyVghrtMtdQWi6D1qAFPZ1b3weKU6cuVZspAlnxlyx/IarYlzSB3O/JihXvhlC8CsZn6G12HFQtEJtLmh9s+Jhm5tvNkt6CvwluWxyKfMpOo9DcmyYtTcsJyElvc7hrB/nYhihhZ9JItp6eqRkg/+1w/nP2lZH+7BdGsGYhEl0Fj2jNMwXTTUftbmEtEq2RQeghOiNlCs6V0KZuGnBst9hNaVavKx0NZu0Kh+mp0gOdM7OjJZp7PSiLG53tlIpV+Qsm3dqUdwSFkc//cA92jnLmaGmMiCtuewblmmug 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 Thu, Jul 11, 2024 at 08:48:40PM +1000, Gavin Shan wrote: > +++ b/mm/huge_memory.c > @@ -136,7 +136,8 @@ unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, > > while (orders) { > addr = vma->vm_end - (PAGE_SIZE << order); > - if (thp_vma_suitable_order(vma, addr, order)) > + if (!(vma->vm_file && order > MAX_PAGECACHE_ORDER) && > + thp_vma_suitable_order(vma, addr, order)) > break; Why does 'orders' even contain potential orders that are larger than MAX_PAGECACHE_ORDER? We do this at the top: orders &= vma_is_anonymous(vma) ? THP_ORDERS_ALL_ANON : THP_ORDERS_ALL_FILE; include/linux/huge_mm.h:#define THP_ORDERS_ALL_FILE (BIT(PMD_ORDER) | BIT(PUD_ORDER)) ... and that seems very wrong. We support all kinds of orders for files, not just PMD order. We don't support PUD order at all. What the hell is going on here?