[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200115092312.45159939@gandalf.local.home>
Date: Wed, 15 Jan 2020 09:23:12 -0500
From: Steven Rostedt <rostedt@...dmis.org>
To: David Laight <David.Laight@...LAB.COM>
Cc: 'Vincent Guittot' <vincent.guittot@...aro.org>,
Peter Zijlstra <peterz@...radead.org>,
Viresh Kumar <viresh.kumar@...aro.org>,
Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: sched/fair: scheduler not running high priority process on idle
cpu
On Wed, 15 Jan 2020 12:57:10 +0000
David Laight <David.Laight@...LAB.COM> wrote:
> I'm surprised the 'normal case' for tracing function entry isn't done
> in assembler without saving all the registers (etc).
Well, it doesn't save all registers unless you ask it to. It only saves
what the compiler mandates for "fentry" before calling C code.
> For tsc stamps I think it should be possible saving just 3 registers
> in under 32 instructions. Scaling to ns is a bit harder.
> It's a shame the ns scaling isn't left to the reading code.
Well, it could be done, as the ring buffer allows you to post process
timestamps. You could switch to using just tsc:
echo x86-tsc > /sys/kernel/tracing/trace_clock
One reason that we do not post process the scaling to ns is that the
scaling can change over time depending on the clock source, which means
post processing will give you in accurate results. But the
infrastructure is there to do it.
-- Steve
Powered by blists - more mailing lists