[{"id":3674041,"web_url":"http://patchwork.ozlabs.org/comment/3674041/","msgid":"<20260407095421.GM2872@noisy.programming.kicks-ass.net>","list_archive_url":null,"date":"2026-04-07T09:54:21","subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","submitter":{"id":493,"url":"http://patchwork.ozlabs.org/api/people/493/","name":"Peter Zijlstra","email":"peterz@infradead.org"},"content":"On Tue, Apr 07, 2026 at 10:54:22AM +0200, Thomas Gleixner wrote:\n\n> +enum {\n> +\tHRTIMER_REPROGRAM_NONE,\n> +\tHRTIMER_REPROGRAM,\n> +\tHRTIMER_REPROGRAM_FORCE,\n> +};\n\n> +static int hrtimer_start_range_ns_common(struct hrtimer *timer, ktime_t tim,\n> +\t\t\t\t\t u64 delta_ns, const enum hrtimer_mode mode,\n> +\t\t\t\t\t struct hrtimer_clock_base *base)\n\n> @@ -1315,25 +1337,110 @@ void hrtimer_start_range_ns(struct hrtim\n>  \tstruct hrtimer_clock_base *base;\n>  \tunsigned long flags;\n>  \n> -\t/*\n> -\t * Check whether the HRTIMER_MODE_SOFT bit and hrtimer.is_soft\n> -\t * match on CONFIG_PREEMPT_RT = n. With PREEMPT_RT check the hard\n> -\t * expiry mode because unmarked timers are moved to softirq expiry.\n> -\t */\n> -\tif (!IS_ENABLED(CONFIG_PREEMPT_RT))\n> -\t\tWARN_ON_ONCE(!(mode & HRTIMER_MODE_SOFT) ^ !timer->is_soft);\n> -\telse\n> -\t\tWARN_ON_ONCE(!(mode & HRTIMER_MODE_HARD) ^ !timer->is_hard);\n> -\n>  \tbase = lock_hrtimer_base(timer, &flags);\n>  \n> -\tif (__hrtimer_start_range_ns(timer, tim, delta_ns, mode, base))\n> +\tswitch (hrtimer_start_range_ns_common(timer, tim, delta_ns, mode, base)) {\n> +\tcase HRTIMER_REPROGRAM:\n>  \t\thrtimer_reprogram(timer, true);\n> +\t\tbreak;\n> +\tcase HRTIMER_REPROGRAM_FORCE:\n> +\t\thrtimer_force_reprogram(timer->base->cpu_base, 1);\n> +\t\tbreak;\n> +\t}\n>  \n>  \tunlock_hrtimer_base(timer, &flags);\n>  }\n\nSomething is going to figure out that hrtimer_start_range_ns_common() is\nreally returning that enum and then complain you don't handle NONE :-)\n\nAnyway, to me it would make sense to instead pass that value to\nhrtimer_reprogram() as the second argument. But this works I suppose.","headers":{"Return-Path":"\n <netfilter-devel+bounces-11656-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","netfilter-devel@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256\n header.s=desiato.20200630 header.b=YXRcs4S5;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11656-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org\n header.b=\"YXRcs4S5\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=90.155.92.199","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org","smtp.subspace.kernel.org;\n spf=none smtp.mailfrom=infradead.org"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqhQ96J3lz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 19:55:13 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 8025D3025705\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 09:54:39 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E23163A6F18;\n\tTue,  7 Apr 2026 09:54:37 +0000 (UTC)","from desiato.infradead.org (desiato.infradead.org [90.155.92.199])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id A96243A6F04;\n\tTue,  7 Apr 2026 09:54:34 +0000 (UTC)","from\n 2001-1c00-8d85-4b00-266e-96ff-fe07-7dcc.cable.dynamic.v6.ziggo.nl\n ([2001:1c00:8d85:4b00:266e:96ff:fe07:7dcc]\n helo=noisy.programming.kicks-ass.net)\n\tby desiato.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1wA38Z-00000007yoW-2229;\n\tTue, 07 Apr 2026 09:54:23 +0000","by noisy.programming.kicks-ass.net (Postfix, from userid 1000)\n\tid 9D2DB30035C; Tue, 07 Apr 2026 11:54:21 +0200 (CEST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775555677; cv=none;\n b=g7lKZcvlFPWvMXT44lfI3TWsNu45mkHTZDOW6cdxUiRcOlg0/XM1f7AlVxOIPMiy6B0eeZtKWtvCGyUFFk7BPBGeXGoz7xpveoX5JDI4igb8oC1VwmOBi7Dwfy0h1E+OacDg66dQ+45AfFXw71KHWoUu6er6QYC4RAgypI3NxX4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775555677; c=relaxed/simple;\n\tbh=F+j+RTQvlDjF+jbp7AYolR+jUFD1B3ykRG4D9L2woSY=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=cAdMFMvDouSdfhk9Aw4JKuU2ggltgMnt+a2L7RVuBQYSwMMgNFlKtBZ2lm8kF+E+nP5vLPI1hx5RnF1LCmJJA896KvwL1fU0sPzfPIW1D611k6gGpkXOwvTTKLlvhyg0qb/r1d0y4HvqNrYM7xkQMdy6EylEmPPZO1yLdOVBzQU=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org;\n spf=none smtp.mailfrom=infradead.org;\n dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org\n header.b=YXRcs4S5; arc=none smtp.client-ip=90.155.92.199","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version:\n\tReferences:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:\n\tContent-Transfer-Encoding:Content-ID:Content-Description;\n\tbh=geJJQ+vfMd190DMB8bun8qM40V3WrYOXoU4roUTlPvQ=; b=YXRcs4S5QH4fP9HdfO1A04LyP7\n\t2miab2cNdQRnnAXhBfWzvyNhKltIVr8com5j6oUMLuG8tw83AyCZy9CucSmp4i1oKXTjfwp3KUAZn\n\tx4jAVf0R4CQqrCDVSjPobv1uy2kmjAQDSjOG3AvZs8FTleUySJFgn9/xGbzYoHnYRRLparTwRKgDe\n\tPWcDAd9zB1PjHBHm2Lqem0boF9JaWJ1kW4VIUw+TJeMfyjjHRJVQVnC9QuTNfp1oOoNeLhbHj6lac\n\tlpRbZiy99XhuoOWHL4xtRbo+7+fsxPrpibA9VgYr47DC3LkzU7fZ4D1NzwX7LIt1fVq+3q1nUOolX\n\tATo2Pm6w==;","Date":"Tue, 7 Apr 2026 11:54:21 +0200","From":"Peter Zijlstra <peterz@infradead.org>","To":"Thomas Gleixner <tglx@kernel.org>","Cc":"LKML <linux-kernel@vger.kernel.org>, Calvin Owens <calvin@wbinvd.org>,\n\tAnna-Maria Behnsen <anna-maria@linutronix.de>,\n\tFrederic Weisbecker <frederic@kernel.org>,\n\tIngo Molnar <mingo@kernel.org>, John Stultz <jstultz@google.com>,\n\tStephen Boyd <sboyd@kernel.org>,\n\tAlexander Viro <viro@zeniv.linux.org.uk>,\n\tChristian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,\n\tlinux-fsdevel@vger.kernel.org, Sebastian Reichel <sre@kernel.org>,\n\tlinux-pm@vger.kernel.org, Pablo Neira Ayuso <pablo@netfilter.org>,\n\tFlorian Westphal <fw@strlen.de>, Phil Sutter <phil@nwl.cc>,\n\tnetfilter-devel@vger.kernel.org, coreteam@netfilter.org","Subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","Message-ID":"<20260407095421.GM2872@noisy.programming.kicks-ass.net>","References":"<20260407083219.478203185@kernel.org>\n <20260407083247.630389532@kernel.org>","Precedence":"bulk","X-Mailing-List":"netfilter-devel@vger.kernel.org","List-Id":"<netfilter-devel.vger.kernel.org>","List-Subscribe":"<mailto:netfilter-devel+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:netfilter-devel+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260407083247.630389532@kernel.org>"}},{"id":3674044,"web_url":"http://patchwork.ozlabs.org/comment/3674044/","msgid":"<20260407095758.GN2872@noisy.programming.kicks-ass.net>","list_archive_url":null,"date":"2026-04-07T09:57:58","subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","submitter":{"id":493,"url":"http://patchwork.ozlabs.org/api/people/493/","name":"Peter Zijlstra","email":"peterz@infradead.org"},"content":"On Tue, Apr 07, 2026 at 10:54:22AM +0200, Thomas Gleixner wrote:\n\n> +static inline bool hrtimer_check_user_timer(struct hrtimer *timer)\n> +{\n> +\tstruct hrtimer_cpu_base *cpu_base = timer->base->cpu_base;\n> +\tktime_t expires;\n> +\n> +\t/*\n> +\t * This uses soft expires because that's the user provided\n> +\t * expiry time, while expires can be further in the past\n> +\t * due to a slack value added to the user expiry time.\n> +\t */\n> +\texpires = hrtimer_get_softexpires(timer);\n> +\n> +\t/* Convert to monotonic */\n> +\texpires = ktime_sub(expires, timer->base->offset);\n> +\n> +\t/*\n> +\t * Check whether this timer will end up as the first expiring timer in\n> +\t * the CPU base. If not, no further checks required as it's then\n> +\t * guaranteed to expire in the future.\n> +\t */\n> +\tif (expires >= cpu_base->expires_next)\n> +\t\treturn true;\n> +\n> +\t/* Validate that the expiry time is in the future. */\n> +\tif (expires > ktime_get())\n> +\t\treturn true;\n> +\n> +\tdebug_deactivate(timer);\n> +\t__remove_hrtimer(timer, timer->base, HRTIMER_STATE_INACTIVE, false);\n> +\ttrace_hrtimer_start_expired(timer);\n> +\treturn false;\n> +}\n> +\n> +static bool hrtimer_reprogram_user(struct hrtimer *timer)\n> +{\n> +\tif (!hrtimer_check_user_timer(timer))\n> +\t\treturn false;\n> +\thrtimer_reprogram(timer, true);\n> +\treturn true;\n> +}\n> +\n> +static bool hrtimer_force_reprogram_user(struct hrtimer *timer)\n> +{\n> +\tbool ret = hrtimer_check_user_timer(timer);\n> +\n> +\t/*\n> +\t * The base must always be reevaluated, independent of the result\n> +\t * above because the timer was the first pending timer.\n> +\t */\n> +\thrtimer_force_reprogram(timer->base->cpu_base, 1);\n> +\treturn ret;\n> +}\n> +\n> +/**\n> + * hrtimer_start_range_ns_user - (re)start an user controlled hrtimer\n> + * @timer:\tthe timer to be added\n> + * @tim:\texpiry time\n> + * @delta_ns:\t\"slack\" range for the timer\n> + * @mode:\ttimer mode: absolute (HRTIMER_MODE_ABS) or\n> + *\t\trelative (HRTIMER_MODE_REL), and pinned (HRTIMER_MODE_PINNED);\n> + *\t\tsoftirq based mode is considered for debug purpose only!\n> + *\n> + * Returns: True when the timer was queued, false if it was already expired\n> + *\n> + * This function cannot invoke the timer callback for expired timers as it might\n> + * be called under a lock which the timer callback needs to acquire. So the\n> + * caller has to handle that case.\n> + */\n> +bool hrtimer_start_range_ns_user(struct hrtimer *timer, ktime_t tim,\n> +\t\t\t\t u64 delta_ns, const enum hrtimer_mode mode)\n> +{\n> +\tstruct hrtimer_clock_base *base;\n> +\tunsigned long flags;\n> +\tbool ret = true;\n> +\n> +\tbase = lock_hrtimer_base(timer, &flags);\n> +\tswitch (hrtimer_start_range_ns_common(timer, tim, delta_ns, mode, base)) {\n> +\tcase HRTIMER_REPROGRAM:\n> +\t\tret = hrtimer_reprogram_user(timer);\n> +\t\tbreak;\n> +\tcase HRTIMER_REPROGRAM_FORCE:\n> +\t\tret = hrtimer_force_reprogram_user(timer);\n> +\t\tbreak;\n> +\t}\n> +\tunlock_hrtimer_base(timer, &flags);\n> +\treturn ret;\n> +}\n> +EXPORT_SYMBOL_GPL(hrtimer_start_range_ns_user);\n\nCan we do that hrtimer_check_user_timer() in\nhrtimer_start_range_ns_user() and then not duplicate\nhrtimer_*reprogram() ?","headers":{"Return-Path":"\n <netfilter-devel+bounces-11657-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","netfilter-devel@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256\n header.s=casper.20170209 header.b=BeJ4qaRH;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11657-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org\n header.b=\"BeJ4qaRH\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=90.155.50.34","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org","smtp.subspace.kernel.org;\n spf=none smtp.mailfrom=infradead.org"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqhTh1dbfz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 19:58:16 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id C2441300B8D6\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 09:58:09 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id DCA1F3A7593;\n\tTue,  7 Apr 2026 09:58:04 +0000 (UTC)","from casper.infradead.org (casper.infradead.org [90.155.50.34])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C585A3A3811;\n\tTue,  7 Apr 2026 09:58:02 +0000 (UTC)","from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252]\n helo=noisy.programming.kicks-ass.net)\n\tby casper.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1wA3C3-00000003Ofl-24UN;\n\tTue, 07 Apr 2026 09:57:59 +0000","by noisy.programming.kicks-ass.net (Postfix, from userid 1000)\n\tid C6E5830035C; Tue, 07 Apr 2026 11:57:58 +0200 (CEST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775555884; cv=none;\n b=msidFeXdIlnUbw8rxN+klRr4p1E4n3yLE1ow4C8nZ1GL3pxu+UjFgjI1ELZEIXMnStQoW5oCWgcGJCdK+BfNr2fOBs6Bqx/4say6wB/v1IsUf8fQhsyhOyUgJksCdUBAPinJVYU/EgVkOPO4c3PZKWS/bzVe6THkulHwUGET0yM=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775555884; c=relaxed/simple;\n\tbh=RgfU0I9zIP442zw/XGMTZKb4QwJmbpxXUGPsC0kef7s=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=axJy2EjO1HSYzrLT8cGfxZt163zCV9GRqwx7QW3Fh72ixuYDYw2x6GxtCDEbhsqOju4NgnFlZsjnWGC9yqi/+kGBV2WdQYBLh+R7IX8dFIff/kmZyvD6WpKrdpuyIRX0wTs+stDq+W8Nx6esri8EA9OjeaCSTMLpiD86eVITr8k=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org;\n spf=none smtp.mailfrom=infradead.org;\n dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org\n header.b=BeJ4qaRH; arc=none smtp.client-ip=90.155.50.34","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version:\n\tReferences:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:\n\tContent-Transfer-Encoding:Content-ID:Content-Description;\n\tbh=l+v9qfHlGicecrX/JIMoy5WRYW+qnKSed321NIzNjcw=; b=BeJ4qaRHXncm/yzaNqzFpCqAA9\n\tYs9Mz6VK4WJYhzGafch0tQNttHuL5PaICSHfXage1VBYl5Vc/0vXSDMZ84kdCXGJH8PErM2dgcAd/\n\tK5kebdb837bfBBtMiEndL2kudRd4ma4OzB2nma4aI5fOv9Zq2BP0cnZYPEhLIljVmY3Qns4xloSyO\n\tTIfGbPc5APjFUWP7nx4Ulb5e2FmLdUevAtiZ0fXEyUdiInlPKjv0wFQ8fOPUyvTDwbXrTZyTS/aod\n\t8HknEzB4hr81lcUbHY5PU9JtC3SsVPlqZbUH/1bK1q0JmyNlGLDYr+MTRrrNqicWw11uMdb3TmI2h\n\t3JId8zSA==;","Date":"Tue, 7 Apr 2026 11:57:58 +0200","From":"Peter Zijlstra <peterz@infradead.org>","To":"Thomas Gleixner <tglx@kernel.org>","Cc":"LKML <linux-kernel@vger.kernel.org>, Calvin Owens <calvin@wbinvd.org>,\n\tAnna-Maria Behnsen <anna-maria@linutronix.de>,\n\tFrederic Weisbecker <frederic@kernel.org>,\n\tIngo Molnar <mingo@kernel.org>, John Stultz <jstultz@google.com>,\n\tStephen Boyd <sboyd@kernel.org>,\n\tAlexander Viro <viro@zeniv.linux.org.uk>,\n\tChristian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,\n\tlinux-fsdevel@vger.kernel.org, Sebastian Reichel <sre@kernel.org>,\n\tlinux-pm@vger.kernel.org, Pablo Neira Ayuso <pablo@netfilter.org>,\n\tFlorian Westphal <fw@strlen.de>, Phil Sutter <phil@nwl.cc>,\n\tnetfilter-devel@vger.kernel.org, coreteam@netfilter.org","Subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","Message-ID":"<20260407095758.GN2872@noisy.programming.kicks-ass.net>","References":"<20260407083219.478203185@kernel.org>\n <20260407083247.630389532@kernel.org>","Precedence":"bulk","X-Mailing-List":"netfilter-devel@vger.kernel.org","List-Id":"<netfilter-devel.vger.kernel.org>","List-Subscribe":"<mailto:netfilter-devel+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:netfilter-devel+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260407083247.630389532@kernel.org>"}},{"id":3674106,"web_url":"http://patchwork.ozlabs.org/comment/3674106/","msgid":"<87ldez57le.ffs@tglx>","list_archive_url":null,"date":"2026-04-07T11:32:29","subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","submitter":{"id":92397,"url":"http://patchwork.ozlabs.org/api/people/92397/","name":"Thomas Gleixner","email":"tglx@kernel.org"},"content":"On Tue, Apr 07 2026 at 11:54, Peter Zijlstra wrote:\n> On Tue, Apr 07, 2026 at 10:54:22AM +0200, Thomas Gleixner wrote:\n>> -\tif (__hrtimer_start_range_ns(timer, tim, delta_ns, mode, base))\n>> +\tswitch (hrtimer_start_range_ns_common(timer, tim, delta_ns, mode, base)) {\n>> +\tcase HRTIMER_REPROGRAM:\n>>  \t\thrtimer_reprogram(timer, true);\n>> +\t\tbreak;\n>> +\tcase HRTIMER_REPROGRAM_FORCE:\n>> +\t\thrtimer_force_reprogram(timer->base->cpu_base, 1);\n>> +\t\tbreak;\n>> +\t}\n>>  \n>>  \tunlock_hrtimer_base(timer, &flags);\n>>  }\n>\n> Something is going to figure out that hrtimer_start_range_ns_common() is\n> really returning that enum and then complain you don't handle NONE :-)\n\n:)\n\n> Anyway, to me it would make sense to instead pass that value to\n> hrtimer_reprogram() as the second argument. But this works I suppose.\n\nI can do that too. Splitting it this way made me more comfortable to\nvalidate the logic I was implementing.","headers":{"Return-Path":"\n <netfilter-devel+bounces-11667-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","netfilter-devel@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=WSrAj41I;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11667-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"WSrAj41I\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqkZd1P3sz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 21:32:41 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id DA43D300C33C\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 11:32:36 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id DF72D3AE19F;\n\tTue,  7 Apr 2026 11:32:33 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E47F3ACEE0;\n\tTue,  7 Apr 2026 11:32:33 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 30C45C116C6;\n\tTue,  7 Apr 2026 11:32:31 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775561553; cv=none;\n b=YON2nyg65iBX3h6vpoD18318V3hm0QFuL8fd9/TjGDknROBwHY2BLhuN38K6tFbH2d+qtr5AX81yGaFntbb0jGmlRqbo2JtGpLEtmYrzqgvnOA5ChcpKtSzzpr4cWOFBaOvj2KIfwY0uT4beDktVOzWPIGEhv6cKsF4M6M7+PLs=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775561553; c=relaxed/simple;\n\tbh=zEpIb1DowHXXHcAi/mnSRKMnbVGwODsD4BMvq/qGzb8=;\n\th=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID:\n\t MIME-Version:Content-Type;\n b=FS0DYDqcs6Z/W7ZRVx6dDhkpfUwG9iDBqHNzamM8owrItCP9ZbRf7kQebhNEM7j6XLApAsMQOpclFl2/BS1uqT+jktIW5sybr2z/YvbpK9DFxH3EWP71AQl2qC8/xQ4jpHCVY5AEUxuLcRb5AkXrtCsHWIOAo/TlqLaqOhZVbUM=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=WSrAj41I; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1775561553;\n\tbh=zEpIb1DowHXXHcAi/mnSRKMnbVGwODsD4BMvq/qGzb8=;\n\th=From:To:Cc:Subject:In-Reply-To:References:Date:From;\n\tb=WSrAj41Ib39zggoqaJ9MDss07O5NLMJ8dWPsDVAzLYvu55WSpZZV6in+Me1/IqYlG\n\t 6jCzsReNOCYLMP8sXbnKDIL9BKUeg+XncA2iKEQyB9d06XmVpbC8JAip0MVJVe6tzQ\n\t BLY6tzVhdYsiq9FCRagvyKwh3U7vAtuSkLLCxgd9k785LNdoBcTyaKYm0BBz/cyzAE\n\t +F74vTiWkk033bgRWoLNGv1FsLhrtHLGD03DoNkGk4FFQtNUKEaj37zRBJnPkrnWd+\n\t Ej+TmKEj73taCfhM+adExAhtzC+pkFJdbagEDTYpu5i8khxyhKc9hp2Z8cD7v39oFg\n\t 4WGYPtiuzhl7g==","From":"Thomas Gleixner <tglx@kernel.org>","To":"Peter Zijlstra <peterz@infradead.org>","Cc":"LKML <linux-kernel@vger.kernel.org>, Calvin Owens <calvin@wbinvd.org>,\n Anna-Maria Behnsen <anna-maria@linutronix.de>, Frederic Weisbecker\n <frederic@kernel.org>, Ingo Molnar <mingo@kernel.org>, John Stultz\n <jstultz@google.com>, Stephen Boyd <sboyd@kernel.org>, Alexander Viro\n <viro@zeniv.linux.org.uk>, Christian Brauner <brauner@kernel.org>, Jan\n Kara <jack@suse.cz>, linux-fsdevel@vger.kernel.org, Sebastian Reichel\n <sre@kernel.org>, linux-pm@vger.kernel.org, Pablo Neira Ayuso\n <pablo@netfilter.org>, Florian Westphal <fw@strlen.de>, Phil Sutter\n <phil@nwl.cc>, netfilter-devel@vger.kernel.org, coreteam@netfilter.org","Subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","In-Reply-To":"<20260407095421.GM2872@noisy.programming.kicks-ass.net>","References":"<20260407083219.478203185@kernel.org>\n <20260407083247.630389532@kernel.org>\n <20260407095421.GM2872@noisy.programming.kicks-ass.net>","Date":"Tue, 07 Apr 2026 13:32:29 +0200","Message-ID":"<87ldez57le.ffs@tglx>","Precedence":"bulk","X-Mailing-List":"netfilter-devel@vger.kernel.org","List-Id":"<netfilter-devel.vger.kernel.org>","List-Subscribe":"<mailto:netfilter-devel+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:netfilter-devel+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain"}},{"id":3674107,"web_url":"http://patchwork.ozlabs.org/comment/3674107/","msgid":"<87ika357it.ffs@tglx>","list_archive_url":null,"date":"2026-04-07T11:34:02","subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","submitter":{"id":92397,"url":"http://patchwork.ozlabs.org/api/people/92397/","name":"Thomas Gleixner","email":"tglx@kernel.org"},"content":"On Tue, Apr 07 2026 at 11:57, Peter Zijlstra wrote:\n> On Tue, Apr 07, 2026 at 10:54:22AM +0200, Thomas Gleixner wrote:\n>> +\treturn ret;\n>> +}\n>> +EXPORT_SYMBOL_GPL(hrtimer_start_range_ns_user);\n>\n> Can we do that hrtimer_check_user_timer() in\n> hrtimer_start_range_ns_user() and then not duplicate\n> hrtimer_*reprogram() ?\n\nWe probably can. Let me have a look.","headers":{"Return-Path":"\n <netfilter-devel+bounces-11668-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","netfilter-devel@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=FYid9cix;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11668-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"FYid9cix\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqkdV3v89z1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 21:35:10 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 19D3D304DEA8\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 11:34:08 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 993D73ACF05;\n\tTue,  7 Apr 2026 11:34:06 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B5D338AC86;\n\tTue,  7 Apr 2026 11:34:05 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id EC040C2BCB1;\n\tTue,  7 Apr 2026 11:34:04 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775561646; cv=none;\n b=hGvQgHiKXoR6/UGlt6PE9FsS0THDsGiGwGzANhibfP0VTZevJEQumNnIYb2KdBl/NjsPrly02WJnqZv7gbbCUPYzXi+x4C2tKJXOnCrJvudMcF3HGe3tB1CG54/1GIpduTiHAI1lvftI8xJ1n7OvzNTUJfyOI7cgCbT1ix8kfQQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775561646; c=relaxed/simple;\n\tbh=yUDM3hFghJ6baIkLXjXRO9LIWzDz12fJ6chmAdiLZG8=;\n\th=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID:\n\t MIME-Version:Content-Type;\n b=Fd3WG9NBzTOosT1ke8gtoZe4Ohaa6tiTGeqoXuv5fkF2L4hD6mQZDTflhafopdHkgOlQlpwQbJ94q7+xY+gOR1EYIj18vjyGBIRejgBCnL6+IKnEwZIwtxNehlUBmTZYWS7JlN3Ko3BzmLA59WKFvaYPrsBvfbyw2Qaw8Zq/l6c=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=FYid9cix; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1775561645;\n\tbh=yUDM3hFghJ6baIkLXjXRO9LIWzDz12fJ6chmAdiLZG8=;\n\th=From:To:Cc:Subject:In-Reply-To:References:Date:From;\n\tb=FYid9cixGFlaEndKwF1W5Z/APgig2klLq1AAkPKmWkbCqjZvvb2y1nlR1R0AYLmQx\n\t NdNdarAy7GAUMUOdjE2F8aDM1KCDAovw3k0ubMvVSIXcM7kpaGtLqkjrAXOfb9mdJM\n\t OH0oOetFFUq4i/d/I+wPCkw/L/LVmq9k9bkzzOg0ElgQhWRAmbfzTEzP8x6EnUQmaC\n\t 5F1YvUwxJ9hn7IV+2BEvmT2Rn1UAmBxD1teksdxj3TTMbBjp31gTUQu1WFcpP+tCgC\n\t eBLqoSkPViaEsoCZJk0CV90aCbh7dWaxIbF8wBk8HsWFlGwTNEUcB7/AzjdwR4fGk2\n\t yfumHFLut2Azw==","From":"Thomas Gleixner <tglx@kernel.org>","To":"Peter Zijlstra <peterz@infradead.org>","Cc":"LKML <linux-kernel@vger.kernel.org>, Calvin Owens <calvin@wbinvd.org>,\n Anna-Maria Behnsen <anna-maria@linutronix.de>, Frederic Weisbecker\n <frederic@kernel.org>, Ingo Molnar <mingo@kernel.org>, John Stultz\n <jstultz@google.com>, Stephen Boyd <sboyd@kernel.org>, Alexander Viro\n <viro@zeniv.linux.org.uk>, Christian Brauner <brauner@kernel.org>, Jan\n Kara <jack@suse.cz>, linux-fsdevel@vger.kernel.org, Sebastian Reichel\n <sre@kernel.org>, linux-pm@vger.kernel.org, Pablo Neira Ayuso\n <pablo@netfilter.org>, Florian Westphal <fw@strlen.de>, Phil Sutter\n <phil@nwl.cc>, netfilter-devel@vger.kernel.org, coreteam@netfilter.org","Subject":"Re: [patch 02/12] hrtimer: Provide hrtimer_start_range_ns_user()","In-Reply-To":"<20260407095758.GN2872@noisy.programming.kicks-ass.net>","References":"<20260407083219.478203185@kernel.org>\n <20260407083247.630389532@kernel.org>\n <20260407095758.GN2872@noisy.programming.kicks-ass.net>","Date":"Tue, 07 Apr 2026 13:34:02 +0200","Message-ID":"<87ika357it.ffs@tglx>","Precedence":"bulk","X-Mailing-List":"netfilter-devel@vger.kernel.org","List-Id":"<netfilter-devel.vger.kernel.org>","List-Subscribe":"<mailto:netfilter-devel+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:netfilter-devel+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain"}}]