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 DC2B4C27C52 for ; Thu, 6 Jun 2024 20:23:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6F9AC6B00A3; Thu, 6 Jun 2024 16:23:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6ABFE6B00A4; Thu, 6 Jun 2024 16:23:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5717C6B00A5; Thu, 6 Jun 2024 16:23:49 -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 39DF26B00A3 for ; Thu, 6 Jun 2024 16:23:49 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D84751417D0 for ; Thu, 6 Jun 2024 20:23:48 +0000 (UTC) X-FDA: 82201589736.28.597EBD6 Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by imf16.hostedemail.com (Postfix) with ESMTP id 1BB9718000E for ; Thu, 6 Jun 2024 20:23:46 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=u1SLjDUK; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of jthoughton@google.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717705427; 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=SAHYyuKO+2znCaaoSTphVUi7TYzeH+oNYw4s+HC/gPs=; b=EOZLBiAEciLUXmqOILSTzdMHBKoBoyiCBn2itiobgfgauNS5iSjYKrhwFC8fPiTC0rAk1+ HnT8sZRylTVFUtL0+2DRFaA6hJu2n6Fpuy0kfNpcfb7s0XX8unKqoPPdtMO5kkWvCvt0xg f1XygXzbOrEAIEvjYmsLELd8MP3Wxi0= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=u1SLjDUK; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of jthoughton@google.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717705427; a=rsa-sha256; cv=none; b=0LxlrfBFb7Biq3ojURv4X6MO37e5iz7WD8zlNULj2DxZq0oxI2wmf9wrVSeonSgNz2V9ri FH3eVe2M3vfj6Y9VdNAM2PNhUTZWoR/YESJ6Na/f2aEC024XSu+Ersgpns8yK+33HvAnhw /4bt2khlJPBTFFXMF/U8eRptpYF/aU0= Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-4403f55ddf4so14961cf.1 for ; Thu, 06 Jun 2024 13:23:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717705426; x=1718310226; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=SAHYyuKO+2znCaaoSTphVUi7TYzeH+oNYw4s+HC/gPs=; b=u1SLjDUKdBjvCmGo8i1sotSIG0u8l3SpCG31Urx+6OobVrPXFOMO5vPo6gCZhpdQt0 csTaPVQrxyErjua43QxuMmp2Amefy9ZsBJL///aljJmhfc7onyDfCiTNNvwLJ9dsBAoL +364Me+uD8wY3KVGOqFWnyA38GnOrkBEvTgsn9+LtJJ7eQN4MXzT4voDZmtPXoPoSgPp hS47c1NXBPJ3fKNX3uLswhiUtMDXgHFPQBZatfax3tpwty/E5wxHFhNozu3BBm6HZ0bV okUkb4YWz864F2EVgXogED6CcNDzL+Wzy4Qq2RPwcdG6oDBLOCONvWjuDJLi1qq22cQD B52w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717705426; x=1718310226; 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=SAHYyuKO+2znCaaoSTphVUi7TYzeH+oNYw4s+HC/gPs=; b=hE9GUXD8PaSmQrlyNFDon+Dbjqxcb58ktpyap4PaaeINPT4a2eMV2Xhrj8Vajz8A6C GHhPlomZs+RbnS+65kaQ4MdI8CHG8aScCZFPC7uupKwb6miskV91r/bwb7SenRijvUGM YRwsjtt9PyHHpqoIkQuFZdy3FjEeporNXDBnbPBaLiOgxDaoqtyLFI8A4vZs99MeGLOA Y8oPgGx3XNYO1dCN/757lOPY9XGUTmvFHKQgWmFhSZNRfzz3aNlILgYohW2UaP88g2ld PaOJFKogTYECapDxuhHgMpMyDnN0HLhTgFJ3SxR+hkeRQwliLyQpj2nB13fSVc3XIK9l +QkA== X-Forwarded-Encrypted: i=1; AJvYcCU8TxWrEvH1V47LumBz3JnvlPetthT4EEVGVLgSKOG3VszwUfurrbONriOBzxBiwqEAAJAi+7vKDskZ+6IjXhAJBDY= X-Gm-Message-State: AOJu0YzhDp6uNUqhfIJ/4ChM/U1v7q+Q4ZzPDZt0IBHfii/k5f6qDDda Ie6qEyi1BX/iOlJzY0ulyxFxURKdD3hvLJN6bxEgNJiUup/2H2n+I/UkD0MQkELr1fWXf1qHTOm +FUB1EfLgR/HOJ34gCNdUgCwRGN1uoLAF0Hi4 X-Google-Smtp-Source: AGHT+IHQi/9cY5cDSzL3OxykAzSwKHS7uxJCdiMNF3OobwB7iyGrJRDtoWzOicqAk96LoApDVK47fpKu3vuOvOVKmR0= X-Received: by 2002:a05:622a:5191:b0:440:15c8:d33a with SMTP id d75a77b69052e-4403730e8f8mr6690161cf.22.1717705425991; Thu, 06 Jun 2024 13:23:45 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: James Houghton Date: Thu, 6 Jun 2024 13:23:08 -0700 Message-ID: Subject: Re: Unifying page table walkers To: Matthew Wilcox Cc: Khalid Aziz , Peter Xu , Vishal Moola , Jane Chu , Muchun Song , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 1BB9718000E X-Stat-Signature: am7qqd4uu9i9qwedqe4yjn3qxupobgbh X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1717705426-755800 X-HE-Meta: U2FsdGVkX1/5O0YLWzHjG2QClIuAAbY84O133dgWWeUS94bV0XZ3W2gTux73fCIlGqoWwNiho+L47xSETlzUySMYdCT2zJHIpvf5UiHjpcGjcVsPyCd0LdvvIffLudVtJwq1Y7UDWicEVfo27DJORDXcZQqBJNfZ7xzTek1tdDwGMs0Qwi1O1iEuODra4FalwQCaXn3+2QDxsHescTBr8Z08a2WQhiKcueH2FuiOBqGuQe3J3FTNWQiwVCBCmB2pE9yzBOpA2ntkC4hyE7ns2YvJN7SlQUhHm6RV6k7Ia2RFTMG+MhvAVR1wpx/BNroM21OeRoCDZMPXZCf6vv5l2vOGJejhcCGHxzgOO1VXHk5NoEKFd0H6lJqqUmH+/PJaXtIvQY/yMMnpFjAf/pAlRbrme6xJ2/oq3Q1aBQTgdmQrRFhSLDnDyon13TyxJuRtCYGtiQbesYW0cb4ck/LDhvLEVAIYRZeDzwrjoMKJjYv61sKzfj/uNVvRJnO7yGxe/fSe1eoZKMsF54zfWA6oMJhusKqMSERd9KR0U9vUXB5JYgwD16durSIm11sGDjb16Aj/qP+u+IZMhkxcjTuFNokk2A6WqHrUL6XTPNSRXUrcXP9zS8P6I/0ZMGTHD+YyhnuiFeMhOiE2ryBWoUL1BZPxoyqTr7Cnirl8Aw5FAbwQISTZdQOvWsJeVWrp4vxqask5P7DuiVaUIvRRYLGIiAV8YvhcXPWJ8u2YPEJKizENOLV61BkUdCFkvHtoL+nP8mLBI4lL/CMMDo726HnlUMj8Bra8hxsnkrEbrSB7yfOakFH4R2nFywt+b0oBK79Is85vpcd0IXnKDQqfwIGqdZgNEef73GJIQMdIfDNuNWhLm6ABt5fj0Sfub1DqtrbFS/xiZdfo9b0W8SNT218E9mxLkU0wHDSzLMfUbwgiJ+N0dzVwyrh2JqlX7IlYWN8wwLHjgatt9CHIGsmy1iu VyCgg3bn p0DCfYo7BY6lUHqrvwWv0FlBczcN+sz82vlAMVK8M5JWzSC9jgyqqXb1jiGzhfCV2/rCaPrZYff7AWop2CAxrFnlIvysXkrLjC3ZnPxSBcnlQ2iF8tZBnhBvOC8ZBG0R33A1k00nX2EMB6S0gxIoNfJETtQVJd3EEBVsezNAUxdDDpYeJP+PrdmhDf4L31H6R3XVrDbJxnEwXDKoy7IbEdsie8XKv351hlfjKi7w9rf9fQ79WezIS7/PTe7UUHRaANLb4qbj1F5namT25hDmVCMYvNSQbN3XJ47cTeK9pU5GqNCFa0M7Dkz1/vDhplumfvqyBqj4TavL9myPKva64BYJnDFya8OzRy0ZpL2pgQN3FuE4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000037, 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, Jun 6, 2024 at 1:04=E2=80=AFPM Matthew Wilcox = wrote: > Right, so we ignore hugetlb_fault() and call into __handle_mm_fault(). > Once there, we'll do: > > vmf.pud =3D pud_alloc(mm, p4d, address); > if (pud_none(*vmf.pud) && > thp_vma_allowable_order(vma, vm_flags, > TVA_IN_PF | TVA_ENFORCE_SYSFS, PUD_ORDER)= ) { > ret =3D create_huge_pud(&vmf); > > which will call vma->vm_ops->huge_fault(vmf, PUD_ORDER); > > So all we need to do is implement huge_fault in hugetlb_vm_ops. I > don't think that's the same as creating a hugetlbfs2 because it's just > another entry point. You can mmap() the same file both ways and it's > all cache coherent. That makes a lot of sense. FWIW, this sounds good to me (though I'm curious what Peter thinks :)). But I think you'll need to be careful to ensure that, for now anyway, huge_fault() is always called with the exact same ptep/pmdp/pudp that hugetlb_walk() would have returned (ignoring sharing). If you allow PMD mapping of what would otherwise be PUD-mapped hugetlb pages right now, you'll break the vmemmap optimization (and probably other things). Also I'm not sure how this will interact with arm64's hugetlb pages implemented with contiguous PTEs/PMDs. You might have to round `address` down to make sure you've picked the first PTE/PMD in the group.