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 4627BC5B543 for ; Sat, 7 Jun 2025 13:03:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B14A16B0088; Sat, 7 Jun 2025 09:03:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A9B506B0089; Sat, 7 Jun 2025 09:03:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 965B66B008A; Sat, 7 Jun 2025 09:03:48 -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 730236B0088 for ; Sat, 7 Jun 2025 09:03:48 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E4C2E16203D for ; Sat, 7 Jun 2025 13:03:47 +0000 (UTC) X-FDA: 83528621694.07.0D260A8 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf12.hostedemail.com (Postfix) with ESMTP id 8EB6840007 for ; Sat, 7 Jun 2025 13:03:45 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="Zf/Euyby"; spf=pass (imf12.hostedemail.com: domain of npache@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=npache@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749301425; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SfnJpnOmsGPup1H/ERs2tNGx2bCdZsNE5EPGkXR7fYk=; b=BnGtQ96ISd5YsrBoB1ehB31ERAepYqOp+BEXhJHRYp0SkI8hSUSSm3SneG0wp1TPrHdlFf wfO4ppq3AAw7npIf0bMEfXuOMPKUQpEXT+qcoX9w2muQaTMw6jmIO1L+nFgMZ6mke9lDFL mVRSj6CDpV736PrJmYe6mSzYxjfJreY= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="Zf/Euyby"; spf=pass (imf12.hostedemail.com: domain of npache@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=npache@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749301425; a=rsa-sha256; cv=none; b=dvoOl/EsdZTdXaS+flTAMgQBQiEvQ8WB45NQ6wJOqwZwL5VqkFcg9hsAeRCaZX+nEqMTT9 abmgrt9GZH6uUIGQ9F5t+KzCMRFEGBohLKag1tMoX+9/MVJpqyTg5RAsOxel6AXhlZdePT FG7d1KJGlIM+Le7tgO2fnXUb/Aubbg8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1749301424; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SfnJpnOmsGPup1H/ERs2tNGx2bCdZsNE5EPGkXR7fYk=; b=Zf/Euybyi0jGaJFaKKv6lvWbel9syJIDUCrdawwm4To8IW0AbgpEysEB8oAmhKLitVaXOO 6DVwimDoYZPNCSYNvF1WtcDhEnZz9f8Gx0ljlaCIF7P7yXNNHU7vdTB4mmu4xGwJI0w9f6 I9OTLSD3QS51QUhfF8bBqVg8gpKlC98= Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-568-kNkDTEyiNpGr19RrL7j1eA-1; Sat, 07 Jun 2025 09:03:43 -0400 X-MC-Unique: kNkDTEyiNpGr19RrL7j1eA-1 X-Mimecast-MFC-AGG-ID: kNkDTEyiNpGr19RrL7j1eA_1749301423 Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-70f92ed6c95so51204327b3.0 for ; Sat, 07 Jun 2025 06:03:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749301423; x=1749906223; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SfnJpnOmsGPup1H/ERs2tNGx2bCdZsNE5EPGkXR7fYk=; b=Xf110JhasSe4vBHiY5QqzPJT375w7CGa4AlclLU+4apNoHq+0+5oVckU/cMDnH+s9l 4VIaWzlK62C/AZJeT3S8aY1G/YHk0nj4xrJvm0S7VmnfwY3WEjwzha0TTXt28fPYDUT4 vnaVNQTptD7n48aZTsDFKxbLuimjR4GyyZf/q4tI4wkBalwXoOHFGA1olGGu7KdUqPSH 5zVq8aoxtyar9F3IoqS6tcyds9GvyRTEC2ZibyQjhA+wbCSPeFXuMeWNELqY72TjmvJD KlD6lc1duajyBmRuvSxMYC2apZ72l9jBL7SaDcq4cWXU6PmN3EVqjL89AdXvz394l7+A PzvQ== X-Gm-Message-State: AOJu0YxJSHxf7HsGgzKJMhdMRrmAbi9QBn28ZQlbtF6zkf9cQFk9pOv9 Ob9dULJMg685TZjysjZwBn2YHtA0x21sxn8DeTd18x/OoeXAKpLsBV0HvQedsOPOfYWj0k2E450 q1d9GgfjnVEdpBa/t6plxmr+8Poj/FwfJ0kL39HnLuKtDdwQbauhoGR8067XwkI/UvJNA6vVcn6 GHhwkAPfBRuvarJKgFi19QbClknng= X-Gm-Gg: ASbGncuTgkE6UR5FksUZuWNIEyPHaonjipZpNmDwe4d9EffqY/73l1gxnipNtLUmE0Q Ste7XyMvtbiGNcYxpKI7kHXgw/7IZdfbivE6BgI5EdDRwi6O43Vk329sdyOKFTuqiymjkYL7w0q UkdolRsw== X-Received: by 2002:a05:690c:dcb:b0:710:e81e:1364 with SMTP id 00721157ae682-710f7afa722mr95726397b3.6.1749301423022; Sat, 07 Jun 2025 06:03:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE0D1oScsQFJkbV3leaGwsdhfTHQOUGGFXMT7UPU6qs5ZvaWLTmpU2PaV4/bjxQzeziLLSjyNubyd/h1pZsPnU= X-Received: by 2002:a05:690c:dcb:b0:710:e81e:1364 with SMTP id 00721157ae682-710f7afa722mr95725927b3.6.1749301422601; Sat, 07 Jun 2025 06:03:42 -0700 (PDT) MIME-Version: 1.0 References: <20250515032226.128900-1-npache@redhat.com> <20250515032226.128900-8-npache@redhat.com> <6f061c65-f3aa-42bb-ab70-b45afdcf2baf@arm.com> In-Reply-To: <6f061c65-f3aa-42bb-ab70-b45afdcf2baf@arm.com> From: Nico Pache Date: Sat, 7 Jun 2025 07:03:16 -0600 X-Gm-Features: AX0GCFsXeVlQnNKWAGBb29ema6RNmgUDaEXB5xk1LDR3gUMKNf8Z3uuBnY7lWI8 Message-ID: Subject: Re: [PATCH v7 07/12] khugepaged: add mTHP support To: Dev Jain Cc: linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, david@redhat.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, ryan.roberts@arm.com, corbet@lwn.net, rostedt@goodmis.org, mhiramat@kernel.org, mathieu.desnoyers@efficios.com, akpm@linux-foundation.org, baohua@kernel.org, willy@infradead.org, peterx@redhat.com, wangkefeng.wang@huawei.com, usamaarif642@gmail.com, sunnanyong@huawei.com, vishal.moola@gmail.com, thomas.hellstrom@linux.intel.com, yang@os.amperecomputing.com, kirill.shutemov@linux.intel.com, aarcange@redhat.com, raquini@redhat.com, anshuman.khandual@arm.com, catalin.marinas@arm.com, tiwai@suse.de, will@kernel.org, dave.hansen@linux.intel.com, jack@suse.cz, cl@gentwo.org, jglisse@google.com, surenb@google.com, zokeefe@google.com, hannes@cmpxchg.org, rientjes@google.com, mhocko@suse.com, rdunlap@infradead.org X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: -MAGAlP4Jcuvl3hkPcBdU3qtsR70bd-NOi5wjEib1uE_1749301423 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 8EB6840007 X-Stat-Signature: nnqo3kypua8h1473wok65uod75hcg4sr X-Rspam-User: X-HE-Tag: 1749301425-941159 X-HE-Meta: U2FsdGVkX1+nYsdxcm1RdXRZu7yY7gJa2AItb8zHY+JKONd3krPYoKpOfjXgU8ZdmSkaRxR1OY/IyYtipdpHMHyCp6mk6AphM8bVvhdNKyXlNkf4YRqgGn2DHHTq8kvJtj7E4cZPnqtijLWRi5rJ4m/jn1Dex0Pi6RZhUaI5JDVVt4UtPPg2zKkd8u9Pv/+kZqwrmMeumV2scMvUqX5bVGc/hHypsmTSkh0wE/hcjheHVnsIWEOe/m/LKsx1Q7Zu0R+i73lrzZmK7hwEIFZywr74A/6/UvR6zHYLY2w9XvmeIeAtkANKgRRRHMre8esoBNoPwujzKi3keafjXbznyENC6whwBDcvDJYyLyTxQxvFOEesCliHdByFiFWsT4EG8kpS4zR9/a2eVMAPTJaWXi96DSEa68LfRmUnFcVNpIikwfz5xGebf5EPV4Vw4CuUoqcX6kATE0vtIUact9WQqMHMm+TxB03ArgyzPmm3AlQ1V8dsIG3GyF0LW42FdNSFBC5m4UMgTbGKi5mD19uu/hmA5+Ub0rOcA03xSqKt4J3E1oTjraV3th9zJmU/+iek567bq30vUC3JXK+A8LHFjKc8q/EmJLbovXSfTYdhGsY1nJbXk/lXHdkWifsnzwH9hKnr4T1RY8hhLh89zQEfyfGNvTTSS/TgL3gTvUV6wNCR2+NKLaWEY/fAHSO9hi8QSUWjBymsG9DW4R9LeVwT+3u3SPRiox08BtVopTcqrdHNhsZio8ffN0hNhAHVDrG08VpGKUk5HJQ9qFTn0yXHzDNcrpdF/r5itMIrsYKo6TYTFB26bBDT70td1fL6OFrcLixg6XB/Q62MczZM2ZH1GbDS10/yjPy7bl8GwKR+nl0Nf0DYcsMRbYkrKJqDUWQI4dm2NoaUIGBhFRtZDo+kF+2/aRhd2BRgWvz0hp6KBacwwWPDxY0gjZSBwt1I7LTUByoZHoj1Jj/RxEZmbU8 M95mxebK d4QLTT9136OBA0vywy2sYP5yyZTULTfyOSYeVI5MFZ63ZRrrXGnDUNtp6lDW801257X6ZhpP4gjpNtLOzk5GIWK3QScQRF+6z3jqS2Eq3U2FsQog1BCqoYDY52zk7Jtg2QiUJXeAd9Sk5lWMki1RjQ5vZhfTFEWCVK/rzr1xrA3dVAyC2uzRCjeMLw4GjIF2N4M1FjOpkTOCTqEUYLNJzi4Bj+il0Uo03JbMMgdqTqQT/lM67eF+U3mi24s7TR2j0TQl99NNjYtR04C7lYWjpIcW5DxyTftt4knJ7QNIbyKONgN0VFUPq+SoJT4DLLCwzkr5EI9FVCVgHz42KJojXYCMpIOs/PVQRTEbRYohwyGme8xDfjXFkH3nNSnJfxJJtKbYjyp5bfv1kAInVHEEWY8KWwpBye6wekUj/ 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 Sat, Jun 7, 2025 at 12:24=E2=80=AFAM Dev Jain wrote: > > > On 15/05/25 8:52 am, Nico Pache wrote: > > Introduce the ability for khugepaged to collapse to different mTHP size= s. > > While scanning PMD ranges for potential collapse candidates, keep track > > of pages in KHUGEPAGED_MIN_MTHP_ORDER chunks via a bitmap. Each bit > > represents a utilized region of order KHUGEPAGED_MIN_MTHP_ORDER ptes. I= f > > mTHPs are enabled we remove the restriction of max_ptes_none during the > > scan phase so we dont bailout early and miss potential mTHP candidates. > > > > After the scan is complete we will perform binary recursion on the > > bitmap to determine which mTHP size would be most efficient to collapse > > to. max_ptes_none will be scaled by the attempted collapse order to > > determine how full a THP must be to be eligible. > > > > If a mTHP collapse is attempted, but contains swapped out, or shared > > pages, we dont perform the collapse. > > > > For non PMD collapse we much leave the anon VMA write locked until afte= r > > we collapse the mTHP > > Why? I know that Hugh pointed out locking errors; I am yet to catch up > on that thread, but you need to explain in the description why you do > what you do. > > [--snip---] > > > > > - > > - spin_lock(pmd_ptl); > > - BUG_ON(!pmd_none(*pmd)); > > - folio_add_new_anon_rmap(folio, vma, address, RMAP_EXCLUSIVE); > > - folio_add_lru_vma(folio, vma); > > - pgtable_trans_huge_deposit(mm, pmd, pgtable); > > - set_pmd_at(mm, address, pmd, _pmd); > > - update_mmu_cache_pmd(vma, address, pmd); > > - deferred_split_folio(folio, false); > > - spin_unlock(pmd_ptl); > > + if (order =3D=3D HPAGE_PMD_ORDER) { > > + pgtable =3D pmd_pgtable(_pmd); > > + _pmd =3D folio_mk_pmd(folio, vma->vm_page_prot); > > + _pmd =3D maybe_pmd_mkwrite(pmd_mkdirty(_pmd), vma); > > + > > + spin_lock(pmd_ptl); > > + BUG_ON(!pmd_none(*pmd)); > > + folio_add_new_anon_rmap(folio, vma, _address, RMAP_EXCLUS= IVE); > > + folio_add_lru_vma(folio, vma); > > + pgtable_trans_huge_deposit(mm, pmd, pgtable); > > + set_pmd_at(mm, address, pmd, _pmd); > > + update_mmu_cache_pmd(vma, address, pmd); > > + deferred_split_folio(folio, false); > > + spin_unlock(pmd_ptl); > > + } else { /* mTHP collapse */ > > + mthp_pte =3D mk_pte(&folio->page, vma->vm_page_prot); > > + mthp_pte =3D maybe_mkwrite(pte_mkdirty(mthp_pte), vma); > > + > > + spin_lock(pmd_ptl); > > Nico, > > I've noticed a few occasions where my review comments have not been ackno= wledged - > for example, [1]. It makes it difficult to follow up and contributes to s= ome > frustration on my end. I'd appreciate if you could make sure to respond t= o > feedback, even if you are disagreeing with my comments. Thanks! I'm sorry you feel that way, are there any others? I feel like I've been pretty good at responding to all comments. I've also been out of the office for the last month, so keeping up with upstream has been more difficult, but i'm back now. Sorry I never got back to you on that one! I will add the BUG_ON, but I believe it's unnecessary. Your changeset was focused on different functionality and it seems that you had a bug in it if you were hitting that often. Cheers, -- Nico > > > [1] https://lore.kernel.org/all/08d13445-5ed1-42ea-8aee-c1dbde24407e@arm.= com/ > > > [---snip---] >