Messages in this thread | | | Date | Sat, 20 Nov 1999 20:12:35 -0500 (EST) | From | "Benjamin C.R. LaHaise" <> | Subject | Re: [Patch] shm bug introduced with pagecache in 2.3.11 |
| |
On Sat, 20 Nov 1999, Manfred Spraul wrote:
> I give it up: > I've attached 2 more ideas, but one of them is a bit slow, and the other > one requires cmpxchg (ie only 486 and above).
Interesting. Here's what I'm doing (it's subtle, but cute and efficient -- 1 instruction and an untaken branch for both readers and writers):
count is initially set to a BIAS (I'm using 0x01000000). Readers decrement count by 1 and see a positive value if successful. Writers decrement by the BIAS and see a result of zero when acquired.
This makes the recovery case a bit more challenging, but easily solved with a second value used to decide who is the next writer (and thus responsible for maintaining the bias while waiting).
-ben
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |