Commit 6f34b08f authored by Michal Simek's avatar Michal Simek
Browse files

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: default avatarMichal Simek <monstr@monstr.eu>
parent ce3266c0
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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);
+17 −0
Original line number Diff line number Diff line
@@ -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;
}