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 39512C4345F for ; Mon, 15 Apr 2024 16:19:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A9E526B008C; Mon, 15 Apr 2024 12:19:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A4F046B0092; Mon, 15 Apr 2024 12:19:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9154D6B0093; Mon, 15 Apr 2024 12:19:20 -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 75C816B008C for ; Mon, 15 Apr 2024 12:19:20 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 35BF11206CD for ; Mon, 15 Apr 2024 16:19:20 +0000 (UTC) X-FDA: 82012276080.15.AEC440A Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by imf02.hostedemail.com (Postfix) with ESMTP id 226668000C for ; Mon, 15 Apr 2024 16:19:17 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0mOOvNJo; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of surenb@google.com designates 209.85.219.173 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713197958; a=rsa-sha256; cv=none; b=aIs+yp1Mw9fdh2NEcQBtcOeTdlEEqCbYEivQVMHCGcMRDc9fEJwh6IghSmER1PT2sDuTZ+ YkTqMEuXFLGum89DuaZbrRAyJMLtKGgMA5xGCWApi0jhRKTZzumYNkIbUE48mEfcQV11/G 7V7jW17nFxoh7OvspzpdSaLREDBWN0A= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0mOOvNJo; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of surenb@google.com designates 209.85.219.173 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=1713197958; 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=qqUuv9fxx4EarUb3kFRLC/klI4ssEw0WfUtLM6EuUlg=; b=xw3operxsWLVTHDOqA2vEQWXbGFt/uIdnHLx2igT16UwkETvvzVa8i+tjnzm+Tr2AvHnqb Yc2lTbuuAGHtWMK6i88qaBmeBPm8lhPM4ZOgLUardlLua5k16bNNF9R2cq1u1mXoNveeRR x9ZxbmqR8eNJ+s8pU7tgdQOjqy1eIOw= Received: by mail-yb1-f173.google.com with SMTP id 3f1490d57ef6-db4364ecd6aso3573009276.2 for ; Mon, 15 Apr 2024 09:19:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1713197957; x=1713802757; 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=qqUuv9fxx4EarUb3kFRLC/klI4ssEw0WfUtLM6EuUlg=; b=0mOOvNJoVTSGoDTlFb4LX4p73yuhnhKvJ/leZjTCz1sfNIDxY/fNuSzAzCVLUSfwZs 6au9mB2fr9+RKnHagHNy5uFgviVzbnaM8NjttEBj14AKVRVACX0loMwlZWgYliPAGX5b B20sBD+YskI5L7qTNf5Jg8U4FPBGmsHsLTBUYj6pj1obsagJhHSz5KOGUKMFihpfgKji W7WaVcQUMz+m8be5aS/aTQD/s8nXYJwNtdInGq4dqrcn7zEAXzU/9zAnVOAXUc1SHwOb VyzAWWx9o/1tvfS/eXe1CS/2A9T17J7vfSM7Ubb4T1oDZ1zM3XgXBK+V8kavYK8xFU9n bFbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713197957; x=1713802757; 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=qqUuv9fxx4EarUb3kFRLC/klI4ssEw0WfUtLM6EuUlg=; b=jzky6zjIZmHWjqWTejAdK9PSkEwOVN4/K4TQtPlEco0StEVM6tLqBCAnD/IM65hIDo ijgdGzfM7uuLQ9mKVgBEozvTeHfKv/I+GpkIUNabj56Bl3m7YGxM4cqFnWIq2T4VuK0k npflWz1zSQy27CA460Syud3mHS1GkMsvQqU/ZwFkfT/EJKLzbfWVNC/GL8rDy2lnCQdz 21mx2IwCOXc6SsXgH0I7aXmxNs6q3vMPk1ljzNtLZCrQnNFgdoyutNBTZ9qnP5S2Yva/ SHBB2EHsVigKHTFVKFB3NbX/whi4rpv63KRYEOtvVUYATitITzSqlZBXG5wUga5vcSSD 2c/A== X-Forwarded-Encrypted: i=1; AJvYcCXP3VoNse163SrECPTvMJq5ViRbGF1uXmQYFkEwps+yJn5EountR/xI+bFL+EDo2kBKw+QIMbHmPY3sIDi6GF1V/nc= X-Gm-Message-State: AOJu0Yw+dWLoMkwp6Cm24KvgKywdm4VGlecwD9Tach9Z0rQzpK5g3saL u7C1iHv/6HhbnDF+Sz983JIGLAkkGyDVlxMaHnf8MopkDwVlKkF7UD42fBSRftBK6ezx9sd3CFQ m87gh9bP6RmfufLmRFTZXF8c+KGk1yGFIAlvR X-Google-Smtp-Source: AGHT+IHQ1hSvcEI2XatWFIotdHbIdMS88GTemv+Jc97ykRM2AbU4LHYqkuGNtXF9fHUCT1K16Qwrmbue3o9cH+MwjAQ= X-Received: by 2002:a25:b10b:0:b0:de0:d515:259b with SMTP id g11-20020a25b10b000000b00de0d515259bmr8502533ybj.59.1713197956946; Mon, 15 Apr 2024 09:19:16 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Suren Baghdasaryan Date: Mon, 15 Apr 2024 09:19:06 -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" , LKML , 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: rspam06 X-Rspamd-Queue-Id: 226668000C X-Stat-Signature: 6e4bkbcbr9d45iubhr1k6gnqbdoctom3 X-HE-Tag: 1713197957-877311 X-HE-Meta: U2FsdGVkX1/mGginfrtpIC8VGNT04RnYm7UEQc0ZdQ3ZlVSJZaKfSbaDq6N2k7fNpm/Y7qjbX7hTDHiLiEhHim1cs7pi4yHcm9sGPGkPDMIgxYF++FfS/IkyvmcHERg70/hNV/n1MCNu34L2nANcrAox12osQOVWfjS0wFbtlPqcf+MQ/a2RKk4AT4lhUb34vGUtmRUz8CJYf10Y+Ee/Ui4KHsWTbhOI+nOGay7KkuI5yPAbkABDtR1ehfhrgvEuCAY2//wf2ibOQNHV39TNQQ3EY57RyfaHH4YkD7VLGQER6nlVImBJ4G9YTO7CcsRt5z+9SMHfB2fB1ZAMd4NcrNSpXwdgO6UvyCrRlfFm3p67oBSxmsCfeErxfNzvuF2ikNo1PL/ajktUJJNA5jw4ZMh9zOPdwjCYj/bA7Ktsvwec90nPgNUNV+COgMgA6jBPIPlFYtYVW//YGFE7K+MvbSTyJW3HAhGFOXc/13y+eXsao5vj9DtWDlR2FLoYGuzX9Fvj2T0uQz22j2ULuSJ78fWNuK5DpAFSTVj9UTpRlhpt582KD37cYOrCtImdriqJhOqAdCYuEMnh8uEAPzWq/+N/4PbAhsJn/pq+glfXMyXfagRRE8vUktfniPBefhAJgiBM2DVvNNKevigV7Oy414Jiv4l4EtG4Pmn6nf+FKMsC30WvHN0LM1rd/v8XCEH8yiZjPD5TF/d2wgmJc7rWIqCjdz15jeWgiENuOKW2G5ZH+TPI1PotAGqi3HCscu1brS29Zid1CU8Bcbkercz6SecjF3jv1tQhRK71la+0ZZJYQ2Q+53AtoEE8iaqcUbI2EtwQgepv7BCnlqJ8K6v+m9Bk9wyeKHN7L/rF9ZVfM2oj7/hDB6fNkTtVIswtwKizM2qWWCcY7IV/6to6xGtm2bGIvox5T2OsF8FE0fapnAvfcR4UlFNkfnRv6aqoE4p6QZxB4wzN4QdOnzVngzB dNoXJmDp jTvZIkOWx2+AaRy7mAqtYTOng62ktifUxdcDdIItlbitiDue/iK3qGJJ+IaCo8PW/8bDuFbpxSfKYfl2WKZQ3CCHHVIr0wJFdy99/iPSf3QjdL/NFuGz0pysZjKlAIqnW02o+f09NrUaPqO7npwTEbUfNDtXfXGltUKYV+8f4HtpZ8i2fQ30hsT3jkOtLXbtGUy5Bb0ve+DXdiO8SO6vSiBa+16Jh0+68xbcAfPvbff47UIBVj1ns2wakM/zlo4oa+qSEQ7VUpyLwWdZy6ePPiMt4c8kWuBrBiIwMNWaf1UlwXSNuaJQhEK+pscfi5cfCI9TYBFohA8SkeHU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 9:13=E2=80=AFAM Matthew Wilcox wrote: > > On Mon, Apr 15, 2024 at 08:58:28AM -0700, Suren Baghdasaryan wrote: > > On Fri, Apr 12, 2024 at 8:19=E2=80=AFAM Matthew Wilcox wrote: > > > > > > On Fri, Apr 12, 2024 at 09:53:29AM -0500, Suren Baghdasaryan wrote: > > > > Unless vmf_anon_prepare() already explains why vma->anon_vma poses = a > > > > problem for per-vma locks, we should have an explanation there. Thi= s > > > > comment would serve that purpose IMO. > > > > > > I'll do you one better; here's some nice kernel-doc for > > > vmd_anon_prepare(): > > > > I was looking at the find_tcp_vma(), which seems to be the only other > > place where lock_vma_under_rcu() is currently used. I think it's used > > there only for file-backed pages, so I don't think your change affects > > that usecase but this makes me think that we should have some kind of > > a warning for lock_vma_under_rcu() future users... Maybe your addition > > of mmap_assert_locked() inside __anon_vma_prepare() is enough. Please > > don't forget to include that assertion into your final patch. > > That's patch 1/3 on the git branch I pointed you to. Ah, good! > > The tcp vma is not file backed, but I'm pretty sure that COW is not > something they want, so there's never an anon_vma. It's for pages > that contain received TCP packets; ie it's mmaped TCP. I was following tcp_zerocopy_receive()->tcp_zerocopy_vm_insert_batch()->vm_insert_pages()->= insert_page_in_batch_locked()->validate_page_before_insert() which errors out for PageAnon(page). So, I assumed this path works on file-backed pages but I'm not familiar with this code at all.