From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BCC6FC43387 for ; Tue, 8 Jan 2019 20:10:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8D20B20660 for ; Tue, 8 Jan 2019 20:10:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546978244; bh=JAczUz8CzjTCLIv4ona2lT4ONvcnVK49JaKJ52S+XJo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Qlz1nctODOljCEiHhE1AHkU4aDju8FwPSVKUx9VTA9WyYFMQWqlpjs+Cg0VLMsFMC 6XJlWnS4KyjrYasvw53Q8CGx/JObZznb4IozFc9gAf0OZ/sqbYNffD8/jYT2l4awuj uFuJRszADX1Jy8M9jKbOceiGR7f+WbnjvaHZF6Zo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729120AbfAHT0q (ORCPT ); Tue, 8 Jan 2019 14:26:46 -0500 Received: from mail.kernel.org ([198.145.29.99]:60636 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729016AbfAHT0l (ORCPT ); Tue, 8 Jan 2019 14:26:41 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BAFC020883; Tue, 8 Jan 2019 19:26:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546975600; bh=JAczUz8CzjTCLIv4ona2lT4ONvcnVK49JaKJ52S+XJo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hxzio3X+N+TMB55nrVmkkJZNJCG8c6QirgwwWE5SWc0fWxH3MMVjQ4KTfM/r7wlHM MT5A5AayTWQDRQ+gsXmC1IrcPc2hRaM+3A59niGhtFdiLjyccZwhjkfM0QvTJyzIoX PPcJvXz9vdTYVUYLXLP8KTIm53bncxJvPUwnF+1E= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= , Alex Deucher , Sasha Levin , dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org Subject: [PATCH AUTOSEL 4.20 005/117] drm/amdkfd: fix interrupt spin lock Date: Tue, 8 Jan 2019 14:24:33 -0500 Message-Id: <20190108192628.121270-5-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190108192628.121270-1-sashal@kernel.org> References: <20190108192628.121270-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christian König [ Upstream commit 2383a767c0ca06f96534456d8313909017c6c8d0 ] Vega10 has multiple interrupt rings, so this can be called from multiple calles at the same time resulting in: [ 71.779334] ================================ [ 71.779406] WARNING: inconsistent lock state [ 71.779478] 4.19.0-rc1+ #44 Tainted: G W [ 71.779565] -------------------------------- [ 71.779637] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. [ 71.779740] kworker/6:1/120 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 71.779832] 00000000ad761971 (&(&kfd->interrupt_lock)->rlock){?...}, at: kgd2kfd_interrupt+0x75/0x100 [amdgpu] [ 71.780058] {IN-HARDIRQ-W} state was registered at: [ 71.780115] _raw_spin_lock+0x2c/0x40 [ 71.780180] kgd2kfd_interrupt+0x75/0x100 [amdgpu] [ 71.780248] amdgpu_irq_callback+0x6c/0x150 [amdgpu] [ 71.780315] amdgpu_ih_process+0x88/0x100 [amdgpu] [ 71.780380] amdgpu_irq_handler+0x20/0x40 [amdgpu] [ 71.780409] __handle_irq_event_percpu+0x49/0x2a0 [ 71.780436] handle_irq_event_percpu+0x30/0x70 [ 71.780461] handle_irq_event+0x37/0x60 [ 71.780484] handle_edge_irq+0x83/0x1b0 [ 71.780506] handle_irq+0x1f/0x30 [ 71.780526] do_IRQ+0x53/0x110 [ 71.780544] ret_from_intr+0x0/0x22 [ 71.780566] cpuidle_enter_state+0xaa/0x330 [ 71.780591] do_idle+0x203/0x280 [ 71.780610] cpu_startup_entry+0x6f/0x80 [ 71.780634] start_secondary+0x1b0/0x200 [ 71.780657] secondary_startup_64+0xa4/0xb0 Fix this by always using irq save spin locks. Signed-off-by: Christian König Acked-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/amdkfd/kfd_device.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c index e4ded890b1cb..6edaf11d69aa 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c @@ -688,6 +688,7 @@ void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry) { uint32_t patched_ihre[KFD_MAX_RING_ENTRY_SIZE]; bool is_patched = false; + unsigned long flags; if (!kfd->init_complete) return; @@ -697,7 +698,7 @@ void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry) return; } - spin_lock(&kfd->interrupt_lock); + spin_lock_irqsave(&kfd->interrupt_lock, flags); if (kfd->interrupts_active && interrupt_is_wanted(kfd, ih_ring_entry, @@ -706,7 +707,7 @@ void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry) is_patched ? patched_ihre : ih_ring_entry)) queue_work(kfd->ih_wq, &kfd->interrupt_work); - spin_unlock(&kfd->interrupt_lock); + spin_unlock_irqrestore(&kfd->interrupt_lock, flags); } int kgd2kfd_quiesce_mm(struct mm_struct *mm) -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 4.20 005/117] drm/amdkfd: fix interrupt spin lock Date: Tue, 8 Jan 2019 14:24:33 -0500 Message-ID: <20190108192628.121270-5-sashal@kernel.org> References: <20190108192628.121270-1-sashal@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190108192628.121270-1-sashal-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Alex Deucher , Sasha Levin , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, =?UTF-8?q?Christian=20K=C3=B6nig?= , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKWyBVcHN0 cmVhbSBjb21taXQgMjM4M2E3NjdjMGNhMDZmOTY1MzQ0NTZkODMxMzkwOTAxN2M2YzhkMCBdCgpW ZWdhMTAgaGFzIG11bHRpcGxlIGludGVycnVwdCByaW5ncywgc28gdGhpcyBjYW4gYmUgY2FsbGVk IGZyb20gbXVsdGlwbGUKY2FsbGVzIGF0IHRoZSBzYW1lIHRpbWUgcmVzdWx0aW5nIGluOgoKWyAg IDcxLjc3OTMzNF0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyAgIDcxLjc3OTQw Nl0gV0FSTklORzogaW5jb25zaXN0ZW50IGxvY2sgc3RhdGUKWyAgIDcxLjc3OTQ3OF0gNC4xOS4w LXJjMSsgIzQ0IFRhaW50ZWQ6IEcgICAgICAgIFcKWyAgIDcxLjc3OTU2NV0gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KWyAgIDcxLjc3OTYzN10gaW5jb25zaXN0ZW50IHtJTi1IQVJE SVJRLVd9IC0+IHtIQVJESVJRLU9OLVd9IHVzYWdlLgpbICAgNzEuNzc5NzQwXSBrd29ya2VyLzY6 MS8xMjAgW0hDMFswXTpTQzBbMF06SEUxOlNFMV0gdGFrZXM6ClsgICA3MS43Nzk4MzJdIDAwMDAw MDAwYWQ3NjE5NzEgKCYoJmtmZC0+aW50ZXJydXB0X2xvY2spLT5ybG9jayl7Py4uLn0sCmF0OiBr Z2Qya2ZkX2ludGVycnVwdCsweDc1LzB4MTAwIFthbWRncHVdClsgICA3MS43ODAwNThdIHtJTi1I QVJESVJRLVd9IHN0YXRlIHdhcyByZWdpc3RlcmVkIGF0OgpbICAgNzEuNzgwMTE1XSAgIF9yYXdf c3Bpbl9sb2NrKzB4MmMvMHg0MApbICAgNzEuNzgwMTgwXSAgIGtnZDJrZmRfaW50ZXJydXB0KzB4 NzUvMHgxMDAgW2FtZGdwdV0KWyAgIDcxLjc4MDI0OF0gICBhbWRncHVfaXJxX2NhbGxiYWNrKzB4 NmMvMHgxNTAgW2FtZGdwdV0KWyAgIDcxLjc4MDMxNV0gICBhbWRncHVfaWhfcHJvY2VzcysweDg4 LzB4MTAwIFthbWRncHVdClsgICA3MS43ODAzODBdICAgYW1kZ3B1X2lycV9oYW5kbGVyKzB4MjAv MHg0MCBbYW1kZ3B1XQpbICAgNzEuNzgwNDA5XSAgIF9faGFuZGxlX2lycV9ldmVudF9wZXJjcHUr MHg0OS8weDJhMApbICAgNzEuNzgwNDM2XSAgIGhhbmRsZV9pcnFfZXZlbnRfcGVyY3B1KzB4MzAv MHg3MApbICAgNzEuNzgwNDYxXSAgIGhhbmRsZV9pcnFfZXZlbnQrMHgzNy8weDYwClsgICA3MS43 ODA0ODRdICAgaGFuZGxlX2VkZ2VfaXJxKzB4ODMvMHgxYjAKWyAgIDcxLjc4MDUwNl0gICBoYW5k bGVfaXJxKzB4MWYvMHgzMApbICAgNzEuNzgwNTI2XSAgIGRvX0lSUSsweDUzLzB4MTEwClsgICA3 MS43ODA1NDRdICAgcmV0X2Zyb21faW50cisweDAvMHgyMgpbICAgNzEuNzgwNTY2XSAgIGNwdWlk bGVfZW50ZXJfc3RhdGUrMHhhYS8weDMzMApbICAgNzEuNzgwNTkxXSAgIGRvX2lkbGUrMHgyMDMv MHgyODAKWyAgIDcxLjc4MDYxMF0gICBjcHVfc3RhcnR1cF9lbnRyeSsweDZmLzB4ODAKWyAgIDcx Ljc4MDYzNF0gICBzdGFydF9zZWNvbmRhcnkrMHgxYjAvMHgyMDAKWyAgIDcxLjc4MDY1N10gICBz ZWNvbmRhcnlfc3RhcnR1cF82NCsweGE0LzB4YjAKCkZpeCB0aGlzIGJ5IGFsd2F5cyB1c2luZyBp cnEgc2F2ZSBzcGluIGxvY2tzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hy aXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpBY2tlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIu ZGV1Y2hlckBhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5k ZXVjaGVyQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYWxAa2VybmVs Lm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMgfCA1ICsr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYwppbmRleCBlNGRlZDg5MGIxY2IuLjZl ZGFmMTFkNjlhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Rl dmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYwpAQCAt Njg4LDYgKzY4OCw3IEBAIHZvaWQga2dkMmtmZF9pbnRlcnJ1cHQoc3RydWN0IGtmZF9kZXYgKmtm ZCwgY29uc3Qgdm9pZCAqaWhfcmluZ19lbnRyeSkKIHsKIAl1aW50MzJfdCBwYXRjaGVkX2locmVb S0ZEX01BWF9SSU5HX0VOVFJZX1NJWkVdOwogCWJvb2wgaXNfcGF0Y2hlZCA9IGZhbHNlOworCXVu c2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpZiAoIWtmZC0+aW5pdF9jb21wbGV0ZSkKIAkJcmV0dXJu OwpAQCAtNjk3LDcgKzY5OCw3IEBAIHZvaWQga2dkMmtmZF9pbnRlcnJ1cHQoc3RydWN0IGtmZF9k ZXYgKmtmZCwgY29uc3Qgdm9pZCAqaWhfcmluZ19lbnRyeSkKIAkJcmV0dXJuOwogCX0KIAotCXNw aW5fbG9jaygma2ZkLT5pbnRlcnJ1cHRfbG9jayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmtmZC0+ aW50ZXJydXB0X2xvY2ssIGZsYWdzKTsKIAogCWlmIChrZmQtPmludGVycnVwdHNfYWN0aXZlCiAJ ICAgICYmIGludGVycnVwdF9pc193YW50ZWQoa2ZkLCBpaF9yaW5nX2VudHJ5LApAQCAtNzA2LDcg KzcwNyw3IEBAIHZvaWQga2dkMmtmZF9pbnRlcnJ1cHQoc3RydWN0IGtmZF9kZXYgKmtmZCwgY29u c3Qgdm9pZCAqaWhfcmluZ19lbnRyeSkKIAkJCQkgICAgIGlzX3BhdGNoZWQgPyBwYXRjaGVkX2lo cmUgOiBpaF9yaW5nX2VudHJ5KSkKIAkJcXVldWVfd29yayhrZmQtPmloX3dxLCAma2ZkLT5pbnRl cnJ1cHRfd29yayk7CiAKLQlzcGluX3VubG9jaygma2ZkLT5pbnRlcnJ1cHRfbG9jayk7CisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgma2ZkLT5pbnRlcnJ1cHRfbG9jaywgZmxhZ3MpOwogfQogCiBp bnQga2dkMmtmZF9xdWllc2NlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQotLSAKMi4xOS4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1h aWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK