[PATCH] i386 rw_semaphore improvements

From: D.W.Howells (dhowells@astarte.free-online.co.uk)
Date: Fri Apr 20 2001 - 20:10:34 EST


This patch (made against linux-2.4.4-pre5) makes several changes to the rwsem
implementation:

 (1) It fixes the bug found by Andrea by changing how processes that are
     waiting on the semaphore are managed.

 (2) As a result of (1), the wake_up_ctx() stuff is no longer used and has
     been removed.

 (3) Contention handling in this rwsem implementation is now faster as a
     result of (1). The increase from slightly to a fair amount depending on
     the situation.

 (4) The asm-i386/rwsem-spin.h implementation is now gone. i386 CPUs will use
     the generic implementation instead.

 (5) The asm-i386/rwsem-xadd.h has been subsumed by asm-i386/rwsem.h since
     there's now only one i386-arch optimised version.

 (6) Some alpha-arch fixes have been applied.

 (7) The sparc64-arch optimised implementation has been updated to fall in
     line with (1).

 (8) The generic implementation now has a single spinlock which it uses both
     for waiting process management and for guarding access to the counter.

I'll have a look tomorrow at making the generic spinlock implementation
non-inline.

David


-
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/



This archive was generated by hypermail 2b29 : Mon Apr 23 2001 - 21:00:38 EST