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 C8F06C02183 for ; Wed, 15 Jan 2025 10:48:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 34B0F280002; Wed, 15 Jan 2025 05:48:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2FB5A280001; Wed, 15 Jan 2025 05:48:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1C2B7280002; Wed, 15 Jan 2025 05:48:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id F129C280001 for ; Wed, 15 Jan 2025 05:48:52 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 980841C7619 for ; Wed, 15 Jan 2025 10:48:52 +0000 (UTC) X-FDA: 83009363304.26.270F1A8 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf16.hostedemail.com (Postfix) with ESMTP id 8CBB5180007 for ; Wed, 15 Jan 2025 10:48:50 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=AWt6Kgsk; dmarc=none; spf=none (imf16.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736938131; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uRYuEqn4WUyIK+m6O0WpoRV3QlBFajdww4u8dDsuPOU=; b=nH6ERRunwNmOPSXemPQIQVV3D/ytPHlAIi+EuhNQPqMyw8+BiHVxM2g4ZnZCF4uRie3IHD E77HZ/WQ+inQN78IA2k8dRkla+PgV9xtKGjwpvvyH0aQeFhbnMXdxSwJ7u6dP+hCNj10Yw aLJSXCETqLXykwEwQMOoCWwjM0Is5B4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736938131; a=rsa-sha256; cv=none; b=JyskcBPZIBcxs/heipu6CVAvAWQZ+bORsubpqvgyTBX4UkpaLMB5lJggJ/VavyXy1ZofPh Xt2TlxV8cCNbjGw5VAUZiYGrna0g9REQrDukX1GXQopk1kfKY1AuFHM118jYDeR73VwNaK 5E7PN1SfiRwUzduXBIuxkpAnvh0Tqhw= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=AWt6Kgsk; dmarc=none; spf=none (imf16.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=uRYuEqn4WUyIK+m6O0WpoRV3QlBFajdww4u8dDsuPOU=; b=AWt6KgskOSzuWRcoGFsfxiHJa2 9PPr2pKgZgUKtes0GTakiBDW08ioewNrCuXA3Kdq7JVqRm/5fQ+5RchiQ2DNzfXGe9ZV5aoi/qMVO WetoBozxkVfoUR7a8W1PHNz7FJq/7WYQmZ5TqZycglqAj4KtvHv+1gsMGRurGn1K3OzwLIOhWDK/9 dyR+xgjiivBX8sYYTYjSJltp8l7DEbbLDullmr6gSjRWnALi1g5QVrH7eB8uIj1xFZF0kpQx470aS ww/SWZSZTPKu8RK61jjv7tdeszoYvWWXeMnPNCYtEn8NBNnGuweON4MmQzbfhU2fmwARQU718cIHM 1s959kmA==; Received: from 77-249-17-89.cable.dynamic.v4.ziggo.nl ([77.249.17.89] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.98 #2 (Red Hat Linux)) id 1tY0x0-0000000AqZ5-1qxR; Wed, 15 Jan 2025 10:48:42 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 76D8E300346; Wed, 15 Jan 2025 11:48:41 +0100 (CET) Date: Wed, 15 Jan 2025 11:48:41 +0100 From: Peter Zijlstra To: Suren Baghdasaryan 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 Subject: Re: [PATCH v9 11/17] mm: replace vm_lock and detached flag with a reference count Message-ID: <20250115104841.GX5388@noisy.programming.kicks-ass.net> References: <20250111042604.3230628-1-surenb@google.com> <20250111042604.3230628-12-surenb@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Stat-Signature: u6477a1i5b3j9o8t1s5rj3emnfu4zum3 X-Rspamd-Queue-Id: 8CBB5180007 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1736938130-128660 X-HE-Meta: U2FsdGVkX18en74C341us5OsDt6sMEmsv+CnBN7DoWhroJYpNnBPJ72bRJWZG56ihLNjcnOhcyB9DWauTmXbsyVTUcDf3k5g5rXTRuSWTpSdFvirm5DD+cz/ZR68rREiuSDgZf1CycH9Uz09AYQ3hM+NeGZHwPuOlRvCRENfPerJU60CYO6yBdjN+j07nIKMI5kkueZ6L76s9G2QT3vdYR68NQDqW+J8nhO4sAx3jBuwxA94sCHgVZ7cqFiFzAhk6ngKNJi7DFJtMPPbuVOFd4+5i/tqX+DFYjVGM4WvF0aL68Bvb2Q9IYeedmHMAEZW88kDpLyIXa8xBv2btkMd46gJWA+h3AHOb0D/WuXwbo515lPGATH8i8GeVEBTxtvnPmFQW114DtQrekialKwL6Vs5SgidKRCF2yTkNGqfQ6EVfPDoK2A5SMPQ8tLSoKn0alwMH8B3i4KPqlFmZl1FrsMJD1YbzQX6hKg3MtjixdKwd8GlpJJFi4kJF66YO8HJZ3tMS4Y3/eucm/tivE7j3Pi9mxhziDDuFw7C+ylYcTGsEAq3vI7EiVB2UIYUk7L5+klojv7JmJpJixz/GoP9m3+3KNEraTTRKlGP1H2d3a9v1qUCQgOlQiDYxKpNpFej9NjfyM0hoB1EChYGX1bXTUwqATgBipLXDZNz8ZKvFO2GlxiIzVQarZnfxG/4tj5sIHENp/mJGjPY6P6R0tOK3u0syPUifSos6Tj23YREvuZ6xTlOoNhfy6GZI+7EtYwa9Bl512FfwQ4PpZxhjT5Ma8ON1Jgyk+FRPlANuTQC8T+9TIZcWLoE5qglWyxYqMV76bZ53aVg55m8ydlgU35XKsPXCJ2F4mhHuBiT/sbiAwfkgvr+COJEHX/HHFqjZxjnFLYAK2HbMVIWU8Bvdy8FUluwSOxA+ydGVbV5UjChTyUyuFMrqIW+KIdLUFYXL3dWs8fWfA4ltwX67DWgfmF +9Ow0m1I YkAG2Mts8Dwxny4LIF0pzmuYYoWjGgO+DtdSjYQxN4daYd+a+jn2K5myeEa+XLpx6qJWIKhv2ybcHDQsI+lE5bdJTe+bk+RepRw6/XWdeDYCIpEuG/kB8drccK29ZdDboOCiWtlWpj+YXbsKgYgQ2WgdEEyQ4BpPPFi9DxYFrsO0v6ak6R35ljBjFbXsvmySibGFPc+EXvqjIr0yx/n2XWg9BOk94UrpoovqttWci+mincSmWaY4EmCq1+mqHjIX/U1PDzX8so9N+Gf4MzTm+Kvelhf8Olj92L7p4I+k7OuecaDOpruYFXTck7TQFtUE0GY7hPz/ns0/ymGicUr2lvbg+3Q== 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: List-Subscribe: List-Unsubscribe: On Sat, Jan 11, 2025 at 12:14:47PM -0800, Suren Baghdasaryan wrote: > > Replacing down_read_trylock() with the new routine loses an acquire > > fence. That alone is not a problem, but see below. > > Hmm. I think this acquire fence is actually necessary. We don't want > the later vm_lock_seq check to be reordered and happen before we take > the refcount. Otherwise this might happen: > > reader writer > if (vm_lock_seq == mm_lock_seq) // check got reordered > return false; > vm_refcnt += VMA_LOCK_OFFSET > vm_lock_seq == mm_lock_seq > vm_refcnt -= VMA_LOCK_OFFSET > if (!__refcount_inc_not_zero_limited()) > return false; > > Both reader's checks will pass and the reader would read-lock a vma > that was write-locked. Hmm, you're right. That acquire does matter here.