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 20500C54E66 for ; Wed, 13 Mar 2024 22:26:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AAFE18006B; Wed, 13 Mar 2024 18:26:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A5F4880063; Wed, 13 Mar 2024 18:26:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D9038006B; Wed, 13 Mar 2024 18:26:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 79C5B80063 for ; Wed, 13 Mar 2024 18:26:39 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 192CB1C052C for ; Wed, 13 Mar 2024 22:26:39 +0000 (UTC) X-FDA: 81893451318.12.F0F6C80 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf19.hostedemail.com (Postfix) with ESMTP id 1D4BF1A0013 for ; Wed, 13 Mar 2024 22:26:36 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=OxveukD0; spf=pass (imf19.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=1710368797; a=rsa-sha256; cv=none; b=ESWiKq77xpEoBLOXKpCQS+5zyZuXpZr69AvFjIL4umpFjOlXswNV3Tmn+Wb3nH8QukUuih QnZ9i3USPAqtBCSE7DevNM82yT8WuW//y9qqRxLXzXKec/qnZUpvd13eDHEDTNkDs56QdW zJXRKwPP5ctGBoG3HfeufKWIHDBZM4Y= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=OxveukD0; spf=pass (imf19.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=1710368797; 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=VmtTd9EKYIV2ElEzvy2se9UCmMxZ4RexG7SoSlWBNsI=; b=xapxfrwkIQfDB9UrKOiMtfqjHnfW+78bgNT5sbAsnNUb4cEoIbgWLvWGLStFfplnhrgtYR UUzFTPk7Utkk9N6KmbKnMyD+fo+Ezjwhk2rTDBHvmxogAffyROgU2XS6am8Pkf173qakzA +RxSsd33FuZmJeMOqtZrzyb38Pg1BmA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710368796; 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=VmtTd9EKYIV2ElEzvy2se9UCmMxZ4RexG7SoSlWBNsI=; b=OxveukD08APR0alvU4AF6r1Mmz25S4FesQ9GQuf9iIIg5Z24V2Coi9KlfxYghES+pVhbRA 6QoQcJCu8sbHuYa+UUOhY8nX6oftkd1qpGBzJSX6L30MtJEvtO8rD+1ioHQ3CyGwDwjbCX PC07uE9IJdQr9kYtgxVvL6/5udq3rQw= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-332-5USQ54QjMAGW5lHWuzBr5w-1; Wed, 13 Mar 2024 18:26:31 -0400 X-MC-Unique: 5USQ54QjMAGW5lHWuzBr5w-1 Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-78315f4f5c2so9317885a.0 for ; Wed, 13 Mar 2024 15:26:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710368791; x=1710973591; 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=VmtTd9EKYIV2ElEzvy2se9UCmMxZ4RexG7SoSlWBNsI=; b=C+T6oWjyvVOx/kuqsuF1pWmHtW7tz0Vt05eBJ5ioKdkPyPImF0bZbNG7FRpd6n7CPF BNf+ZD1ZDXUwklmtP2NYb/Jsnr3/4VyYb8P6RYUN8uhbsOTyZtNLoEjj/Q5F9jwCijBU khPtgm/XHMqqyVmY0rrF5DwIi9wjcwQFmJsjYZS/IQbEIoeQAiwQOuraKiGSvh1Ie+4g VjKOtSACyc4s5iJnKb616kjp/AQzpFWZr2wyaD6Xsf0qOi7VV+FZf1vf4iVaQnjYtEBA ts4Up+tbuH+JogCmP5fKcRWaVhqPq7mbz8cJYRpv2a61IWhRcjU+UP+0v9v72PWTOgYp kJgQ== X-Gm-Message-State: AOJu0YzN+BwC5j8GAJ2pxMBs6A+J//yVvAL0USKybYfiRRrtvvbHVK4/ 7IDyWKV3iaGQVlZ5VS3y3AdUt2Xs4Gx2RWE/brMz6FAxW2cdlQRpICWeKNABdD6rM6giZHm1r2D IoprOlBkrJ+2H0wbw6dGI4At+QR8asNCgWksCi0niy6aMjBVX X-Received: by 2002:a05:620a:2408:b0:788:46ef:67ca with SMTP id d8-20020a05620a240800b0078846ef67camr122020qkn.2.1710368791359; Wed, 13 Mar 2024 15:26:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEJAB4opU4XfRtuc8thUEjP3QE73Fto6VzagJuRR1SueJVLvEA1hO2rdslOY9a4VV9g4yLgSA== X-Received: by 2002:a05:620a:2408:b0:788:46ef:67ca with SMTP id d8-20020a05620a240800b0078846ef67camr122004qkn.2.1710368790947; Wed, 13 Mar 2024 15:26:30 -0700 (PDT) Received: from x1n ([99.254.121.117]) by smtp.gmail.com with ESMTPSA id p7-20020a05620a22a700b007883f2f48absm77221qkh.108.2024.03.13.15.26.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 15:26:30 -0700 (PDT) Date: Wed, 13 Mar 2024 18:26:28 -0400 From: Peter Xu To: David Hildenbrand Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Muhammad Usama Anjum Subject: Re: [PATCH] mm/memory: Fix missing pte marker for !page on pte zaps Message-ID: References: <20240313213107.235067-1-peterx@redhat.com> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 1D4BF1A0013 X-Stat-Signature: dyts7ycn7kx5bfknqqtyehyc1q6fwfzr X-Rspam-User: X-HE-Tag: 1710368796-867370 X-HE-Meta: U2FsdGVkX18H+1YvQTM3KDrr320BzJGRKmKAvzH5d0ZgdX+FYrb8XKI/LNXWARX29p2Xegx5Hob5OQ5pr0YPJrGDz6pM30XH6WBvWE3qBq49/8GV/r8HPqNqwtMu51yxXzungOwippVOYJj82H1l+wOyqo8Jh5nW2HqFBkl1rlz+kFRRqYRdvwRX0jomHzyohtJbo4G0ebo4/D28+RpKCCm8zqkOC3vDja4xzbLVJR7+gvz6rKtJfPlnth5p0HipBqa2ND+RlZ0ur0TMscp2Fs+V9YyCP9ZwIYaiAKrjXc4W/66KWQtxOIndCBVCR8nUIo8mxqlE1hYPW455c9/u+E9JTDbZU0UtNRBaU9nk7zDSDqt1AR6StApPiiYuDNeD6UY9E8YdrukIk9WXjKP9iPlN7WBw12q2GXuH/rPk2tzUqgOCgDNyo0Cx5shiEd3ALC6EFlVyVJCpvzeq9Uf+HkY79HMhkpoPUAdaCrXF0NVZjUvOI6RfmKFGSDRwIt4p6QmPoJLIJVBS1rGOwmCI1C+J3fOvhPu+C0yNdKJqfFaLfnY9CiFTVRAUKF0yvhL3PcXiXStFvoTcTbdZYYxw4qubBVBDpH9KWE3XVPNuvUfSdxelfrtUoNBeDf5OzZhRbr5po9S7bWtoJe8EIBrPqe4sZi9WLDSHtLXQsp1P3cM1+i+J4ns01tJj5BkjeWG/EYMEIFEpZX8kGfxy6UuoLRDoK2tsly+NUtXy3W9EWkWpp/15YhcjnHP3i9dSLmIkZmtxM/Ohj+5bMWQR1PbNQkzVI6zW9X92aUBfmc61UEIrLSv4+DbLi2CS/C0a8smr0EqS5YJY0h8q1zGt6sWgz1bjputSouX5/TXb6aalLBF3RCZWxqMUSo5RT++psw0jhgImxUH84AM+laAWt2r8mraBroYaN/qYW9dQCidyVjvOLzypgrvcXlaiWi7TqDiI4qK/z4aMhvr3GxNA4+W 4S0NHH+t iLk621Zb3gMp318p4SmeFYHbWLO57sWVFkpYsrYeyb/zufruocl9ENlzbolbbw2nwFYJPJvYbeQ/ohJzz9JA+IvbOMbAFrUcrhOLlZdqTQSuM8Kr3Rn5S+u63kJq1ey/UMqb/TDKX0W6FmCfzAxmSFzsw4pGdq8f5bXkM0GhAmipxVduPd06JtsPql2j8iG4jj6tS 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: List-Subscribe: List-Unsubscribe: On Wed, Mar 13, 2024 at 11:03:04PM +0100, David Hildenbrand wrote: > On 13.03.24 22:31, peterx@redhat.com wrote: > > From: Peter Xu > > > > Commit 0cf18e839f64 of large folio zap work broke uffd-wp. Now mm's uffd > > unit test "wp-unpopulated" will trigger this WARN_ON_ONCE(). > > Good that I added the WARN_ON_ONCE() :) To be explict, VM_WARN_ON_ONCE. :) And that's my guess that you didn't hit it when you posted the series and did the tests, as I know latest distros like Fedora dropped DEBUG_VM, so maybe you had your base config out of there (but I normally have it irrelevant of that). > > > > > The WARN_ON_ONCE() asserts that an VMA cannot be registered with > > userfaultfd-wp if it contains a !normal page, but it's actually possible. > > One example is an anonymous vma, register with uffd-wp, read anything will > > install a zero page. Then when zap on it, this should trigger. > > Are you sure? zap_install_uffd_wp_if_needed() contains right at the start: > > /* Zap on anonymous always means dropping everything */ > if (vma_is_anonymous(vma)) > return; My example is not exactly how the test failed, but should be a simpler version of it. To trigger this warning I don't think it requires the zero page to be wr-protected at all or have any pte marker involved. UFFDIO_REGISTER should suffice, afaiu (feel free to read the example above again; there's no mention of ioctl(UFFDIO_WRITEPROTECT)). > > So if that's the case the unit test triggers, I'm confused. > > > > > What's more, removing that WARN_ON_ONCE may not be enough either, because > > we should also not rely on "whether it's a normal page" to decide whether > > pte marker is needed. For example, one can register wr-protect over some > > DAX regions to track writes when UFFD_FEATURE_WP_ASYNC enabled, in which > > case it can have page==NULL for a devmap but we may want to keep the marker > > around. > > I thought uffd-wp was limited to specific backends only. But looks like that > changed with UFFD_FEATURE_WP_ASYNC, I guess? Correct. That was also what the new PAGEMAP ioctl relies on. > > > Change itself looks, good. Not sure about the anon_vma example above. > > Thanks! > > Acked-by: David Hildenbrand Thanks, -- Peter Xu