From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757048Ab0DGXPb (ORCPT ); Wed, 7 Apr 2010 19:15:31 -0400 Received: from e31.co.us.ibm.com ([32.97.110.149]:55843 "EHLO e31.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756517Ab0DGXP0 (ORCPT ); Wed, 7 Apr 2010 19:15:26 -0400 Message-ID: <4BBD11F9.1050705@us.ibm.com> Date: Wed, 07 Apr 2010 16:15:05 -0700 From: Darren Hart User-Agent: Thunderbird 2.0.0.24 (X11/20100317) MIME-Version: 1.0 To: Gregory Haskins CC: Thomas Gleixner , Ingo Molnar , Eric Dumazet , Steven Rostedt , Peter Zijlstra , Peter Morreale , Sven Dietrich , Chris Mason , Avi Kivity , Rik van Riel , Chris Wright , John Cooper , linux-kernel@vger.kernel.org Subject: Re: [PATCH 5/6] futex: handle timeout inside adaptive lock spin References: <1270499039-23728-1-git-send-email-dvhltc@us.ibm.com> <1270499039-23728-6-git-send-email-dvhltc@us.ibm.com> <4BBCC174.7020409@us.ibm.com> <4BBC9A3B0200005A00063E34@soto.provo.novell.com> In-Reply-To: <4BBC9A3B0200005A00063E34@soto.provo.novell.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Gregory Haskins wrote: >>>> On 4/7/2010 at 01:31 PM, in message <4BBCC174.7020409@us.ibm.com>, Darren Hart > wrote: >> Thomas Gleixner wrote: >>> On Mon, 5 Apr 2010, Darren Hart wrote: >>> >>>> Signed-off-by: Darren Hart > >>>> + if (timeout) { >>>> + now = ktime_get(); >>> Hmm. Calling that in every iteration might hurt especially on non >>> TSC systems, but well... >> I haven't come across a better alternative since arming the timer before >> setting TASK_INTERRUPTIBLE isn't appropriate. > > Hey Darren, > > I remember we tried something similar in early versions of the > adaptive locks and this was definitely bad. :( > > It ended up putting so much contention on the xtime_lock (IIRC) that > it resulted in adaptive locks hurting overall performance verses not > using adaptive at all. Alternative mechanisms employed a hybrid where > the inner loops used a pseudo calibrated counter loop, and the outer > loop checks periodically against a real clock. It all plays into "you > are burning CPU cycles anyway, so might as well put them to use" > theory. Hacky, yes, but it did relieve the pressure on the time > subsystem locks and freed up a _lot_ of performance. Without this, > the concept of timeouts+adaptive was unworkable. I think Steven > ultimately rejected the timeout related patches outright when he > merged adaptive to -rt, but I think Sven pulled them into SLERT if you > would like a potential code reference to a working solution. > Hi Greg, Thanks for the info! I haven't tested with timeouts yet as I'm still struggling to get decent performance out of just plain old adaptive right now. I'll keep that in mind when I get to that, and yeah, if the plan is to burn CPU cycles, might as well do something constructive :-) I do feel the timeouts are a necessary feature. Interruptibility may be as well, but I'm going to ignore it for the time being... -- Darren