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 A907BE77197 for ; Thu, 9 Jan 2025 16:01:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B5C36B0095; Thu, 9 Jan 2025 11:01:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 365F66B0098; Thu, 9 Jan 2025 11:01:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 22F056B0099; Thu, 9 Jan 2025 11:01:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BFF736B0095 for ; Thu, 9 Jan 2025 11:01:26 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 54AF7160230 for ; Thu, 9 Jan 2025 16:01:19 +0000 (UTC) X-FDA: 82988377878.10.A4DD7C0 Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by imf23.hostedemail.com (Postfix) with ESMTP id 13B0F140037 for ; Thu, 9 Jan 2025 16:01:15 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="4aCukSi/"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf23.hostedemail.com: domain of surenb@google.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736438476; a=rsa-sha256; cv=none; b=SkyGJFu9AZXP6KXcyotTT1xEE/Bn8MOZ31vynjnsJ4ErU5PgMi/ENeirew/R1xgmZ3GPQS E4IfKPxJ1fVpITs6kQENBcTGggzQLixk17Scmih+kDd6btdi0kDTm9LIfzIDvdlRRPBXJI cdiyMW3rjdh3us307D7z/Bt7prohdUs= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="4aCukSi/"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf23.hostedemail.com: domain of surenb@google.com designates 209.85.160.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=1736438476; 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=T9dG3DUGvunJ4K4quCgFceVfzp8ZqAGyLGU5rRfDYvY=; b=GyPi7lNFcpbyU7DMsgHYFACL6jd1+s1rqBdaN0e3695Lpn9KRw9KTX5vOBamFnn8FDqhl9 cBgBTJHP18bZRLcalInQk595nE5DlPQTTAvC8xZV+OfLugnYpve4B53H3Io0htKsml82jQ KqVbilvKxtDwtRlFKLlo5zXxV5mvLpo= Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-4678c9310afso238681cf.1 for ; Thu, 09 Jan 2025 08:01:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1736438475; x=1737043275; 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=T9dG3DUGvunJ4K4quCgFceVfzp8ZqAGyLGU5rRfDYvY=; b=4aCukSi/PjvYXesbnYZnGDSG+Uqiim0DGWVq9HMKGP6zCfwhHL1S0LfdeX0MrK4DlB vvXGsiggG+5XCY2mn5WDtVgoEZl2hq2hRbnBGm+a13o+ynRD6bk9yGXkJLe6mjPPaucP SCbDQyN0CaNih5/fCtiEyHMsHwwiKVSQ96jbMIC/2Xs+lbuRNt/A+3WC9Cna3k0M4QHm 59mF+tPuzIHoRvMfVnSQTo2gOrKFGN39XEfnOvyIu7Cz3hqaY+TxX9z3sw3oS0DooRgj FL97Xc464gP/2csmhaS6NNH0Rx3HcL0eWlZnDva9ySQaexjGML+pwm8WMk1y4ltqyXI4 zOfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736438475; x=1737043275; 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=T9dG3DUGvunJ4K4quCgFceVfzp8ZqAGyLGU5rRfDYvY=; b=pt3RJUtfWIvRQ3lHZSE1rZlOSNiZ3BlcA9WkCjE1sJ5FhOHQiDfHh4ImC2kXXmxPIY spkiz4je+a+CU0o+mlJIyZa3jubB/f5KyxZlZ5KleMeZBh5ukarFrjIPrvVG9gZgNUXp Z+WvZxOwvlnXGb85ETYkGADaNrfdub2iYWATeVwqur+KytWwmkyXjgN4DuJG4WAnUvVx GE2f6UtpOZVBXuvZcDJnfhHf2fhzUsloAPUI+Ywu85bhabRnekTE3P/GPCgSdaSQlcO5 TjYVAq8/NyITfwlP5cY4JYnJZQb3fwoXQ60YRO9L5W6sLeNcTRjI2QvfhOE8k1hYLmni ODrw== X-Forwarded-Encrypted: i=1; AJvYcCWDtgrJDE61szRS4beoxhvBLuos9C1hEMd/B8hy8RrINnzN8IKn8zMBWrjIyxVtwvz6IW6BjOXlxw==@kvack.org X-Gm-Message-State: AOJu0YxjdsIRcP/TOxk+38lb2hUa3OMLDejMC5cIKw0djrG0pZ6EMipR YLnzxp5GNKK+N11L/WPuyi0UTUGjoS36MAOa+jmrjC23OQN+visfUQ0H580BtVWQpCPgiJwjZ2F sDuhVAnA/z8xkXQkhjaiCoAGe/25uxWUVXHc4 X-Gm-Gg: ASbGncvNrr5QvQKjFZuwz5qG0Q6nMcTsRVIuGUYXAUnsNgJ456NgQsr/idfo1olHnvc gvfp/IvVlnZ3WA62g97lUw0EX8eek/1g2m9RkMg== X-Google-Smtp-Source: AGHT+IFXdulxECI35d42avb5IveQAehUBpQ8Dekl1fZoD0Hi/fY17GLrjIo6T8f8zrI6mckD0hvJOGBgE+LK1YIXx9I= X-Received: by 2002:a05:622a:ca:b0:466:923f:a749 with SMTP id d75a77b69052e-46c7cf3d257mr3411181cf.15.1736438474853; Thu, 09 Jan 2025 08:01:14 -0800 (PST) MIME-Version: 1.0 References: <20250109023025.2242447-1-surenb@google.com> <20250109023025.2242447-12-surenb@google.com> <20250109103602.1555-1-hdanton@sina.com> In-Reply-To: <20250109103602.1555-1-hdanton@sina.com> From: Suren Baghdasaryan Date: Thu, 9 Jan 2025 08:01:03 -0800 X-Gm-Features: AbW1kvbf3oxRGyh5tHA1gAmASWlK9PO-47qbJXM7Vfk2oOq76W8uefc-WMlgREA Message-ID: Subject: Re: [PATCH v8 11/16] mm: replace vm_lock and detached flag with a reference count To: Hillf Danton Cc: peterz@infradead.org, lorenzo.stoakes@oracle.com, hannes@cmpxchg.org, hughd@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 13B0F140037 X-Stat-Signature: hn6fcgp7fay3td5tnoyraum97xhjzzsh X-Rspam-User: X-HE-Tag: 1736438475-149418 X-HE-Meta: U2FsdGVkX18P0MQuLahcM2FNfdM8YbERDCB+UVQe8xg1AKTIbZML7wCKQTBO82aUdZrjLTehq8Xg0ZsUnajEBuPqD3mcNzrzELuxI38Hx+DRkVPJVZWTFy8vN42Tmdf/OJNStJM5O+41DDsAwGAd3Z8YE5wDcaiUFO1tE6dCtQLluastrSSs4hLm4ENb4eg7786mjz0RLmAPBKS8nt3vM8Q6XEae1vnjliwQa8Td0CHlm7gmA3VqU19esSIAOnbWMiJFtv86t05ZUEh+HBUUiOXqXh7Nxb9oZOVG88c8lugtCUPgvf2yuP1N4HZzpYrS7ZR1pDDjBtRUksJSTmzFPOLSUk8lZ+e2pWZngG5Twk8pvz4NzwrC7DX/vAdmXRu6hM3qjRqr4FWOe5j3BM3BVcqNDi2M6lE3aHwWENfANx+G/C6Wv8oLds4pGSK1TuVUf/jbt6YbTtnXzyhL2Ak6YIUF+Giw0Rucm7YANPG5g7007lpCOwRKWC8R1bEmgVEKYnpVCdUxyu4rtk2VrqJ5czDZZgZtFBAcoCBtjCtTYSOGA/nO/+82D4FQJAuE0cQdDB/XqyrpQ38seDY6gmqNK2SW7w3r3YMobEqAtPRXKjE53lLRAof8YGug6x6H8tLUjj/F6WmdvElgvj5rlgdAVAd8AIQMS5fdeza6Tr0A5AeTncRAUWiVzA75cWE5BZEzlbJy2rZKNlK6+V/8JeHgXsDmaTWMteBPAZrrvV8HIG+ITYOgsc+YO7INTilbdPX7FbpWSo0Vk3ADGXRqXiy1Nmaz5dLNIo/8Fe34ddVViws9XyruO2ewXo0JXErYeYlFQC4rYFwVKL4SZOQRON/7bzVuv+dreWZxPHxr50mnLaxNKwCitzs39At24tnsdy05YQR+cjoEbVj6jz10E4RDHbo0t2mBXbTO95U5tW+NbigfM5E7QK9BmQEAmPsmFJ7A33OV2RXXZcmmzNNjryT mjFn/LFQ zIyANxP/uQRmtRcdKCSuMOC+KUHDUcExTNa0pwlD7Dt0DkvnM0VhV9/mBgmCfN0+oC6lgV4D/pxOK0HLC6iDzrEKzbMQ+RRt/MB//KgsrU4oR6MOq1BRrrRfo24vPn9fl0XPTlRRTF4SoeM10u9Q7eTVT8dk/sCLlWkcDv69wDzK0qHq0LICksVOd5apCCfa9c2QL8UWV1pMtwMkl4Nxf0EAgYG+zE55RHoVC+fc7YFxEfwJif0ZQQq7ECrpKp86lmZbVUA99xN/IBcuxVPwF1OWxz7xmrCOqNfRT X-Bogosity: Ham, tests=bogofilter, spamicity=0.000929, 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 Thu, Jan 9, 2025 at 2:36=E2=80=AFAM Hillf Danton wrot= e: > > On Wed, 8 Jan 2025 18:30:20 -0800 Suren Baghdasaryan > > + > > +static inline void vma_refcount_put(struct vm_area_struct *vma) > > +{ > > + int oldcnt; > > + > > + if (!__refcount_dec_and_test(&vma->vm_refcnt, &oldcnt)) { > > + rwsem_release(&vma->vmlock_dep_map, _RET_IP_); > > In up_read() rwsem is released reguardless wakeup, which is different > than what is added here. Nit. Good point. I'll send a fixup since it's a small change. Thanks! > > > + > > + if (is_vma_writer_only(oldcnt - 1)) > > + rcuwait_wake_up(&vma->vm_mm->vma_writer_wait); > > + } > > +} > ... > > @@ -735,9 +773,10 @@ static inline bool vma_start_read(struct vm_area_s= truct *vma) > > * This pairs with RELEASE semantics in vma_end_write_all(). > > */ > > if (unlikely(vma->vm_lock_seq =3D=3D raw_read_seqcount(&vma->vm_m= m->mm_lock_seq))) { > > - up_read(&vma->vm_lock.lock); > > + vma_refcount_put(vma); > > return false; > > } > > void up_read(struct rw_semaphore *sem) > { > rwsem_release(&sem->dep_map, _RET_IP_); > __up_read(sem); > } >