Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp4962647imm; Tue, 19 Jun 2018 02:46:50 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIm/BsrHg9Sy5E3J+HE4NCUOcd+bj2kChXauycmqfT3dYsj+AJz+iBcVD2nR1F1fGwMYtjp X-Received: by 2002:a62:190d:: with SMTP id 13-v6mr17325681pfz.103.1529401610575; Tue, 19 Jun 2018 02:46:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529401610; cv=none; d=google.com; s=arc-20160816; b=nmljr+uBGv2ALXzgVNL0WJPAjMaYuMXOvlSsxkdPlN7tkAYboP4pe7ddALsgq/KyKe 71tC8qyP1zzLPHPO7OD860tGdHR9EHTDgib23s+klwYSvr/A9m8gdOpOywCrq6F56UsX I7IRBhczG1ShDWDgn8AF2jMTMDl0MpVA3ibHiTtEIj/uqNtE6HnSdE2DiC+brD0XR89e lik1lYixsjnatvoohXjfW/XjzB1t4jaSvH55qNDtODBvKjwJeVoNQsaZDolYEMWaUt+F 0kRcxNeXevnai0NvU1hwiXYtvgcIroqDV7n6kxULHZi9QAFVMYlphtNlpEJ+zVjtNZWd BJ2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=BNLtSJo4CWlLRHNPtaM2MNlFlA15JqjC0pIdWXVZOfc=; b=X4QYYBkHxAVaqr+DuXCEUZzyl/ImreLgQ7ZGaJ3bG80Ogdc1v+ltEDPml27b4xeyb5 QtMovsajOtkDiCG7ij9Sjkj8/daPqcxkaItVI3P4q4MMs4j6uQtpUf8W1jdJIB0DSAB4 N9v8ZpCOnuiprS8xMU25GoyZK5AwEv/uMX+1O9BbdG4pneZHR4EJ1QqXgDAF99UGRYZU IyeJTtT6Prhah6xkMS54W/lxYA6tt3ijcmaS57CVRWG6A6cKLm6LoiKnTqRZpyVs+Fzt gZoGBgwhqEbfxY206RPbu+UKMkD1K6HxHKUhMG/tqmp241uGx3rLWPwDSgbgMl6USzSS elew== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=merlin.20170209 header.b=ged7QYXK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l22-v6si14384319pgu.353.2018.06.19.02.46.36; Tue, 19 Jun 2018 02:46:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=merlin.20170209 header.b=ged7QYXK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937560AbeFSJpz (ORCPT + 99 others); Tue, 19 Jun 2018 05:45:55 -0400 Received: from merlin.infradead.org ([205.233.59.134]:35532 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S937535AbeFSJpv (ORCPT ); Tue, 19 Jun 2018 05:45:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=BNLtSJo4CWlLRHNPtaM2MNlFlA15JqjC0pIdWXVZOfc=; b=ged7QYXKhD1kM9RpdrczSnFkd 1FF0mtrfA/2kopcWtHVPCapSISJVkT/j/SIwtCn+YDtlLfgZaHYgR5v6BLtPWfsPZd85oPjvzEcI9 OnsnAEunfCTxh/BA8PtsxljwoqW/x7igJokjo3raxYdz1mfwAEI6E/Wqtv4z0wIsQyznwUeTgsnFQ OunzfyXG5klMjdimVz18ZmUn4GhjUvzwfbmXHEP1h4bGt+uu0Z1+bMFc6d68L5aNeRtQJtzkRvvep vIgCC2PrjE/qyzl3QAi+1xRPFNGl5cGt6634KD4QeV5F6P68G7vBjdO90TUuW6P3zo65jyDeey9Km Y84uN5FuA==; Received: from j217100.upc-j.chello.nl ([24.132.217.100] helo=hirez.programming.kicks-ass.net) by merlin.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1fVDCB-00071a-2q; Tue, 19 Jun 2018 09:45:03 +0000 Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id BB6E120268507; Tue, 19 Jun 2018 11:45:00 +0200 (CEST) Date: Tue, 19 Jun 2018 11:45:00 +0200 From: Peter Zijlstra To: Thomas Hellstrom Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-graphics-maintainer@vmware.com, pv-drivers@vmware.com, Ingo Molnar , Jonathan Corbet , Gustavo Padovan , Maarten Lankhorst , Sean Paul , David Airlie , Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett , Thomas Gleixner , Kate Stewart , Philippe Ombredanne , Greg Kroah-Hartman , linux-doc@vger.kernel.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org Subject: Re: [PATCH v4 2/3] locking: Implement an algorithm choice for Wound-Wait mutexes Message-ID: <20180619094500.GL2458@hirez.programming.kicks-ass.net> References: <20180619082445.11062-1-thellstrom@vmware.com> <20180619082445.11062-3-thellstrom@vmware.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180619082445.11062-3-thellstrom@vmware.com> User-Agent: Mutt/1.10.0 (2018-05-17) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 19, 2018 at 10:24:44AM +0200, Thomas Hellstrom wrote: > The current Wound-Wait mutex algorithm is actually not Wound-Wait but > Wait-Die. Implement also Wound-Wait as a per-ww-class choice. Wound-Wait > is, contrary to Wait-Die a preemptive algorithm and is known to generate > fewer backoffs. Testing reveals that this is true if the > number of simultaneous contending transactions is small. > As the number of simultaneous contending threads increases, Wait-Wound > becomes inferior to Wait-Die in terms of elapsed time. > Possibly due to the larger number of held locks of sleeping transactions. > > Update documentation and callers. > > Timings using git://people.freedesktop.org/~thomash/ww_mutex_test > tag patch-18-06-15 > > Each thread runs 100000 batches of lock / unlock 800 ww mutexes randomly > chosen out of 100000. Four core Intel x86_64: > > Algorithm #threads Rollbacks time > Wound-Wait 4 ~100 ~17s. > Wait-Die 4 ~150000 ~19s. > Wound-Wait 16 ~360000 ~109s. > Wait-Die 16 ~450000 ~82s. > > Cc: Ingo Molnar > Cc: Jonathan Corbet > Cc: Gustavo Padovan > Cc: Maarten Lankhorst > Cc: Sean Paul > Cc: David Airlie > Cc: Davidlohr Bueso > Cc: "Paul E. McKenney" > Cc: Josh Triplett > Cc: Thomas Gleixner > Cc: Kate Stewart > Cc: Philippe Ombredanne > Cc: Greg Kroah-Hartman > Cc: linux-doc@vger.kernel.org > Cc: linux-media@vger.kernel.org > Cc: linaro-mm-sig@lists.linaro.org > Co-authored-by: Peter Zijlstra > Signed-off-by: Thomas Hellstrom > > --- > Documentation/locking/ww-mutex-design.txt | 57 +++++++++-- > drivers/dma-buf/reservation.c | 2 +- > drivers/gpu/drm/drm_modeset_lock.c | 2 +- > include/linux/ww_mutex.h | 17 ++- > kernel/locking/locktorture.c | 2 +- > kernel/locking/mutex.c | 165 +++++++++++++++++++++++++++--- > kernel/locking/test-ww_mutex.c | 2 +- > lib/locking-selftest.c | 2 +- > 8 files changed, 213 insertions(+), 36 deletions(-) Acked-by: Peter Zijlstra (Intel)