> You need sterner testing stuff :)  I hit the BUG at the end of rwsem_wake()
> in about a second running rwsem-4.  Removed the BUG and everything stops
> in D state.
> 
> Grab rwsem-4 from
> 
>       http://www.uow.edu.au/~andrewm/linux/rwsem.tar.gz
> 
> It's very simple.  But running fully in-kernel shortens the
> code paths enormously and allows you to find those little
> timing windows.  Run rmsem-4 in two modes: one with
> the schedule() in sched() enabled, and also with it
> commented out.  If it passes that, it works.  When
> you remove the module it'll print out the number of
> read-grants versus write-grants.  If these run at 6:1
> with schedule() disabled then you've kicked butt.
> 
> Also, rwsem-4 checks that the rwsems are actually providing
> exclusion between readers and writers, and between
> writers and writers.  A useful thing to check, that.

It now works (patch to follow).

schedule() enabled:
 reads taken: 686273
 writes taken: 193414

schedule() disabled:
 reads taken: 585619
 writes taken: 292997

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

Reply via email to