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 68347D41D44 for ; Tue, 12 Nov 2024 00:59:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE70C6B00D0; Mon, 11 Nov 2024 19:59:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C6FE96B00D1; Mon, 11 Nov 2024 19:59:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE8AF6B00D3; Mon, 11 Nov 2024 19:59:45 -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 8D8E66B00D0 for ; Mon, 11 Nov 2024 19:59:45 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 17C48810EE for ; Tue, 12 Nov 2024 00:59:45 +0000 (UTC) X-FDA: 82775634228.10.77EB2C9 Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by imf06.hostedemail.com (Postfix) with ESMTP id C3FD1180005 for ; Tue, 12 Nov 2024 00:59:13 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ulGv0Us1; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.160.180 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=1731373128; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=LecjDJoTOnaJoml7h+dyn1NllN9mcIC7cbAU8yO5fVI=; b=BXVvX4LrkBF61eY8REeC5Of4fZHhPGw3RpAKaqH95ZTkjFtzr9qr4Q+fa+3Ahx728eIMNi OrTZvWcfPNPQgB9WEHT4dXuaHTOefJIseD12ioooq+mXQiWJNLSC0+sl/tJXNgq80JxL+f wtWD2ITk9W1Rq+hEZpbIaImDhewYGtY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731373128; a=rsa-sha256; cv=none; b=y6NJQHaBOv/NpgH8z9ZrCW6tIw2Aya4oYK19eiawEumUZ0EIPdZ5Lb2u1t+Uywb2/wkKTM L83UUWIod9dhuPT0d6TMBb7jqueuB0lsCJkxGULChoOAVefLgS9OKlJtBYmmdpECNwKPmO JU/EXgQqzqqNTJ6wQ2D+W/Jy7K9N3lk= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ulGv0Us1; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.160.180 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-460a8d1a9b7so66551cf.1 for ; Mon, 11 Nov 2024 16:59:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1731373182; x=1731977982; darn=kvack.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=LecjDJoTOnaJoml7h+dyn1NllN9mcIC7cbAU8yO5fVI=; b=ulGv0Us1pDWHnmcNkeSoN4aBOAUETiF28aUI/8h7nXoGZj9eo6UGP/xh42fvzJYClB 2qf905OiIJWPlnGZbNIsQlGJOfjQ3IFVoJ2wJikWOBAEdoW+Jp5lkgp2/0mZBGEOgNNt QnY145w+HutD8oA4vYL6fJzZzMdFxRzYCgYFUjj3agf/fLu4bZL/0EKv2KLE8sXh5NgP IkVbYKfhetE/aiq9BTVixGXszwPaXbFGcoRGFo5HxpKeFpN1rYuw2rMzN+8PZX5sgXOm hCUClEi9yCYTgzHMGE3ypYdl5xDm6m0dCJYJZhiHFbThYsMbdT0L/c/gjry/pQUOOm7D y3sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731373182; x=1731977982; h=content-transfer-encoding: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=LecjDJoTOnaJoml7h+dyn1NllN9mcIC7cbAU8yO5fVI=; b=NP2jiJxzWJt6GAvTx5N9NdT6MQ1kSkHhxkmodbqvxgs/mmZ2Z8b2RKztwKtgrv/pxR iJZKi5n9Ga/urYblejZG/i6JVeqYmpQzg9HSSO6nWtNs3uEnS/bScq3EFRjmw+lLNkyn 7C4p642jtap7S0BLGGgvyZglTMGE6MGBZSDrpNiXrn7XTBelhscELRTnB4nV+NiAl9OF xcdCACREucDlfN5G2PyPQIIMzBlUFCw33vNlKM7mXk/CbbbADbo+s8inbv2+anRihLn+ sPkDBHhdwgRCWWFw/iNqXO5TD7+Ohz9ik7b9LvI8iDIEytPkVPo4X81XbWDblkD65IF7 wI9Q== X-Forwarded-Encrypted: i=1; AJvYcCXNYIe1Z/pMrhRhT97Vu3XW3o7uyP6m6K/qM4E/boRjCQ3xV6T8RyLpmTccf+JZ+p6CH0vbWe1BAg==@kvack.org X-Gm-Message-State: AOJu0YxVcJIoua9g4Yd4WD6LCA1C8KZ12T9PArhf71XDOwqX0c9umJ83 TEGjYAw6/sU5O7Koks7M1dn7Tzw5m8hn10eaARuPitvVzUlVI1y027sgKJ55tR4ILZIUCajNaYT TOlgdIw5BOkf+X++RyTwOZyhHWQvQPM46Vze3 X-Gm-Gg: ASbGncsKJH6uU/0WK74boSZYRh2YJtHtfsaS2ujtnxg5FvXHXlBBUNMvdAiMMajpiRj kX7gaCLo/imH97xS4p788xVIIVLvJKbs= X-Google-Smtp-Source: AGHT+IEKsIFJbzCEUMdsDAPcE+87L+ORDqqQpmYus1Wg3+7ujB5DDEVe1FkWX+KWOSMItCnNYwksNyNROIU4xmGwdqQ= X-Received: by 2002:a05:622a:47ca:b0:461:31b8:d203 with SMTP id d75a77b69052e-463427ddf44mr218161cf.3.1731373181873; Mon, 11 Nov 2024 16:59:41 -0800 (PST) MIME-Version: 1.0 References: <20241111205506.3404479-1-surenb@google.com> <20241111205506.3404479-4-surenb@google.com> <20241112003527.ogtrnknjwvtqfewm@offworld> In-Reply-To: <20241112003527.ogtrnknjwvtqfewm@offworld> From: Suren Baghdasaryan Date: Mon, 11 Nov 2024 16:59:30 -0800 Message-ID: Subject: Re: [PATCH 3/4] mm: replace rw_semaphore with atomic_t in vma_lock To: Suren Baghdasaryan , akpm@linux-foundation.org, willy@infradead.org, liam.howlett@oracle.com, lorenzo.stoakes@oracle.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mjguzik@gmail.com, oliver.sang@intel.com, mgorman@techsingularity.net, david@redhat.com, peterx@redhat.com, oleg@redhat.com, paulmck@kernel.org, brauner@kernel.org, dhowells@redhat.com, hdanton@sina.com, hughd@google.com, minchan@google.com, jannh@google.com, shakeel.butt@linux.dev, souravpanda@google.com, pasha.tatashin@soleen.com, 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-Stat-Signature: zuzy4z4od3e6yae9n8n9p6gcfbucq8f3 X-Rspam-User: X-Rspamd-Queue-Id: C3FD1180005 X-Rspamd-Server: rspam02 X-HE-Tag: 1731373153-936756 X-HE-Meta: U2FsdGVkX19kW3GTBbOsHzxGHRB4Gs4/y30fVbbrigUzSXmWOWepCTeKJD/EO51e0YuKlfIKrKIveXoTujayMopHNpS4hfEEETGErH74OFUT2SmVwQeW8sLZRIUS0Uu698YxLQDo+juMEk/R1wivp6s5SmYqSgSpUE/NGMhdC9h0aK2OXSeK/NpfM+H34fLtATvAk5YkfNqZL05WcznBxFVnDvaVCi7i5yXMvTLjd2VvMP80Axv0seYy+ISdzfF+NzD1EgpxGZ0o+cD2uA9tc0C5z+xg7uEnGbnqvMgBjZDWxYOrnColl2pTNZ3R+iBoCh2KOzZyrtzVkmsOBbF2vD/lKRkjC4ZKpzPO5nMxeFmAEn4/b00Rr2QmFBhK3zZYM2wxejDHMbOBhRkhWOIPmw/JthJI7bw3k+xwYsmuvhlcvW+Z3n0Wi1ttbFUXJnBiTHQyMLhschtHrCwFxv8Mq8MQGCpld9dk0NXxHY2dkD60hRpqKxDG/Y+HY+FwH3Qq1ygHhpLN53A8L22UOhMVkvjKunSak7QsQbKmcxyruTnCghC18Wfp5MZkJ7Zg2E2wDXBSdGumq97+9+WSNl7kUFjLaHXVJGdv3gLvmW3awlOHoClIMHReds6wc1Y7RfU7co3e38FEpgMIT8S8IHFB53Lojr7FgpPYhpAbyXqiG9rD5uopHr3ciCm5tw12XmJbhN3B80pABQbmw8Lv9IYq0cv9A+lT1g2+LZVt+AQnQVfbatf4IsMfZFzS1phOarKjsAyoN/EVqTWvJDvD7WproEkyPNXmv4InDoPudR+nM9S9IC5jxofJykclQpTZhbgIli6kOFGDxN+aYtaPuVrUM0ap4L5Ryul4NFlet+TfOJLvSCk5ctMw0qelHnmCL2u2rNeVudoTZ3XVdjV+6yCgwPStN2yS/LVNXA+m8TuxeKcDnoO8j8RziwsTz/ImNY3jET3Q54gdr0zNJfeTriZ mmDAn04L v5NZVod3qaeW+3yzauRREjMLNYd7LHTRD+vXM1vF7Fw2/p837fsTXQg3A+DsJ2/xLEJR237+GNJonQDQqM3VzbFsNrkBgtUUi+difIBSmGJ/QTxN9pK4YLToIP1kA2s1236ZQWdiL+DMHTCb2DROdH3wG0Ft0ArHENtTFszrclAf9m3ILwlJSpF2jmXwkSpIdivjaPkZ2tx5VeMsJcKz3A8zmZcUSQSpST+vDaKPpxqm9/nYzrhLE0CsFwf8M21GJ5X6Yb6TaU7xKKaMdhYOfMM5WYcnW0cIuu7ZgFXZ1RQST09g= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000015, 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, Nov 11, 2024 at 4:35=E2=80=AFPM Davidlohr Bueso = wrote: > > On Mon, 11 Nov 2024, Suren Baghdasaryan wrote: > > >@@ -787,7 +893,10 @@ static inline void vma_start_write(struct vm_area_s= truct *vma) > > * we should use WRITE_ONCE() for cleanliness and to keep KCSAN h= appy. > > */ > > WRITE_ONCE(vma->vm_lock_seq, mm_lock_seq); > >- up_write(&vma->vm_lock.lock); > >+ /* Write barrier to ensure vm_lock_seq change is visible before c= ount */ > >+ smp_wmb(); > >+ rwsem_release(&vma->vm_lock.dep_map, _RET_IP_); > >+ atomic_set(&vma->vm_lock.count, VMA_LOCK_UNLOCKED); > > Too many barriers here. Just do atomic_set_release and remove that > smp_wmb(). And what you are doing is really ensuring nothing leaks out > of the critical region, so that comment should also be more generic. Uh, yes. I missed that. > > I would expect regression testing to catch this sort of thing. Well, it's in vma_start_write(), which is in the write-locking path. Maybe that's why it's not very visible. > > ... > > > #ifdef CONFIG_PER_VMA_LOCK > >+ struct wait_queue_head vma_writer_wait; > > You might want to use rcuwait here instead, which is much more > optimized for the single waiter requirement vmas have. Thanks for the suggestion! I'll give it a try. > > Thanks, > Davidlohr