29 Sep, 2010

2 commits


28 Sep, 2010

12 commits


27 Sep, 2010

2 commits

  • The PL310 on the ct-ca9x4 tile for the Versatile Express does not need
    to add additional latency when accessing its cache RAMs. Unfortunately,
    the boot monitor sets this up for an 8-cycle delay on reads and writes,
    resulting in greatly reduced memory performance when the L2 cache is
    enabled.

    This patch sets the L2 RAM latencies to the correct value of 1 cycle
    on the ct-ca9x4 tile before enabling the L2 cache.

    Acked-by: Catalin Marinas
    Signed-off-by: Will Deacon
    Signed-off-by: Russell King

    Will Deacon
     
  • While debugging bit_spin_lock() hang, it was tracked down to gcc-4.4
    misoptimization of non-inlined constant_test_bit() due to non-volatile
    addr when 'const volatile unsigned long *addr' cast to 'unsigned long *'
    with subsequent unconditional jump to pause (and not to the test) leading
    to hang.

    Compiling with gcc-4.3 or disabling CONFIG_OPTIMIZE_INLINING yields inlined
    constant_test_bit() and correct jump, thus working around the kernel bug.

    Other arches than asm-x86 may implement this slightly differently;
    2.6.29 mitigates the misoptimization by changing the function prototype
    (commit c4295fbb6048d85f0b41c5ced5cbf63f6811c46c) but probably fixing the issue
    itself is better.

    Signed-off-by: Alexander Chumachenko
    Signed-off-by: Michael Shigorin
    Acked-by: Linus Torvalds
    Signed-off-by: H. Peter Anvin

    Alexander Chumachenko
     

26 Sep, 2010

2 commits

  • rdusp() gives us the right value only for the current thread...

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • We want interrupts disabled on all paths leading to RESTORE_ALL;
    otherwise, we are risking an IRQ coming between the updates of
    alpha_mv->hae_cache and *alpha_mv->hae_register and set_hae()
    within the IRQ getting badly confused.

    RESTORE_ALL used to play with disabling IRQ itself, but that got
    removed back in 2002, without making sure we had them disabled
    on all paths. It's cheaper to make sure we have them disabled than
    to revert to original variant...

    Remove the detritus left from that commit back in 2002; we used to
    need a reload of $0 and $1 since swpipl would change those, but
    doing that had become pointless when we stopped doing swpipl in
    there...

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

25 Sep, 2010

18 commits


24 Sep, 2010

4 commits