public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* udelay function delays the wrong time interval in multiprocessor system, if ARCH_HAS_READ_CURRENT_TIMER is not defined and on current timer is used.
@ 2013-03-15 16:08 chpoph
  2013-03-15 18:14 ` Russell King - ARM Linux
  0 siblings, 1 reply; 7+ messages in thread
From: chpoph @ 2013-03-15 16:08 UTC (permalink / raw)
  To: linux-kernel, stable, Viresh Kumar, Nicolas Pitre, Liviu Dudau,
	Russell King, Greg Kroah-Hartman, will.deacon

If ARCH_HAS_READ_CURRENT_TIMER is not defined and on current timer is
used for udelay, then __loop_delay and __loop_const_udelay is used to
delay a specific time interval.  but in delay-loop.S, loops_per_jiffy
(not per cpu data) is used to calculate the number of loops. in SMP
system, udelay delays the wrong time interval if two cpus running at
different frequency.


In arch/arm/lib/delay.c arm_delay_ops is set to arm_delay_ops.
/*
 * Default to the loop-based delay implementation.
 */
struct arm_delay_ops arm_delay_ops = {
        .delay          = __loop_delay,
        .const_udelay   = __loop_const_udelay,
        .udelay         = __loop_udelay,
};

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-03-18 15:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-15 16:08 udelay function delays the wrong time interval in multiprocessor system, if ARCH_HAS_READ_CURRENT_TIMER is not defined and on current timer is used chpoph
2013-03-15 18:14 ` Russell King - ARM Linux
2013-03-16  3:32   ` chpoph
2013-03-17 20:05     ` Will Deacon
2013-03-17 23:08       ` Russell King - ARM Linux
2013-03-18 14:40         ` chpoph
2013-03-18 15:25           ` Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox