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 50A1FC05027 for ; Wed, 1 Feb 2023 23:09:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B33946B0071; Wed, 1 Feb 2023 18:09:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AE2AE6B0072; Wed, 1 Feb 2023 18:09:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9AA296B0073; Wed, 1 Feb 2023 18:09:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 87FF26B0071 for ; Wed, 1 Feb 2023 18:09:51 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 36BE640D8F for ; Wed, 1 Feb 2023 23:09:51 +0000 (UTC) X-FDA: 80420267382.14.C82C7C6 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by imf13.hostedemail.com (Postfix) with ESMTP id AC64E20014 for ; Wed, 1 Feb 2023 23:09:47 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm2 header.b=b8RQRP5n; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=pHh0WxDy; spf=pass (imf13.hostedemail.com: domain of kirill@shutemov.name designates 66.111.4.26 as permitted sender) smtp.mailfrom=kirill@shutemov.name; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675292987; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=/sKWUZMDVI94wHC4x6lwKTIhggnPQvFEE4dYpx4w/HQ=; b=o/CatPDxRdMoXb8zgFY8GbxQUDomvbYdGdokUw2arPpl8N0x65bDcvFwrbkPSP9aUfCZo9 wx9Gz03Ze65iMONEy2NORZa7t+cIOJkrETctWRLbKbJnrdX4/Jvj+omwu/stXqftWJOmAV 6AmtvuzHZWk4StenwPZpCsSRXqGt/CM= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm2 header.b=b8RQRP5n; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=pHh0WxDy; spf=pass (imf13.hostedemail.com: domain of kirill@shutemov.name designates 66.111.4.26 as permitted sender) smtp.mailfrom=kirill@shutemov.name; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675292987; a=rsa-sha256; cv=none; b=ilgb11/U4DSKIFV+8bjAQSYh1JzZviwseLA6BkpB2qfWz1My5eb0/YNORkl74BNEKeKXOo MM3IRYSY0rxHHN7GUXu/TF7uNUdcVJrUPL8Ohzk35cG+KqxO6PRBYsZ0fHj99Q+r3yyp5G MX8LuiLY2U7pU4mqpZabsyvw1Z88c0s= Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 0E2A35C0175; Wed, 1 Feb 2023 18:09:47 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 01 Feb 2023 18:09:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov.name; h=cc:cc:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1675292987; x=1675379387; bh=/s KWUZMDVI94wHC4x6lwKTIhggnPQvFEE4dYpx4w/HQ=; b=b8RQRP5np+jz807OEH DHu5YAt8x5RYyinq+y6LBzpG+nKRIv5T4jAUEVBjj63BRWQTin+AgUziBUC6h8Km 1rWdX7O6llZS36L1j9SuWElnwRgVJp0nSNkBTwMDjRtLcpHBDEw71NkeIQSJ32H+ BQyWCFmS3jKKY8IuqkHy8BEFbNmIQ+nP0wGRJj9sWGgsTYcJRr11oF8t0R9/3yD5 WL1tbISA4nRY4XDi7wgDA/HDSyITwL2uv5I2bomGW2qJJtlDRBv+YJKBnrg/404t gYpXHkh3dOzVJSvlB3VyZAjvXA//OPg0Eei9+D7FJS9Daas+XbqSg1QOq2dS7JYu C+tg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1675292987; x=1675379387; bh=/sKWUZMDVI94wHC4x6lwKTIhggnP QvFEE4dYpx4w/HQ=; b=pHh0WxDyyzBT7DrH1FApGkT/BM8H2burTrCSRagoYQ4j c1Htpdd/KaA9cLzbDKs6RHp29vS3F3oYfOglCxQloyIl3p/SX/L7Otpc6SxVFzhp rKFhZsIS66xVWUhlxew1rJdDrLBV1JMpcOYpb6hMTXPlaGu8yD1VvQGy0fhWk9d4 4Vffq68kxAgvxgXFjsILifo8SB43u1aq0uJJL75xQeBTCWYbIjppu1/rT8UOuRVF tKdAGvLEHfQh1hb8eUxQod1gj2ZHrZf8xYgymp6ngROOAdCpKa+7wZjP1pcdff22 MHsFDBYeX1aLK8f3v2BwAG+OiUPZ7GBOzUSRiKZ7yA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudefjedgtdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkfhggtggujgesthdttddttddtvdenucfhrhhomhepfdfmihhr ihhllhcutedrucfuhhhuthgvmhhovhdfuceokhhirhhilhhlsehshhhuthgvmhhovhdrnh grmhgvqeenucggtffrrghtthgvrhhnpefhieeghfdtfeehtdeftdehgfehuddtvdeuheet tddtheejueekjeegueeivdektdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehkihhrihhllhesshhhuhhtvghmohhvrdhnrghmvg X-ME-Proxy: Feedback-ID: ie3994620:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 1 Feb 2023 18:09:46 -0500 (EST) Received: by box.shutemov.name (Postfix, from userid 1000) id 0691410E381; Thu, 2 Feb 2023 02:09:44 +0300 (+03) Date: Thu, 2 Feb 2023 02:09:43 +0300 From: "Kirill A. Shutemov" To: David Stevens Cc: linux-mm@kvack.org, Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm/khugepaged: skip shmem with armed userfaultfd Message-ID: <20230201230943.fg2q6fmvu7gggxar@box.shutemov.name> References: <20230201034137.2463113-1-stevensd@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230201034137.2463113-1-stevensd@google.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: AC64E20014 X-Rspam-User: X-Stat-Signature: yarq7kn9ubuf3dbqwtxma3z11rwt44pa X-HE-Tag: 1675292987-201713 X-HE-Meta: U2FsdGVkX1/Ywb+uqFVPQLsPwhiphiE60W9D+wJ8DI5g6Fki/9loBuNQnrnOJ9lMcKXon9Ul5/XzZY601BRhwvzMslHJX8xsuCcbycwR7tAR5sDTkbZsLSG2DvOckbPf5wl05lravI+WdedIJ8f/SswplMV+PDVOj8a+5j9nr1BHvC33afB9JPwXeZLLYgzRjXqvX8memr2tKfrGg37Esf8kmbUEVYIAY4zWBj2c5oi2Nupbk6a6PaZVao5Pu+qd/LM0zKqCCJHHD4ImjIdebtSsP5/fmvpxKrJY86CmlRmFsfQZ5XpYTHosdz9HBvoQbROQKznUf6soaRM7+rXONJbYAkhzXrcciQLCbuSW+2HtBG7AZi5riEbXT9wPnjuf9hSDnrG9/bVKwsam88RJgaKr1cLkac/q0q7lcit26qk5seCbISsfz7quaef6TFzCFqbGoEx37mxRJkVMfxK3LySLPPnPqpuRngj2zN8ACWc5MXO+pQ9Fj/c5E2eedPJdtE43OGiCi/FOivS0EEQlRXqdVAl4z09kQG+Kdl6kzidxUfNKjr9i4GowQMI6yoaim0ITxjdwwRxC+geZALIyb3eja9SuEou317n8UW67Z7Gxahme3/oOxLnBfmouvjxxG+BdYn7UlkYxCCJvi8jBmBx5lrZH2XjcYaWxgNTWAY/l/9G4yWg0Sq6Q8L+iSUtaL8wT+zwyYOT8ijJU0xVVtujX8cyC5XteZVAzAsVWO0lPABhFdJt/YyoYeTuZ+ssETWgimvo81IQE+5iKKy4XBwIMCtGu3NAOdpgt3VmP3TJyzAD4Wx70c5f7dT2RoS0d2ZR9hyQr5I80RqHP/pz159Fuyg9tufwsU09VicIhYVER7F7dlnJ/7i5T+0tmwQ5F2n1qwHMVCd7q5h13KG7EPt8QkJ7w+JuN+kKzbNGZm7jv5+ZtwxkuaQ/dQkIhn5eidUsXXqLQGtqmVfGsiKo K0O5Z2L4 cuOurO1MkPsouQRRc3KCx37Ikyh8uM54kAGUu2kZkFS+PbP7LThEn1w7EDNmRBd+RqYSBTcuHkuO/qH+dfdfjVaNdx6dgmzjNjBQ5EmZAlvdziEWB6Hbma+w5XDGVY9NkKaG67AP7mz+n7fiRB5qbo8UqZ5NE0XFgORhYnoesk5pHA+hwXBFy+WVbc3LNkErixA8LlmlSlsLEMlRrT5mVPoHJM87/vMaFGpwVnRzQuQR/9stboi3ukrqm3S/0uYGVIzITBQxshC827B0MN2Ky2utAUpCNzDlc9wFPcE1skJjXXYz/0iFNOcb6JYtPDMeVN9VC9jhp0UB7pq138WgdDPzLTUmaL2IDGll1hzp1I61bZPfTbDyOOaus2A== 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 Wed, Feb 01, 2023 at 12:41:37PM +0900, David Stevens wrote: > From: David Stevens > > Collapsing memory in a vma that has an armed userfaultfd results in > zero-filling any missing pages, which breaks user-space paging for those > filled pages. Avoid khugepage bypassing userfaultfd by not collapsing > pages in shmem reached via scanning a vma with an armed userfaultfd if > doing so would zero-fill any pages. Could you elaborate on the failure? Will zero-filling the page prevent userfaultfd from catching future access? A test-case would help a lot. And what prevents the same pages be filled (with zeros or otherwise) via write(2) bypassing VMA checks? I cannot immediately see it. BTW, there's already a check that prevent establishing PMD in the place if VM_UFFD_WP is set. Maybe just an update of the check in retract_page_tables() from userfaultfd_wp() to userfaultfd_armed() would be enough? I have very limited understanding of userfaultfd(). Sorry in advance for stupid questions. -- Kiryl Shutsemau / Kirill A. Shutemov