Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp444295pxb; Thu, 19 Nov 2020 05:28:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJzFaDaNRhTWBwCRwbnNRvpU2lUIBmLn2UHSrWDip/aLIyPr36Vslp17fff0a2E3N7WUGJB6 X-Received: by 2002:a50:daca:: with SMTP id s10mr22319542edj.263.1605792511142; Thu, 19 Nov 2020 05:28:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605792511; cv=none; d=google.com; s=arc-20160816; b=UTN4X2beRHO949KQAvd90hCATHYBXoPi/r8Ft6JRiJhIBmH088lEzdtfG40PC6R7Ky tsBDdcc96BHY2v9YOUTVP+GGOMqnhCU4yrjn/rTw6qNxFRNasbgqQaip76W5jr+vuG/j I2NoNYNGj1vaagVBxl5ejweg0bFO85pzdGww6lbbNKlukatH8WDyJikoMo9aeVqiHBWi GOOHwrrVVFxkVg+C1H1mky2KXyvDRnchcSNjxQ3qt09VH48E4ObT9CflaJRymGdvELYX urfVeHuMEzpFoCZc3KpsoUNHNK3j/bF+HfvZC6e+VyndV9dV6vFeiO+DKJ6emryTZsa1 CrgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:message-id:date:to:cc:from:subject :references:in-reply-to:content-transfer-encoding:mime-version; bh=lVtNCA58wpe9HXJnHHprzsqmMnytNqdzNtKEdV+rnD0=; b=SCiFMd3DGyQJCDC0LTM5vioOjpJRldAlMQDJM9CPNHiGR+RYT2DGw85sfDwLQyCEQp KXaokEr2yLkh3xnk4SysetpMosXE6lTCarlnLlB7H9gAf8UAZCUxUgTZRlshYV88Y2IK 9Waq24Qb/CnBH8axBcRDKKN+zGxZMJsTqLxFaFz/5Aw1u0yDmyhK2xFml8jUWCn3w8H5 +o7DS/InKWX7/KlH6UU8zp4X7c8cnAf2wpoFO5feZTHdNRqLEiKBUwmoANQ87tyENWVY pbW2Iogxw0b72w1jtsTfMY4wc/eca9foQoiWfmkW1XjVaDWmnORu2s/Pvdwkm48I2Qw2 xJpQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j24si17306866ejt.651.2020.11.19.05.28.08; Thu, 19 Nov 2020 05:28:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727151AbgKSNZb convert rfc822-to-8bit (ORCPT + 99 others); Thu, 19 Nov 2020 08:25:31 -0500 Received: from mail.fireflyinternet.com ([77.68.26.236]:51519 "EHLO fireflyinternet.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726474AbgKSNZb (ORCPT ); Thu, 19 Nov 2020 08:25:31 -0500 X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from localhost (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 23042097-1500050 for multiple; Thu, 19 Nov 2020 13:25:13 +0000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT In-Reply-To: <20201119130244.GN3121392@hirez.programming.kicks-ass.net> References: <1185a97a-3780-3bce-d97d-ff9c2830e35d@gmail.com> <20201119130244.GN3121392@hirez.programming.kicks-ass.net> Subject: Re: Deadlock cpuctx_mutex / pmus_lock / &mm->mmap_lock#2 From: Chris Wilson Cc: Ingo Molnar , Arnaldo Carvalho de Melo , Linux Kernel Mailing List To: Heiner Kallweit , Peter Zijlstra Date: Thu, 19 Nov 2020 13:25:11 +0000 Message-ID: <160579231162.30679.12645532537616868812@build.alporthouse.com> User-Agent: alot/0.9 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Peter Zijlstra (2020-11-19 13:02:44) > > Chris, I suspect this is due to i915 calling stop machine with all sorts > of locks held. Is there anything to be done about this? stop_machine() > is really nasty to begin with. > > What problem is it typing to solve? If there is any concurrent access through a PCI bar (that is exported to userspace via mmap) as the GTT is updated, results in undefined HW behaviour (where that is not limited to users writing to other system pages). stop_machine() is the most foolproof method we know that works. This particular cycle is easy to break by moving the copy_to_user to after releasing perf_event_ctx_unlock in perf_read(). -Chris