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 9FF8AE7719E for ; Mon, 13 Jan 2025 09:36:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2426B6B007B; Mon, 13 Jan 2025 04:36:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F2BF6B0083; Mon, 13 Jan 2025 04:36:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0BD916B0085; Mon, 13 Jan 2025 04:36:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E15196B007B for ; Mon, 13 Jan 2025 04:36:16 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5D03B161CFB for ; Mon, 13 Jan 2025 09:36:16 +0000 (UTC) X-FDA: 83001922752.23.3770F9E Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) by imf07.hostedemail.com (Postfix) with ESMTP id 601D54000B for ; Mon, 13 Jan 2025 09:36:14 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="OeF/W0xj"; spf=pass (imf07.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.52 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736760974; h=from:from:sender:reply-to: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=ZKymjPp3wDUBMtRWsKLPyBQowq0RQ31ZQwkL7ESbekc=; b=pISHSjqji2UY+XPffh1CqIbefS/UeGT0acq1tIoNg70Zt14BIRuO9SdfHASk02QwnMS1Qa WWn6rZUcPZ9ARiNTy+TwCdGtWymVtrEC0UkXUcOhErht8zfemfLLXsmK+xTs5tXxqCwJP3 VUkQVbGxAf6Eyvza6Nu+7ZpC8CtqR7E= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="OeF/W0xj"; spf=pass (imf07.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.52 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736760974; a=rsa-sha256; cv=none; b=Wtiyc8xHNKEKeZrgqsVOPKJKZPYX/XQLtN2c3rTMsRDM2l2bdErI+FMjm958546aewRzTt G45PHygTuVNeZkz+WF0LHOmjqlfpE89AZjkkh7t4GZ/Kr0U3HnN0Sn6RAWzKbn4MFHl1MQ ehNFuLsRydJHeQtlt2fLt74zphcsOYE= Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-aa6c0dbce1fso581797566b.2 for ; Mon, 13 Jan 2025 01:36:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736760973; x=1737365773; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=ZKymjPp3wDUBMtRWsKLPyBQowq0RQ31ZQwkL7ESbekc=; b=OeF/W0xjA4b87O48pJ3q0A+Ln9lZ2spnyFf80SshIfJRlGAhNef2SRQD4MIvLF2L6S rqdCPIiYtWbcNgmctPgcVjZq1jJ9r89HcsjxGvUH7j5gASvIaAGG8QiEZcY97rPaLnDj teiKYFUoGO03ox5y46QghWUiLQi4HjR6jCtNNiGWaKjVk+wRlIuR/5pbzCgPeehMSgiL 9XhFjMX38b2oWHEh0tD0mtAw7esG6y8UaNyYex906gCOKqs4VHJyNqx9eI/LmNGZlsMF Cwkq0GRji4Rqy/qWibP5BcKaApBTfgFqvXzHwu05Q5eysKxv2VyEdPvwyfTO/QrXdFB4 9VfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736760973; x=1737365773; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZKymjPp3wDUBMtRWsKLPyBQowq0RQ31ZQwkL7ESbekc=; b=JdwhTb38bit/KqM8m3R0DgyTIyGlbwz2iGS4jn/3753hZZUm6APxVV2HcVqx9Y4Ew6 RkV+Y7GJvqtWlHKNV+auXowoMI/2sMJyXYH9pQDgQ3rnvZPF5HmrRudWIk4PvcdSqN3R VoO6cNWoNygVcwknt1jgoZ1BC1a2AlpI44vw8c9Rojdq/eSCUsoaXem8FJT9GDFUkeea xwLPbL5QBxIuSoLSwsCAt8rBiD7WuIKQ+09WR5QqSTVrko6SXl2jKcpBNuAVXqv6GL3s wzMGUV9IblXS5rODq7zMbKOt9uEJOeCz4+/Z6jwE1nQ8VXrAkIDWrKsBjH/GZTMaZmkp 4MpQ== X-Forwarded-Encrypted: i=1; AJvYcCVKmGJGaN2xWZB31z1I2Qe9M4ZTRY5HjSfaFJtB1UcTTRifb+ICWlxnbFVyln9g/FudS2AT7AL6HQ==@kvack.org X-Gm-Message-State: AOJu0YwnpHjXsmkEqfFjMuWUK/hbHFxfl72/FUBLlFQ1sboN9zHcG82c +5pQigbMYYpuoBV++XyoNHEfOuDqKaHeKns3nFutfYeC08pIb+XJ X-Gm-Gg: ASbGncuqZ0AAKqshL1GNGFcuga1+t0cvsMsssRB3wtPlmEys4LAIOITNcDjpa7PEpgG ZygR9WstqrJfxGUhotAQxVrGH5kDKVYnd2gsm8dAHP/Z8z//uA55iptjrRuamtkIcjWZow6dy9f KHjjM7ShR9Dul0X5OVKOZI3fZ5TunUsomF8CuxD2X/Y+NAznjjSt41S2923unQMb0RlAuhA1EMR JKHfhECu20KiGo1rpSJ2VwkhI7ax1zQUFzu6puBAteLPBroAv2MuK5f X-Google-Smtp-Source: AGHT+IHN3qpmk53tayv+FrYb02RvjHAFDFMQxe7I9AMfQiMhg6tn9/PsELN1xEfTAZ3v5GNb1RTEaQ== X-Received: by 2002:a05:6402:270d:b0:5d9:ad1:dafc with SMTP id 4fb4d7f45d1cf-5d972e639famr44878290a12.25.1736760972566; Mon, 13 Jan 2025 01:36:12 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab2c95624ccsm473199266b.126.2025.01.13.01.36.11 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 13 Jan 2025 01:36:11 -0800 (PST) Date: Mon, 13 Jan 2025 09:36:11 +0000 From: Wei Yang To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, peterz@infradead.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, mjguzik@gmail.com, 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: <20250113093611.hmjmizvt73mrq2y2@master> Reply-To: Wei Yang 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: <20250111042604.3230628-12-surenb@google.com> User-Agent: NeoMutt/20170113 (1.7.2) X-Rspamd-Queue-Id: 601D54000B X-Stat-Signature: 1n7cb7yfxcsor1gxhpj6317mhw6ra8dx X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1736760974-854443 X-HE-Meta: U2FsdGVkX1+VlTWnHGkA9ok2s2hMEPgGUnI5KXgnKCQR7RKmUAXJ1y11qmQwD+7KofvNklEmyEK7xxoOiikDbZ6iJ/e/LIcrvQqI1VniMBeVoYVV6zLDrba/6uwHRIKvTKZS5UcGHWC7JGapJ8mRcEi1e3cmQmwKAFfY+HpbJRq8IfUrBkgEnevSP0RxfB7RzIIiWz5CBwcUn5khIedHoBXBnFLf9stbBafbgDZ1epnV4FHDLaktUSIZF2SS8cBRFQCdi+jk9gZG6z5R1/kL4zxAgwdN+P9rAfLdbm0bIDKlJ7GNKBxC4wBII3jm8dY1/3rrn4u7eop4u4cP/HUd1k0yTbunX5Q55T4FUR2Kzzto2/YHuQxmGLTnaaTwG5waREBR0P5V2x5qTVfC+o72wr2o6NiAbJDI9ZmOfiEGIaG+v5Xqpd/LkeJGmN1CJ8m5F4SnAXqsQUgUl9hUjA0I4TE9a8aJlAb3W39L68ZbXQlGMBUyXDKicbQK8qu6+ZwzgZe91Hac7BDrRbzuL4o8Byc2yvxLjO8Zi3hCh69aLe70WizPtXhk6XSeeZSkIT+ZbM1XC6gki0ci4hkA1wXTiodb8v7NlXub3581At3kUp2KsQxUcrYgX1zIhzcRoCwtcTE5vvdf8ekhY0ersFQU9M24LCQCTAjSvOLjMjgj2lSmswBlmGAcGC1SELKSffAQJG3KGkwPOpMbEanWm/eCfydVBDza772Y/Cs3LPShFTvM3yEHhPc38XsAHoQPItYPHjaO3LWWueiH+I+p8FD6p2YYef3FfeE3mRoZfSMtxEWZs2aq4fEelVsI6waVCzOuu1jSpFDgFffLebE53ARetqEWO3xiacClN4YMh+srkFfs9ajUd70YfN4ht45KHdDTYQGfC57eixtBzJclRDA167GOA/9htwxqXqcdjy8NhhLDMdlv6Drwuh0SNMFhYfT5Wi5btc2kYQhnz0rSPgC 5y/hGqD/ +6LAy2kTuwppHBOPHP9c7NaC7L7kfqpdNLw420MdwMU4AtDYomMHn3Mr7Ncl4q2MZIzTdIdMDoAZqscJDDI9bi+mqdTs0H6OzS1V2lXLvaBfSY6FKESlBcXHZOFb5anlzcH2QIdsWp9smbiTNfX1I3UOrxTbkWwmKgFlZsavsOr/S89UK2yQfiCaSm4VS6ZuViP8UspX+ZLTm4RaCon6T03wHjQq9LTCivcq4Yb8Rq8slqmf0jFYvm+2w/Qw7zgaQguIV3pluGV/c3C8Ahe1CtoA0pzP1fixDlm/D7OZs70ju/XNjkmUoR/Z7jlLffhb3F73GRM0KZmg7rkx1f+GS982nq6DdX1MkpXEKODv8f1Wh96tUyOdTGWV7UWJaJVzR9Rh1miphXbx/8fbU7Bnm8xoXxDLqGxPhoJnyyxK48dAeHZEt0b9K7bKQowvVWC8wuqX9wFji7jSJ8g27JucCo0a6sOB/CiWaWMQNKPBqtWb000FjS0aV+N/PpoffTGMuIF/hgFduOUYyiM95hNEMy1EPs4wLGTAoULNQASItMOgCQeHkFDr64myUJIoZuVKZhyDy4B1IRK1I1BssGEHDwZ4M8MEVVBUuU5xX8m0StAyzhFCekHBErqIV+KRUf774JuvgHYwRHEAknfZeBH3Nr0kGXC+SgVG17cWU 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 Fri, Jan 10, 2025 at 08:25:58PM -0800, Suren Baghdasaryan wrote: [...] > >+static inline bool is_vma_writer_only(int refcnt) >+{ >+ /* >+ * With a writer and no readers, refcnt is VMA_LOCK_OFFSET if the vma >+ * is detached and (VMA_LOCK_OFFSET + 1) if it is attached. Waiting on >+ * a detached vma happens only in vma_mark_detached() and is a rare >+ * case, therefore most of the time there will be no unnecessary wakeup. >+ */ >+ return refcnt & VMA_LOCK_OFFSET && refcnt <= VMA_LOCK_OFFSET + 1; It looks equivalent to return (refcnt == VMA_LOCK_OFFSET) || (refcnt == VMA_LOCK_OFFSET + 1); And its generated code looks a little simpler. >+} >+ >+static inline void vma_refcount_put(struct vm_area_struct *vma) >+{ >+ /* Use a copy of vm_mm in case vma is freed after we drop vm_refcnt */ >+ struct mm_struct *mm = vma->vm_mm; >+ int oldcnt; >+ >+ rwsem_release(&vma->vmlock_dep_map, _RET_IP_); >+ if (!__refcount_dec_and_test(&vma->vm_refcnt, &oldcnt)) { >+ >+ if (is_vma_writer_only(oldcnt - 1)) >+ rcuwait_wake_up(&mm->vma_writer_wait); >+ } >+} >+ -- Wei Yang Help you, Help me