Re: [PATCH 1/2] scalable rw_mutex

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Oleg Nesterov
Date: Saturday, May 12, 2007 - 9:04 am

On 05/12, Peter Zijlstra wrote:

I think this is still not right, but when it comes to barriers we
need a true expert (Paul cc-ed).

this code roughly does (the only reader does unlock)

	READER			WRITER

	readers = 0;		state = 1;
	wmb();			wmb();
	CHECK(state != 0)	CHECK(readers == 0)

We need to ensure that we can't miss both CHECKs. Either reader
should see RW_MUTEX_READER_SLOW, o writer sees "readers == 0"
and does not sleep.

In that case both barriers should be converted to smp_mb(). There
was a _long_ discussion about STORE-MB-LOAD behaviour, and experts
seem to believe everething is ok.

Another question. Isn't it possible to kill rw_mutex->status ?

I have a vague feeling you can change the code so that

	rw_mutex_reader_slow() <=> "->waiter != NULL"

, but I am not sure.

Oleg.

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Fri May 11, 6:15 am)
Re: [PATCH 1/2] scalable rw_mutex, Christoph Hellwig, (Fri May 11, 7:03 am)
Re: [PATCH 1/2] scalable rw_mutex, Andrew Morton, (Fri May 11, 9:31 am)
Re: [PATCH 1/2] scalable rw_mutex, Christoph Lameter, (Fri May 11, 10:07 am)
Re: [PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Fri May 11, 10:57 am)
Re: [PATCH 1/2] scalable rw_mutex, Andrew Morton, (Fri May 11, 11:05 am)
Re: [PATCH 1/2] scalable rw_mutex, Oleg Nesterov, (Fri May 11, 4:00 pm)
Re: [PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Sat May 12, 12:39 am)
Re: [PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Sat May 12, 6:41 am)
Re: [PATCH 1/2] scalable rw_mutex, Oleg Nesterov, (Sat May 12, 9:04 am)
Re: [PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Sat May 12, 9:57 am)
Re: [PATCH 1/2] scalable rw_mutex, Oleg Nesterov, (Sat May 12, 11:03 am)
Re: [PATCH 1/2] scalable rw_mutex, Andrew Morton, (Sat May 12, 11:06 am)
Re: [PATCH 1/2] scalable rw_mutex, Andrew Morton, (Sat May 12, 11:11 am)
Re: [PATCH 1/2] scalable rw_mutex, Oleg Nesterov, (Sat May 12, 11:12 am)
Re: [PATCH 1/2] scalable rw_mutex, Andi Kleen, (Sat May 12, 11:55 am)
Re: [PATCH 1/2] scalable rw_mutex, Andi Kleen, (Sat May 12, 12:21 pm)
Re: [PATCH 1/2] scalable rw_mutex, Oleg Nesterov, (Sat May 12, 2:42 pm)
Re: [PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Mon May 14, 3:59 am)
Re: [PATCH 1/2] scalable rw_mutex, Nick Piggin, (Mon May 14, 4:36 am)
Re: [PATCH 1/2] scalable rw_mutex, Paul E. McKenney, (Mon May 14, 5:36 pm)
Re: [PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Tue May 15, 12:43 am)
Re: [PATCH 1/2] scalable rw_mutex, Paul E. McKenney, (Tue May 15, 8:29 am)
Re: [PATCH 1/2] scalable rw_mutex, Peter Zijlstra, (Tue May 15, 9:17 am)
Re: [PATCH 1/2] scalable rw_mutex, Paul E. McKenney, (Tue May 15, 11:52 am)
Re: [PATCH 1/2] scalable rw_mutex, Andrew Morton, (Wed May 16, 4:28 pm)
Re: [PATCH 1/2] scalable rw_mutex, Christoph Lameter, (Wed May 16, 4:40 pm)
Re: [PATCH 1/2] scalable rw_mutex, Andrew Morton, (Wed May 16, 5:24 pm)