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 D8CB4EB64DA for ; Fri, 14 Jul 2023 03:32:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 65988900010; Thu, 13 Jul 2023 23:32:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E2D6900002; Thu, 13 Jul 2023 23:32:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 45CF1900010; Thu, 13 Jul 2023 23:32:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 32A29900002 for ; Thu, 13 Jul 2023 23:32:41 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id F03B2140467 for ; Fri, 14 Jul 2023 03:32:40 +0000 (UTC) X-FDA: 81008795280.05.7C170D1 Received: from mail-yb1-f179.google.com (mail-yb1-f179.google.com [209.85.219.179]) by imf18.hostedemail.com (Postfix) with ESMTP id 13BDC1C000B for ; Fri, 14 Jul 2023 03:32:38 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=kBrYQjoa; spf=pass (imf18.hostedemail.com: domain of surenb@google.com designates 209.85.219.179 as permitted sender) smtp.mailfrom=surenb@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=1689305559; 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=ms2nXM5/BYwo7k1GZ/TYUrAcxu0MWAJVcs3twyNZFFA=; b=vibnvUflxM8D17Mt4IRmNhgLOVC3luWMvXyPnN41zc13yBBoq9PHEgcZLfS8VN4s2hghrg vfT9IcWie1oB8D4RxNWNAE96ayOEhwhlqNMSCOrHwJkNzndVMJMFoXL7JieHyvCl5MkvGg VnfTx9NMkP0glD4ASlkVothMzbRrkH0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689305559; a=rsa-sha256; cv=none; b=sy6KbAr4gEjF7YVz2gf3eLIbQp1vwmubdoOGg/O2CnfBe5zXCnDrk4uRw8x0MtwiXLsu2/ mHE5daKKHKSzy9csRW5crQPxQOhUeNk0Y3nyDrsXGfC5sAJfKas54kHTkWXkGJz3V0qx5g 7/uuCAMuDb6kMgD7SDieKd4yNNt783s= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=kBrYQjoa; spf=pass (imf18.hostedemail.com: domain of surenb@google.com designates 209.85.219.179 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yb1-f179.google.com with SMTP id 3f1490d57ef6-ca3cc52ee62so1370085276.0 for ; Thu, 13 Jul 2023 20:32:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689305558; x=1691897558; 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=ms2nXM5/BYwo7k1GZ/TYUrAcxu0MWAJVcs3twyNZFFA=; b=kBrYQjoaHeK5Wm7RCg7UO4ciFSyH+qP2dOrO9Lr5m1ohajjcGyumbjS5nPh71v5pnU +TlP8tO7rO3g0HdLAqPSfHxq+afufc9sRRiXhLhWZ8knNODUl9wv8zYt3foShtMGyokj LNFp3r4fs+ytYiaVsQ334hv7AOq0Z+E4c3BcACyb6jJ/Vj7kdRtZacTS4qa1FRclOaxu gvbcj63zfZiG4jGhmE7UPCkJP83qsp5R6SjwCnhzWjn5QYOhrUMuon+CFiTd7LM26uMr 0jCYOr6p2E/kl2a05NnPHIvbX4ldvFJ9JfDNDA9gFXIefjuwnVv+VdamRPKTErKlScjs xsoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689305558; x=1691897558; 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=ms2nXM5/BYwo7k1GZ/TYUrAcxu0MWAJVcs3twyNZFFA=; b=gy9jHOuiv2/FXBJMZrr7l2dN9sosv1mIbZ+VDnX3v906qjvsi8bpRML0Z/DE9lMF2+ KkRqp/ynoBgBE5FwB63lho17cjkn7N+eZgT9HOll1d4Jnq0fBDwWsOTAu/giwk8oLrYf xkGgwKvx5MjrRoAfw0qYhApF8aWvFlnvKrsZxURRUFV8IfaW5h7J2Apq/X/tWwAXeLQt TMOnLhf6rRk43j0Ae4Q1kDc3mxbGCs0UmDTMqqIUAdS2tfjqv2ffkkTWYoicQOnpAapH vG+wfbLfFF37v5fYe9rj4xXLpZ0KTOMfxJIS5B98/lt4Aggc9QHLkhg3DmEmyR+o3ZD0 /Dkw== X-Gm-Message-State: ABy/qLbZXxP88YuI/OFV1Stqh10cD3RkMwjaR+RyMhNeP9HxkuF47YEq g4k8OXhyXLKKOsxasMjjGD58ICGe5fCsM62EBvAKew== X-Google-Smtp-Source: APBJJlGrDZMKzvXFY6r1M2JbPa+K0Ahc7dCi91emrnWB5ZMTMu8jshQtko/9FvONCrPVy//c6H7o/UbZarOtttfeU+4= X-Received: by 2002:a81:4ecf:0:b0:56c:f32d:1753 with SMTP id c198-20020a814ecf000000b0056cf32d1753mr3761753ywb.44.1689305558011; Thu, 13 Jul 2023 20:32:38 -0700 (PDT) MIME-Version: 1.0 References: <20230711202047.3818697-1-willy@infradead.org> <20230711202047.3818697-8-willy@infradead.org> In-Reply-To: <20230711202047.3818697-8-willy@infradead.org> From: Suren Baghdasaryan Date: Thu, 13 Jul 2023 20:32:27 -0700 Message-ID: Subject: Re: [PATCH v2 7/9] mm: Run the fault-around code under the VMA lock To: "Matthew Wilcox (Oracle)" Cc: linux-mm@kvack.org, Arjun Roy , Eric Dumazet , linux-fsdevel@vger.kernel.org, Punit Agrawal Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: dryje88dj7fmpruibuoee1fs444d48oj X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 13BDC1C000B X-Rspam-User: X-HE-Tag: 1689305558-581409 X-HE-Meta: U2FsdGVkX1/RBsCkL+9X0SK/Ue8RlJ343e+E3tjXNbUb1A++7GATZ/7MGkwMtslNsoRoEHt9krSnsysKwu6oE+5jR64GY3vRcImfLMC2GRvCmTNfrwkiKPJHbeIPILY7rPiw499wJdwYBYVIGZnla8K6WyBA/L/Ph3NNIWjzg/NQ99XwZYpvYj/eigwEY86v8k2evuYvpN9TfoYDgNjurKQbRFoMhdi/boKwCDzC3+b/qkb8m/HjpPyI3Nfxbn0oYTjJygTQbYIzSwzLkgpGvvryvRW8uJJjpl+WVjtyCvQQerpMShkg4BW3054DGcWOkj9DysYzIybRyx3AfxiXmQndEIxJKKohBN0O4OAx7GsHeKYxixwMdlft9zL3QhBPYcGxOhUXGlnltKG0XeKDL6Xf0BCP17j/1i+g+6rqLkz0tLUiMrsMLtRjtbAt+EFh8+/4Z6+qlXkTKs5G/VkvoN4+WRc0mZBzBdZmD0Osam7q9pb4XS+BoRjx/Zjl2Qybel9/N6OwGKYGje+mHAD5tBNQQnz4V//CzPyZErV7KM4hOWw9KCcqwvjgMX799n90k0fzKh9zTTha13OJstenwMkMj/P82tFSQrwaEmClJ/FCOI3PgKSC1e0ZiLMjUMv9tNhFmo9mROnrvwp7li8TPWYCk//rIPfnxdswaiVD+zYA8V8wZNmkO8XEioPFY2FfwzxEHm0yxtdi1SVSk9W8hItUdClOpneMf0aAQvpHYqHRx/TWUQmKLGcJf3Cyk/bUuq86u8d8KGkfBCbELuB/bmbtTMMA9YWdU5AN3XEv+Ed9b0+QLMLxOoV7nX9D0yDlraxntsiIQSTTTIN86f7lSzu0zbPZsGQjn8u1BvSLtgSIT1WcHOTLE/PuhY0b7YGe6qJrjcsNDazt4vsVr9Yz8cwX65OxXJtSQAJe53oithgBYFDarUWLb38ZmHEsW7xVUAquuCoUP4h9k/V3r+S iBDri50e dLImr4BY8UtPggcDxAgrVlTvlz2krUqD8lmxQxF1Tiz18TkTEX9ycCbLKpdnmMn3mV3y0U2Mb9yLyxrVd+54q92I+kQCHIoZQ0yfQNSjRqKQYTQhIRFt2f19XMEcWGhtGwBiM7T6iyYGEjVo2rT8xNHnR/L+GYfJh7/1alX2abeNRye0AxLjvUuNEnVD2YijJ2zbZHYj1642BF9SfdLQlfkTxD/zKvGMR2cSAybbIeLpdB6AYRmg6mYUcDzFx0aUE23z/x022dh5SmCb7GQUfWEDgZG66IqQWHMQSjXzvRVe5o549kaoCwu97qw== 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 Tue, Jul 11, 2023 at 1:20=E2=80=AFPM Matthew Wilcox (Oracle) wrote: > > The map_pages fs method should be safe to run under the VMA lock instead > of the mmap lock. This should have a measurable reduction in contention > on the mmap lock. > > Signed-off-by: Matthew Wilcox (Oracle) I'll trust your claim that vmf->vma->vm_ops->map_pages() never rely on mmap_lock. I think it makes sense but I did not check every case :) Reviewed-by: Suren Baghdasaryan > --- > mm/memory.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 709bffee8aa2..0a4e363b0605 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4547,11 +4547,6 @@ static vm_fault_t do_read_fault(struct vm_fault *v= mf) > vm_fault_t ret =3D 0; > struct folio *folio; > > - if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > - vma_end_read(vmf->vma); > - return VM_FAULT_RETRY; > - } > - > /* > * Let's call ->map_pages() first and use ->fault() as fallback > * if page by the offset is not ready to be mapped (cold cache or > @@ -4563,6 +4558,11 @@ static vm_fault_t do_read_fault(struct vm_fault *v= mf) > return ret; > } > > + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > + vma_end_read(vmf->vma); > + return VM_FAULT_RETRY; > + } > + > ret =3D __do_fault(vmf); > if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_R= ETRY))) > return ret; > -- > 2.39.2 >