提交 6f34b08f 编写于 作者: M Michal Simek

microblaze: Improve ftrace time measuring

I had to comment sched_clock generic function because of broken toolchain.
It is fine grain timing.
Signed-off-by: NMichal Simek <monstr@monstr.eu>
上级 ce3266c0
......@@ -28,8 +28,6 @@ void disable_early_printk(void);
void heartbeat(void);
void setup_heartbeat(void);
unsigned long long sched_clock(void);
# ifdef CONFIG_MMU
extern void mmu_reset(void);
extern void early_console_reg_tlb_alloc(unsigned int addr);
......
......@@ -235,6 +235,12 @@ static int __init microblaze_clocksource_init(void)
return 0;
}
/*
* We have to protect accesses before timer initialization
* and return 0 for sched_clock function below.
*/
static int timer_initialized;
void __init time_init(void)
{
u32 irq, i = 0;
......@@ -289,4 +295,15 @@ void __init time_init(void)
#endif
microblaze_clocksource_init();
microblaze_clockevent_init();
timer_initialized = 1;
}
unsigned long long notrace sched_clock(void)
{
if (timer_initialized) {
struct clocksource *cs = &clocksource_microblaze;
cycle_t cyc = cs->read(NULL);
return clocksource_cyc2ns(cyc, cs->mult, cs->shift);
}
return 0;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册