Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp596184pxb; Thu, 25 Feb 2021 10:02:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJyw+FTheHD6Rvp06z0TtEX2eX7VrNRpCuwOEpmN+UrSnY345II0aIk6IBwPZFUvxyQiX6Va X-Received: by 2002:a17:906:1a4b:: with SMTP id j11mr3875803ejf.55.1614276122914; Thu, 25 Feb 2021 10:02:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614276122; cv=none; d=google.com; s=arc-20160816; b=ogObwmvSsKwq4/nrHNYsVd92xRQ3tMuf9AWv4hdi5+goeJ73yHCGqqetw1TK3ackk/ 53GaeYwOgUL2Pq94pIm2V9UPBfT/RMKeCdVCISXwzrHD6vX80J1rSSq8ct0I/RXvz5k4 3UJ2AVHFExCbXSwKP8ZGKuSv5OdpiOM6SS5ySLUPO+vRHEYcYScWzzohE8IqzXN4Xb3x XyqGT4M7a9SRTmrWSHqaC8BPRNCyBegbTaI9hr9l76a2cehmFx8Q+Ih5WZ8Es0068ru9 YxbLQGxlPdgjZmgRKEJkFQn5H/aYn40RVypznorWZ3/NXtQzejWuu7dBwGPwRgi0x06I n42g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dmarc-filter:sender :dkim-signature; bh=qTG3mvnqJBIqCXZxdGCueL+fT4ZSQKHYrTQ6ux1Z2Qk=; b=Fg0CFmWbG8Ci3g0pazb15WM8FYCGviwQzCiCXeNgs10Os/Uux58IP6PprZDmwQRzJo UtBkgoqa6qEWhizOxyh/tzbBPBQvfOgeV8d8bsXijOOJ1ErPywouMHUxvA78qxoZ9m7L aC9hTop4lXEuR8FMbTgDTplsY6k6HzSVcNm3qPa1HannyacXJUcUYFWC6wMAf3he6mkB 4Ov4l/+a70Lnglnhk2l3lU2IZAdONV/jLE4seyeKnBymYcWFCitJ+JaICaCXSh1lfbCp 4E1o+lBTYBR3vkDpj7WcGbotUY62qnXJpQI9fs3hoR7f0hMsqzNis0/bm3I83zc71hbG n4pA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b="rCxIh1s/"; 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 dn20si4520011ejc.593.2021.02.25.10.01.37; Thu, 25 Feb 2021 10:02:02 -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; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b="rCxIh1s/"; 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 S233068AbhBYR6r (ORCPT + 99 others); Thu, 25 Feb 2021 12:58:47 -0500 Received: from z11.mailgun.us ([104.130.96.11]:35194 "EHLO z11.mailgun.us" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233002AbhBYRwl (ORCPT ); Thu, 25 Feb 2021 12:52:41 -0500 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1614275533; h=Content-Transfer-Encoding: MIME-Version: Message-Id: Date: Subject: Cc: To: From: Sender; bh=qTG3mvnqJBIqCXZxdGCueL+fT4ZSQKHYrTQ6ux1Z2Qk=; b=rCxIh1s/9BIu3pcm1HYUwNLibGDZEl9mSaTObgDVwCLrngTUs34yCKg3y2D3PrDumJeFvkID SIVDnbqkmm2n2wW24jZm30qFhwV9ltvVNeOZXRkh0TPhQx23HjpwGvsrhektoERSpAM0YPny Ap8vJ+z+Ib0WWX4F3qCfzhpTI0U= X-Mailgun-Sending-Ip: 104.130.96.11 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n01.prod.us-west-2.postgun.com with SMTP id 6037e3b1ea793fa30389dd8e (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 25 Feb 2021 17:51:45 GMT Sender: jcrouse=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id B2E09C4347D; Thu, 25 Feb 2021 17:51:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL autolearn=no autolearn_force=no version=3.4.0 Received: from jordan-laptop.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: jcrouse) by smtp.codeaurora.org (Postfix) with ESMTPSA id 4D3FFC433CA; Thu, 25 Feb 2021 17:51:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 4D3FFC433CA Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=jcrouse@codeaurora.org From: Jordan Crouse To: linux-arm-msm@vger.kernel.org Cc: Robin Murphy , iommu@lists.linux-foundation.org, Will Deacon , Akhil P Oommen , AngeloGioacchino Del Regno , Bjorn Andersson , Daniel Vetter , David Airlie , Eric Anholt , Joerg Roedel , John Stultz , Jonathan Marek , Konrad Dybcio , Krishna Reddy , "Kristian H. Kristensen" , Marijn Suijten , Nicolin Chen , Rob Clark , Rob Clark , Sai Prakash Ranjan , Sean Paul , Sharat Masetty , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 0/3] iommu/arm-smmu: adreno-smmu page fault handling Date: Thu, 25 Feb 2021 10:51:32 -0700 Message-Id: <20210225175135.91922-1-jcrouse@codeaurora.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org (resending for the 5.13 cycle) This is a stack to add an Adreno GPU specific handler for pagefaults. The first patch starts by wiring up report_iommu_fault for arm-smmu. The next patch adds a adreno-smmu-priv function hook to capture a handful of important debugging registers such as TTBR0, CONTEXTIDR, FSYNR0 and others. This is used by the third patch to print more detailed information on page fault such as the TTBR0 for the pagetable that caused the fault and the source of the fault as determined by a combination of the FSYNR1 register and an internal GPU register. This code provides a solid base that we can expand on later for even more extensive GPU side page fault debugging capabilities. v3: Always clear FSR even if the target driver is going to handle resume v2: Fix comment wording and function pointer check per Rob Clark Jordan Crouse (3): iommu/arm-smmu: Add support for driver IOMMU fault handlers drm/msm: Add an adreno-smmu-priv callback to get pagefault info drm/msm: Improve the a6xx page fault handler drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 4 +- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 76 +++++++++++++++++++++- drivers/gpu/drm/msm/msm_iommu.c | 11 +++- drivers/gpu/drm/msm/msm_mmu.h | 4 +- drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 19 ++++++ drivers/iommu/arm/arm-smmu/arm-smmu.c | 9 ++- drivers/iommu/arm/arm-smmu/arm-smmu.h | 2 + include/linux/adreno-smmu-priv.h | 31 ++++++++- 8 files changed, 145 insertions(+), 11 deletions(-) -- 2.25.1