On 3/7/2016 10:00 AM, Sebastian Andrzej Siewior wrote:
* Yang Shi | 2016-02-23 13:23:23 [-0800]:
I recall the rcuidle version is used by 4.1-rt, but not sure why it is dropped
in 4.4-rt. It looks such fix is still needed.
I don't recall while I removed it. It was durring v4.1 -> v4.4 port. In
v4.1 we had the idle version only in time_hardirqs_on() + …_off(). You
introduced it also to start_critical_timings() + stop_…(). Is this
required?
Yes, the test showed the same problem in start{stop}_critical_timings too.
In the meantime I bring back the empty macro of
trace_preemptirqsoff_hist_rcuidle() back in -RT sine it breaks compile
latest v4.4.3-RT9
Yes, sorry to forget to bring this in too. The 4.1 patch was submitted
by me, but forgot to have it in 4.4.
Yang
kernel/trace/trace_irqsoff.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
index 36e584f..069942c 100644
--- a/kernel/trace/trace_irqsoff.c
+++ b/kernel/trace/trace_irqsoff.c
@@ -421,13 +421,13 @@ void start_critical_timings(void)
{
if (preempt_trace() || irq_trace())
start_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
- trace_preemptirqsoff_hist(TRACE_START, 1);
+ trace_preemptirqsoff_hist_rcuidle(TRACE_START, 1);
}
EXPORT_SYMBOL_GPL(start_critical_timings);
void stop_critical_timings(void)
{
- trace_preemptirqsoff_hist(TRACE_STOP, 0);
+ trace_preemptirqsoff_hist_rcuidle(TRACE_STOP, 0);
if (preempt_trace() || irq_trace())
stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
}
Sebastian