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 7AC38EE4992 for ; Fri, 18 Aug 2023 23:10:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAEB9940075; Fri, 18 Aug 2023 19:10:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D5E98940012; Fri, 18 Aug 2023 19:10:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BFF55940075; Fri, 18 Aug 2023 19:10:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AB483940012 for ; Fri, 18 Aug 2023 19:10:54 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 81814A04F8 for ; Fri, 18 Aug 2023 23:10:54 +0000 (UTC) X-FDA: 81138772428.14.2246728 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by imf24.hostedemail.com (Postfix) with ESMTP id B8A91180006 for ; Fri, 18 Aug 2023 23:10:52 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=aNzK9siZ; spf=pass (imf24.hostedemail.com: domain of zokeefe@google.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=zokeefe@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692400252; 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=YdyYAb+5jM+9F39CDpe94bQcIc8bF9RgX/mGXcLPW0A=; b=gkqgQpvG18ojltfpQYG4iVef6pYMke0X5s7E4t7qC3blc3iDs+YH+Eoxwj5bk2u1WoQX9T E7if5NNdbqZeP1xpNQ5/aJYWduqBwJrIdkMpsgy+UH+3F7tJO+of6Y30xvAw4npVylYl1U TWuH+IENFvJiFdxM17+xhzUfKr6tPtU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692400252; a=rsa-sha256; cv=none; b=2MURlOXcVkUb+Ma3SW5UPSYmq8+/WW4y234HjSDBLgsQyQd2CByQcr9qvTxD33IKWu4YsK L0Jvq+5nYacXhA3NK0m1oBNwXoKDDBg7YHtN1FkRJo6w390oY8rSGdAKYRiK0+jy9EO8vI XlrDYO1TlBuC+CyMaHgd4Gu+HafNFMU= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=aNzK9siZ; spf=pass (imf24.hostedemail.com: domain of zokeefe@google.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=zokeefe@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-51e24210395so4064a12.0 for ; Fri, 18 Aug 2023 16:10:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1692400251; x=1693005051; 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=YdyYAb+5jM+9F39CDpe94bQcIc8bF9RgX/mGXcLPW0A=; b=aNzK9siZ34VI3YJ8tPguNg4ypmVD9LAqYTRM0RdmWuCBgfVFZTgLQwFLBD0BQsv17Y EWjkY7mm/V6mkD2HVKOBUE6uxoWerjpo6f1lfiQljQFYNk81G1bZvxtW6wFvLmCPifL/ cPSMlXmX1f728TCsILO6OdVUUEvwlHtFVa46hAUUnsjuTcDg9jELT9M/bItSbyFiJQ5y w2rGYRkCfIQRClpyTPnA2gdYMbyrro2EYZkiOo5ZPgU4lJJ/NmtJ1QavFYKxMg31EqD8 9gcwSUHURJIrMPYsllhEheoNZocGzlbjqFVy0ZmPYQ0sZxBmeW7Gb7T0kn6jDgJFIZ5y 4QKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692400251; x=1693005051; 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=YdyYAb+5jM+9F39CDpe94bQcIc8bF9RgX/mGXcLPW0A=; b=I9N553ZnbPm+YFGz4f+veuQ8sLwe8oiowBzO0TLxJ7OKYMLm4/OG2T7begIzvCYXcr zhaBrzcdTIWLYR/GKC3DnS6N4U1MdhJaXGwK+pDAuPtTzEgu0A5qEZXAtOEgi8N0wRgO 0Q0pSL/MokL04X76BSON9O+0EMG1PHiva+nBn8fc006EGHGGtBojia5pM0bDtvVGBaL6 1YOzI8sDmZ/y+CuoxMw6uu7QpK0+BQ8BJKR5we3cs6Q//nbN/PqzUWmVasTndJhKYCyc sEhWLxrmNBz5WQRLD1gtfKGa1OYa8s7+vyfL40ZWfbzYEIxpBoa+fU0mKrNFpVdTLQHC 0/7A== X-Gm-Message-State: AOJu0YwcIvpTPZlU2DTTXNl4EahkebGJQFmbnNCtOyYy3iBMaKlmgpzo +WfurEf4JntZNa1Kay4JX74x5b2xDOZLwtWGJZGJdg== X-Google-Smtp-Source: AGHT+IGDCuh8jkeMdAC5UaVks350E9zgqCFxyseaLK7vZ9WtXLAThFnSYRZUZlWV3Y40WVIt7FRvxDyAwBy4uYHECjg= X-Received: by 2002:a50:874f:0:b0:523:bdc9:48a9 with SMTP id 15-20020a50874f000000b00523bdc948a9mr176000edv.0.1692400251094; Fri, 18 Aug 2023 16:10:51 -0700 (PDT) MIME-Version: 1.0 References: <20230818211533.2523697-1-zokeefe@google.com> <20230818211533.2523697-2-zokeefe@google.com> In-Reply-To: From: "Zach O'Keefe" Date: Fri, 18 Aug 2023 16:10:14 -0700 Message-ID: Subject: Re: [PATCH v2 2/2] smaps: set THPeligible if file mapping supports large folios To: Matthew Wilcox Cc: linux-mm@kvack.org, Yang Shi , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: mgdtwu4nrkojhu6zcf5sr77hxmraaita X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: B8A91180006 X-Rspam-User: X-HE-Tag: 1692400252-111245 X-HE-Meta: U2FsdGVkX194l4K7YFgH0FEu+Ujg8glTETZIy3X3V6TMcoUMrTyAAycI6VLrjxtUqsrDYpJiQbxnRrntTlUxojD8/+hu4aw5Zjag6GeGdj9FfE3TSC64r77PAsgMZgbess8QJOLmyCMcJLF4EdHH0I45OCLPeUy66Oc751e18e/wVOYI0W73aiB0g52c5Q0sVdKuxbrlAORHE5gM6MGlLFF0fVqQsg0EIqxumEL7hzu65v09sKQdTihc24r43xGFlV2ShlwmqPEfOX6VZ2JiA+8djYxmiSZ6gd5myO2NV+CcUrKP+nBK1US5u9S/auJeLdRngObHl15NGYtF/gsUOuxIS/NV9iYKT1hmFFDHoxo6MEIA2wZo82B7tGDJ8bBw0cy5p72GTx5i5y3Y3U2hrkxp5+ulgCf82zwuRJLOeVA1u9gMQDWxTNUHlHozFryskCaIDCBJYFWgWGfNnTqkOnTiBNMtSzVjX5bDbXt1qL8+7kW5gaaURe4zsH3IcM6dDJDrqIwrBaGnSe8W3yrmF+C7Qb+ZgRfkE2Y9l2jShd9sNNe+kro/i9UOZS7/yRnswUOrtBgVPRUsz5DyCx8BYW9XK4CQvRJQLUZ2XScF2NS+y+pxWz6W1ihNDi+0vUCKMR2eDNm5sG2MfzDngHQkuEzUCcwCh670+xhU2sNoj7vz46lYGsKKysuG7DsxXFercWEnRbkRS4zMyFrgmWTlS24m/2eHHJYz1D/lnmFArClRzTQIFGv17MeeipATT/RNt0HhRfZuLSwUV9iDGHnONwC40Xv2b3R4v07ADPbXsZNf7/2VCbYBIHHRsL4hn2JSsQtui5bT4PsvSZYs5vgrNZFXVJmYGx5yzQjDB8D2TkJA5f2SszWcykk1Bu+bM6Is8aOLAskBRusYjj/n6qBihHRDmqyrz+lqpwvmADy0QGSs+SBBG3s3JoQRUdcAl4q2m9/npnVFSPSNODB81Ka iYFuqHRe K/LkRPvMQVjcNefIZ78HIasdoWiitX6aXnthMg/yg0zn4rjTMsYZ83P3I5ycZ49GAhFN4SmF3WWML+Wu3uZyN2M8gsdl3FlNwYjNDZuAjz8/YxMWViTzjNdPMjUfvonqGGTm0BAoao1pgBQJlW3NGKGURpA2QjurtodNQRk6m3b5nCugPcsI3OADu/KQL7YXLsCLQ5o8V3zqf7r87i8Y/G4x5UC4odWtVsS6QkJvqXK4uTxJCNe0MgytVAIPlPc17JBUF7R16cc0pYaE645EnSAKiW7sv4vAxJFfH+9dmQHieA78UoqYMRGgr+w== 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: On Fri, Aug 18, 2023 at 3:17=E2=80=AFPM Matthew Wilcox wrote: > > On Fri, Aug 18, 2023 at 03:14:02PM -0700, Zach O'Keefe wrote: > > Sorry -- noticed only too late that there are still many > > false-negatives for THPeligible, since by this point in the function > > we've already applied sysfs and prctl restrictions, which file-fault > > ignores. VM_HUGEPAGE also needs to be checked for the file-fault case. > > I'm not entirely convinced that unifying all of these things leads > to code that's simpler to understand. > I'm trying my hand at rearranging this particular function to make it simpler -- but thought the refactor better left for a follow-up patch. This patch was just about surfacing the possibility of getting THPs through file fault to the user. Maybe the inverse is more frustrating (claiming THPs are eligible, but then never getting them), but given we expose the field, I feel like we might as well try to make it accurate. The actual complexity is just a reflection of the the different eligibility requirements chosen for each of (anon, shmem, file) x (fault, khugepaged, MADV_COLLAPSE). > > On Fri, Aug 18, 2023 at 2:15=E2=80=AFPM Zach O'Keefe wrote: > > > > > > File-backed memory can be backed by THPs either through collapse, whe= n > > > CONFIG_READ_ONLY_THP_FOR_FS is enabled, or through fault, when the > > > filesystem supports large folio mappings. > > > > > > Currently, smaps only knows about the former, so teach it about the > > > latter. > > > > > > Signed-off-by: Zach O'Keefe > > > Cc: Matthew Wilcox > > > --- > > > mm/huge_memory.c | 11 ++++++++++- > > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > > > index cd379b2c077b..d8d6e83820f3 100644 > > > --- a/mm/huge_memory.c > > > +++ b/mm/huge_memory.c > > > @@ -136,7 +136,16 @@ bool hugepage_vma_check(struct vm_area_struct *v= ma, unsigned long vm_flags, > > > */ > > > !!vma->vm_ops->huge_fault : > > > /* Only regular file is valid in collapse pat= h */ > > > - file_thp_enabled(vma); > > > + file_thp_enabled(vma) || > > > + /* > > > + * THPeligible bit of smaps should surface t= he > > > + * possibility of THP through fault if the f= ilesystem > > > + * supports it. We don't check this in faul= t path, > > > + * because we want to fallback to the actual= ->fault() > > > + * handler to make the decision. > > > + */ > > > + (smaps && vma->vm_file && > > > + mapping_large_folio_support(vma->vm_file->f_= mapping)); > > > > > > if (vma_is_temporary_stack(vma)) > > > return false; > > > -- > > > 2.42.0.rc1.204.g551eb34607-goog > > >