udelay() broken for SMP cores?

skannan at codeaurora.org skannan at codeaurora.org
Wed Apr 21 06:31:03 EDT 2010


> Well, the assumption is that the CPUs will be running at their fastest
> speed at boot time, and therefore loops_per_jiffy will be calibrated
> such that we guarantee _at least_ the asked-for delay - which is the
> only guarantee udelay has.

Even if the boot assumption is true, cpufreq actively changes the
loops_per_jiffy value when it changes freq. So, this could still mess up
the _at least_ guarantee.

I think it's right for cpufreq to scale lpj with cpu speed to avoid udelay
from taking longer by several magnitudes. But we also need to avoid
breaking the guarantee. May be we can postpose the freq change if a
udelay loop is active.

Thanks,
Saravana




More information about the linux-arm-kernel mailing list