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 39A0DC4345F for ; Fri, 12 Apr 2024 13:46:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A775C6B0095; Fri, 12 Apr 2024 09:46:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9FFF46B0096; Fri, 12 Apr 2024 09:46:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 87B136B0098; Fri, 12 Apr 2024 09:46:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 676086B0095 for ; Fri, 12 Apr 2024 09:46:28 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1D829160EAC for ; Fri, 12 Apr 2024 13:46:28 +0000 (UTC) X-FDA: 82001004456.26.0FD89F9 Received: from mail-yb1-f177.google.com (mail-yb1-f177.google.com [209.85.219.177]) by imf07.hostedemail.com (Postfix) with ESMTP id 5F1F14000B for ; Fri, 12 Apr 2024 13:46:26 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="V8vgC/h7"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf07.hostedemail.com: domain of surenb@google.com designates 209.85.219.177 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712929586; 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=MD684C+IDzwSheJ1UHZ4hhLjZ76bWs/LZUDmR9GhUFE=; b=WDw+zCK6h8PYcm/vGBpamdbIfPpmycKUijE3Ccvnk82391BestWLrOKFH+6MHe6eH/RGtd /4QowIUKJNeII4UmMYwc4zNWmZYSnUt9k7EgiStVSkqmwGZTyt9qgT4cFTwMWeH1s3OZnf rT1AcdvlFvel4GZt+ghY/ai7FJmgvbc= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="V8vgC/h7"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf07.hostedemail.com: domain of surenb@google.com designates 209.85.219.177 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712929586; a=rsa-sha256; cv=none; b=aOslfnb4cPrLEWw1Ou46larwyoRgGmbaq07An5Tz4Fkj53YbYl3w1/PUBgYYl4fJLHcKcj XamzIjsc+CY7b3fT69hYKNS8reSKmT6uQalbon6PYU3XXfOvMqKnT30YeLuESYV9pg1KFx HA7j8zd9AGrYNq7fsC0cpmykE8zWWiU= Received: by mail-yb1-f177.google.com with SMTP id 3f1490d57ef6-dcc7cdb3a98so897097276.2 for ; Fri, 12 Apr 2024 06:46:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1712929585; x=1713534385; 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=MD684C+IDzwSheJ1UHZ4hhLjZ76bWs/LZUDmR9GhUFE=; b=V8vgC/h7BBTpUjXvnPCp7EGSCZJ7JYbccXc10tIWlE/rcGBxRMMY3rD2z9DRy/sF0V SI2A0khp+CCHZyolWsMYGF1OoaGe59U1fgAnY99LKg4OxRX2+XyLPXOtaQc5qfZdQTgE 9f6SnYCfwsdvbCSk40wZ8H5SSP/3ob/LIT3u216emNrNfPIZt2R5M7hGK85upkOuK689 0sq2im0FD65vksI2aouSZ8GVfvv7+HCDeeQRcqKgsPGn3rXwg3bNovHqXRycMWanCvYn BGwKKoO9eCZyLUDNKLT8+SiesZEWjSLZTgIX0zywBdsSTJPEVEBMxC2huWWBwpkUfSgW j4xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712929585; x=1713534385; 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=MD684C+IDzwSheJ1UHZ4hhLjZ76bWs/LZUDmR9GhUFE=; b=D38SYYghogd6vJivKiTEjomR/KqGTaKpR2WqdfqtAK5DsbWnZHTQn3jU41mMYJO5jO 8YT44GVYHRThfvJ8xTZ1qsiKFxwkSgRxTIsS/h9YNJSFMJL9YguxOkWqWLxz2WxEvaE6 IqmifW7PIN/0AF4q31+9pNE/0oMeNfY0afQx4rtXAw/P7UrSpDgLSR2dtYfYeYvTTZ9i 5Oy4WU81lnOAXgI9ZuHhnvhi7JLhJ1LSl5pg61nvSVOoQm0bpuh/pkUKFf8NqlqjigpD etXoZsTgzuXC3w3CYMuamcOlOqP9Bw99beBZbVxk5IBJtlv+AHJ4Q0mRwCe7M4kbXtzR Wybg== X-Forwarded-Encrypted: i=1; AJvYcCXM3lEPegr0fgEK2/uPs6YWBqyFSdisRillGF0IKsukflCn1T2yArCHcMPmZFbmEIoMDCsHvG+xnJqttjj+bVraYGk= X-Gm-Message-State: AOJu0YzzB5skXXGnJxqWhMS06LJwqVgXh3zVfoHQfKN+H3RHTRR1Kkcj gWEKMGPD1BJo24WSCVmnYOUhl4uSwVoduBhyiriJkR8EHYkkZdjwVqZSVibSp/7c4WksU7e7S+s EUa8TbaKLTRzoWIKgnB9xOawORvfI3tKHH1No X-Google-Smtp-Source: AGHT+IEXBU3je4IuLBZr910CrfHyCWhugWPhZGKp18yXylpp2KIKtknN6Tvqq4rBkKN+CNeH7B4DeFc2KjMhtI+32PQ= X-Received: by 2002:a05:6902:181:b0:dc6:ff32:aaea with SMTP id t1-20020a056902018100b00dc6ff32aaeamr2734459ybh.24.1712929585246; Fri, 12 Apr 2024 06:46:25 -0700 (PDT) MIME-Version: 1.0 References: <20240410170621.2011171-1-peterx@redhat.com> <20240411171319.almhz23xulg4f7op@revolver> In-Reply-To: From: Suren Baghdasaryan Date: Fri, 12 Apr 2024 06:46:14 -0700 Message-ID: Subject: Re: [PATCH] mm: Always sanity check anon_vma first for per-vma locks To: Matthew Wilcox Cc: Peter Xu , "Liam R. Howlett" , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Lokesh Gidra , Alistair Popple Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 5F1F14000B X-Stat-Signature: npmyeu7ec5sabckk8hmc8k3mugzds3he X-HE-Tag: 1712929586-317955 X-HE-Meta: U2FsdGVkX19DstYcuQxPmRVXy8jblhrQy606yU8rNvDbK2sIW5EzrSdn1fKE7FeQoOWdp2s9xCLhcgf8FDPebQb/OidLili3KmCuJIS/t0FoD7G/E6MFBlDLZ4kCKhgTKzPHYAU+fVF4zOCUPyTBMN0u7GLt6PGcIuiR+bFGM0C+pSVikUU84g783rBzSCDRlxVCe2pWRsP3q52EjFmWWTnX3v3G2ZSABknNCLPv5monTT3JOfPnLDmaxfX/u2xQRRHIhoGO/YGuiNU+FBrOHhOrmXTfcrCCyni2NnSzQITPg28aIyICOymPSS1H8BDWuJwisXNXpMd57JLCWoK8rI9xa63PHVWVVEdEyXWT3YS/fDu1X9duHohW1WloGJtB8zPjWP5W7zyxM5o4Vte6xqJasgi+Z8sHkf7I/knludU3olKsVl/GdklW220rZNHgRy8VFm852kS2UFs01HMMRD99MsW9nqKH9MP4SgS+Wswl3i5eaROvk2u8Y7IKZMs5BqzPoho5/1wf2uCm/73/Yxcn4WtN8xQ6xIU2qHbFQR2nfi9QOQHgticubcZYBmQzz4XxstBdUHshvz48b2k6YwRoMc5uTc3a4E2jhYigyWM/LQBjZXGlIMJ+9L3zTTrGYMOYHckGC+ELW7YMmoP9le+3XEO6dxNkJcLJaxtiJuJeH+iNEJShoKfE31ybS02G9GK123CWs64jzwLmpXbgTM1wzPLubQL1EJ/8ahWf+InzDQcp853GAWaXt1u2NEbn4KjWvetNIuLriQg0Ih7OoiRDTQGRnDCcagfy/xlYLbGMaCcQnC0AlNzcK0QSL+idyc+7GFXjMGJP+tIsD3ts6nDGDDdCyqa9mh0RvGgyd/UMhJoDJLISDIGHui9jR2QLI5nqc6v9vyJy+EutQ3z9HPDyt/xG3YfgWtUEIepf4UDaihaLAhxcIm0/LX2KasZ+UftCCp/Ba6LXjE4qhf2 GcYlPS40 kEQbc/icFjSbQ5LFFYfikMMnKcWjc25L50nrijmJo/MLIoRhvh0fdFNqwSvsyUw7j9qWbtbrdKWjZSXEJChk8ACmsNRgrbeGw2gkbAP8YQhxRPt73RlqJMTh2ELYhhAZVW0CMnlKwseALYlUSul5yJTV4hdaRq7u3+bt5roMlvwt25rmF7N3DvtbtgXhyuuE3k9/20vURlJvgGbJ2sAn6vphY/v+IGibuaXSlhDf6kDbfBO1Ousx/2uWjf5Rc0R/jzVJH4Uqb2Z3NPa7YPvkAwhA59wBhHHefSLPTFLGFsfeFnLvyyUPIApheTTe6U0Nr2PcfWc3VBnX5p9w= X-Bogosity: Ham, tests=bogofilter, spamicity=0.002390, 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 Fri, Apr 12, 2024 at 6:32=E2=80=AFAM Matthew Wilcox wrote: > > On Fri, Apr 12, 2024 at 05:46:52AM -0700, Suren Baghdasaryan wrote: > > On Thu, Apr 11, 2024 at 8:14=E2=80=AFPM Matthew Wilcox wrote: > > About the code, I'll take a closer look once I'm back from vacation > > this weekend but I think you will also have to modify > > do_anonymous_page() to use vmf_anon_prepare() instead of > > anon_vma_prepare(). > > Ah yes. Also do_huge_pmd_anonymous_page(). And we should do this: > > +++ b/mm/rmap.c > @@ -182,8 +182,6 @@ static void anon_vma_chain_link(struct vm_area_struct= *vma, > * for the new allocation. At the same time, we do not want > * to do any locking for the common case of already having > * an anon_vma. > - * > - * This must be called with the mmap_lock held for reading. > */ > int __anon_vma_prepare(struct vm_area_struct *vma) > { > @@ -191,6 +189,7 @@ int __anon_vma_prepare(struct vm_area_struct *vma) > struct anon_vma *anon_vma, *allocated; > struct anon_vma_chain *avc; > > + mmap_assert_locked(mm); > might_sleep(); > > avc =3D anon_vma_chain_alloc(GFP_KERNEL); > Yes. > > > We could even eagerly initialise vma->anon_vma for anon vmas. I don'= t > > > know why we don't do that. > > > > You found the answer to that question a long time ago and IIRC it was > > because in many cases we end up not needing to set vma->anon_vma at > > all. So, this is an optimization to try avoiding extra operations > > whenever we can. I'll try to find your comment on this. > > I thought that was file VMAs that I found the answer to that question? I'll try to find that discussion once I get back to my workstation this wee= kend.