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 59FBAE7719A for ; Sat, 11 Jan 2025 12:39:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B1B646B007B; Sat, 11 Jan 2025 07:39:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ACA2A6B0082; Sat, 11 Jan 2025 07:39:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 96A176B0083; Sat, 11 Jan 2025 07:39:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 789266B007B for ; Sat, 11 Jan 2025 07:39:06 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id F36A3C131B for ; Sat, 11 Jan 2025 12:39:05 +0000 (UTC) X-FDA: 82995125850.04.ABD5F66 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by imf08.hostedemail.com (Postfix) with ESMTP id 0622216000F for ; Sat, 11 Jan 2025 12:39:03 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=QLofR0ib; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736599144; a=rsa-sha256; cv=none; b=0EiKsy5HA+fKDB9oJALnM0ETLMcqYgckGhSEG0ch6j5lsoUvU9o8GKVrBb4GC/i09rTseM ldNGZwRM+hTk/PHWsVkw4DIBZ7c8Wg1rvf70QdAsoKZGQxT8tivl5KT12L4/0J9HQiG+1X ntw3mfxLooxOHRI8qvqLO+cVP8zesVQ= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=QLofR0ib; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736599144; 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=xjcUr7iPo16VpAzzLGdT20/uMUcDtwg+n1cza3W2ZFU=; b=42il8nkzvV3/YXrBnHEV0LL4FL63NdiS0pciNyLTIi8BsrKGVc3BkxvMBF15V2J5ZGIW66 4WCHlFZCgTcyEMxiV5UF1eVmdT/gf+S0tQyHoDd9bL0MSq372C+t4dDNqcC5z2QNQMdwsE TNt4oiiTkyMo/BWVSZxrXPNAmjdKEkg= Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-3862f32a33eso1303015f8f.3 for ; Sat, 11 Jan 2025 04:39:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736599142; x=1737203942; 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=xjcUr7iPo16VpAzzLGdT20/uMUcDtwg+n1cza3W2ZFU=; b=QLofR0ibvqtyBsmpbrbGtp4PoEzbjdLi6sw4dFa/4SFegPx4S60MRDQ7XZLSWfSfhQ glTI5nhr6WPzuqWuImkj48abi+1Tf3EV4tGbXnJN8WtrKhSuIp65D2Y7mAoc6DhhRBMS oaLut/dht0aZT7hYDtV9Zy3vpgek+xnvx3DFqjAajAshuc0rut6M4HGMp+hWBieBc8uc WLZmuJzWRdkQSewhKo3IJ4iD3PZnID1PFeBHx0WzusexZDwj0uO3aP+0vG1w81844v2F UhH5NecOuMP2x1SJKwvzqQj/R3DOohCPMuq5wYOj8j9AMBEYYxZjDqbAoFyzXuuCwwot UAIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736599142; x=1737203942; 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=xjcUr7iPo16VpAzzLGdT20/uMUcDtwg+n1cza3W2ZFU=; b=vnfTG9cIvERa/hsFg+QHZ6huW35UgOkNlGk1v8xFs3hbC8K7bThsT+/4opHj+MlOAr +gncxj2cUnLinF1PhHaTeQBXGG44/GauS/10KWJ7ksUoPbfpeLeJX/H/2EJvlfaMVzXU a6d0lfGCQjxJMjfjzf2bzAAzJ6AQAwwyAyW1u7igFKQMyV8W4l0XAqA6LDg4D+MWD4Ys gOZAY8Q7LzViIX9CHF6M/vrJj+q1xsy2rwZMqtI+G3MbpnNX8LIVY/3DqwI6fHLFp4km 0Gw6UYQpAWjhaEW2UgCZnbRB4y1maQxUw5YXS8+0uaQx0ugrRipaH79G5nfHO3o3ksMH JpWg== X-Forwarded-Encrypted: i=1; AJvYcCUS9e1ndfXTc+er5LDsc/0gbYuL7yUM/1llCeEbD1wb2Fy/G1IZJwDBzPMY2vW9fj/ItDeF+6tfdg==@kvack.org X-Gm-Message-State: AOJu0Yzsk04R40dIhOO5yYD/NlWsQArhbOcITmy9pvffcsftCbI/sOcp GmwNXKlpwti7GwL5bKad+gJ/Uqci/neQOjlk6ANOyKd6RsVYa3a8 X-Gm-Gg: ASbGncugsfknY2hK5JTs6oaSYZ3fCIX682aDbHvmXnKCg8RrjOpaCoP8IZcv+AdNK5h iRopkttiwzSR/6MYptl/y+mwzKWtwWyMNTJttJvjmtkqfdQ9cZ58wD0eHZQSMjyTQ7IGmQO2tXu +hmEgCh3fliSvaKitHWHEhsuqGw1WbophAdbvskY+EXcWFVjgJ8mvxlol1bAidxsP1rVO1yHQIV 6XqL08TnlfFXR9dnsxYnO3x7hlmYsJ2xzdj4Jx10NMZYOYqb2OVt0cm/5PpP7lZOtdlcvK++QNe X1nKFf6XnScd2SvVHfU= X-Google-Smtp-Source: AGHT+IHyM+5JHDmoYe0STSSA5fjw6i003CpLYyIbIAV2BpVbC08OESNUvTt7cMMoFTKPDG8cc94ZZg== X-Received: by 2002:a5d:6d02:0:b0:385:df43:223c with SMTP id ffacd0b85a97d-38a87303941mr13248409f8f.13.1736599142095; Sat, 11 Jan 2025 04:39:02 -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-38a8e3853b6sm7087513f8f.44.2025.01.11.04.39.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Jan 2025 04:39:01 -0800 (PST) Date: Sat, 11 Jan 2025 12:39:00 +0000 From: David Laight To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, peterz@infradead.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, 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 10/17] refcount: introduce __refcount_{add|inc}_not_zero_limited Message-ID: <20250111123900.643e4b49@pumpkin> In-Reply-To: <20250111042604.3230628-11-surenb@google.com> References: <20250111042604.3230628-1-surenb@google.com> <20250111042604.3230628-11-surenb@google.com> 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-Stat-Signature: 85azo3kz3xembyhcxskgirbr9sabn9ky X-Rspam-User: X-Rspamd-Queue-Id: 0622216000F X-Rspamd-Server: rspam08 X-HE-Tag: 1736599143-59885 X-HE-Meta: U2FsdGVkX1/HavbUc0MIGRmYzeYQXS9jSxb38yqDoQ6p/j7cymLx3HiTJSyIyxmkhtBNZpwgw2T4HDTEyrasEkr0ACw/vGLYRqHTdvCpB8rHETPRmMO09YkTnhyMMkWb9JyKC8kMqSNfkZ9u+FfWRkvvTTrj5ljxCjJdF/ozHwx6KyuistmuHbVmdCvou9u+3Uzs4e+aSVq71Qp0y2Thit+e11h/SKhhn0XBLs9Vx2MaxoeKUf0DqmPh9BVS1Wq56lqBdvXRHW6oJAWrSyYHQD4laEpA/ESQxz8nTi4yj9btJjAHGnxy8bQ5PRjyC6lntFrI4Y4WxAhT0BnrNu2AXZ/MtlWTKogSwgnKK74OXd85bVabflWKzDM/ZUtYObB4aImsjIjOyfXgVDTi979IKvRIGSCtqMUyb+MIQK/A0lGXe/jSQzwLKZutHfQUltCpo8SwdSE63h9YBEa0DhL0C9alNCXCOXhHvwmAeQJ9ppmJTL15uDTEqcMLU60yuVyf+ZIj1a5o95FPvwjqb9chBWcIjDGSM99+RqZ/5VGZEEyH7nWyPhD1DU5PLHsqzloQtUuxt+bEEm9v765UHgC5T/ttN8X6fzgbWIxJ31mEtnmfD5qJWNecgcNqG8xIK7Z2z9O0Ncav37ni58nQYd9EmQ9+ppWN1knO20wCqMQKDYRpNT7IWf7RJ91lTR+QSXw6jMmJHPKCz/dmn+T5L67K36FYxgRsV0VIojzkMDCXq8rUHpEzHXhBroPJYmKrkcZdRSs7ulEXhMMxWKieALHz1uO0py/KKR53yQDYqv1V5G031NCX6Gs5Kq0guJ+SqTPiIXtn7T4RuFP9mW5DMTrPaURtk/57IVccZty3PqQju1fCApre/MCcnzECkJW11xmBCD9AkAoVB5G/vgFaOIMTwCRQcGEJYuxA8j0cNwZSDURk7Jy4yb4rRAjuNWKFW1PG03dDwbiCWztWQfboLds cEbK6UPg e1yIDRGnsf1TUbiozFim97jYDMqk5eSXcZeAmMTFPQqcBFIs2fSvTb4LWj1XvX1WI9/AlfvCT5LRu+RMsOO/RJVwhAp4sI+aS8NWptxNRL+Uv4qfhb8cDIF1HXXZICgkDbsqsVLlBYtDgNQR9KSXBna/46K4//kmNUq8k8oLSH6M+idsyV06x9TYfh2ArCt7VL2rSNfWp0lfQBjRJzM1zINzRiPODxyRAr2ZtQMxmFqX4DXCB/5ZJuDQH/08X6qhoZ7cxhVbBud6B0PLhDrN6xqhlycralHJ04l6eboocPSNAziNeqUvZ6oPChgimzEg8oq9iZNFrJROTqq46xE1+ZgkojVNtXLqqLPozlT8yqZEf5cHgKb5+/MJP5Zw2v0knb5Epp342MDwERfBKCIkxyq63aqrFR833Fa7qZqAlE6xNEZum+buVffMbIFiORMWErYVwRyofB6YE7AzvYEKZBYDIDhX1cwYnRDzwlUljweXeKMUxWRupFzZTVqFo6rz3whCumR3mrj1uXVl0HCvOQckywQMJhR20azc45ojkEC/ryXtORnwWvSK/cqLpWOjpFEW+Dfn28DfsMabr2qPHPmI7/A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000013, 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, 10 Jan 2025 20:25:57 -0800 Suren Baghdasaryan wrote: > Introduce functions to increase refcount but with a top limit above which > they will fail to increase (the limit is inclusive). Setting the limit to > INT_MAX indicates no limit. This function has never worked as expected! I've removed the update and added in the rest of the code. > diff --git a/include/linux/refcount.h b/include/linux/refcount.h > index 35f039ecb272..5072ba99f05e 100644 > --- a/include/linux/refcount.h > +++ b/include/linux/refcount.h > @@ -137,13 +137,23 @@ static inline unsigned int refcount_read(const refcount_t *r) > } > > static inline __must_check __signed_wrap > -bool __refcount_add_not_zero(int i, refcount_t *r, int *oldp) > { > int old = refcount_read(r); > > do { > if (!old) > break; > > } while (!atomic_try_cmpxchg_relaxed(&r->refs, &old, old + i)); > > if (oldp) > *oldp = old; ? > if (unlikely(old < 0 || old + i < 0)) > refcount_warn_saturate(r, REFCOUNT_ADD_NOT_ZERO_OVF); > > return old; > } The saturate test just doesn't work as expected. In C signed integer overflow is undefined (probably so that cpu that saturate/trap signed overflow can be conformant) and gcc uses that to optimise code. So if you compile (https://www.godbolt.org/z/WYWo84Weq): int inc_wraps(int i) { return i < 0 || i + 1 < 0; } the second test is optimised away. I don't think the kernel compiles disable this optimisation. David