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 816A9C02180 for ; Wed, 15 Jan 2025 16:22:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E653E280002; Wed, 15 Jan 2025 11:22:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E159A280001; Wed, 15 Jan 2025 11:22:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CDD3D280002; Wed, 15 Jan 2025 11:22:27 -0500 (EST) 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 AA364280001 for ; Wed, 15 Jan 2025 11:22:27 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 4A417A1491 for ; Wed, 15 Jan 2025 16:22:27 +0000 (UTC) X-FDA: 83010203934.25.755269B Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by imf21.hostedemail.com (Postfix) with ESMTP id 58FFE1C0009 for ; Wed, 15 Jan 2025 16:22:25 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=g36ctWfl; spf=pass (imf21.hostedemail.com: domain of surenb@google.com designates 209.85.160.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=1736958145; 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=BctwlgCDNVsutNOZLGvAtMAyo5VbvSvZmv+opDc085A=; b=flD9zQC7Is4h7GVzErHEXIhhwJaimw4VSENziERCRaMEt4826kmetpBq8zBH4hFtWIHSZe hTF2Xqc9Xga8CDGjzdYtJAvb7/Nawc1WU6StKwLcCoFwqfdzU3ZsAj5CidU4gjO1BrmGzl M6NhgAf9I1IiQDFm8sZKvCI+f2g2+lI= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=g36ctWfl; spf=pass (imf21.hostedemail.com: domain of surenb@google.com designates 209.85.160.179 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736958145; a=rsa-sha256; cv=none; b=UTo0LFhcttHyO6meu0tY9nsv4BTabSqRfVxGPZAfUQwqlflpe2JnNAx5gdPhjfvxRPYnPo Kx8pq2avx3L9l9r4Phaq8bU6PavTDmSG1nHc0J5F9HfY+unP6kFgnHKY5Um9PhyQdEJlR4 VpzyaLntp7JILd6zPrEf21ekNdHvprM= Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-467abce2ef9so573321cf.0 for ; Wed, 15 Jan 2025 08:22:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1736958144; x=1737562944; 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=BctwlgCDNVsutNOZLGvAtMAyo5VbvSvZmv+opDc085A=; b=g36ctWflpv8GpKEnwBOZHnfaDDId9oyfSkm71/3qfud3IaNK9Y19rcq/nxOGhy4AZk GufPbXpuc2MC/Ga0DJOBQyqB0MNJJWCaqQQiTMq06N7aCMzUGyh8gQnOZl5eM27zu5nT 9u2rcaYABHZqh7X4NZxjreAYIDvxU9i7W7LxfRRvlhn26+JX7bLMNq31eofwL/BfzhC5 ZznF8Nn10UdS/5mAfuz39z0VsHmlhKFInZBaIo06gV1yXUQQzBh4fXhHYnlxZDAAZ4Og 6kryHaW/LcvhPcKYCtOPp1Y8vw3Y+s9xI0usLcf3pFHl5N0MJFYKFgoX9u6gEEJHHzG/ 7tQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736958144; x=1737562944; 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=BctwlgCDNVsutNOZLGvAtMAyo5VbvSvZmv+opDc085A=; b=G/5RRhwplXxe2Y9i1IOe94yEBqQEaw+G/NV7oDzVJXwy6fE4+mh4oMkg/zwF5h4ux9 M8wkrMl2MMiJOXuAc5Kp5ynD+hJYXjCH35GZfX0gQtnbCCVLJocE0lXpAUie6irTFOnk khUQRDm0ejQlLsFLu/PCHgfZcYtpjSgulAk0ruenoEQALxFzVzGPXS8SxGQynbIN2c+7 LvpzNfrlVS6OF+UVQqR/mF+7XR1m5RQHYIIUduJI35RUfaQjpExT4B8cNwHKgvwlutsg AIfIAdkdGquWJtDT+vPmZtZC1bipVlWzazChg8VkIBDix2bydK5JD4MwFYtsxTCsLiwH Fnxw== X-Forwarded-Encrypted: i=1; AJvYcCUPv19mw9YbC52jTKnchEB+4h30JfDm9rJ5C8tQBmRZfg5q4l/VLxWLNYCfy+3/nKjaN5i5pJBC4Q==@kvack.org X-Gm-Message-State: AOJu0Yy2Y20fzghvJlgeYj9Gkjw8ifhE0asCmxCX2L95GDT2Acs0kAIq JJCidBUallxGeLkZnFIx0amlneFU009j8Slp/1J6uJJfMs4rBPicjrDBqpKtgZFa1E+9bhHj8IR T9k6fzG/sShl+U1M9+diBX//yV9kATEh6iuQV X-Gm-Gg: ASbGncvE5Z0TR87xfKYDJQ4/JS+yc1yb4gqIoHhw/zwoidRBu59x3S8puVEZYXatvUP 5pk8XUDntmpfs79EPS4bCgGDUwY4S5kFemo09FDZnf6mwmGL1l1wSB6vmlLRMs3wkA/U= X-Google-Smtp-Source: AGHT+IG3V1I4ocfbKNz7/uvGk4RGSgmXJAAldz5yqhmLDDnp2RSyh5Gf3R3n0+Y5AlKpZm8rr8WuWhweW6/QwsnG0sU= X-Received: by 2002:ac8:7d0f:0:b0:466:a3ed:bde7 with SMTP id d75a77b69052e-46df567e6camr4757461cf.6.1736958144056; Wed, 15 Jan 2025 08:22:24 -0800 (PST) MIME-Version: 1.0 References: <20250111042604.3230628-1-surenb@google.com> <20250111042604.3230628-12-surenb@google.com> <20250115104841.GX5388@noisy.programming.kicks-ass.net> <20250115111334.GE8385@noisy.programming.kicks-ass.net> <20250115153507.GF8362@noisy.programming.kicks-ass.net> <20250115153844.GF8385@noisy.programming.kicks-ass.net> In-Reply-To: <20250115153844.GF8385@noisy.programming.kicks-ass.net> From: Suren Baghdasaryan Date: Wed, 15 Jan 2025 08:22:12 -0800 X-Gm-Features: AbW1kvb8S7fWIzk_jA8_hNMhgg1l5JAZBvgSU8BimRMfueO2UEVc64SNnIBddiM Message-ID: Subject: Re: [PATCH v9 11/17] mm: replace vm_lock and detached flag with a reference count To: Peter Zijlstra Cc: Mateusz Guzik , akpm@linux-foundation.org, willy@infradead.org, liam.howlett@oracle.com, lorenzo.stoakes@oracle.com, david.laight.linux@gmail.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, oliver.sang@intel.com, mgorman@techsingularity.net, david@redhat.com, peterx@redhat.com, oleg@redhat.com, dave@stgolabs.net, paulmck@kernel.org, brauner@kernel.org, dhowells@redhat.com, hdanton@sina.com, hughd@google.com, lokeshgidra@google.com, minchan@google.com, jannh@google.com, shakeel.butt@linux.dev, souravpanda@google.com, pasha.tatashin@soleen.com, klarasmodin@gmail.com, richard.weiyang@gmail.com, corbet@lwn.net, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam05 X-Stat-Signature: 5s964ww4ua6mhoidexuzu9bcusur15ig X-Rspamd-Queue-Id: 58FFE1C0009 X-Rspam-User: X-HE-Tag: 1736958145-761257 X-HE-Meta: U2FsdGVkX19lARVUt96bbN3/3o+5JCwsPCw9UyekXwn2TXIDvyh4hJDbAv7yT2/3chTb765/JgkAjZYXCEweHnISmy9as39pBC1u3l3uLRhKhwKxTtmhwWpwPGgfvXRXT1i1TvcRVt3pgfLFo7hXYWzl82afo1klCWdJA4sokM5c6lsaD9yfi7SX9IjPdieRHOMYKhzIYdwxBMhpA6tXfbjA3Fx1xrIjy2fJORnXvyAyLu5Yvpv7guFMvIQU9bBn6ICmpw68p1AxfTFnGRUjQ+wXhsooT6nr9Q6MFSUax/6ive8fOEM7LAxp2DDqi7hKgCInbh4suT5u3ngAdyfF2NfCqznTs8LiO772N5wRGNPP1Vv7leml2QuKarsGj58rYTPBnOtTA9k+TuUuGTmZL+fzKuQ/4NSFlyMGrO9N5MFVa9k2CDUyCurb+izgo+WX4MelyHu5vvQJsIiIPhFqruoMzE2c9g8GZjOHqITu0O5iZM9E/YvUOz31h+CvhNSM3EbWGydYWZJh7C3FXJis3C6So6pqcwVNJX6Ub8JQ+Ja4LqU8BrDwHy6/cRo8c4F5QldELKhofqZFrAtVwpS3GUi0Ic0PmCS05jpHTU9FhRykITRjfPvNurtm36rn0ckeNkuuw5+AvnQOln2c9hyJQ7Mv3lHylhSWWYQg7VXGiXjVynIJIF0anL6EDRJfrCQ2x8f4YINJKtUZgJIfcBBYWCuA/ESDFli9Sn4+Lwya7EVKHeqtkj48B9W8U0mGTM3nXbS/90WCSIaK9pH20Zd55+qPH9jC8y/05gT/58mhPvEkezEWlBDPk9/B/szOhA1aD63wg3x/AePEjsR1BNGim+VRg8GEeoQO48dF0UfrF2+PWZP75744I1C+UX4HCeoG3fYFXoJm4U8+EvqntoWLIwSwaP4G67DsytY9352aR5G9ytbX9sAUatpiuCHzrgzuuT3Wn4E/nDIx7mdeYFH 4zZa829a xP4EC93FmYjGjattVGRPZw9JZizQGK25jh4a/o0mFKqhW3cM8GKUkzM4EkCBkzRcZ1tGCHsuR7JJuctDVFXK5GDP9RRH+R8X2mJ/ewdAf7V6vI+Z3k0LqxNcNIfic7IyraVh1w54vWGjP5SxgGsWge/nFf2s5zo98OH0y9nFb/t0rJtKSwN0Tc/8zb39/zSLeL8z9TLwnALjo2AV1sZld9+8g/kYQJHeJM09CmzBktcHs/JBHPzyZmPSKjUcXlyUe9yPHdh6/RHEOQgSgFlPdQ9ENxk4uUp91fHK1MtkvzEDKjRjkHog4jnPcVnxmd+D4mwVuCEzF0+Or3ytoXLVMZlI088Q3HfDwd5ouqqcVwNkkyzGLkb05An6E7g== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, 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 Wed, Jan 15, 2025 at 7:38=E2=80=AFAM Peter Zijlstra wrote: > > On Wed, Jan 15, 2025 at 04:35:07PM +0100, Peter Zijlstra wrote: > > > Consider: > > > > CPU0 CPU1 > > > > rcu_read_lock(); > > vma =3D vma_lookup(mm, vaddr); > > > > ... cpu goes sleep for a *long time* ... > > > > __vma_exit_locked(); > > vma_area_free() > > .. > > vma =3D vma_area_alloc(); > > vma_mark_attached(); > > > > ... comes back once vma is re-used ... > > > > vma_start_read() > > vm_refcount_inc(); // success!! > > > > At which point we need to validate vma is for mm and covers vaddr, whic= h > > is what patch 15 does, no? Correct. Sorry, I thought by "secondary validation" you only meant vm_lock_seq check in vma_start_read(). Now I understand your point. Yes, if the vma we found gets reused before we read-lock it then the checks for mm and address range should catch a possibly incorrect vma. If these checks fail, we retry. If they succeed we have the correct vma even if it was recycled since we found it. > > Also, critically, we want these reads to happen *after* the refcount > increment. Yes, and I think the acquire fence in the refcount_add_not_zero_limited() replacement should guarantee that ordering. >