* Tim Chen <tim.c.c...@linux.intel.com> wrote: > On Fri, 2013-09-27 at 12:39 -0700, Davidlohr Bueso wrote: > > On Fri, 2013-09-27 at 12:28 -0700, Linus Torvalds wrote: > > > On Fri, Sep 27, 2013 at 12:00 PM, Waiman Long <waiman.l...@hp.com> wrote: > > > > > > > > On a large NUMA machine, it is entirely possible that a fairly large > > > > number of threads are queuing up in the ticket spinlock queue to do > > > > the wakeup operation. In fact, only one will be needed. This patch > > > > tries to reduce spinlock contention by doing just that. > > > > > > > > A new wakeup field is added to the rwsem structure. This field is > > > > set on entry to rwsem_wake() and __rwsem_do_wake() to mark that a > > > > thread is pending to do the wakeup call. It is cleared on exit from > > > > those functions. > > > > > > Ok, this is *much* simpler than adding the new MCS spinlock, so I'm > > > wondering what the performance difference between the two are. > > > > Both approaches should be complementary. The idea of optimistic spinning > > in rwsems is to avoid putting putting the writer on the wait queue - > > reducing contention and giving a greater chance for the rwsem > > to get acquired. Waiman's approach is once the blocking actually occurs, > > and at this point I'm not sure how this will affect writer stealing > > logic. > > > > I agree with the view that the two approaches are complementary to each > other. They address different bottleneck areas in the rwsem. Here're > the performance numbers for exim workload compared to a vanilla kernel. > > Waimain's patch: +2.0% > Alex+Tim's patchset: +4.8% > Waiman+Alex+Tim: +5.3%
I think I'd like to see a combo series submitted :-) Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/