Re: i386 spinlock fairness: bizarre test results

From: Alan Cox (alan_at_lxorguk.ukuu.org.uk)
Date: 10/11/05

  • Next message: Etienne Lorrain: "Re: [PATCH 1/3] Gujin linux.kgz boot format"
    To: Chuck Ebbert <76306.1226@compuserve.com>
    Date:	Tue, 11 Oct 2005 14:00:58 +0100
    
    

    On Maw, 2005-10-11 at 00:04 -0400, Chuck Ebbert wrote:
    > That test machine was a dual 350MHz Pentium II Xeon; on a dual 333MHz Pentium II
    > Overdrive (with very slow Socket 8 bus) I could not reproduce those results.
    > However, on that machine the 'xchg' instruction made the test run almost 20%
    > _faster_ than using 'mov'.
    >
    > So I think the i386 spinlock code should be changed to always use 'xchg' to do
    > spin_unlock.

    Using xchg on the spin unlock path is expensive. Really expensive on P4
    compared to movb. It also doesn't guarantee anything either way around
    especially as you go to four cores or change CPU (or in some cases quite
    likely even chipset).

    Spin lock paths should not be heavily contested. If they are then fix
    the underlying problem with finer locking, or if you can't do that then
    perhaps by serializing it with a queue.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Etienne Lorrain: "Re: [PATCH 1/3] Gujin linux.kgz boot format"