Skip to content
  • Anton Blanchard's avatar
    [POWERPC] Fix mdelay badness on shared processor partitions · 1e92a550
    Anton Blanchard authored
    
    
    On partitioned PPC64 systems where a partition is given 1/10 of a
    processor, we have seen mdelay() delaying for 10 times longer than it
    should.  The reason is that the generic mdelay(n) does n delays of 1
    millisecond each.  However, with 1/10 of a processor, we only get a
    one-millisecond timeslice every 10ms.  Thus each 1 millisecond delay
    loop ends up taking 10ms elapsed time.
    
    The solution is just to use the PPC64 udelay function, which uses the
    timebase to ensure that the delay is based on elapsed time rather than
    how much processing time the partition has been given.  (Yes, the
    generic mdelay uses the PPC64 udelay, but the problem is that the
    start time gets reset every millisecond, and each time it gets reset
    we lose another 9ms.)
    
    Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Acked-by: default avatarAndrew Morton <akpm@osdl.org>
    1e92a550