Received: by 10.223.185.116 with SMTP id b49csp62756wrg; Tue, 20 Feb 2018 15:59:25 -0800 (PST) X-Google-Smtp-Source: AH8x226Y4gL6RaXCskDSsKPrfH72QWZSJdVDMrZeZ8mebH6SRlGI+ll8Z7GVTbEGh/PL1VaSsC6c X-Received: by 10.99.159.10 with SMTP id g10mr1045242pge.407.1519171165657; Tue, 20 Feb 2018 15:59:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519171165; cv=none; d=google.com; s=arc-20160816; b=MaW1iufee6wxa1KQzrf04bf0t/NtvI5P7bsZd8eB7tstvcYhjMLXK0EPtMZowl9RNT sBqVea6+wLj4XEuyApihv74mb2UtW9T3NlLGLTGfYJyxM1EWjy+rqyRoqBE5FIuccIeL rpNck7/8BbVF5H7ewU6eZ2xiv+Dc0f5uYOwP3OwH9EwH497R+w3bVXEZuTW+3Y9hDnPe lr56n/O+uExN/TkqnKfU7cUhYZuA1XqIc9C9No12PtB/sUjTYnu0/PXKP3T3DDejS/0m rGW5Tzc5IJ5yyoLDYKsDR/fiEHS+ZkUyXBVclU2fh753QDt5vTOnMShZPcKAxq32803P ho8w== 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-transfer-encoding:content-disposition:mime-version :references:mail-followup-to:message-id:subject:cc:to:from:date :dkim-signature:arc-authentication-results; bh=k79VWtxp39/pzqPFmzcSrCNq8awfKYkYo2TqtOcYKks=; b=EGsXMayBlkJBa/xGAMaJEVTCXXspalTZuShQd+EPj8Vu6BdbgyDbL5QmVKQLf6FInz VKIZgWhv3ezN5mhDsV6B+SSMneYay50GacPutR55llSlF6c2OhXHKj04V6CB3+TDJPA5 NqfyAFMm5jtAPlQi/OIGdoRtj+TVfQecneXcq2hlJ2LdRYLSvBGVB9U5xU9+NROLn+KH gF5MB3WM/kQ/2NP1UsKWn60ipQ0CvpqeV0Fry8PFrpR3hHAxxV/DDSRYpposKpLKBq3B SE6dE4xBs3KfulR5kf2cViQ61rG1VaSOoflzgOZHwvVrdMz1HPistyFd3P1lZylcIHAE IHqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=PlVbfnIY; 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 a5-v6si6385224plh.450.2018.02.20.15.59.10; Tue, 20 Feb 2018 15:59:25 -0800 (PST) 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=@ffwll.ch header.s=google header.b=PlVbfnIY; 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 S1751761AbeBTX41 (ORCPT + 99 others); Tue, 20 Feb 2018 18:56:27 -0500 Received: from mail-wr0-f178.google.com ([209.85.128.178]:37032 "EHLO mail-wr0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751683AbeBTX4Z (ORCPT ); Tue, 20 Feb 2018 18:56:25 -0500 Received: by mail-wr0-f178.google.com with SMTP id z12so13049325wrg.4 for ; Tue, 20 Feb 2018 15:56:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=k79VWtxp39/pzqPFmzcSrCNq8awfKYkYo2TqtOcYKks=; b=PlVbfnIY8nMcnTMAZo18zYSM5m0+4l0k1FbH8nvJQzoCRZ1IF80TlYBnxQo3u9hkkO VvuJqeJ8IkB8X88Ws8A5yA9SHeob/9TfAs8qYd/4Z/oPc8UuyJ3Q4Ho78UXG7YBqFdju +/k3NuZ1AoswO+O5WxzgFj4iL2ChkKt6FQDN4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=k79VWtxp39/pzqPFmzcSrCNq8awfKYkYo2TqtOcYKks=; b=OLAqS2tnYZGd3Ur3DiyD2asBncs6eGcygD6Obc5f5q0wOMk85kMvBr23H65qOxRxgn klI8M59mmZCabfDAEHjyLwz2BnYaYVwlVMtVkqRz7RTyAhhQDzjhertz5VRKd3kjKLD7 QAa/kteiNDPe64+w2AcIsIXJrP7F5KXMxP2ZCiWjTFpyjkho29ni/M5iVGFJZAzsS95c rY9/jFZxMP2B+08LRk0nTcSr8exFFg3I9nx+uHm3sVHNrYewDNGOHeCXa9eBLb9U8FO/ tB5v4da4Nhq0Yszh2lhBABtKyi/6C70KwTpBSGJxTCNRXSnwpm82erq/lypta2vxB/O2 zV6w== X-Gm-Message-State: APf1xPDoxZtIA/2bkHkQqQCytJygGI6gDMbgkSgkUvzEnGPW/SG+cdSk xvK8DhEnm/Wgp7vWmZpeNh1f0w== X-Received: by 10.80.214.8 with SMTP id x8mr2342488edi.129.1519170984467; Tue, 20 Feb 2018 15:56:24 -0800 (PST) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by smtp.gmail.com with ESMTPSA id x13sm17905090edk.53.2018.02.20.15.56.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Feb 2018 15:56:23 -0800 (PST) Date: Wed, 21 Feb 2018 00:56:21 +0100 From: Daniel Vetter To: Peter Zijlstra Cc: christian.koenig@amd.com, dev@mblankhorst.nl, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/4] locking/ww_mutex: add ww_mutex_is_owned_by function v3 Message-ID: <20180220235621.GD22199@phenom.ffwll.local> Mail-Followup-To: Peter Zijlstra , christian.koenig@amd.com, dev@mblankhorst.nl, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <20180220125829.27060-1-christian.koenig@amd.com> <20180220131253.GF25314@hirez.programming.kicks-ass.net> <8fd80334-4d0e-8ed0-8a09-02a7e36a0eae@gmail.com> <20180220135709.GD25201@hirez.programming.kicks-ass.net> <20180220145413.GF25201@hirez.programming.kicks-ass.net> <2dac8ec9-c54a-7dd1-af4e-62f2bc1a959c@gmail.com> <20180220152158.GH25201@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180220152158.GH25201@hirez.programming.kicks-ass.net> X-Operating-System: Linux phenom 4.14.0-3-amd64 User-Agent: Mutt/1.9.3 (2018-01-21) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 20, 2018 at 04:21:58PM +0100, Peter Zijlstra wrote: > On Tue, Feb 20, 2018 at 04:05:49PM +0100, Christian K?nig wrote: > > Am 20.02.2018 um 15:54 schrieb Peter Zijlstra: > > > On Tue, Feb 20, 2018 at 03:34:07PM +0100, Christian K?nig wrote: > > > > > OK, but neither case would in fact need the !ctx case right? That's just > > > > > there for completeness sake? > > > > Unfortunately not. TTM uses trylock to lock BOs which are about to be > > > > evicted to make room for all the BOs locked with a ctx. > > > > > > > > I need to be able to distinct between the BOs which are trylocked and those > > > > which are locked with a ctx. > > > > > > > > Writing this I actually noticed the current version is buggy, cause even > > > > when we check the mutex owner we still need to make sure that the ctx in the > > > > lock is NULL. > > > Hurm... I can't remember why trylocks behave like that, and it seems > > > rather unfortunate / inconsistent. > > > > Actually for me that is rather fortunate, cause I need to distinct between > > the locks acquired through trylock and lock. > > I suppose that would always be possible using: > ww_mutex_trylock(.ctx=NULL), and it could be that there simply weren't > any immediate uses for a !NULL trylock and it was thus not implemented. > > But that is all very long ago.. I think we simple never had a use-case for interleaving ww_mutex_lock(ctx) and ww_mutex_trylock(ctx). Nesting multiple trylocks in ctx-locks happens plenty, but not further: The common use-case for that is locking a bunch of buffers you need (for command submission or whatever), and then trylocking other buffers to make space for the buffers you need to move into VRAM. I guess if only trylocking buffers doesn't succeed in freeing up enough VRAM then we could go into blocking ww_mutex_locks which need the ctx (and which would need all the trylock-acquired buffers to be annotated with the ctx too). TTM currently tries to be far enough away from that corner case (using a defensive "never use more than 50% of all memory for gfx" approach) that it doesn't seem to need that. Once we get there it should indeed be simply to add a ctx parameter to ww_mutex_trylock to fix this case. The TTM side rework is definitely going to be the much bigger issue here ... -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch