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 DF32EC64EC4 for ; Fri, 3 Mar 2023 14:33:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6449C6B0072; Fri, 3 Mar 2023 09:33:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5F55F6B0073; Fri, 3 Mar 2023 09:33:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4BC376B0078; Fri, 3 Mar 2023 09:33:05 -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 3C2036B0072 for ; Fri, 3 Mar 2023 09:33:05 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 91BC51A123C for ; Fri, 3 Mar 2023 14:33:04 +0000 (UTC) X-FDA: 80527829088.20.7E48F0B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf16.hostedemail.com (Postfix) with ESMTP id 47EB9180016 for ; Fri, 3 Mar 2023 14:33:02 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=hxQjPQeT; spf=pass (imf16.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677853982; 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=q66WHdU6x/5niRu8KQgKedZzzbjzv2x/XG5j8JQ+CoA=; b=r8G7GXPGfRua0S5PxUkMcPLOyXfdD48RrG0jQ+xExIY/BUEdTUDOHhaGZWwgSLjchKHQOu NU2hsz53iwrVe2IbJAIJLRawMFI4/a1XsBakscn1s7Ne2SIASgoqwV4NPtkOQuHMZlQ67o Y2AEq30QuCjS0yTGOzzhO5BwGxrhZU0= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=hxQjPQeT; spf=pass (imf16.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677853982; a=rsa-sha256; cv=none; b=QPCfRznWXnH7TBn1yeDMcf5cfC1dBkmrvDrl2Y1SR/DOTpRb0G8C3Njhg3xcIGHcAnyklP cr6PC3asdAGJuMLZbY/g3Y0vixmeIj3hi5AIiCVqhyHT+ML2lMq3r/wegBzAuAds0bT67n RmocXQpl72tJzc5bvps4DIGocUX1FN0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677853981; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=q66WHdU6x/5niRu8KQgKedZzzbjzv2x/XG5j8JQ+CoA=; b=hxQjPQeTBe6TaCeMmnoNwAP7WBv5eyXPcsBsEJHmLI94MxbWfADVOjfx3QuPpGUyNUmcRj RpuGIrRheooEA9qPjaVRzRQiZqVSKH5f/Z0zoywe/V6VplkLcBuwKzh4/k2YHhGofpEhjI CYnI3VhtG0p+M/dj32xmAdp2j8Yz6cc= Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-640-7sSqz-58P6uSbB8bDfaTzQ-1; Fri, 03 Mar 2023 09:32:59 -0500 X-MC-Unique: 7sSqz-58P6uSbB8bDfaTzQ-1 Received: by mail-qv1-f70.google.com with SMTP id px25-20020a056214051900b0056f0794632bso1478275qvb.18 for ; Fri, 03 Mar 2023 06:32:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677853978; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=q66WHdU6x/5niRu8KQgKedZzzbjzv2x/XG5j8JQ+CoA=; b=d9W93FkGHHNtL+xDEOxUyyjgfiiyHeaaGXQ3cAOzfWbpIMlAp1Xb8itx5uTlVJ1F4b Qns1RbC7zKWhAKY5NDt9zkjAbOkBrSBGwc6LQvwdaWvIdi8QBTldb6+cuejHFBqgCERK OqxcPiHYa+GB4oLZWpQyio52iym2agBNEimfI+vKxStY4HCP24X8Dv+Ec0RiVKsP110y Fb7gtObJoX7o5GwPeM+LSZRLghCU8xlAcNGo24fgbQYUqjISnCNxAG24VEyT7ZSlnzfJ +tNxfKdeaSDsyKKdlaAGfXDQ5TCgmhe7/LtOClkBy5QeugX7xqWhSIYaYIL39rQ3oWXQ L5bg== X-Gm-Message-State: AO0yUKX+19oCvShRSeCx17vq2k2uyriQPJxb18lWvzZgcBzf9HhVdHp+ K310PSfzvoHHHyxHtHPbmljq5Mx2K/5JbFPyU9o+ZNCZoteQ0yygrjHVKfsDxCuZ5ljI7Da8Epr 7G+AqECOdz2c= X-Received: by 2002:a0c:ab08:0:b0:572:8e20:bd7 with SMTP id h8-20020a0cab08000000b005728e200bd7mr3020917qvb.4.1677853978763; Fri, 03 Mar 2023 06:32:58 -0800 (PST) X-Google-Smtp-Source: AK7set8sglo/FoEi7ArTGXrvY2lrstmRXOGbl0sDhxp1sccLW2w68eyU8sdQoQ8QrMekMlObdcXa5w== X-Received: by 2002:a0c:ab08:0:b0:572:8e20:bd7 with SMTP id h8-20020a0cab08000000b005728e200bd7mr3020876qvb.4.1677853978434; Fri, 03 Mar 2023 06:32:58 -0800 (PST) Received: from x1n (bras-base-aurron9127w-grc-56-70-30-145-63.dsl.bell.ca. [70.30.145.63]) by smtp.gmail.com with ESMTPSA id l11-20020a37f90b000000b0073ba92629e1sm1814677qkj.23.2023.03.03.06.32.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Mar 2023 06:32:57 -0800 (PST) Date: Fri, 3 Mar 2023 09:32:56 -0500 From: Peter Xu To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Mike Rapoport , Andrea Arcangeli , Jerome Glisse , Shaohua Li Subject: Re: [PATCH v1] mm/userfaultfd: propagate uffd-wp bit when PTE-mapping the huge zeropage Message-ID: References: <20230302175423.589164-1-david@redhat.com> <95b0a3dd-b6f9-0305-759c-b715359b0cab@redhat.com> MIME-Version: 1.0 In-Reply-To: <95b0a3dd-b6f9-0305-759c-b715359b0cab@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Stat-Signature: r3ugbgppdyma7tc3ju5xsm8ojjdua1nn X-Rspam-User: X-Rspamd-Queue-Id: 47EB9180016 X-Rspamd-Server: rspam06 X-HE-Tag: 1677853982-528227 X-HE-Meta: U2FsdGVkX18OfIDcaUhlE13+7hPdHKpTNCbDjZmrR08pafnt8EdCKjc1jRLbWMITfVssGVfMDGHBCTxYTjiSHGKYVyaS67/TFVwrJNqBxQI3SXLpjN+N29RjY3nxF+ge/G/towjeG81yVZcM3d1ycVs2JOcbHhxqR4gAXfcHLL+XlZTV3vUZgzWZgMV7CPH/Fwyh3/geAvKzYCHHxWtIV/ld7wrHvetB34GsKK9Utvf82niBhKdsBDLebZvSWz90F2Y4YfDeMYqMxrnaaLevWoU2eppyDIPYw5Iw7vmM8P2NweMquyZhYhllnzYC7eTj5ah8Wj4CUvDrebj6dPAX1Ahfl/2ZEOeexPul7161SXS84xpLO2jl3jvscFFn+13eSDBd4LqIQN38OqszjKuievuuKUQVOTLfWfBPz1V1XlN06l9KOJ8e41WlW2aUZl6yEB94mEm02N0BaIAUpC5XZKoux1Ael2Q3KJSXPEHsPfwgxOWtt4lztCeCYT5Zl1yJemtC7n1QjWOA3/1nzsQZuvy/kDEZTOLY3Hudqm//HK+5Q17w8nT1rV1/AYDVhofaumO7XzAGfo21ZwuLTVd2GHCs7aCqLeBRVFTQXApvG4mZwV/OQRovrfR2lNVwWAk83R10ySKNzaboJ7Vggbo9FW/UqJJY24Sk7tUIX577plJjLOL35MZ9q2ZASuLQB49HtLYp4LNuvYpG+jG4TT8HKQqVJG/ZySDHyh+dyegbpH53pcaopjnsB1Ei7MWBkxrtd+kOGWHBsTB4RVdEVTgFkVcgmtFFYfhtSjybxTqdq2AIZASZBGrsy/nGfZdapRMX1kGQZSKDxn1mQw4BZ6hKGQo3oz+CfalBgmr63X6zUSpkLM/tL4FvuafpKmvOoH7y+W6Vie8fnc2XG53VCUznfnAO6rLcPVi5NN3ZyN0N8S4hF78z71d8eLNvSzaR/PaBGIXmCb957XdQ18MoPQI Lt5uugss x7O86NwZcel3RR94lRC6XDDHVMR9171nkEEHtUXsZFtceE6w6zvA+DFzeMmcIfgQkk8Ypg5G42DyvDFa3fP2OlaMtQZqOF4kXtFa+gVJmwlbAkwV4PcGV6bMG1pAClpyUYIDR61JlXBfVKnrWzysKAjayiZY0TZv8saIbJamIqs7oDv5VS59JL97BV72/IFYRNwQkMjE+2zjCPDyeT2Gu/DXWQf4/uFAy0WQ1Kqvp8cS3MRXIEV6/zHbZCekEnY2Jhvl3KOon/rKLluV4rJgKfaMOTb6a5y4LObTAVL5aUeRizlVUfx8YdJNwphacA0FWgdAhRcwrm+jq5ADBsnMqqQtKob6S7L//HNYd+1VMGKJEALDr1Z10jWVlMnCsXeJtmf9K 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, Mar 03, 2023 at 10:12:26AM +0100, David Hildenbrand wrote: > On 02.03.23 23:29, Peter Xu wrote: > > On Thu, Mar 02, 2023 at 06:54:23PM +0100, David Hildenbrand wrote: > > > Currently, we'd lose the userfaultfd-wp marker when PTE-mapping a huge > > > zeropage, resulting in the next write faults in the PMD range > > > not triggering uffd-wp events. > > > > > > Various actions (partial MADV_DONTNEED, partial mremap, partial munmap, > > > partial mprotect) could trigger this. However, most importantly, > > > un-protecting a single sub-page from the userfaultfd-wp handler when > > > processing a uffd-wp event will PTE-map the shared huge zeropage and > > > lose the uffd-wp bit for the remainder of the PMD. > > > > > > Let's properly propagate the uffd-wp bit to the PMDs. > > > > Ouch.. I thought this was reported once, probably it fell through the > > cracks. > > Yes, I reported it a while ago, but our understanding back then was that > primarily MADV_DONTNEED would trigger it (which my reproducer back then > did), and e.g., QEMU would make sure to not have concurrent MADV_DONTNEED > while doing background snapshots. > > I realized only yesterday when retesting my patch that that a simple > unprotect is already sufficient to mess it up. IIRC the rational was it was fine for the original design because we didn't plan to protect none ptes, so missing zero ptes would be the same as none, which was not a problem. However that'll just make apps like QEMU stops working when they want to trap none ptes by using a round of pre-read, then the workaround will not work either. Copy stable will make the workaround also work for stables. -- Peter Xu