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 7B50DE77188 for ; Fri, 10 Jan 2025 13:32:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6E026B00B1; Fri, 10 Jan 2025 08:32:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BF66C6B00B4; Fri, 10 Jan 2025 08:32:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A71276B00B5; Fri, 10 Jan 2025 08:32:44 -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 7F6856B00B1 for ; Fri, 10 Jan 2025 08:32:44 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5DAA61A0A81 for ; Fri, 10 Jan 2025 13:32:43 +0000 (UTC) X-FDA: 82991632206.12.2F9B5CD Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by imf27.hostedemail.com (Postfix) with ESMTP id 6685F40006 for ; Fri, 10 Jan 2025 13:32:41 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UqFGRA9I; spf=pass (imf27.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=david.laight.linux@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=1736515961; 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=saWRqueZSKazbb7wvwClhKntd6BUUHOVyljPsXjAe+g=; b=pZVWkQvpMFi1JkmECKmbHrurTlkbjxsavXkEld0mhBf8FYmrG30ERGa+qpG45u3LFtLtYt o+psv38zrrFZBfEEaH728dcj52V1S7idwvWzWNB7lHQOsincgpISda3OfKxM7aCkSx27qO 9r3MCT5rV46GJI1msrFC0hnPLPXWEhY= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UqFGRA9I; spf=pass (imf27.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736515961; a=rsa-sha256; cv=none; b=K/6co/8LwP1xuSHboGgg4iDVLpeUUOawUI4mQMk+qKpgPcqr7BbLGsHfuVlmwz/8ue2p0e uZkWO2vgS8aUK6Ws1ZzK2/Z59Sd/VweOShjurw+LuCVdt7ggvJrM8ihn6bFtmyCr7QRegx aV8tJrQiwf1b90JFYadoNHuL9M5prUA= Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-38637614567so1065965f8f.3 for ; Fri, 10 Jan 2025 05:32:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736515960; x=1737120760; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=saWRqueZSKazbb7wvwClhKntd6BUUHOVyljPsXjAe+g=; b=UqFGRA9Ipv9kqRUGL0RPKoDCWzEeOP3oI/9Iak2yPNtY1bS85HtSRm73e7XgAUdoeO SETualc6VdwWUW4BbXbLwhQpSAJbpplMTODW00X9od0JLE741Bspd5qXyHzSlQakLZsN pzFASipFLnFqME70PXjWjac3ZmjCc9WuQLMeS1Wc5vqaLIUuWzPID35LFjCkyXHRhE3W rK+V9LHkzKOZrWFMJMU4sdSNupsUg4vMz9q1/q1adxWDswnpDo4un0MRPL3kRB3Fm218 xj2aaleoFHFt2e7JDmwzV1Z9Uwf9K5BfJ1BWp23uY5mQ33650yP/V+Ox4dGpJ0YWJcdE ejhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736515960; x=1737120760; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=saWRqueZSKazbb7wvwClhKntd6BUUHOVyljPsXjAe+g=; b=TnjT7vlyfJnWe/T+fZ8GMZmYIAsj0LUxucSZXhiFVkpA9E7AXjZXIcT/l7lHTtrxzj rrK5mb9s9kPiPAOniijGdEjH2o2SovDZGICbeBE2JDuUr8VJkJYAttNeOeFWb1bunRzR jILbDP3sG3yO5kcNq364o6KXj5cCQ15LALWJsM3lyL65ypo/ZFV1FBlIBMXHvsYu39wD rpE4MOEjjzrXfn6VkIbPyYqKC0GtpYJN/hsrL7KNbwZ3W24ILlZRAsDT0XlECS22WEgW SZ28JA9+4RlbrppKOu6oH52nx6spdldhNbif9ENUGipo9pqB7i2zhuv6iMeQrcL/ZAoB /DiQ== X-Forwarded-Encrypted: i=1; AJvYcCVLTPGnsZ+mXQV/2GDWo0LzVT3rzWTMlqHyM7GQIZTzxoAlNi3vhJZGmreB71+QlIjeUnNlzFFTQg==@kvack.org X-Gm-Message-State: AOJu0YwDaM/I9jtkvT8Ss04W2Je3c59Qd6x+u+hBIpzfVCLxwHXB3c9h el7oixGM5+3Q+I3R/+G3350cPruoaiWkJU3BzW1eUVIuF7jTs07t X-Gm-Gg: ASbGncsK7zZ+OWnT84ORzjB+5aXevGX7QSEvRyjlyuK/qydAYxThGQ4VRq5HYLB+7GE sWh5QyAKBSwP23L1uLPD52ulDMDNCCr7Gah1UFdBlVpC1F8zuNKOCwuM/K4SR8XamB8xhpSNXm6 JCyoU/ocQMylnVrEwV0I9Svytis50hghqx06VUEeFMei5g88CAoZqrbRSaDr8/DdilmLZYRUY8b 6Lmov480u2b0LSR7F5uB8ljxDmOaSV8RhzQk2l0cwasqGqYKTeqNjQLkjj6W95zi+qVJK5RVAvb ElTv5lWOx9+Xw3rKSoo= X-Google-Smtp-Source: AGHT+IHDR20wTEJaXBw6GYlyjA58UJfabcULYEHtl8dP90dVreDbKW6+n8lhR4KSYy95KJZ+Ejudcw== X-Received: by 2002:a05:6000:1789:b0:38a:5122:5a07 with SMTP id ffacd0b85a97d-38a8730394dmr2794933f8f.15.1736515959785; Fri, 10 Jan 2025 05:32:39 -0800 (PST) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a8e38c7aesm4642403f8f.53.2025.01.10.05.32.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jan 2025 05:32:39 -0800 (PST) Date: Fri, 10 Jan 2025 13:32:37 +0000 From: David Laight To: Matthew Wilcox Cc: Vlastimil Babka , Suren Baghdasaryan , akpm@linux-foundation.org, peterz@infradead.org, liam.howlett@oracle.com, lorenzo.stoakes@oracle.com, mhocko@suse.com, 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, corbet@lwn.net, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@android.com Subject: Re: [PATCH v7 11/17] refcount: introduce __refcount_{add|inc}_not_zero_limited Message-ID: <20250110133237.61dd14fb@pumpkin> In-Reply-To: References: <20241226170710.1159679-1-surenb@google.com> <20241226170710.1159679-12-surenb@google.com> <275bd492-7d7c-4b9a-9fce-fbe25639cbfb@suse.cz> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 6685F40006 X-Rspam-User: X-Stat-Signature: muz5r4cq47tcz46mof9sihpe79d1zoux X-HE-Tag: 1736515961-441292 X-HE-Meta: U2FsdGVkX1/hhZmdfCIKGv8PYEtnc52tuhhJUDhYRJ7Yi7187KzBwtNg4/IhTWNQrBX7/0o7BRZQGAGWY56dh3PGulWcVUH6GYc6aon7WjMBU5JDHKvvCr99OLOT0P+7fq5roVDnflyO8XRUOiKeYbehRXyGokBFgHL6wgfaAY7h5kjnAmVscHNMXinAy5DgFue80YNs/fsvQSynmEGCL9PCyw/rAFcQVBp7oZj5UKttwWOjqKAEosgZIERJ3odgNM+0FtbSTW/w+YEUaIIzhOsR4B8ZjZUxjCqJAix9M/IQ6NcYPafT17NOyNOY1bIHMZenErU7wgAWeLyBA+Cp9gf40+qpfclIVbwEim8VWZQTGrnD7euTpuCUDLmSAnriISoTDhNx8Ph0YT8OppZsZDFcCJD3XCFBRRHuiSupM86r9H8Npf1FvuR8a6iexXoZpaTVdrvVtICknO/R+jhq6Cz6trr+GKLNXLjQnVkErbdIpz5CgiZ8vdntZ3Pi6nPwkhjLlwJda6/yLjsP/gRd5v8024XwrvCPxlCNsnfdZGE9wMZ5KGKqTk71hll4FmFnvtJdUkpMagKI5Ycgbj1l7HQ6we9zp0ZD3xowi23AxlpzMKN43XaCiYZmtmwMuBDo41Y4pS8t6ZF3czRiu3PfcLEicgUVCo0pYjHuvRPxBOq9Cj7LppuJbwqJdygfBzclkRxmg/6hBNXTLadXQGO8AIr50/5OHnQ1qRINQKiQJY+He1PNyYPGzEk1+JSLyiPxnhbiYhb7yP/76JoVcV7vhr2HLE4/MsvpZcB3iucQprk6f9RBYTTQUewuI5yk2qzl6DOfqcrcOlico5y2Gr4seO+xe7+YUdfT2JQvKWxEUFgm5QvWoA4ZSv2gwsJmMditSRfIDOTnsXyforylkDtAvggMR9JnickfT4IdQ5dM/CVV7XfaNas7qAl+HNBBe+2r534YwqDuxcSEIDUVQPJ ZirJlN6V ve4Y3sG90J/0e7ltvJvysVKGdThmjXrLU7JNg3haHi2gXpb5QjGXQgztoMB7e00jE2gNZ2Hz26FNDxbk//8QOKE4fcCejl1LxDfefHrVy2f3facUya3uWSFdyq3hxPbCmJXA3eouF3WPJYxd2ysfurcx9YkmJGJAz604Or+8b5cm6Z2NVZTU+Rc0k5/WVbmnrCV+nerSjJPtaFK5Aig1W0W8SaEsdORqw+MEvIsdgAz6gE+yxpm1GL2EeRSvWDVHyo2pOtjvhDnNRkSReBqI1SoQf/rw/D57hW+A5rN8MOYAQXIEm0SWA0WDMDc+DlDvuCP14aizkaGb1tJqPtHYEpZSijnPXXwzNI3r7aY2aJH5nZj8Wn5mIOrbWiLeQ3nxxc0d7MC5n9mIEJxCbP1BqeCd39Z+ouB5EWqUVPszfiILoM4Stv98QQ3vcqrnCUP4arGYpARMqrBLIIRR1PjBKW9htQbMIns7AnOLCgRbEb/sECHVbirFoR1z06g== 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 Wed, 8 Jan 2025 15:06:17 +0000 Matthew Wilcox wrote: > On Wed, Jan 08, 2025 at 10:16:04AM +0100, Vlastimil Babka wrote: > > > static inline __must_check __signed_wrap > > > -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 = refcount_read(r); > > > > > > do { > > > if (!old) > > > break; > > > + if (limit && old + i > limit) { > > > > Should this be e.g. "old > limit - i" to avoid overflow and false negative > > if someone sets limit close to INT_MAX? > > Although 'i' might also be INT_MAX, whereas we know that old < limit. > So "i > limit - old" is the correct condition to check, IMO. > > I'd further suggest that using a limit of 0 to mean "unlimited" introduces > an unnecessary arithmetic operation. Make 'limit' inclusive instead > of exclusive, pass INT_MAX instead of 0, and Vlastimil's suggestion, > and this becomes: > > if (i > limit - old) > ... The problem with that is the compiler is unlikely to optimise it away. Perhaps: if (statically_true(!limit || limit == INT_MAX)) continue; if (i > limit - old) { ... David