* Waiman Long <long...@redhat.com> wrote:

>    # of Threads   Before Patch      After Patch
>    ------------   ------------      -----------
>         2            1,179             9,436
>         4            1,505             8,268
>         8              721             7,041
>        16              575             7,652
>        32               70             2,189
>        64               39               534
> 
> Waiman Long (12):
>   locking/rwsem: Implement a new locking scheme
>   locking/rwsem: Implement lock handoff to prevent lock starvation
>   locking/rwsem: Remove rwsem_wake() wakeup optimization
>   locking/rwsem: Make rwsem_spin_on_owner() return owner state
>   locking/rwsem: Ensure an RT task will not spin on reader
>   locking/rwsem: Wake up almost all readers in wait queue
>   locking/rwsem: Enable readers spinning on writer
>   locking/rwsem: Enable time-based spinning on reader-owned rwsem
>   locking/rwsem: Add more rwsem owner access helpers
>   locking/rwsem: Guard against making count negative
>   locking/rwsem: Merge owner into count on x86-64
>   locking/rwsem: Remove redundant computation of writer lock word
> 
>  kernel/locking/lock_events_list.h |   4 +
>  kernel/locking/rwsem-xadd.c       | 635 +++++++++++++++++++-----------
>  kernel/locking/rwsem.c            |   3 +-
>  kernel/locking/rwsem.h            | 290 +++++++++++---
>  4 files changed, 647 insertions(+), 285 deletions(-)

Looks very nice!

With both sets of patches applied they pass all x86 tests, but there's 
cross-build failures on powerpc32, sparc32 and UML:

   kernel/locking/rwsem.h:333:34: error: 'struct rw_semaphore' has no member 
named 'owner'

Could you please send a delta patch against tip:WIP.locking/core, which 
is the work-in-progress tree? I'll backmerge the delta patch (and any 
other updates you might have meanwhil) to the one that introduces the 
breakage.

Thanks,

        Ingo

Reply via email to