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 E966BEB64D9 for ; Thu, 29 Jun 2023 16:33:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 323268D0003; Thu, 29 Jun 2023 12:33:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2AC618D0001; Thu, 29 Jun 2023 12:33:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 127AE8D0003; Thu, 29 Jun 2023 12:33:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0229F8D0001 for ; Thu, 29 Jun 2023 12:33:13 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 6CE521204B5 for ; Thu, 29 Jun 2023 16:33:12 +0000 (UTC) X-FDA: 80956330224.07.480D207 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 0B04214000C for ; Thu, 29 Jun 2023 16:33:09 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fp8jzEMh; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688056390; 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=T9WhCFKDeQiwQ9P8Z4ZmNdOekWIBt/DtpJr87ziAM18=; b=2HM2MFBHafZRtxlwL1+DRbpcrVy0kzSIDRrKRpnvq1FvPhroPYfcewQzrx2WRgsgw4Zgtv HiAsVan2+a54mZ6EqpFN5G9fIqET3sy1dn21y3RNm4koGyA2969Te8u8DUcJ0+AjEWqPdd WHjZprdoNPk5tYt7kJEdtu8pTui3b/A= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fp8jzEMh; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688056390; a=rsa-sha256; cv=none; b=Dz4itQ9Unhp5mBUl6I7a0+QPPPiiFds4AJrQWdFc2E3vaDpZ3uyt2FQ1YfrbTPlI08c2LC hnKY3KrHy5EGUxwFwseJ/nZuvhnU3FYHDWvSAMh7bD0IJQzfmAPpmzu0LgAimwOOJmM1ix T+ejnTOuc2HuKaPYd4uO1teodaCcnBY= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1688056389; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=T9WhCFKDeQiwQ9P8Z4ZmNdOekWIBt/DtpJr87ziAM18=; b=fp8jzEMhzvbV4l+FKW2NZh8kWsKhJ3KsiUUroab52WjR2TzXTia1usPRyr8UlW3jemzOBa 3oF9ynfM7XE9qNYh6CC+sDI8RYHofN8TmXxwOUeumerc1295wDGLzZWHKGa+xVgegipy0a /fENGhzWkn1wUHzlKrEJ/IuNTnY6yVk= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-209-7eNnG-6zOGWyiVqvzffjoA-1; Thu, 29 Jun 2023 12:33:08 -0400 X-MC-Unique: 7eNnG-6zOGWyiVqvzffjoA-1 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-635eb5b04e1so1930106d6.1 for ; Thu, 29 Jun 2023 09:33:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688056387; x=1690648387; h=in-reply-to:content-transfer-encoding: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=T9WhCFKDeQiwQ9P8Z4ZmNdOekWIBt/DtpJr87ziAM18=; b=GNZGsSGiox2idfrOxDN0+YVbeo4ATLq7zHPhR2knMs8OpC/MJpzUnmrHoXEc+6j6cJ A65vcVSElXNQa81nPC5b+67d8RyQ2WaRyGbEfTlyx9vsP8G8Q4mUfKWoNJhaG3UbVy/N MqCUSbEaXB1nXccU/4UM1UJuqG791SdTijym77kPR3RnqhbF8FUxreT7kFBOj4wBTjTe KlgMqaSfPHa02xXdcFcDIPvLXjsLHDlROst3DUao6+vgTH9LD+k9bAxzjhZXjsmYCs3C 22EERcXsKPg/4y9v3CGD6xxx8ZbVg9kMLNUXl7cfTY85Qi1EoFZmKr4+jiuxXHnfkY3I BC5Q== X-Gm-Message-State: ABy/qLYMVNWBWPHwTfyJ0mezpG7pVE3FlLpg6aN4PjXRWMbuF+AC3PQD gWHzvcu9Xk5qDh9LJanEnUagGQ4VhEdHbYofsTeozjD8Zi9Wp9LUfdVVdV+Bw72macCXwQMEjV1 uEE5FAiDLdXo= X-Received: by 2002:a0c:fbcf:0:b0:62b:5410:322d with SMTP id n15-20020a0cfbcf000000b0062b5410322dmr183811qvp.6.1688056387479; Thu, 29 Jun 2023 09:33:07 -0700 (PDT) X-Google-Smtp-Source: APBJJlEsboSyRALJa4QGaJl+D6XdcWr9w6NJmcI+LBYwqVfR+4ZEGxEM7LvIqdoVBmRJd0KtsVwtMg== X-Received: by 2002:a0c:fbcf:0:b0:62b:5410:322d with SMTP id n15-20020a0cfbcf000000b0062b5410322dmr183772qvp.6.1688056387069; Thu, 29 Jun 2023 09:33:07 -0700 (PDT) Received: from x1n (cpe5c7695f3aee0-cm5c7695f3aede.cpe.net.cable.rogers.com. [99.254.144.39]) by smtp.gmail.com with ESMTPSA id w2-20020a0cfc42000000b005ef81cc63ccsm7174643qvp.117.2023.06.29.09.33.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 09:33:06 -0700 (PDT) Date: Thu, 29 Jun 2023 12:32:56 -0400 From: Peter Xu To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, willy@infradead.org, hannes@cmpxchg.org, mhocko@suse.com, josef@toxicpanda.com, jack@suse.cz, ldufour@linux.ibm.com, laurent.dufour@fr.ibm.com, michel@lespinasse.org, liam.howlett@oracle.com, jglisse@google.com, vbabka@suse.cz, minchan@google.com, dave@stgolabs.net, punit.agrawal@bytedance.com, lstoakes@gmail.com, hdanton@sina.com, apopple@nvidia.com, ying.huang@intel.com, david@redhat.com, yuzhao@google.com, dhowells@redhat.com, hughd@google.com, viro@zeniv.linux.org.uk, brauner@kernel.org, pasha.tatashin@soleen.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com Subject: Re: [PATCH v5 6/6] mm: handle userfaults under VMA lock Message-ID: References: <20230628172529.744839-1-surenb@google.com> <20230628172529.744839-7-surenb@google.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 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0B04214000C X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: rrknetqd8ypzf95hr44eoyip1cdbjndq X-HE-Tag: 1688056389-471582 X-HE-Meta: U2FsdGVkX1+ZKkIsiSnxvimfzgFEAnqyOjppNe1xrYN/8IAkakJHYUNAR5bNky8IX2qJMDAkOnhovNjAOvM/wKz0trjg7guVtaiUnm3hoyHHfn5YAi5TSCNkRaGIMZRm4IIbevz5QB0FhWrUILgDRcgqqdvhirKUMm1bA2fpMXtYOxcYhxdhKQ1mOWt0642PzFTj5NldyUTrQzBwLsssOGv7d7/rhBmo1HnCZgotAY91liO8HPzX88/tsiWsKvsRmp/BmBbLxX0XqBgxKpekO3dv5V2wtmUoD10hKQHmOIpAGcRxrqYwv8FKr3p7ZB8f98HB7EJoR16YdJoR7rRHfxwxm6IXzPlSuKvKg7VqRen3VkFnFfET/+/V73GW9jt8FaWLZ4g0bkj5Q4pNaZHkY0xcTZ9WjRKDxrs0Wpqwd+8r5k6NdGh20cPM/WqE/x2EgmQwFMlovqVrR74So1LI6MHOmavCwEgjQXVjz1U6uexSjXN1rxxZ6kkRhLGC7nXukCFezPqX1Tj4+8lYfOyrJbeXQPp1zZUoMcYogjvUl1X9y7kc5wzf8Ze7N+aEJ0H7L1K+QnMhVaP2WprTH5lg5/VY/2xdnumV1xlhi2xnsFjisq5l86wcEdj44IB75C/gErAy28pYb/xdbjG2pAwJr5APY/UmPqow/YeQrE/Ugg8HoSIHyZoXM5UhvklKUM4p+pRLxjRMqNrYHKzb2UeV7fhJMgeBMIL8QiVlCDH9NbU9qOqqGGpbfpxGPHILFO25CBAWUGSjWJMkTPRiUBigz9SCIosBVVJlGSCopcDrgP9JSdCOme106woHE0DiFaPjxkzFUknyxGkGMOidsglAMWTpgjUcxxs463SeR+li6zdvcq/iMMGUMLZDMj2e9MQ5Xzg5uq9A/5d09SzlSp3eclRDr70JRUQGu+0JksKlG+oHHC+aIAQekqrhu6NURL+OxRzPR4KG4bJLqbJzz6o 66EA/7nS HbFmwlEMJAprXn+mOi2kOtHZCRYJV7bE7ZWsNINyvCT+LKxdg/SjB4HZnZ/eJ1WMQ8emxUBgrl9PfQxAUoGucflQRWWJKSAZI+EfR5Bpmqy+zofplZ0VYOtu5Ao5Zk+bjeABr0FLtcBZYgAOHPZaz0y8VekW3l8JN1NKWd/47miKi0yYbkw76RVOCvQ0C0sak/DNjKlbrFBXWPh+yrnLdur+OBw1z3+vM5tn2J3nI4VG46Tu4XaLxLzxS8CS5/fj2jwRWGxTTUtsevEM+QO6vDw38+W3Vche8NU2B+H+Q+V+PXyANtvQebQzIXiZJdNeTFAbJFqIN/NeCvcd20xiD5gAlzXq99tPFXsApCMjunpbTDK5HkJtbsTmclFwjeDwwT6Ew4xlKk9BS1OP/WYXshbCY+A== 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, Jun 28, 2023 at 05:19:31PM -0700, Suren Baghdasaryan wrote: > On Wed, Jun 28, 2023 at 10:32 AM Peter Xu wrote: > > > > On Wed, Jun 28, 2023 at 10:25:29AM -0700, Suren Baghdasaryan wrote: > > > Enable handle_userfault to operate under VMA lock by releasing VMA lock > > > instead of mmap_lock and retrying. Note that FAULT_FLAG_RETRY_NOWAIT > > > should never be used when handling faults under per-VMA lock protection > > > because that would break the assumption that lock is dropped on retry. > > > > > > Signed-off-by: Suren Baghdasaryan > > > > Maybe the sanitize_fault_flags() changes suite more in patch 3, but not a > > big deal I guess. > > IIUC FAULT_FLAG_RETRY_NOWAIT comes into play in this patchset only in > the context of uffds, therefore that check seems to be needed when we > enable per-VMA lock uffd support, which is this patch. Does that make > sense? I don't see why uffd is special in this regard, as e.g. swap also checks NOWAIT when folio_lock_or_retry() so I assume it's also used there. IMHO the "NOWAIT should never apply with VMA_LOCK so far" assumption starts from patch 3 where it conditionally releases the vma lock when !(RETRY|COMPLETE); that is the real place where it can start to go wrong if anyone breaks the assumption. Thanks, -- Peter Xu