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 A9308C636D6 for ; Sat, 18 Feb 2023 01:10:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1CB3F6B0083; Fri, 17 Feb 2023 20:10:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 17B8A6B0085; Fri, 17 Feb 2023 20:10:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 043F26B0087; Fri, 17 Feb 2023 20:10:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E897E6B0083 for ; Fri, 17 Feb 2023 20:10:45 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id B332340754 for ; Sat, 18 Feb 2023 01:10:45 +0000 (UTC) X-FDA: 80478632850.10.20F4809 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) by imf26.hostedemail.com (Postfix) with ESMTP id 0077E140007 for ; Sat, 18 Feb 2023 01:10:43 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=MaPE7eNC; spf=pass (imf26.hostedemail.com: domain of almasrymina@google.com designates 209.85.166.182 as permitted sender) smtp.mailfrom=almasrymina@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=1676682644; 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=3Ue1lMsoprr2ErBJHCanJ4kxr4Tbf1Q6clHNnM5+twY=; b=mSFpmbBnXSjQ5nM6JQJxkvSLsBumS7+rCeqAQRM3T68Bheb/a8JWGgxeZgBKcuGomSbsBA fFNI3iWUaSt2oR4WKsGG0SW/ppNeiU1IwcFLt3DT1OL91DlXXQ6fcvHpuArvaCDL1y80kj wrvZBykQPlml8wmUgdo39R7Sri2ofHo= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=MaPE7eNC; spf=pass (imf26.hostedemail.com: domain of almasrymina@google.com designates 209.85.166.182 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676682644; a=rsa-sha256; cv=none; b=tkMYfSPyQlUvVJGfWVy/dR+toH6/zry0DC3zbYdH22rImj2M0Azly8gQPGfeo45l5rHGR1 c0Q8UF1Smuza0eQj2I88bi/VmWuPFC9Gaeb2XKT9n8SgbwtAuOKHe6+XcFZ08fkgi6Bpg4 c33Ccb5UWSuH5dETROUTSf856DIcovY= Received: by mail-il1-f182.google.com with SMTP id m16so884023ilq.10 for ; Fri, 17 Feb 2023 17:10:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; 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=3Ue1lMsoprr2ErBJHCanJ4kxr4Tbf1Q6clHNnM5+twY=; b=MaPE7eNCeDtjj7lvxv5iY8sHQkz3Dg9eePVjJhYmFLnVftdXTHUVMmm9jQUfZ9C8UL Eqj5bVqaYiiSnzz++oxqRtMAGkcOHem2Qtd/MIOXL6WeAWL1AvR93ZCAFsXfMtkMbj8+ FH4qBJFQQNJeiaD7mLy6R04FXG37cok9VQmrSU4rgPjFzewQMKdgplJm7wbzcKfrfj5V sTIcjSuJT8wi4vZpnSI5twWE6hQFMdDT45x3lcOM4IOY82dz2Zj6lcrsqw+/rD7EHe8M SGxjvc4Wk7es9Oo7dqaeW0ms2nhKftVI+WMrO+/OI1dY9f/azJPhklH+m98k6hmEdYh/ 2NeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=3Ue1lMsoprr2ErBJHCanJ4kxr4Tbf1Q6clHNnM5+twY=; b=hjovyUVjPeOMIMOjc1FSSfGJjhO878tVvuIB0uxODDI8AVw9AZQ8ZGVDHOMp51O9wD c9sG/WJzV+U7HQzPPpPqyIxYlON4nBqfG3BEF3T4ApkHcYPGUmORsSWD14oeVoxhHUGn RDJAzJT0dFLhL7iQcDMBuYclf/0ISjOVnibi9xxE9T2Vdsn1BZ+fy8wipd5QQGeCQ2km vTSghWWJrALLdpqnerXL2DMeuRYZkmLEebIBUVi30skglyNHUuDcFL0bpVVZNT6p5GWw 77SZwEACdjALTt+uCVDEnxRTrkXGiiBxp7mFrCi6HC98zATeQYk4lAIM3Jn3g/YiBLpv bfXg== X-Gm-Message-State: AO0yUKUmW96oGxsCaz48HHKmdEm2aastcNffRzlHxjgFgFfKoWQ3wMdU K+5REAVU8lfDZ7Tg0Wo/42FnBcCC/DLV6bCM1jmo0g== X-Google-Smtp-Source: AK7set/xG/fW0zYQg+pZoFZLwPiwJfXn0Br3o2PaJdcb7CRH0wHWdqz4zPq6AEPXf0UwzKpx5lRtJfSn22TcQpLtUMc= X-Received: by 2002:a05:6e02:130e:b0:315:3bc0:354 with SMTP id g14-20020a056e02130e00b003153bc00354mr740021ilr.1.1676682643043; Fri, 17 Feb 2023 17:10:43 -0800 (PST) MIME-Version: 1.0 References: <20230218002819.1486479-1-jthoughton@google.com> <20230218002819.1486479-5-jthoughton@google.com> In-Reply-To: <20230218002819.1486479-5-jthoughton@google.com> From: Mina Almasry Date: Fri, 17 Feb 2023 17:10:31 -0800 Message-ID: Subject: Re: [PATCH v2 04/46] hugetlb: only adjust address ranges when VMAs want PMD sharing To: James Houghton Cc: Mike Kravetz , Muchun Song , Peter Xu , Andrew Morton , David Hildenbrand , David Rientjes , Axel Rasmussen , "Zach O'Keefe" , Manish Mishra , Naoya Horiguchi , "Dr . David Alan Gilbert" , "Matthew Wilcox (Oracle)" , Vlastimil Babka , Baolin Wang , Miaohe Lin , Yang Shi , Frank van der Linden , Jiaqi Yan , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: yotndg4inxtpgmq7hurirqr7ex877p6j X-Rspam-User: X-Rspamd-Queue-Id: 0077E140007 X-Rspamd-Server: rspam06 X-HE-Tag: 1676682643-935666 X-HE-Meta: U2FsdGVkX186W/TRPuIY34J2agJb8lCSKYgwWSocSCxV5cu9w8gmq7v8ogQo2lCZXOufV7RC72YRoIy/Fbr9DACXuls7eTtVVIYYjskQwKq5p+OOAZ+kdazTbxJ2qZb5Th/RJciOlJbwDlqwc2Vz8Zblj9tNXa1Pdti/VZR2hcdkuTKoEdMnw6BP5bI7FYyyV6HEcOwJE65HOVtfEtqdcwbKA28o+L5XUldC02ttjENo98VMxvn2lkqnNvq0A4qupPS/J7j5dyeDFC9PRLRZtOAW7jp0kWtQFHvEemZEbh8dqC8IYij1BVtqxjP4bGlSeHtn43LtRE3SEjuWFf+0Q8jwZZRgkrWkdfnt8Plfg7vDl0MaDO/BUgwovy/yhWOIKd+TWpL5zbqQDzv4KfYuGo0Ddxzm6maYEYvyWG747163owLRfJSse9SzBnXbpKGCOzzR3vBtpl37exPPF6QYZ9pRHXTxZhE8Ad2d0sQpqPk24cxaMvoFogWZvCmjprC6EfMdgQNoXqSwyaBCcUl4lRAFXFJsKUySBrKjPDockqCWkNiDTojCFM6NuL4rnwPP2n7mXtglrTBXv50zqLyJ+2zBJp1tlh3Jhg2ctvpea6LZuxf2a9kFr0c/Iv8cLsWSlI+ikO2kb7BPmPw7GhYuk+GgD335Ruiv+A25oWgkLQeM4DlfDyqIZTzBVA6clX2dNEDciE8mQQDza5OV7gbZUnZEBECu5sgRiAU6rFB4ouu1X4oWDdlSbiRxfgUBWOaEu5SWeiKZ8HPApQGhCtOR8j7pljkvlr8QDl8yoYN0OqCWlGRNoBift/ddvWbTpWWotnA0dBCulRzEb5wVG2/6HBoXIqJYRWq8nnAVgban9yHMB57qa5mzy2HCseJdHo865STN/1PcKCevwS9OKOj95FLP8J2eAaXInYTTNKS6kk7DNOQTET27g31lVYJkAFsunNbbcoYrJEgzHGSoWMt WV3S39A4 vn2FNomergS6wQwzGKlJYmYWN2qn5yb4USnw7dKW+KZcrHm3IIuID86btiCYviEtWXUGBdfsU/be9+IsjXqtF8IMNwYEwXFQBZCxFylh8GrOv859HulBCHX81cIyuiOgrnq43YKMQu4L4ooOYDtKypXONkrBODiVbThX8VSN3BnXaEzR05EF8kNPVFj7yZGHniKZlLouonbOom4qaJCzgi9YM6Sqv0Su7C+0ArKWSKqj50qSlmFw5Y0ze4Woa5rU5nFHxw3+10iKp4qD2IqYds+YmzzO9+ea+IJ+V71o2eQNEhrPXINDVtV8VAHX3V8rV7ykC 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, Feb 17, 2023 at 4:28=E2=80=AFPM James Houghton wrote: > > Currently this check is overly aggressive. For some userfaultfd VMAs, > VMA sharing is disabled, yet we still widen the address range, which is > used for flushing TLBs and sending MMU notifiers. > > This is done now, as HGM VMAs also have sharing disabled, yet would > still have flush ranges adjusted. Overaggressively flushing TLBs and > triggering MMU notifiers is particularly harmful with lots of > high-granularity operations. > > Acked-by: Peter Xu > Reviewed-by: Mike Kravetz > Signed-off-by: James Houghton Acked-by: Mina Almasry > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 540cdf9570d3..08004371cfed 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -6999,22 +6999,31 @@ static unsigned long page_table_shareable(struct = vm_area_struct *svma, > return saddr; > } > > -bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr) > +static bool pmd_sharing_possible(struct vm_area_struct *vma) > { > - unsigned long start =3D addr & PUD_MASK; > - unsigned long end =3D start + PUD_SIZE; > - > #ifdef CONFIG_USERFAULTFD > if (uffd_disable_huge_pmd_share(vma)) > return false; > #endif > /* > - * check on proper vm_flags and page table alignment > + * Only shared VMAs can share PMDs. > */ > if (!(vma->vm_flags & VM_MAYSHARE)) > return false; > if (!vma->vm_private_data) /* vma lock required for sharing = */ > return false; > + return true; > +} > + > +bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr) > +{ > + unsigned long start =3D addr & PUD_MASK; > + unsigned long end =3D start + PUD_SIZE; > + /* > + * check on proper vm_flags and page table alignment > + */ > + if (!pmd_sharing_possible(vma)) > + return false; > if (!range_in_vma(vma, start, end)) > return false; > return true; > @@ -7035,7 +7044,7 @@ void adjust_range_if_pmd_sharing_possible(struct vm= _area_struct *vma, > * vma needs to span at least one aligned PUD size, and the range > * must be at least partially within in. > */ > - if (!(vma->vm_flags & VM_MAYSHARE) || !(v_end > v_start) || > + if (!pmd_sharing_possible(vma) || !(v_end > v_start) || > (*end <=3D v_start) || (*start >=3D v_end)) > return; > > -- > 2.39.2.637.g21b0678d19-goog >