Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp1286392ybi; Fri, 14 Jun 2019 11:51:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqz9VzxTd3JUjqZJtzr7+B5sQBlkHVB9yvXncLKWiI8nXQv5ixwOM2kxHfRG7Y9I3MqjYPoX X-Received: by 2002:a63:1d1d:: with SMTP id d29mr27055283pgd.259.1560538296199; Fri, 14 Jun 2019 11:51:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560538296; cv=none; d=google.com; s=arc-20160816; b=Wowc2b6BiHTdfoQwu1LQDXPY+lYCFrBtWwp5Wf3U4noZ2TYY5kGm+u2wzQSxGkTmDa iebd55UeWy1Dn6pd/dYHRRVGnrW8LMjo1oD+SQ4T4RPZO6uqYbs7F2ERcDLZzDubm2+t gFc3DzWhsWdq8LaSQ74uDZ+YZ8BBHS3yu2+qJ2Phru1Dl/SYfimkzwVpX+Lnhgd5BvGm Tfc7kmYoGlO6Zfc+jykWl6rPtlCVhdlA0jekT4/A5/uChpWdUxkW4VlwlF4d9zh/OKi8 64JIejDNzXdu404GDH/oaUEy96m+0ZEXZRwOJWovyLz+NzQswctxwpzdKVgOU9jCaroh 5Nbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:reply-to:dkim-signature; bh=TwsuP/5QpBpyw+894FkICl68mr19hbmwJDtOpUhHp38=; b=QLeF3KLTqT8xQncchheC7aSKT34z6STvC4wQE5zeQ22o6FuHIEQCP8Hz+cZThmaEPH e8NKBCEMzEkmUlFsOX9c6gt1iiksm8SYgGv1iXwYircD2eN75knra+6RZGhf2Pqiqi7g eRRYqh1KLBqc8GVL5hVOqtqMLfdkaeuxOPX1YXgD9GyuBFwFN/Z9kqt0lLFhBGJxojt9 2egBcUf3SUFQ2LRB4TZxFslfDFPYJ11bYWWQZqirV8Zxv2gIPz62ZpPp+tc1ff2sD/qM NPiXI6oVs7k054dGM+kAj1OESVCwOUl1lm+Jwa5N1deFmmCwhmGV1iZgjh2/OKJr/Tu9 eUUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eHN1sCz3; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q23si3453138pfc.179.2019.06.14.11.51.20; Fri, 14 Jun 2019 11:51:36 -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=pass header.i=@gmail.com header.s=20161025 header.b=eHN1sCz3; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726063AbfFNSvQ (ORCPT + 99 others); Fri, 14 Jun 2019 14:51:16 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:43683 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725809AbfFNSvQ (ORCPT ); Fri, 14 Jun 2019 14:51:16 -0400 Received: by mail-wr1-f67.google.com with SMTP id p13so3547526wru.10 for ; Fri, 14 Jun 2019 11:51:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=TwsuP/5QpBpyw+894FkICl68mr19hbmwJDtOpUhHp38=; b=eHN1sCz3W2HTRU7bY4U0Qo31XyxAGdDIGeVU0H3BQa3VmHEmxCdG5Sfx+qwxSwdk6o kDaqfroDELkJHWYJMYMCqJTVNHXUNYpWwzBVQmbQjAZeGN9MGFYSdcy6TGbmvL885SIm mpwm93e4a4mutIMsuS7/vbvrRZFR6dhZCy0yZ/v8Rnct7mIrb3mhtXVYHs4YJ3OL75OS 6dxYdzLxvja+X44d8HGx6bj/vqUT/vmAjoLUE2Cd2jFufxhXQwXYJqNvFaq+do9ekxal uGK6BnU8q5zlVin8s9e0gspC7CgrdU85QCMNInHjsla8YPLlhRLcDpRBrIBVz4PEC296 2Vfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=TwsuP/5QpBpyw+894FkICl68mr19hbmwJDtOpUhHp38=; b=LLGnG5MaKzIVhvMx+WbEWkuBN9wLsjDQfMjtDtNRpMP4PW180TEZ3Sk0q52uLBOmBi gMsTWPJh3vKXHqLVSFTGwk+3bLR244LrbVxX+7sFTFBAuGwKwJsxGZcWyS6LQ8svVnlj i47Pze0H3OdaT6iMbzu1J3Pqv9vY486F8qEDYCMnkjThQMRiraKGb93VAbBWGZV/Tb+y Jc5dnjYk/eT6iYsVQEvZS1rMSxTjqBfAgPI0G2t0Pwi7Cp1ji1c+Hnccfw4U0L0A4utk PfvFUvJdoOFp2/rlc6zNbhEvcbfmrowio+l/Tuhtvznb0qQxwRCaK3zRPDL1hgMSi1uV WiiA== X-Gm-Message-State: APjAAAWjaltNbEMLHiw4xgDcLGhiHTB8L/UHMk8T/bbfbbH8B0gPK+HB aq+le2AMTwpEGcdXRguYu60= X-Received: by 2002:adf:e2c7:: with SMTP id d7mr10305574wrj.272.1560538273929; Fri, 14 Jun 2019 11:51:13 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7? ([2a02:908:1252:fb60:be8a:bd56:1f94:86e7]) by smtp.gmail.com with ESMTPSA id r4sm584930wra.96.2019.06.14.11.51.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Jun 2019 11:51:13 -0700 (PDT) Reply-To: christian.koenig@amd.com Subject: Re: [PATCH 3/6] drm/gem: use new ww_mutex_(un)lock_for_each macros To: =?UTF-8?Q?Christian_K=c3=b6nig?= , Peter Zijlstra , Lucas Stach , Russell King , Christian Gmeiner , Qiang Yu , "Anholt, Eric" , Thomas Hellstrom , dri-devel , Linux Kernel Mailing List , The etnaviv authors , lima@lists.freedesktop.org References: <20190614124125.124181-1-christian.koenig@amd.com> <20190614124125.124181-4-christian.koenig@amd.com> <20190614131916.GQ3436@hirez.programming.kicks-ass.net> <20190614152242.GC23020@phenom.ffwll.local> <094da0f7-a0f0-9ed4-d2da-8c6e6d165380@gmail.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Fri, 14 Jun 2019 20:51:11 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 14.06.19 um 20:24 schrieb Daniel Vetter: > > On Fri, Jun 14, 2019 at 8:10 PM Christian König wrote: >> [SNIP] >> WW_MUTEX_LOCK_BEGIN() >> >> lock(lru_lock); >> >> while (bo = list_first(lru)) { >> if (kref_get_unless_zero(bo)) { >> unlock(lru_lock); >> WW_MUTEX_LOCK(bo->ww_mutex); >> lock(lru_lock); >> } else { >> /* bo is getting freed, steal it from the freeing process >> * or just ignore */ >> } >> } >> unlock(lru_lock) >> >> WW_MUTEX_LOCK_END; Ah, now I know what you mean. And NO, that approach doesn't work. See for the correct ww_mutex dance we need to use the iterator multiple times. Once to give us the BOs which needs to be locked and another time to give us the BOs which needs to be unlocked in case of a contention. That won't work with the approach you suggest here. Regards, Christian. > > > Also I think if we allow this we could perhaps use this to implement the > modeset macros too. > -Daniel > > > > >>> This is kinda what we went with for modeset locks with >>> DRM_MODESET_LOCK_ALL_BEGIN/END, you can grab more locks in between the >>> pair at least. But it's a lot more limited use-cases, maybe too fragile an >>> idea for ww_mutex in full generality. >>> >>> Not going to type this out because too much w/e mode here already, but I >>> can give it a stab next week. >>> -Daniel >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > >