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 563FDE7719A for ; Sat, 11 Jan 2025 10:00:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4A736B0083; Sat, 11 Jan 2025 05:00:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DFABD6B0085; Sat, 11 Jan 2025 05:00:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CC2F96B0088; Sat, 11 Jan 2025 05:00: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 AAADA6B0083 for ; Sat, 11 Jan 2025 05:00:53 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5769D4562B for ; Sat, 11 Jan 2025 10:00:53 +0000 (UTC) X-FDA: 82994727186.04.3857A01 Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by imf28.hostedemail.com (Postfix) with ESMTP id 74E62C001B for ; Sat, 11 Jan 2025 10:00:51 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=BlvtssKG; spf=pass (imf28.hostedemail.com: domain of surenb@google.com designates 209.85.160.178 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=1736589651; 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=bNJf/I+Bz826PuLA/stcgf3BIsrUrgEEms/t8+0m6xs=; b=DkO80ebD6Yy+5zd+9CCiOmbr2npcLqyFwwGmWopfgZl6MBXkzjjFMI6slUzEOw5tzpzbeI Eaur8wohGkmUrYLFPW6bfey530eE3HR2BoX8Hnmf4+JzGyjSpivXhmEJw9UOPPI/4wTGM+ MVi/g7LtiiIi345BZOWyLNuKlF3jEhc= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=BlvtssKG; spf=pass (imf28.hostedemail.com: domain of surenb@google.com designates 209.85.160.178 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=1736589651; a=rsa-sha256; cv=none; b=qGJQ3m1PlgzmLVv44xP5BrOXhXCcEVZv8bmKje9ow2WO54GnUsDH6lGoCLzlMy4Vlg3jwm hIlhznyaf6S+eFw6yu+VlLnoGfSBpkWjqix+KR3NhfXhu65PCT12go5v5PDy9L1JBoHWVi KJeBNoo+VN0Ry5r6WQucx5PCP8q6OFw= Received: by mail-qt1-f178.google.com with SMTP id d75a77b69052e-467896541e1so138691cf.0 for ; Sat, 11 Jan 2025 02:00:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1736589650; x=1737194450; 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=bNJf/I+Bz826PuLA/stcgf3BIsrUrgEEms/t8+0m6xs=; b=BlvtssKGr7kgYFahSVR0E0SUOaZ+uU9yG2cD6WgaJJ477/f9c1AL4573I/6bGEGRZS jmocRrMYpv8xAzk4BITF4JRxVm1jCmMudbTVm7ANZQaHESClygml9cwrgapClAh+6D5b 7MQM3kwwBCLVkT1pZZbbIUjR7OvlmAlnWvP0UPmZrqvliAobF/P71Px3zWw8GZi9p+qO 0GCD++9vA+LIx/E+iRejbZmanxY8NXpKK1E5GSRRR06MFYWWCX7bkKrO99FmHP/jAuma /2KYG8Y0KUObiO2Y/Y7v+Pj9fAYqjhRJnipR2ychex6y7uS2otMtAKj0D48FdLa4wyho Fcxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736589650; x=1737194450; 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=bNJf/I+Bz826PuLA/stcgf3BIsrUrgEEms/t8+0m6xs=; b=soOvTb4zbhUT3Vms6eKCS1VvXqWxAUmSh+YuSecPbuk9gkiAd//CLQuk3yNGSphnyi cmnFcDf5XGxw8XR05ETL7vPiI6IRXAcZsfuwKEhHdMdzH8FAFX7nmDjBPooXUow16uHg qDUfubZ8WV8uFYmjDooOI1toERqUIbg39F1g6/KMOOHS3veQS3qbwNisW+x7B980TgKD oRAZpCw1vGYFb/Ew+xI4F46+AjuapWZQ1dEBb+nzmq1AR4WlpFZyWvc7d8ejYmf3/bzC DtN8Bg7s9+foA/TJYxjWFAcmBjwUT3V7bLfCRcBi0RJthxhDOLGLxAyD+2zIRF/XP3iq 4s5Q== X-Forwarded-Encrypted: i=1; AJvYcCW1j34LdLHsU5rV6iBWuMJAXcOBSK0XBOcaK8gBkG6bC91hZp2E9CruzoBdHbctkNM1uWLZGiqxhw==@kvack.org X-Gm-Message-State: AOJu0YwwV5/lanje+RCHOtcBvisyn1+1Eonu5gEVICG+MSWo0q13NcC+ Z/HfW5LqWZetjaHspZi9CNGk2hezg9zQy561HNDjTHiI4rQSJVZtFnsDYCmeWsFceN9T3OnnIvw Kxr99oAjyCsLjf2SbfRD2Uj2ljb/LmK6xlCR2 X-Gm-Gg: ASbGnctXbKXFGxqvOMJ+foa6N2T3NPcFWd99btWbgMoMWkdGElRoNEpADEGXqoiTxlc oA8fvSU2kDQANCYS8pMzAYAWPchAXt3MnLOEZpA== X-Google-Smtp-Source: AGHT+IFQNPQu4A8TXpO7GFexiyvf5hC4/cz9rMbMZqWdCVyWhyXSpwM0e7r9b9ceC7wXxGCxVkDYqPOjLqWlR/xJCAc= X-Received: by 2002:ac8:5a4b:0:b0:467:7f81:ade0 with SMTP id d75a77b69052e-46c87f4a621mr6240151cf.24.1736589650275; Sat, 11 Jan 2025 02:00:50 -0800 (PST) MIME-Version: 1.0 References: <20250111042604.3230628-1-surenb@google.com> <20250111042604.3230628-11-surenb@google.com> <20250111063152.1638-1-hdanton@sina.com> In-Reply-To: From: Suren Baghdasaryan Date: Sat, 11 Jan 2025 02:00:39 -0800 X-Gm-Features: AbW1kvZ2XPZLUKAzvXVG5R5rWerj37f4_Ui7eohXgIjrZ3m9OzWHWZc_SP4Mgwo Message-ID: Subject: Re: [PATCH v9 10/17] refcount: introduce __refcount_{add|inc}_not_zero_limited To: Hillf Danton Cc: akpm@linux-foundation.org, peterz@infradead.org, willy@infradead.org, hannes@cmpxchg.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-Queue-Id: 74E62C001B X-Rspamd-Server: rspam12 X-Stat-Signature: poedfsdhxx8pmhr9868wfjua4554cejc X-Rspam-User: X-HE-Tag: 1736589651-42922 X-HE-Meta: U2FsdGVkX1/RTO3DGdrNHCOpagaH56hmAxlNgEiekt0axKLcqt49tqVmkAPxuQ2v5Kfi1Z16Gh0qhMG/kms8RoMlnpNzmovdNfUR5/Tpcao6n0W+GoyTKm3O38JlQiJOQ3pRw8+4UN745tv0XV1O1mWhS7g/w/PlBQpON5vjVWo9a8z703s8Yvdog2aY/LANwe8cQ1jXn0md/f5UNUF0rgeGfshHkuEvEBBmGn8oZhCum+J7jxk62xcHIe0Baj35CdNAv/eKEbAfwRrQnOgRkGuJ5rJY9h+aQCbdjejyT0mI+1wfiTOLORJNyHy2V2oc+kbZ/w/4+0xvKfugD5l5bEDt+CNHQCx7sKUNd6NljjLCjvoLXDqdB9E4P5ZNM25Sg+gK5qbqocuTnhJbJYVCP1m6z5XsHJzGeYTzK+b5QjHFzU8dDKruKacexOhTmh8qxu5hbM8MV+o3s1VgIAMy1n1JFY9+Ayv/Mn1EIQ0NKXUMGzGyBS6VZTD/x1gvCHrLRtaaE8SPOhj/70KQc4KqSmXug3tZl5TZDLPg+7h+nGR2I9XlZy0U4lRoC7Kca1MwG2DZDroAint/uAyPvVP40nsueKKt90eMIvSk8t4Cpi4DQe8N9+O7oWscEJvZFp9XaDKpmZPx4xkAWyee9YGSE2HpyfjGtk7ca10lQnygiNC/EMps5eOLZieKNtos5Oy0Tnjb2Am6vRyY/8wn8STbS3RgmbMQV/DyZ9hmiM4VKYDTr45Ivi+MTMOiB4TO/Q5vzE/7YNwQKenGpd7cpwZdhXwJAUC74zO1yb4fCKrRb0xYbaI21xHBbSyiFmprt0K9xgYBh/UbAmgxsY5uCXl/S/5bNclLx1ZG+ySNzXxnhKcXccaznFvjTFK/6hZhwYGnLF5AKSa9Fgglnw2ZVCEQt2wRkIlRW/S5rmm4rINA2iHjF42nLlkJ1I3miKLngcdxumD8jybv9j6+CxaTGoM TB8dmwZy 2HBgycV9AxN55Qqw/lDLeR+3MzO51fVcuUAPjeCvnRun/+m0hMLT/OWBH7hvUUwa+5hxqslpO7qiCIfFC8ZUrxXBekH58mMheWnUhcUpQOPuFK0vWr3Vvb0WsAF+8Ak+n/E8r1fp8gv8DH5rRE8RQmDU3EkPDKEFnhZ+bDh1zvpP6VJibE+Wz9td9kZAZk7dGeshZT8sZWYOQmXQvDtmF1r4ztJ59CrnaNB06F6l7wBILlQqb96tyWUm7kdRfj9/zfxKIkpz99SS0qP0YIXJglzs/kOin58vzDyyctQItkiUugKz9CM7wA6ynSA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.350261, 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 1:59=E2=80=AFAM Suren Baghdasaryan wrote: > > On Fri, Jan 10, 2025 at 10:32=E2=80=AFPM Hillf Danton = wrote: > > > > On Fri, 10 Jan 2025 20:25:57 -0800 Suren Baghdasaryan > > > -bool __refcount_add_not_zero(int i, refcount_t *r, int *oldp) > > > +bool __refcount_add_not_zero_limited(int i, refcount_t *r, int *oldp= , > > > + int limit) > > > { > > > int old =3D refcount_read(r); > > > > > > do { > > > if (!old) > > > break; > > > + > > > + if (statically_true(limit =3D=3D INT_MAX)) > > > + continue; > > > + > > > + if (i > limit - old) { > > > + if (oldp) > > > + *oldp =3D old; > > > + return false; > > > + } > > > } while (!atomic_try_cmpxchg_relaxed(&r->refs, &old, old + i)); > > > > The acquire version should be used, see atomic_long_try_cmpxchg_acquire= () > > in kernel/locking/rwsem.c. > > This is how __refcount_add_not_zero() is already implemented and I'm > only adding support for a limit. If you think it's implemented wrong > then IMHO it should be fixed separately. > > > > > Why not use the atomic_long_t without bothering to add this limited ver= sion? > > The check against the limit is not only for overflow protection but > also to avoid refcount increment when the writer bit is set. It makes > the locking code simpler if we have a function that prevents > refcounting when the vma is detached (vm_refcnt=3D=3D0) or when it's > write-locked (vm_refcntVMA_REF_LIMIT > > > > > To unsubscribe from this group and stop receiving emails from it, send = an email to kernel-team+unsubscribe@android.com. > >