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 13FFAC4345F for ; Mon, 15 Apr 2024 16:46:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 72CCD6B009E; Mon, 15 Apr 2024 12:46:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6DACD6B009F; Mon, 15 Apr 2024 12:46:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5A1DD6B00A0; Mon, 15 Apr 2024 12:46:11 -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 420436B009E for ; Mon, 15 Apr 2024 12:46:11 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 03CED80617 for ; Mon, 15 Apr 2024 16:46:10 +0000 (UTC) X-FDA: 82012343742.15.AE00038 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by imf15.hostedemail.com (Postfix) with ESMTP id 44F0AA0027 for ; Mon, 15 Apr 2024 16:46:09 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=OxHODTNB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of jannh@google.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=jannh@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713199569; a=rsa-sha256; cv=none; b=D5WOuFHlw2FAii0RY+9vPGTIJML70uuUnea4L7QVJ1gGl4dkYgzk7LTwG88vvWlyJ+J33u zAFenz2DID6dYL6PFk2VSl8bf3eBXGccq0mH5V73yvVnSDPb2Ekk2r7lA+d7bMUX1SUpUp OiplnuACSnBT7AK/ur3lU0QcW8d1h10= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=OxHODTNB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of jannh@google.com designates 209.85.208.53 as permitted sender) smtp.mailfrom=jannh@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713199569; 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=PswvXI/q2W/KtWN3sZKpYIsUELf7WQMX9VKo7zDwt9E=; b=DJ5hJUR0QDgADx8KYmFfd2j57NYA0vTHyYqsuw8FOV5sCkfuYKnDYfu/AV0Jf0wZi1tGjD FbA5MglkG2cPqKc39N7pBrO3hFT6L6nuNVKYdNQBthcI2sqS+TIakvcjvPs1IU208+GQI4 OAnpxN7cSFuouZ/8ldoDD5EeB8Ml3Us= Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-56e2e851794so409a12.0 for ; Mon, 15 Apr 2024 09:46:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1713199567; x=1713804367; darn=kvack.org; 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=PswvXI/q2W/KtWN3sZKpYIsUELf7WQMX9VKo7zDwt9E=; b=OxHODTNBoVR0DPN2wd9jJ/RN3Bnyvqab8o4zd39bEJCtSA7SNxYTggw8J++A82Eac7 5ES5/D5lACdEKI93PT8nUt7rG++LJ33/sev+9c3MWo/aYmnR1K7XA5l0hUULyjxu2DcQ 92aL8STgcXRQAJj+77QrlbgfYL01j+0NfDgjmknRUzYTuOUdt63yKeajxNqSVlsB1+ST UXkYrTMMwNyMhSgqBG+mPn5FTYkha7WI/LRgVxZt0jVUgUEP9TeaJ6Pql/jAQx0hS4SE aghYigL2Clq1+K4Kfvg4RUyBUd942VokJTaJF5cQThzH8tbinqZf+Q2tP7UjgYls+FiM gvOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713199567; x=1713804367; 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=PswvXI/q2W/KtWN3sZKpYIsUELf7WQMX9VKo7zDwt9E=; b=MH2UoPyhQEqx0xGGbzfmu5CslEOTec/XiJppFZAF7JJnJnGXVmxeYY7dEnH3GYfe5n +I8em1SXsTZYTsOmuQA13VJdfLFyKxxypkUxpMaX+Zy8k7SzM3v3pBnxw1OFkgH1/1WK 8qARcl9ZRhNoC9q2DBpobDnYZ1NlwGLKBq8g53uhhkdQBU91RNWBoUazPRQhCS7rFkjS iZHPm745w6HPsMzrlcz2T4LcfkxCuzG4vT7LOJ0avLszAODaykH0qaqzqw2eqP4u4Ynl WmGG8MAL0BBXo79uv8QVpeSJDR+u1Dtc5Akypl7VfbBeIK+z0hpy3PNFPCpTc7Pq/qeK q0hg== X-Gm-Message-State: AOJu0YwGNd6+ntgW+VFSTn1VBuzjjuJsv8QhMqwx5ikgZxZmXWrriZAn O4iJ94Y5yOz9kZBpEcYX6pHcBBBPJnO8TeiU1o7Qag+GcVAZOVPX5mOvE6Yi44Llt0h1icH0j+f MLZU9TUding721VVtABW5FIRtgmTJeKNJLr/iTp/bHaxVpkHecWFO X-Google-Smtp-Source: AGHT+IGjxeuvwhxvvRzRZPuGPo3dQs3u4/xU5jBBwUD0UvnjmE05jmp2+Sm1V9KuXmatQzK06VcNQS9KtZO1hCkMo3w= X-Received: by 2002:a05:6402:5253:b0:570:2ec6:56b5 with SMTP id t19-20020a056402525300b005702ec656b5mr159498edd.4.1713199567286; Mon, 15 Apr 2024 09:46:07 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jann Horn Date: Mon, 15 Apr 2024 18:45:29 +0200 Message-ID: Subject: Re: [RFC] Trylock the mmap_lock in vmf_anon_prepare() To: Matthew Wilcox Cc: linux-mm@kvack.org, Suren Baghdasaryan Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 44F0AA0027 X-Stat-Signature: 8bsubpgwwwcp33wszn5nu8y5onqmd5c7 X-HE-Tag: 1713199569-625122 X-HE-Meta: U2FsdGVkX1+4M3mW6Nxh8QR+YTPaRjTOutpu16PjFe3nVul6utI6FVqVYGH1F0/JtuJsMh2eYB4+4TP5Ntg4x9vojW8/MQ14xrD/1wg+qNAatAvKYTiWXAuUHoTQ6uiH/hScPnbYH00Cj3Ox2I4J/qovW8OBnZHozReywRUyJg31a0gS/tqnUDbfUoyyELWccP6zPnH3yxBp0tFx5jgJReRP7aOicjXBwCfbEDGGaiQOQCMdP2lidNyoJ/z/tyfIIAi5vueh8hsexJ/lg2lWR4aBmLxXSfKZnXmm2EhwnUFvndWLMe9bfMUMPtjEmsCPZ+fPOtNIv7cGHOGvJYlizreTm2fjq4Gg3Xz14cNr43VnQ07fIriNNXfDmmjJqlN/OWi5BAf7d5HCv63dkdio3wNxFOqqZduXUjSU8yDSpbRARspj9KC7UxzqB3IHwyxPIXFswDodkQbAckLHW/EHocFPTfH140XiKZo00jCW+USfbo6lBTJtFiH5eFwcorQ/bew9YBoxBC5WxlNBNvzjFuzKplqpJrEF47zRQSaU2i4CdCVDKeDCMIj0DxzEg0s+pE44/nOWq7UUAOQght2+4kF5In6MCVotI+FO3VCwmDp/iY2EmE0dOUQhIUTPjiRYuHaRkUzMw+Vo8CyxDwLsf5FOiKpV/t/Fe4OVyMmqnoJPbW2O9bxjBg8LNg16Fo5bXljPMY9w9estNesoGRviISw5M1UEX8ul/iTG23Rvbzb9kKH91i4KTKpflabhsHW5uXgsDiqm6uzFLPaMg1lPs6WjFdetPOiu6WJlqAiGwT+mi7f/HN+sOsE7Gj5H8KQsDKBlnO2UwLygF4OLNYqRzMf5rMwKwdsLluAruNedF8hvD2dUYNrDczehEDuG0nn12MOhr2e2c639IHkJaZ2fBeVKZFfOtZ5+IZMSpPQehTWf0Asnys6G008DATV6EZNkAdNZ27Ecn3HQRS6jw83 qbu9L2Fd uF7yEWZGo9X78mkxLnw/l6YG1VWDOiqseicMeMAi8dlgZx9A= X-Bogosity: Ham, tests=bogofilter, spamicity=0.087914, 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 Mon, Apr 15, 2024 at 5:24=E2=80=AFPM Matthew Wilcox wrote: > It seems a shame to fallback if the mmap_lock is readily available. > It doesn't blow up immediately in my testing ... thoughts? Seems fine to me, since nothing below the trylocked mmap_lock does vma_start_*(). > >From 70833af858ce41a80b5f0669648ee9f59b149a03 Mon Sep 17 00:00:00 2001 > From: "Matthew Wilcox (Oracle)" > Date: Mon, 15 Apr 2024 11:13:41 -0400 > Subject: [PATCH] mm: Optimise vmf_anon_prepare() for VMAs without an anon= _vma > > If the mmap_lock can be taken for read, there's no reason not to take > it so that we can call __anon_vma_prepare(). > > Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Jann Horn > --- > mm/memory.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index b9c23393fa9b..7075fb7f74da 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3219,11 +3219,15 @@ vm_fault_t vmf_anon_prepare(struct vm_fault *vmf) > if (likely(vma->anon_vma)) > return 0; > if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > - vma_end_read(vma); > - return VM_FAULT_RETRY; > + if (!mmap_read_trylock(vma->vm_mm)) { > + vma_end_read(vma); > + return VM_FAULT_RETRY; > + } > } > if (__anon_vma_prepare(vma)) > return VM_FAULT_OOM; > + if (vmf->flags & FAULT_FLAG_VMA_LOCK) > + mmap_read_unlock(vma->vm_mm); > return 0; > } > > -- > 2.43.0