e658a6f14d
For large values of "mult" and long uptimes, the intermediate
result of "cycles * mult" can overflow 64 bits. For example,
the tile platform calls clocksource_cyc2ns with a 1.2 GHz clock;
we have mult = 853, and after 208.5 days, we overflow 64 bits.
Since clocksource_cyc2ns() is intended to be used for relative
cycle counts, not absolute cycle counts, performance is more
importance than accepting a wider range of cycle values. So,
just use mult_frac() directly in tile's sched_clock().
Commit
|
||
---|---|---|
.. | ||
vdso | ||
asm-offsets.c | ||
backtrace.c | ||
compat_signal.c | ||
compat.c | ||
early_printk.c | ||
entry.S | ||
ftrace.c | ||
hardwall.c | ||
head_32.S | ||
head_64.S | ||
hvglue_trace.c | ||
hvglue.S | ||
intvec_32.S | ||
intvec_64.S | ||
irq.c | ||
jump_label.c | ||
kgdb.c | ||
kprobes.c | ||
machine_kexec.c | ||
Makefile | ||
mcount_64.S | ||
messaging.c | ||
module.c | ||
pci_gx.c | ||
pci-dma.c | ||
pci.c | ||
perf_event.c | ||
pmc.c | ||
proc.c | ||
process.c | ||
ptrace.c | ||
reboot.c | ||
regs_32.S | ||
regs_64.S | ||
relocate_kernel_32.S | ||
relocate_kernel_64.S | ||
setup.c | ||
signal.c | ||
single_step.c | ||
smp.c | ||
smpboot.c | ||
stack.c | ||
sys.c | ||
sysfs.c | ||
tile-desc_32.c | ||
tile-desc_64.c | ||
time.c | ||
tlb.c | ||
traps.c | ||
unaligned.c | ||
usb.c | ||
vdso.c | ||
vmlinux.lds.S |