[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260119100143.GO830755@noisy.programming.kicks-ass.net>
Date: Mon, 19 Jan 2026 11:01:43 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Thomas Gleixner <tglx@...nel.org>
Cc: LKML <linux-kernel@...r.kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
"Paul E. McKenney" <paulmck@...nel.org>,
Boqun Feng <boqun.feng@...il.com>, Jonathan Corbet <corbet@....net>,
Prakash Sangappa <prakash.sangappa@...cle.com>,
Madadi Vineeth Reddy <vineethr@...ux.ibm.com>,
K Prateek Nayak <kprateek.nayak@....com>,
Steven Rostedt <rostedt@...dmis.org>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
Arnd Bergmann <arnd@...db.de>, linux-arch@...r.kernel.org,
Randy Dunlap <rdunlap@...radead.org>,
Ron Geva <rongevarg@...il.com>, Waiman Long <longman@...hat.com>
Subject: Re: [patch V6 07/11] rseq: Implement time slice extension
enforcement timer
On Sun, Jan 18, 2026 at 11:46:18AM +0100, Thomas Gleixner wrote:
> On Fri, Jan 16 2026 at 19:15, Peter Zijlstra wrote:
> > On Fri, Dec 19, 2025 at 11:05:17AM +0100, Peter Zijlstra wrote:
> >
> >> I was thinking that perhaps the hrtimer tracepoints, filtered on this
> >> specific timer, might just do. Arming the timer is the point where the
> >> extension is granted, cancelling the timer is on the slice_yield() (or
> >> any other random syscall :/), and the timer actually firing is on fail.
> >
> > Here, I google pasted this together. I don't actually speak much snake
> > (as you well know). Nor does it fully work; the handle_expire() thing is
> > busted, I definitely have expire entries in the trace, but they're not
> > showing up.
>
> You want the below. Then you get:
>
> Task: slice_test Mean: 350.266 ns
> Latency (us) | Count
> ------------------------------
> EXPIRED | 238
> 0 us | 143189
> 1 us | 167
> 2 us | 26
> 3 us | 11
> 4 us | 28
> 5 us | 31
> 6 us | 22
> 7 us | 23
> 8 us | 32
> 9 us | 16
> 10 us | 35
>
> Thanks
>
> tglx
> ---
> --- a/kernel/time/hrtimer.c
> +++ b/kernel/time/hrtimer.c
> @@ -1742,7 +1742,7 @@ static void __run_hrtimer(struct hrtimer
>
> lockdep_assert_held(&cpu_base->lock);
>
> - debug_deactivate(timer);
> + debug_hrtimer_deactivate(timer);
> base->running = timer;
D'0h.
I suppose doing this makes more sense than fixing the script. Want me to
write it up?
Powered by blists - more mailing lists