From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C0E43477E27; Thu, 4 Jun 2026 12:40:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780576845; cv=none; b=qxDh6iBXB6jpFui2u5CBm8ga4fGmQZ3hUI3cvUNAoLtM8Z9M7wbYgMvVMAHH30FAppBlw7uMUq+NE39ZPDaAaXriZw4XjNS6boBI/Pw9xtJox6JoMuVEkgCsEuqS1VBIhHc21BkEfYCgd6Xe2AHKyPE/cCqd9jW1lBkFSYOmFak= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780576845; c=relaxed/simple; bh=3motd/Kk9tEcEy98c5ncAGr3nNkb1fzwM1uTOGz4Qus=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=HOuF4qX2t3NGwFO0ZOoMcapWh9joO59NiGpznsEYiIqEe4xkgGUcxY1dde1x1PCjklA5TAruWNniyFs3x8qY6gxM2VdE6UGg5sPuDPcOybU3TaJeN3SMyXKm2Y43wf9mZoTKJLWpv03OaaC9kfxrYL9T1n3Hwq3EHwEdUwvSGO0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l2/Ly8io; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l2/Ly8io" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA0731F00898; Thu, 4 Jun 2026 12:40:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780576844; bh=GnOm+v7F1LKSbVaBQReSZi8hz25Kzy0nepO4bxrUVcs=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=l2/Ly8io+6pNgjeg3NB14IEfCQfKWpweb0eJKJ7SQ6Gz0ITGa2NRnQDCDfdq1vs76 eHVSagFXGbe8QOVvnOPbK9NuA5I0IQcf+zQsmc0JOA7AwaNOpgOWuhEtUDsBqYIDN0 dBGBSHprHOUkKCgU4ocuSlMwbNpsIb0/KLN+gKujZ6LUrMc/cjbCR2FoWkllYsEDpC yhqTp3rcfpntt1TN/9elHktGTNTqDTdciG8rjJgFtedK12OZEhbgb0koUg+DkKwHYJ M2hY0H01Fe9S27uWItliJRn/RpqB8p54OLhqVIByLr8IpnStfxTk/vPmwkrOqgI5Vf rHrnkuClyogqQ== Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfauth.phl.internal (Postfix) with ESMTP id F3A80F40084; Thu, 4 Jun 2026 08:40:40 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Thu, 04 Jun 2026 08:40:41 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTF1BaCWatKURocL+NpcgGk8YfcgR1XBShgJesrvsvC2cG3vlDNwoRLKuuKWvI9wgr KG4Un6Q8MLsUhJ7qUby0lAaArhUaGksZuyniOIcFRF3jBJfW9luEJSa356GyMvadHeAIUB F7Fsk6uIaYS9/XUo/AHbvEW2iTXW7UQHwAiD96JBraglfj5eFgrMXQqkhBFZpo5fmGG/eI AQb5l6O4b5u+PthGYCRYvuYPUJXdmWKqj7KOhX79C+va6qRUJSnqWA/slW9fvEtsxZflmn cZYxt7SIfaZSY+71gr8mRZqSZhlvD3ofSHh//MmWZCDH7C7YuX5/Ca4yauFP5gCXu8R5e8 ATuCazD5w14RyGhUDf8kJ2nnJlgWRO3UwgsRWPcouZeOlihQh5D8nnxfIJXtuCyTTW3jlv 7TsEq+dkGy+hPVqy5gzBhzu74DPvX0twDJI7dlB6ID2+z1ZSG+J1UYSs61b9WIUb4ttyzS TjZSEePWTPWlDNq9PoUQQWqdzHgd48jCUCsvE2SpVwPE7xmxBMRNl9jVOmXJglehoDpXd9 z7WWsk64xF+a6MwNoBsFE/yKMv6OSIpaAByuh/5HYUXC1C2pht/LVhYAvicEDOwXVeAMyN 6QHhq6XTEBwnqHjw+vWgmxJE8KWrktttFqSpXIHL+Ldl3JEWwh3FcBx1FKuw X-ME-Proxy: Feedback-ID: i8dbe485b:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 4 Jun 2026 08:40:40 -0400 (EDT) Date: Thu, 4 Jun 2026 05:40:39 -0700 From: Boqun Feng To: Peter Zijlstra Cc: Catalin Marinas , Will Deacon , Jonas Bonn , Stefan Kristiansson , Stafford Horne , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Arnd Bergmann , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Waiman Long , Andrew Morton , Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Miguel Ojeda , Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Jinjie Ruan , Lyude Paul , Thomas Huth , Sohil Mehta , "Xin Li (Intel)" , Pawan Gupta , Nikunj A Dadhania , Joel Fernandes , Andy Shevchenko , Randy Dunlap , Yury Norov , Sebastian Andrzej Siewior , linux-kernel@vger.kernel.org, linux-openrisc@vger.kernel.org, linux-s390@vger.kernel.org, linux-arch@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, rust-for-linux@vger.kernel.org, Onur =?iso-8859-1?Q?=D6zkan?= , Daniel Almeida Subject: Re: [PATCH v2 10/12] preempt: Introduce HAS_SEPARATE_PREEMPT_RESCHED_BITS Message-ID: References: <20260526152148.30514-1-boqun@kernel.org> <20260526152148.30514-11-boqun@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260526152148.30514-11-boqun@kernel.org> On Tue, May 26, 2026 at 08:21:46AM -0700, Boqun Feng wrote: [...] > +#ifdef CONFIG_HAS_SEPARATE_PREEMPT_RESCHED_BITS > +static __always_inline void __preempt_count_nmi_enter(void) > +{ > + __preempt_count_add(NMI_OFFSET + HARDIRQ_OFFSET); > +} > + > +static __always_inline void __preempt_count_nmi_exit(void) > +{ > + __preempt_count_sub(NMI_OFFSET + HARDIRQ_OFFSET); > +} > +#else > +DECLARE_PER_CPU(unsigned int, nmi_nesting); > + > +#define __preempt_count_nmi_enter() \ > + do { \ > + unsigned int _o = NMI_MASK + HARDIRQ_OFFSET; \ > + /* Maximum NMI nesting is 15. */ \ > + BUG_ON(__this_cpu_read(nmi_nesting) >= 15); \ > + __this_cpu_inc(nmi_nesting); \ > + _o -= (preempt_count() & NMI_MASK); \ > + __preempt_count_add(_o); \ > + } while (0) > + > +#define __preempt_count_nmi_exit() \ > + do { \ > + unsigned int _o = HARDIRQ_OFFSET; \ > + if (!__this_cpu_dec_return(nmi_nesting)) \ > + _o += NMI_MASK; \ > + __preempt_count_sub(_o); \ > + } while (0) This needs to be: #define __preempt_count_nmi_exit() \ do { \ __preempt_count_sub(HARDIRQ_OFFSET); \ if (!__this_cpu_dec_return(nmi_nesting)) \ preempt_count_set(preempt_count() & ~NMI_MASK); \ } while (0) otherwise we would have an underflow issue if an NMI happen between the "if" being true and __preempt_count_sub(_o); Regards, Boqun > + > +#endif > + > + [...]