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 BD7A8EE4998 for ; Fri, 18 Aug 2023 22:14:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 477EF94007A; Fri, 18 Aug 2023 18:14:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 400CE940012; Fri, 18 Aug 2023 18:14:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2A1BB94007A; Fri, 18 Aug 2023 18:14:44 -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 1C26A940012 for ; Fri, 18 Aug 2023 18:14:44 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id EF5971A11E8 for ; Fri, 18 Aug 2023 22:14:43 +0000 (UTC) X-FDA: 81138630846.19.06F4AC0 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by imf21.hostedemail.com (Postfix) with ESMTP id 2C1941C0011 for ; Fri, 18 Aug 2023 22:14:41 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=5MUOAio1; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf21.hostedemail.com: domain of zokeefe@google.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=zokeefe@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692396882; 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=15MJ5r20Bc4OUa0urOYZvVtRB9hu6WE3eNsvEWDgJeE=; b=dY3oPryYSJSLsWKhq7D114U8vBSS4C8micr5ZpB26sLT4dRX++QaTpC58B/phBvAWJJiHk QWGmHPR7jogDNUz9VWo+9AZg18fZcd6HO4dyxol74et12UAjuYkhfNQPT0fDTNs4Xad6RQ yEJB5UnWVAOX62tbM+TiystwIZVsGTg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=5MUOAio1; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf21.hostedemail.com: domain of zokeefe@google.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=zokeefe@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692396882; a=rsa-sha256; cv=none; b=70DBB4gZu+e+FsAASejP65sFvvbRV+ipIM50Bc6w9mvQuIffkz61+tLLZjlULu+E4VPbpJ xABfAfaNxqFknquWs/V8oFs+WVX1qCrwKHkP5yHTBJBJLhl477Sw5c4IWqwbcOOH5QJwCV oSPr6Uya5Jjja5wuH5nrZRC8JjxMG+M= Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-529fa243739so403a12.0 for ; Fri, 18 Aug 2023 15:14:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1692396880; x=1693001680; 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=15MJ5r20Bc4OUa0urOYZvVtRB9hu6WE3eNsvEWDgJeE=; b=5MUOAio1GCuin9twjXzSt3qHZogjdPaIs9sL7dopMb0fkuVWC0I1ywYPczk/X/Kh6R Yu8KeX9gGhlSVhhyffLnKfNhLMxFjMqZVCzMRNggP8Dr+Ggms3IpFwGVya6qPSpwUGMS qv1zJG24TacICwYclybBDvvbSnYZoUAUmG1xLslxkqU1CLH6daJGpWQhG0DuYde3MxYc MgpoRnvPriDnEOfgYXorhnJXu/zWze4H8VkHZQMZC/Vz679EBsJNbOPDRjBoomTyUoq3 eX3DMXi9DDI88trw4xTncXTHnGMJx9pKEd2V9kLvzs9gMnOn9+qol75n9JJSLg+nJNPD 5JZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692396880; x=1693001680; 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=15MJ5r20Bc4OUa0urOYZvVtRB9hu6WE3eNsvEWDgJeE=; b=fnJdqa4u5n8NEQXwdjJ5lgfXuq5rMrKVItUn20L7cN7UdBP+Pe+L/zvw9HsO3FfdGH jaHYlsYaPIRFqjXe9lRrmyMVfGOXArRKJw8EIJHmcSzzxbv/+vlq+grz9vUJS/eKp1aI CYFcC2hkBPis9dXYslDPWHkTOTQYvyeelwtooccrxqvO1hBftYstqoCa9zm4KG7CTn3w ssNdVd5h7bjTNX8Jk8vL7qAl4s4HYo+XuZ2i6jgxAktBhljN0mV8dC5LX2SZAhHzCwAQ V9jb0Oae/3yubGGZwxvFzt3nmPH0FSOe26etZm08+TOOGz8qJER+YLalPfI6oB5MKjdc Rifw== X-Gm-Message-State: AOJu0YzMuAUml+eWSlldGxBN//3X4s694Fu+zbcD1DNkDC7D6Iy/a2+S GuVO7VRCzyQdrfhTdZY2GINAYTKZrkuux0+inOadWtaGwVhH+WEbp3s= X-Google-Smtp-Source: AGHT+IFl+/v9+ILj228ARnLnSiE3V94KsI4Cb5UlE6k9q8RncZUCKRO3FWE8WYSip2TE1gy/wCoqCgSF6PEYMY8P+/E= X-Received: by 2002:a50:d5c2:0:b0:522:4741:d992 with SMTP id g2-20020a50d5c2000000b005224741d992mr140781edj.4.1692396879764; Fri, 18 Aug 2023 15:14:39 -0700 (PDT) MIME-Version: 1.0 References: <20230818211533.2523697-1-zokeefe@google.com> <20230818211533.2523697-2-zokeefe@google.com> In-Reply-To: <20230818211533.2523697-2-zokeefe@google.com> From: "Zach O'Keefe" Date: Fri, 18 Aug 2023 15:14:02 -0700 Message-ID: Subject: Re: [PATCH v2 2/2] smaps: set THPeligible if file mapping supports large folios To: linux-mm@kvack.org, Yang Shi Cc: linux-kernel@vger.kernel.org, Matthew Wilcox Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 2C1941C0011 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 8brp1ht48omyntg65nn9azx6eme164nz X-HE-Tag: 1692396881-51711 X-HE-Meta: U2FsdGVkX1+ML7+LJ0rUogfXkGN/f/zPq0tT8zt69cxki7KHJY/t4cm8r8mt22wYx/LlY8sLvBZsmrn9Yp+CUhizxta3+wg2uz810LFTO5fkwWhTzOn/3bD291YXCtwYcsZcYZSgQSD30M7OFJ7n0vnaKtUp4DnIbZip+q52OOZYm2adb8GL3hrqOcW7GoDXei68dN0vBe0RXdqZhIm4b0HWO4kEgxX+encAqrk1smvRXkJOrQ5EuIXvFbkGHHP7inBXI71e/pm00LeZBeAlG1zcv+ereGSrQTGAboCivLXs9p1gW0wiDEJODa7r8VCwwTiFy2zW6Ai1zheKwdCyFKPsk9PTnWgjErPIPgXKRbyewBwBfWZFUDOfF7npuu6+392qFgkPEEoNxxrplQYA5pGItUskB02B1a5+FOFgJxWJyBBx19/djGD2U0Xg1Cq3azfkTBySSeMq7UcQrZV47bQYAaosts5m5ejaSTEymWIG1KPculBIZNCdiijcOIvaJ1fhyn6bvXGxYpfWn2/+fojR3LZ55PZb2zPK/QUFoK56qLm+FEwICrg2lykHSuhICRDZUB3OBFfBhsMeF6dvehYYcXkNGix3Oq2fyoSoXEGI0vIo0+uz3S+f42FTUUMABfXC6GBw3x+QJljwuGFgfZtzDyquekn/AtNSIyiXqJxNrT77E+l5ympbVzFICX2bnQdsKTRLLvU3HJvulSbBCd/hlRjEellzvnifh6C302nU444rfwUvQpXwnta//oQwdhtDOVR8OJ7chf8y5wVu/x48ElNKgx3dXK91ecBTICgIm7oszzkNV96sUtm1P23nSNaJvnGiWFjOVBSBt/3oL9a+eZxuKg/qdMot8FEFTNw4BvJOhexvgTOhzHB47r3Np+pi6Wic2h+8JY2t+1oPp76NjNEmSRn7Q8H3kYuRlyU25wSnkZKhy/BavwmbcUlck9KIzxKFxPqk+RzQ117 AiNM1QWT kN/T/S/bh4zLsHkGjoSIPRKwlV+/KmCC6jw0GQn408hegGWrTGIDyB0d5Ojw0V+yXGfRqo/W3oQf/HcFBLEvPCCbxU0dDNhwKq8uevEHN2dScEqR5xU6emO9Y6hlNk7UL6K7AxBsbusLUftAm9ZYcH26UWypAMb0R8HerVGSwJkdu6gG5LZOJKnKO1+iGawlGrr6W6Ucg0wBBdSvQfPmCmGjy2Y8fvr5H0hltkwM2YqWjOLpT7idN3GzpgbvUaoInmC4J5pSP1GSHHszhsbK0nBX0stzdyFmIJi/wCJbSHSrzK3X9im/C+OQu6Q== 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: 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. On Fri, Aug 18, 2023 at 2:15=E2=80=AFPM Zach O'Keefe w= rote: > > File-backed memory can be backed by THPs either through collapse, when > 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 *vma, = unsigned long vm_flags, > */ > !!vma->vm_ops->huge_fault : > /* Only regular file is valid in collapse path */ > - file_thp_enabled(vma); > + file_thp_enabled(vma) || > + /* > + * THPeligible bit of smaps should surface the > + * possibility of THP through fault if the files= ystem > + * supports it. We don't check this in fault pa= th, > + * because we want to fallback to the actual ->f= ault() > + * handler to make the decision. > + */ > + (smaps && vma->vm_file && > + mapping_large_folio_support(vma->vm_file->f_mapp= ing)); > > if (vma_is_temporary_stack(vma)) > return false; > -- > 2.42.0.rc1.204.g551eb34607-goog >