From patchwork Wed Nov 23 14:57:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25042 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2845087wrr; Wed, 23 Nov 2022 07:08:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf6o3Vp/1RcKlMOT/51xXlqHgZzMb8e/Objku/YhdrkUxdFnwDz+x7tuqEt8GsmELtxGtrUv X-Received: by 2002:a17:90a:ce8d:b0:213:9c67:1b09 with SMTP id g13-20020a17090ace8d00b002139c671b09mr30325023pju.221.1669216086623; Wed, 23 Nov 2022 07:08:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216086; cv=none; d=google.com; s=arc-20160816; b=0VHC9UK9ijKQkvCxmEuZ7v9Qc0DnzTdXY3P4+6Ggj5s2kJLCUg3xzj9zFfgzydD/v4 KMfI3oZp82aPvKohaRO2QnpG5olV8Sr0fy7wT9c3K1D0JBWzpERf554u+qE18FByDlya evRaOlUIIRbVUnTHtsa4CFitMcDWqC1WyedC33oHK1Kd6ztSHTadLK5IWq0sWCMMNsOr tiS+TZ0VT9H2EkU1s15ZdhLV8WVZJ39hBb16vhfek5pIWl5ws0KYhLvtA8VT2PuD76E7 z+oPc0SLoPoB1E4SzWN36lxU5ppydwmJtkNWrIbdaWe53JPL2J6ph9CW+FF9JVwtfaOf aEpw== 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:dkim-signature; bh=crEMHrqan1HsKX7rq4m5J0eGWvFlynn0+k8XTQs0/qI=; b=dszIlEdIV9sTGKBh0irtna3TdTci6gXl6Sc+XBxYODIxGRCoey7d4WC3pCTSeVHNNQ uUnkIz9L9L9QcY5xryNdrmYwV/LrmcuvAHQ3sJcvRvy3wkJtK/OsDjvPqDLW9e2LYymw ebXTNKJHCPeYR2VCBpcL7pwzMhHBILOQRGvv6o6SrIQbJfj9jhWVHM8w1YELOT59WdHJ rMWBaOirp5IkqUIdrVTVuDlF2v2xSNA0cO6mZB9YmULINfWGeTgQA1blVgb/YIC3vwUZ pKp+/UKT0MTHc3jsKJemI5TeNGPqo+ArJNzuNcycdNztBlX2LImUzXwLfXJ5VgPtj6+O +UjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=E72hcwJo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x2-20020a170902ec8200b001781e393237si3358673plg.443.2022.11.23.07.07.43; Wed, 23 Nov 2022 07:08:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=E72hcwJo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238319AbiKWO6Q (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238244AbiKWO6M (ORCPT ); Wed, 23 Nov 2022 09:58:12 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 796D7E0BF for ; Wed, 23 Nov 2022 06:58:09 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 472C2B8201C for ; Wed, 23 Nov 2022 14:58:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15352C433C1; Wed, 23 Nov 2022 14:58:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215486; bh=OWR6iQytWgRE2Knz69g3vKSi0RhDkuWPDftNikbLzmA=; h=From:To:Cc:Subject:Date:From; b=E72hcwJoIxALhfnaBX0nX39qCx5xqFH6BDtgXf/do72yDafOXJTSglBIJ9s95QxdA iup9Bpkht28lSoiJt9f2XQcqEK6EjmnwG364udouhJlTQ6CE37eKo9W7+zxcMT1rUw 7Q1/kYISIOOPd1iq13eW3hVSq6Px4SGrGMTV6OQkxccp+DnDlSb763VbrrMNOYz69n JZFazwZz1oxbuTYtMaD3hZIJXqwvQcR2f6BGe67ekwTfd3PIbAoeeWgLOCjYJwZbXn bf0NdsELhs/itSAeHzDJVEv8dKmsCTWoZdWRfV8Ecrvd1iFMgGyNxvfrISxxC0cZHM Dh+JOe/gQfK/g== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 1/8] habanalabs: fix rc when new CPUCP opcodes are not supported Date: Wed, 23 Nov 2022 16:57:54 +0200 Message-Id: <20221123145801.542029-1-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299927248649250?= X-GMAIL-MSGID: =?utf-8?q?1750299927248649250?= From: Tomer Tayar When the new CPUCP opcodes are not supported and a CPUCP packet fails, the return value is the F/W error resposone which is a positive value. If this packet is sent from IOCTL and the positive value is used, the ICOTL will not be considered as unsuccessful. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/firmware_if.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/habanalabs/common/firmware_if.c b/drivers/misc/habanalabs/common/firmware_if.c index c0909d76d6eb..cf8147e43833 100644 --- a/drivers/misc/habanalabs/common/firmware_if.c +++ b/drivers/misc/habanalabs/common/firmware_if.c @@ -324,6 +324,7 @@ int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg, if (!prop->supports_advanced_cpucp_rc) { dev_dbg(hdev->dev, "F/W ERROR %d for CPU packet %d\n", rc, opcode); + rc = -EIO; goto scrub_descriptor; } From patchwork Wed Nov 23 14:57:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25037 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2844082wrr; Wed, 23 Nov 2022 07:06:41 -0800 (PST) X-Google-Smtp-Source: AA0mqf7nEUgOcadZNvwOawIyR+2g8uDqtxuECVnkEy1lx2LkklzskTdsYPQ3AUI6vMJQs3miFWWG X-Received: by 2002:a63:1305:0:b0:470:4522:f32f with SMTP id i5-20020a631305000000b004704522f32fmr27307017pgl.114.1669216001167; Wed, 23 Nov 2022 07:06:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216001; cv=none; d=google.com; s=arc-20160816; b=YlAyPVDg8fYCZ6QxcVUdwp/0PAoZlL5TCdeSrz4ajbrllmJBBDXtECSzQZuRzxo2Pa spN53ziKgUcpGpQQ/1+AeUFJbGibIKYGQWnGI6XN07NCQM0KIdPFqo1kyKoktLPPdRLx HPgVt1rXGNVprq8zAmYbFu9Za2tmgXeY7y87ifUQwxewTiICav4ra3gDPe8k+QmNue6N bFadm/5vewpRORkeRYe7xdJdYCmTawtDsU3yDaujbwIiPZ7a1gJWTbTfVyY0pYjcHLne o/LzyA+870bz8kbJ6/P+9IjNCH3mMSUQ9cyjRToQtwCRUKEGR7yWkvCHz+25vSpKC7Rm dCiA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fAxFavW7BuGZ/2OIK6RUaooBd74TaUbz71WWzJIpPNI=; b=nD97poAnWnu1HSPX4IBnpVq9RvqNy68jjBSwhjmEy2wapr/S7DExxOXk+1ZMyN+4EL nqKWxcC2wCfDbe9yHMXTA2dWIMFKHaNrpOnuBZOVu2ZOsfTCFEohuEtpanQTm9mbqkQM x9gQCTVpM+bQUvFOVwB04iMSqf8GvAuCu/g8zWPVmHI4J6mC10XvLJtORJiM0E/5dEap c2IViyP93HFFOAjVbrJ/roIRHHVlQT14EfmNAIiB3LEzScTNm3y8sinYLMS+wy5IRq6r gYt6S1Ys/rU/pX4qEQfQBHJXnKHjlXQAY3JvB4kbmedU/HpvwIYvSSP6Ae6Vft3b8Dc9 jipQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bn103SN1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o20-20020a63fb14000000b0046f6afe556bsi17303637pgh.651.2022.11.23.07.06.14; Wed, 23 Nov 2022 07:06:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bn103SN1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238261AbiKWO6Y (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238218AbiKWO6N (ORCPT ); Wed, 23 Nov 2022 09:58:13 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C27D74A04D for ; Wed, 23 Nov 2022 06:58:10 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 74DA8B8206A for ; Wed, 23 Nov 2022 14:58:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B162C433D7; Wed, 23 Nov 2022 14:58:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215488; bh=0FpoG7TNgKpMIOeeiZ2LDMQ1UkGGWvOoskQGRTo+O8s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bn103SN13FL6X3tMRiwTcV+3EQ3XZkU9x3OixrMnfh1rLW2ljkFZ8DXfPyhWFrCBg 3NyxGWYVvB912M9LroJeaodoALHi+9KGbtHSqHNM6cA1da3ZiDyJwSqEUkPFF6aUFd mhTdexZK6FOlOcm5fuWkObqnYjc1xKww4q/k+G7L3IQbb8XynRS0vOBPdYs0EYBG+i l7W3eOSFHs9ikpbhXXTx5SeS3okSSO7RrzK7mhIftc8dM3YBeNRc+Vl1Z5VjWT4S0M TvE4Gm1pidouDEIaM0M19CN2vWLGAr5j/ps4CDv7tUCc+HYyuT2iQ1fPxfhcpd7tK5 UFnt6qvYmJmmA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Dafna Hirschfeld Subject: [PATCH 2/8] habanalabs: add RMWREG32_SHIFTED to set a val within a mask Date: Wed, 23 Nov 2022 16:57:55 +0200 Message-Id: <20221123145801.542029-2-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221123145801.542029-1-ogabbay@kernel.org> References: <20221123145801.542029-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299837562578717?= X-GMAIL-MSGID: =?utf-8?q?1750299837562578717?= From: Dafna Hirschfeld This is similar to RMWREG32, but the given 'val' is already shifted according to the mask. This allows several 'ORed' vals and masks to be set at once The patch also fixes wrong usage of RMWREG32 by replacing it with RMWREG32_SHIFTED Signed-off-by: Dafna Hirschfeld Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/habanalabs.h | 10 +++------- drivers/misc/habanalabs/gaudi2/gaudi2.c | 6 +++--- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h index e7f89868428d..0329a0980bb7 100644 --- a/drivers/misc/habanalabs/common/habanalabs.h +++ b/drivers/misc/habanalabs/common/habanalabs.h @@ -2498,13 +2498,9 @@ void hl_wreg(struct hl_device *hdev, u32 reg, u32 val); #define WREG32_AND(reg, and) WREG32_P(reg, 0, and) #define WREG32_OR(reg, or) WREG32_P(reg, or, ~(or)) -#define RMWREG32(reg, val, mask) \ - do { \ - u32 tmp_ = RREG32(reg); \ - tmp_ &= ~(mask); \ - tmp_ |= ((val) << __ffs(mask)); \ - WREG32(reg, tmp_); \ - } while (0) +#define RMWREG32_SHIFTED(reg, val, mask) WREG32_P(reg, val, ~(mask)) + +#define RMWREG32(reg, val, mask) RMWREG32_SHIFTED(reg, (val) << __ffs(mask), mask) #define RREG32_MASK(reg, mask) ((RREG32(reg) & mask) >> __ffs(mask)) diff --git a/drivers/misc/habanalabs/gaudi2/gaudi2.c b/drivers/misc/habanalabs/gaudi2/gaudi2.c index a33a9072fca4..e793fb2bdcbe 100644 --- a/drivers/misc/habanalabs/gaudi2/gaudi2.c +++ b/drivers/misc/habanalabs/gaudi2/gaudi2.c @@ -5052,7 +5052,7 @@ static int gaudi2_pci_mmu_init(struct hl_device *hdev) mmu_base = mmPMMU_HBW_MMU_BASE; stlb_base = mmPMMU_HBW_STLB_BASE; - RMWREG32(stlb_base + STLB_HOP_CONFIGURATION_OFFSET, + RMWREG32_SHIFTED(stlb_base + STLB_HOP_CONFIGURATION_OFFSET, (0 << PMMU_HBW_STLB_HOP_CONFIGURATION_FIRST_HOP_SHIFT) | (5 << PMMU_HBW_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_SMALL_P_SHIFT) | (4 << PMMU_HBW_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_LARGE_P_SHIFT) | @@ -5068,7 +5068,7 @@ static int gaudi2_pci_mmu_init(struct hl_device *hdev) if (PAGE_SIZE == SZ_64K) { /* Set page sizes to 64K on hop5 and 16M on hop4 + enable 8 bit hops */ - RMWREG32(mmu_base + MMU_STATIC_MULTI_PAGE_SIZE_OFFSET, + RMWREG32_SHIFTED(mmu_base + MMU_STATIC_MULTI_PAGE_SIZE_OFFSET, FIELD_PREP(DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP5_PAGE_SIZE_MASK, 4) | FIELD_PREP(DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK, 3) | FIELD_PREP( @@ -5116,7 +5116,7 @@ static int gaudi2_dcore_hmmu_init(struct hl_device *hdev, int dcore_id, RMWREG32(mmu_base + MMU_STATIC_MULTI_PAGE_SIZE_OFFSET, 5 /* 64MB */, MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK); - RMWREG32(stlb_base + STLB_HOP_CONFIGURATION_OFFSET, + RMWREG32_SHIFTED(stlb_base + STLB_HOP_CONFIGURATION_OFFSET, FIELD_PREP(DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_HOP_MASK, 0) | FIELD_PREP(DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_SMALL_P_MASK, 3) | FIELD_PREP(DCORE0_HMMU0_STLB_HOP_CONFIGURATION_FIRST_LOOKUP_HOP_LARGE_P_MASK, 3) | From patchwork Wed Nov 23 14:57:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25036 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2844069wrr; Wed, 23 Nov 2022 07:06:41 -0800 (PST) X-Google-Smtp-Source: AA0mqf7ZFqLvDeK5eA1PsT8f2zWIJtJoWLJwcluU32JkJS3gC85GdjW50Z1xItnm8gyIJ+UXo6Qf X-Received: by 2002:a17:90a:c712:b0:212:9625:c8e9 with SMTP id o18-20020a17090ac71200b002129625c8e9mr36802562pjt.128.1669216001146; Wed, 23 Nov 2022 07:06:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216001; cv=none; d=google.com; s=arc-20160816; b=riUB1ki0bhysWx91A7XUhHTgSm/j+H5objgB3LzvcKsxQkbgbqKCwN5eNHNErx1J5+ 1mM2BayIupV18gdrHq4cQje37Hc0lLzXToHsvyCP42yTHp7Ofz3Wbcb/GBuSRT8uZZso b8jjQstxgtE5lI0YtQihHXWy4GPkpZpcEH/pQm/ccFWOaxATXJDSO1/64GF/DKtt8ZeY 9yIyn4nTZR030z4gPyQe3YrXK2CAcMje5Cn85FWYszXBmPTU4l21Mk8w0vi4Ou6nI228 9nS6RqITYjfF49j+QiUBkHH4CWsIK0Fw+vYfAOEiipZLAMoAIc1NXNv89o06GhB4jbKb JUyA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=hqDXlEj6zYL/dwpyZnOtvM2PwXvIvQbnPLvqCmqxRLE=; b=DOxDG+u4COHLA9rnSIn9nzXBVgDY+gjF0Uz1rWRSVPuGftHO1Q6eyamJw8oR1zE3Yv lRTrRIboXFlX4tO4iP8EnruFn3sdtAbI/UHzyou2GRWA9otFmiC8035IMZT5/PerHVhP z412BRbDmL87nrKYoyf6GsEg/rRZads58/RPY8pgSwk2AzeK1LNISgRwB/+wPDWUSkye OoFD5ehcgv1FWNmqWD2/eR32EymTpUkC79Dnt5UzZkvwPlRwx0iPABTO0it3Od8nIrhL eiTKYnYO2yolUVvkIY/0bhsOOksDW13Dfn41a8GgaJsznGmo0IeRcOnFu43Umbjn45vu 187A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EZl11+ml; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k191-20020a6384c8000000b00477c498cca3si857552pgd.55.2022.11.23.07.06.15; Wed, 23 Nov 2022 07:06:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EZl11+ml; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235309AbiKWO62 (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59222 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238173AbiKWO6P (ORCPT ); Wed, 23 Nov 2022 09:58:15 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3590E5FA9 for ; Wed, 23 Nov 2022 06:58:12 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B8FD8B8206C for ; Wed, 23 Nov 2022 14:58:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A06CFC433D6; Wed, 23 Nov 2022 14:58:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215489; bh=0kGd4u1zhabaucfl7C3QkCQrJfpFWk2tRyn/vCN7FXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EZl11+mlBdZ5dduflYDzaF3SmpJ4sXaqgKyazDzSQ6sGgo0diZKiBWPiJcP/X6g9N V5rjbx8wvEK4ABlqxu8vgGs/L66w58H4oRIJaLoLUTp2AC9kp8Y1IEyJDexjjJEp0u PmdyuTGInkeGG+0v7DrHk0SnVbo+E0HOrRYf/K62pcHvwO8ix7f7Nm5w8w0YnnyQ42 JdIGCD86JWv1zX+6hFWlzmGyjXwoATHj9FAc6KhkTpov/ts+tRQPCSZNvBh2GzxWiW DvUhX630sHgR55dczDijvbi63XQpSb6nzC1g+SYX+GAf3+l1mSsY1zW6Q3brirU8hd BpkVRwmD6ON3A== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 3/8] habanalabs: print context refcount value if hard reset fails Date: Wed, 23 Nov 2022 16:57:56 +0200 Message-Id: <20221123145801.542029-3-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221123145801.542029-1-ogabbay@kernel.org> References: <20221123145801.542029-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299837961701370?= X-GMAIL-MSGID: =?utf-8?q?1750299837961701370?= From: Tomer Tayar Failing to kill a user process during a hard reset can be due to a reference to the user context which isn't released. To make it easier to understand if this the reason for the failure and not something else, add a print of the context refcount value. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index f5864893237c..926f230def56 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -696,10 +696,22 @@ static void device_hard_reset_pending(struct work_struct *work) flags = device_reset_work->flags | HL_DRV_RESET_FROM_RESET_THR; rc = hl_device_reset(hdev, flags); + if ((rc == -EBUSY) && !hdev->device_fini_pending) { - dev_info(hdev->dev, - "Could not reset device. will try again in %u seconds", - HL_PENDING_RESET_PER_SEC); + struct hl_ctx *ctx = hl_get_compute_ctx(hdev); + + if (ctx) { + /* The read refcount value should subtracted by one, because the read is + * protected with hl_get_compute_ctx(). + */ + dev_info(hdev->dev, + "Could not reset device (compute_ctx refcount %u). will try again in %u seconds", + kref_read(&ctx->refcount) - 1, HL_PENDING_RESET_PER_SEC); + hl_ctx_put(ctx); + } else { + dev_info(hdev->dev, "Could not reset device. will try again in %u seconds", + HL_PENDING_RESET_PER_SEC); + } queue_delayed_work(hdev->reset_wq, &device_reset_work->reset_work, msecs_to_jiffies(HL_PENDING_RESET_PER_SEC * 1000)); From patchwork Wed Nov 23 14:57:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25038 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2844092wrr; Wed, 23 Nov 2022 07:06:42 -0800 (PST) X-Google-Smtp-Source: AA0mqf6XZoNT2hBWWj8YfI+7pbSbOsendHLETcXX1vQ0bQmxFMm5IoOjLVTkDDVumF4x2WpTQO9I X-Received: by 2002:a63:fe16:0:b0:46b:8e9:7d5f with SMTP id p22-20020a63fe16000000b0046b08e97d5fmr8353834pgh.597.1669216002646; Wed, 23 Nov 2022 07:06:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216002; cv=none; d=google.com; s=arc-20160816; b=WVfvmdo4Df9LJu/PbWtf0us5FnaJRy2OT5VZYoAcafsGghiIiLgsIkr5He6LhVfJoi WupCShJEGc2Ypn0vS+FRjux8M+ksiwkHBBRMEdf/h+ZOYTkfYnCSw/SNlVJ14L0pCLwr gmge6HpB7HRxDfSnuBrtpy4RmNBB0AjF+MYIfqrRpy2VL3OETxcbZYvoAbzhFrOBFn7r bPTwzZ4QSFced7ZN/3U4Pt8f62SEVoK+8keGlIuKwRKT1ZmjFfnN6HKwlJurTfMQ1bqF 85wcZVEVMjjKCxA5xtZ1rLAxnR66n9vKdg2YdDfIipqQtmLE7om1PsFT9xC7OF/+g6ux sBWg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=kESR1DxkrcIiK7kkR1Dg68N3+t74gTSnepzyfYk7MnQ=; b=TeGRLdTGtBgxdcYm+meNyNoD/IzYk0yRc5drAGrhDGQT9GJjQHguuP8CR3oU2A8js3 nip6ZFCXdYcBP1LURP/qA68R4XCEK8SdKkEpJ6OVxB87U338VfXw173rz7zTfNf2Oyob Ku9XuvGqNTXcEufwMPh4J0Z6/MRbPaBl26URCsqL3Dy33eqchzOslH2bS4Rxp4b9IC+u 33anvNr3FLbio8yKtWesXhz3EkH4eNdbhOILUnEdr2A00gFX7YWGGXZBNHHhdRSaTfOs /43oP97txj+H6x4kXf8mDzd/cwF2oJKegWVrss+YMYoM9Lp8Oa381rQLccdUJ0vpFjwf UfYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=eHMwyqfx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h11-20020a056a00230b00b0056de69b0c76si16593783pfh.283.2022.11.23.07.06.27; Wed, 23 Nov 2022 07:06:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=eHMwyqfx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237051AbiKWO6c (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238233AbiKWO6P (ORCPT ); Wed, 23 Nov 2022 09:58:15 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C95E4A05E for ; Wed, 23 Nov 2022 06:58:13 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id F33B2B81F97 for ; Wed, 23 Nov 2022 14:58:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E94CEC433D7; Wed, 23 Nov 2022 14:58:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215490; bh=kFm0dxOVEfWcYylYJSjuvJyigStoiz/gTLwSGjrDOb8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eHMwyqfxNDeqbnKa/z67MPQ8hA29mBjlD//ywIPOi66HSfKuDQjjBDKk20GMXsDxc MvZAXYDrITeY87P3FE2W3VWv66p9s5gfuf7XtCmZnAsogyHqst1i0iRtFkS6gsNq83 fnizsUxneAGCW9BmUlmdUZntQXSI/Wdcne5vaWwIVpZqBaZNcNNAWW5uWcHIv35eY6 qa604ezqpL+7ZW+oeZTQUJ63vl64rYpiHR8uAJ3+cUVBrSvkk/ItwNEjNXu7axnDdW mBWETyJ0jmyF5u2zxSY+Ey190mNPx6NjSk4ypUKpjf8eILSKKSXPfDThgNSz+e+gcm hmDhRT0C/kIug== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 4/8] habanalabs: don't put context in hl_encaps_handle_do_release_sob() Date: Wed, 23 Nov 2022 16:57:57 +0200 Message-Id: <20221123145801.542029-4-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221123145801.542029-1-ogabbay@kernel.org> References: <20221123145801.542029-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299839624092800?= X-GMAIL-MSGID: =?utf-8?q?1750299839624092800?= From: Tomer Tayar hl_encaps_handle_do_release_sob() can be called only when the last reference to the context object is released and hl_ctx_do_release() is initiated, and therefore it shouldn't call hl_ctx_put(). Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/context.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/misc/habanalabs/common/context.c b/drivers/misc/habanalabs/common/context.c index 2f4620b7990c..ba6675960203 100644 --- a/drivers/misc/habanalabs/common/context.c +++ b/drivers/misc/habanalabs/common/context.c @@ -39,7 +39,6 @@ static void hl_encaps_handle_do_release_sob(struct kref *ref) idr_remove(&mgr->handles, handle->id); spin_unlock(&mgr->lock); - hl_ctx_put(handle->ctx); kfree(handle); } From patchwork Wed Nov 23 14:57:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25040 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2844249wrr; Wed, 23 Nov 2022 07:06:53 -0800 (PST) X-Google-Smtp-Source: AA0mqf7LpxSMKMhNdpErDe+r6jgi0A9rQs9LzoW7XvRvZQO3IY3WS1jSobNv1ygzRSkohje/G/UG X-Received: by 2002:a62:ab18:0:b0:56b:9ae8:ca05 with SMTP id p24-20020a62ab18000000b0056b9ae8ca05mr9597183pff.59.1669216012975; Wed, 23 Nov 2022 07:06:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216012; cv=none; d=google.com; s=arc-20160816; b=lWkqtL4bqfv/n179Icaa6wwA4F5beZRYzqTmtIPJalASp6dhv1SEm3TQKEohmpoc6f K7CogQTaXx9Fi1qDahoQNrxAVNfM8kufFOBlxYWJgMjVXbwcCFB4L7uNe74DrejddB0V d/zbHDOuo7fFpKY821/nu2S5GkQ0J5UW28x+XgINuxmejeKIzQdURJ24/DBOJMw/15sP R+9eH2sBsa+QFfxZc/tbIpgnEQPk2ppTSKCoU4gvFqaYJCATSLqSo3sgtV8W0Q6YmZuO FdOODyYpWUsKBHWAslHa4cvYk8Df6uzoaNFYpT4mzZVqCsOEYcq6kJAJ5inbNWJR3Ra5 30Tg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=xKlBh/GwJ32FNK0sxi4YF1Rx4hllk6QxcSnfmIur0KU=; b=a3oYIrTx0tS0ZIvXv5u1gfpAViCsfZYQ3HRDL0X+/hw3EiCDtjUhH/atgNd/LWdVsy 8s1sSdmFyTWlmV/P85mh9RazCCDviF5JPeNIzY+MNXzbgn9knnl4PlA22AN7BcVpNn5z uWua1UJpj/ac4fGu0H/3+FydcIW6C4Jh4I+hHqcWgy4sO+7/Mu5z/9l7xsb2jtRIzPwY e7edzfdbGrHeUgcqSZ4lEjKDdpuhNoPx7/uwggIraE3JMqh+fjhlxVS1etzNC2yoeNHW MFF8Q8ZKPf0b/PzfCvKJTcionQ41T//j9RvjqFgPMOPpaJv8RMD+6TH4d9yXT+ggAKVd mOYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bekf9bIU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s1-20020a170902c64100b001870464adb6si14662474pls.183.2022.11.23.07.06.32; Wed, 23 Nov 2022 07:06:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bekf9bIU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238218AbiKWO6j (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238280AbiKWO6P (ORCPT ); Wed, 23 Nov 2022 09:58:15 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C485DF17 for ; Wed, 23 Nov 2022 06:58:13 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 96CBE61D56 for ; Wed, 23 Nov 2022 14:58:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B993C43470; Wed, 23 Nov 2022 14:58:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215492; bh=riz4FuhsBhjUoUmsJfNCnyk/9pFendJtQjvdaN2u9Vo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bekf9bIUKmdi7KZ1BCWC2+7BGc4FJ7zP0ammSH49Dbv1YdqgwU0/v17wQ+rSJK2iR O83DlXdOD5F3AF0G3smb26BtEpA7DO0ugMfNdtqRNHtpGuHHNbP5qQaF7vP2josDGJ fjJovHi77FoC02mDY2REFyXBN5iI7X+nF3AXron7jmtDpcE1Ah53hfViybKvoebwt0 jiFAQn5whPRyMKEQAxKcoApgGAfxYoGRH5figsv7F0NEv8rY52Zbw5HjgsJz33N71K EXpub/wpeq3pkxAk7LM++pYoQ0j925eI0MyNj3LVveTCZDAOIfZHlBQsyw9nenFKmh q9oHsqW8LY6wA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 5/8] habanalabs: clear non-released encapsulated signals Date: Wed, 23 Nov 2022 16:57:58 +0200 Message-Id: <20221123145801.542029-5-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221123145801.542029-1-ogabbay@kernel.org> References: <20221123145801.542029-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299850356477508?= X-GMAIL-MSGID: =?utf-8?q?1750299850356477508?= From: Tomer Tayar Reserved encapsulated signals which were not released hold the context refcount, leading to a failure when killing the user process on device reset or device fini. Add the release of these left signals in the CS roll-back process. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- .../habanalabs/common/command_submission.c | 46 ++++++++++++---- drivers/misc/habanalabs/common/context.c | 53 +++++++++++-------- drivers/misc/habanalabs/common/habanalabs.h | 3 +- 3 files changed, 71 insertions(+), 31 deletions(-) diff --git a/drivers/misc/habanalabs/common/command_submission.c b/drivers/misc/habanalabs/common/command_submission.c index f1c69c8ed74a..ea0e5101c10e 100644 --- a/drivers/misc/habanalabs/common/command_submission.c +++ b/drivers/misc/habanalabs/common/command_submission.c @@ -742,13 +742,11 @@ static void cs_do_release(struct kref *ref) */ if (hl_cs_cmpl->encaps_signals) kref_put(&hl_cs_cmpl->encaps_sig_hdl->refcount, - hl_encaps_handle_do_release); + hl_encaps_release_handle_and_put_ctx); } - if ((cs->type == CS_TYPE_WAIT || cs->type == CS_TYPE_COLLECTIVE_WAIT) - && cs->encaps_signals) - kref_put(&cs->encaps_sig_hdl->refcount, - hl_encaps_handle_do_release); + if ((cs->type == CS_TYPE_WAIT || cs->type == CS_TYPE_COLLECTIVE_WAIT) && cs->encaps_signals) + kref_put(&cs->encaps_sig_hdl->refcount, hl_encaps_release_handle_and_put_ctx); out: /* Must be called before hl_ctx_put because inside we use ctx to get @@ -1011,6 +1009,34 @@ static void cs_rollback(struct hl_device *hdev, struct hl_cs *cs) hl_complete_job(hdev, job); } +/* + * release_reserved_encaps_signals() - release reserved encapsulated signals. + * @hdev: pointer to habanalabs device structure + * + * Release reserved encapsulated signals which weren't un-reserved, or for which a CS with + * encapsulated signals wasn't submitted and thus weren't released as part of CS roll-back. + * For these signals need also to put the refcount of the H/W SOB which was taken at the + * reservation. + */ +static void release_reserved_encaps_signals(struct hl_device *hdev) +{ + struct hl_ctx *ctx = hl_get_compute_ctx(hdev); + struct hl_cs_encaps_sig_handle *handle; + struct hl_encaps_signals_mgr *mgr; + u32 id; + + if (!ctx) + return; + + mgr = &ctx->sig_mgr; + + idr_for_each_entry(&mgr->handles, handle, id) + if (handle->cs_seq == ULLONG_MAX) + kref_put(&handle->refcount, hl_encaps_release_handle_and_put_sob_ctx); + + hl_ctx_put(ctx); +} + void hl_cs_rollback_all(struct hl_device *hdev, bool skip_wq_flush) { int i; @@ -1039,6 +1065,8 @@ void hl_cs_rollback_all(struct hl_device *hdev, bool skip_wq_flush) } force_complete_multi_cs(hdev); + + release_reserved_encaps_signals(hdev); } static void @@ -2001,6 +2029,8 @@ static int cs_ioctl_reserve_signals(struct hl_fpriv *hpriv, */ handle->pre_sob_val = prop->next_sob_val - handle->count; + handle->cs_seq = ULLONG_MAX; + *signals_count = prop->next_sob_val; hdev->asic_funcs->hw_queues_unlock(hdev); @@ -2350,10 +2380,8 @@ static int cs_ioctl_signal_wait(struct hl_fpriv *hpriv, enum hl_cs_type cs_type, /* We finished with the CS in this function, so put the ref */ cs_put(cs); free_cs_chunk_array: - if (!wait_cs_submitted && cs_encaps_signals && handle_found && - is_wait_cs) - kref_put(&encaps_sig_hdl->refcount, - hl_encaps_handle_do_release); + if (!wait_cs_submitted && cs_encaps_signals && handle_found && is_wait_cs) + kref_put(&encaps_sig_hdl->refcount, hl_encaps_release_handle_and_put_ctx); kfree(cs_chunk_array); out: return rc; diff --git a/drivers/misc/habanalabs/common/context.c b/drivers/misc/habanalabs/common/context.c index ba6675960203..9c8b1b37b510 100644 --- a/drivers/misc/habanalabs/common/context.c +++ b/drivers/misc/habanalabs/common/context.c @@ -9,37 +9,46 @@ #include -void hl_encaps_handle_do_release(struct kref *ref) +static void encaps_handle_do_release(struct hl_cs_encaps_sig_handle *handle, bool put_hw_sob, + bool put_ctx) { - struct hl_cs_encaps_sig_handle *handle = - container_of(ref, struct hl_cs_encaps_sig_handle, refcount); struct hl_encaps_signals_mgr *mgr = &handle->ctx->sig_mgr; + if (put_hw_sob) + hw_sob_put(handle->hw_sob); + spin_lock(&mgr->lock); idr_remove(&mgr->handles, handle->id); spin_unlock(&mgr->lock); - hl_ctx_put(handle->ctx); + if (put_ctx) + hl_ctx_put(handle->ctx); + kfree(handle); } -static void hl_encaps_handle_do_release_sob(struct kref *ref) +void hl_encaps_release_handle_and_put_ctx(struct kref *ref) { struct hl_cs_encaps_sig_handle *handle = - container_of(ref, struct hl_cs_encaps_sig_handle, refcount); - struct hl_encaps_signals_mgr *mgr = &handle->ctx->sig_mgr; + container_of(ref, struct hl_cs_encaps_sig_handle, refcount); - /* if we're here, then there was a signals reservation but cs with - * encaps signals wasn't submitted, so need to put refcount - * to hw_sob taken at the reservation. - */ - hw_sob_put(handle->hw_sob); + encaps_handle_do_release(handle, false, true); +} - spin_lock(&mgr->lock); - idr_remove(&mgr->handles, handle->id); - spin_unlock(&mgr->lock); +static void hl_encaps_release_handle_and_put_sob(struct kref *ref) +{ + struct hl_cs_encaps_sig_handle *handle = + container_of(ref, struct hl_cs_encaps_sig_handle, refcount); - kfree(handle); + encaps_handle_do_release(handle, true, false); +} + +void hl_encaps_release_handle_and_put_sob_ctx(struct kref *ref) +{ + struct hl_cs_encaps_sig_handle *handle = + container_of(ref, struct hl_cs_encaps_sig_handle, refcount); + + encaps_handle_do_release(handle, true, true); } static void hl_encaps_sig_mgr_init(struct hl_encaps_signals_mgr *mgr) @@ -48,8 +57,7 @@ static void hl_encaps_sig_mgr_init(struct hl_encaps_signals_mgr *mgr) idr_init(&mgr->handles); } -static void hl_encaps_sig_mgr_fini(struct hl_device *hdev, - struct hl_encaps_signals_mgr *mgr) +static void hl_encaps_sig_mgr_fini(struct hl_device *hdev, struct hl_encaps_signals_mgr *mgr) { struct hl_cs_encaps_sig_handle *handle; struct idr *idp; @@ -57,11 +65,14 @@ static void hl_encaps_sig_mgr_fini(struct hl_device *hdev, idp = &mgr->handles; + /* The IDR is expected to be empty at this stage, because any left signal should have been + * released as part of CS roll-back. + */ if (!idr_is_empty(idp)) { - dev_warn(hdev->dev, "device released while some encaps signals handles are still allocated\n"); + dev_warn(hdev->dev, + "device released while some encaps signals handles are still allocated\n"); idr_for_each_entry(idp, handle, id) - kref_put(&handle->refcount, - hl_encaps_handle_do_release_sob); + kref_put(&handle->refcount, hl_encaps_release_handle_and_put_sob); } idr_destroy(&mgr->handles); diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h index 0329a0980bb7..e2527d976ee0 100644 --- a/drivers/misc/habanalabs/common/habanalabs.h +++ b/drivers/misc/habanalabs/common/habanalabs.h @@ -3775,7 +3775,8 @@ void hl_sysfs_add_dev_vrm_attr(struct hl_device *hdev, struct attribute_group *d void hw_sob_get(struct hl_hw_sob *hw_sob); void hw_sob_put(struct hl_hw_sob *hw_sob); -void hl_encaps_handle_do_release(struct kref *ref); +void hl_encaps_release_handle_and_put_ctx(struct kref *ref); +void hl_encaps_release_handle_and_put_sob_ctx(struct kref *ref); void hl_hw_queue_encaps_sig_set_sob_info(struct hl_device *hdev, struct hl_cs *cs, struct hl_cs_job *job, struct hl_cs_compl *cs_cmpl); From patchwork Wed Nov 23 14:57:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25039 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2844178wrr; Wed, 23 Nov 2022 07:06:49 -0800 (PST) X-Google-Smtp-Source: AA0mqf4yRPX+nsLT/awSn1LqdIoHB14dkC9qV53fVI0K5gHRKqDblK1eYD6nvKf7YaTkHdRhfT9R X-Received: by 2002:aa7:8250:0:b0:56b:fe1d:5735 with SMTP id e16-20020aa78250000000b0056bfe1d5735mr30080692pfn.24.1669216008828; Wed, 23 Nov 2022 07:06:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216008; cv=none; d=google.com; s=arc-20160816; b=id3okeKic0zQtu+GpdL+nyDpdWpq9jyLRLaHkS653hqZeb35rUdEAG1D/eD0taQeTl fbHCR/SG9oyU5HowlBRsPqdd6NepQX1bTuDg4r5VMePdwmbPDzY3QgETTYCqZZLFA6Ig +2TK45t6dFW+L/Ap6vvGBkl3MFYjvVEbUFE7BpUJQXiP3B9Wgohltim2RvdpPclcOW4S lVbIyB0J1vYIXFfcLeb+LstY4SbbT5FZBbImM8zbBfWGSVAxQAoQwACShnZDN/i7b6s0 0mkM8KvjXZqTcSis9FBhZte0veg7Vuk/NqCVixJP+gh4pAR924sWwwFtMgRYvSM3M48x Xirw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IhVLUGP4gq4qzgafRtOK4N8KWaF5UYhUtfYlNuMtLC0=; b=r2TEXUMho0aYuK0Pp1T1e/SzONfDveTJcF6sFigbzysywPVBI0uTiE41SxPfW+olSW 0LdTi5COQfVLUNJSZr6uBeYXgJYV8OIXyASxs3uQCDWUJyfmqq6Ycqu2BXYDX3QjGpaP Zg6cFXBqf5Il4tpiZG8997xh+A67j9v77DH5y3QZrVd42sh75XhsRAUhZkzEml89p9Ox T9PluGSO2CIdi389/gV38vOfZV0jDCVTxRKstbRkdqPbJrtg+oSIHbTcZA/9S0R/e5uC 9h6b18IU/9sGuKz6iBI5DwPL12KR/Iqx014FjT+3TtAdI+8hVx3aLKemX7NdSVafLebu OB+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IKdmQ11u; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f14-20020a056a00228e00b0054096da12b1si3568209pfe.39.2022.11.23.07.06.28; Wed, 23 Nov 2022 07:06:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IKdmQ11u; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238192AbiKWO6g (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59436 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238284AbiKWO6P (ORCPT ); Wed, 23 Nov 2022 09:58:15 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D5E0E0BF for ; Wed, 23 Nov 2022 06:58:14 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id DC0CB61D58 for ; Wed, 23 Nov 2022 14:58:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 822AAC4347C; Wed, 23 Nov 2022 14:58:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215493; bh=pYSt7jQ9btgaRriP6YpWfQx9rfOfcdkzZZBxDT0fl+8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IKdmQ11uqU2SqpICA9u0lRjJzJXyWhE/6aZjOIsn6cn2BM4eky/a56pN5+b8pjgr/ 7pwCUa3CzvDxh3NwvPsW6NAQp83LSsQUUUadXXv9CJB8o91EABjVOdfWYvsBGAYFeD UzbifdkylVk5upfIY3iBEZOZ6+P5iN+qekqwbAYhtkT9zq2+yVtjObtO4QpYWHO1CB QWHqh0QZyD6jmxkfRhgQ6JhC6PBvgiNQIESPp+QdSNI0OdAECu8Mf4QqykTd8+Uawo kymOSPvk/WZUt7ZAM7nREP3mkjky0cFHFy8x62Bemsq5z3Tm/O1Yx5Kpu+1GeODO7j E4kPdEDcUugNg== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 6/8] habanalabs: make print of engines idle mask more readable Date: Wed, 23 Nov 2022 16:57:59 +0200 Message-Id: <20221123145801.542029-6-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221123145801.542029-1-ogabbay@kernel.org> References: <20221123145801.542029-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299845981966629?= X-GMAIL-MSGID: =?utf-8?q?1750299845981966629?= From: Tomer Tayar The engines idle mask was increased to be an array of 4 u64 entries. To make the print of this mask more readable, remove the "0x" prefix, and zero-pad each u64 to 16 bytes if either it isn't zero or if any of the higher-order u64's is not zero. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 27 +++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index 926f230def56..87ab329e65d4 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -386,6 +386,23 @@ bool hl_ctrl_device_operational(struct hl_device *hdev, } } +static void print_idle_status_mask(struct hl_device *hdev, const char *message, + u64 idle_mask[HL_BUSY_ENGINES_MASK_EXT_SIZE]) +{ + u32 pad_width[HL_BUSY_ENGINES_MASK_EXT_SIZE] = {}; + + BUILD_BUG_ON(HL_BUSY_ENGINES_MASK_EXT_SIZE != 4); + + pad_width[3] = idle_mask[3] ? 16 : 0; + pad_width[2] = idle_mask[2] || pad_width[3] ? 16 : 0; + pad_width[1] = idle_mask[1] || pad_width[2] ? 16 : 0; + pad_width[0] = idle_mask[0] || pad_width[1] ? 16 : 0; + + dev_err(hdev->dev, "%s (mask %0*llx_%0*llx_%0*llx_%0*llx)\n", + message, pad_width[3], idle_mask[3], pad_width[2], idle_mask[2], + pad_width[1], idle_mask[1], pad_width[0], idle_mask[0]); +} + static void hpriv_release(struct kref *ref) { u64 idle_mask[HL_BUSY_ENGINES_MASK_EXT_SIZE] = {0}; @@ -416,9 +433,8 @@ static void hpriv_release(struct kref *ref) device_is_idle = hdev->asic_funcs->is_device_idle(hdev, idle_mask, HL_BUSY_ENGINES_MASK_EXT_SIZE, NULL); if (!device_is_idle) { - dev_err(hdev->dev, - "device not idle after user context is closed (0x%llx_%llx_%llx_%llx)\n", - idle_mask[3], idle_mask[2], idle_mask[1], idle_mask[0]); + print_idle_status_mask(hdev, "device is not idle after user context is closed", + idle_mask); reset_device = true; } @@ -1673,9 +1689,8 @@ int hl_device_reset(struct hl_device *hdev, u32 flags) /* If device is not idle fail the reset process */ if (!hdev->asic_funcs->is_device_idle(hdev, idle_mask, - HL_BUSY_ENGINES_MASK_EXT_SIZE, NULL)) { - dev_err(hdev->dev, "device is not idle (mask 0x%llx_%llx_%llx_%llx) after reset\n", - idle_mask[3], idle_mask[2], idle_mask[1], idle_mask[0]); + HL_BUSY_ENGINES_MASK_EXT_SIZE, NULL)) { + print_idle_status_mask(hdev, "device is not idle after reset", idle_mask); rc = -EIO; goto out_err; } From patchwork Wed Nov 23 14:58:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25043 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2845648wrr; Wed, 23 Nov 2022 07:08:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf62pGqW9TVm1AWl84xKO8LAKFD4jOecZDA2ohDlvZZKvYj66i65OgVny2U1mrYhL5kj2ki8 X-Received: by 2002:a62:ed03:0:b0:558:99cc:8b40 with SMTP id u3-20020a62ed03000000b0055899cc8b40mr9289843pfh.25.1669216136455; Wed, 23 Nov 2022 07:08:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216136; cv=none; d=google.com; s=arc-20160816; b=Icu3jlLkiAgPszA2Eem3rSCOJGbFB1qRFTfnGJuOBEdvbVbXlep3QVl6jyP0zoi7RU 8/4ANa92viRsdAHaEwZWPPMweLgSTjBJxKIntQZQOxehXpOjVNnkpI/euEbQtT5HtQvM 4t7KeeMQa3eqtJqjt2i0PAZFgxxurA4GGetBaKCr/kK5YyeZr0AnPA/n2ktiDxj9uLvD VtYLFAvo743JpIMPFJDCLC4icULLmFTOiErcgzcsw3bVzW5zMqvzNRyrLGkN5f+QUX/J Urv+hq+zRTudA01UEVv0kB/sio1KdxGl+X6VK7jeUEnqC+3wDjGLb50FsISkmlng2xtX kGPA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UXuUClzk1zRmiuoAX8GP9vLx+M+pkt9Mm7mwk1fdx8Q=; b=QB2ne5ljnqsd/jsbIcZHPnl5CzyrJWhVB5n0deYA7KUk/y/mTKi7aa4jrgsp47r1MQ 3+weOQ1YBBi+18Ci3KXLzTpK1lkbvO6LFkVY02lWLgi50X0yW/1wtyccTxL/SfJaepAM 4XdfpvGUE2eGU259JFzgaGFD9R9KRm5ZeOlrZ+rQPTqKu6z9WmILBGdnyiGLdrM8KvgC nrbWHzLja9kyofW3EjSIl4fyYacsSMOb0d/NzyE5RqI1y8ssWuprouBU28Nk8zqdFwSz sE+yINNNIR0ndY6rm8yAhnYJ9zLLd0YaFj+6jo/QUzqhChITU/gac2Hle/5Ht6JA1Xt6 RfIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=W9+eXjDS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b15-20020a170902e94f00b00186a2274386si17381107pll.469.2022.11.23.07.08.39; Wed, 23 Nov 2022 07:08:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=W9+eXjDS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237876AbiKWO6p (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59222 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238395AbiKWO6Q (ORCPT ); Wed, 23 Nov 2022 09:58:16 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9245E3C6F4 for ; Wed, 23 Nov 2022 06:58:15 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 29CD461D53 for ; Wed, 23 Nov 2022 14:58:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8C63C433D6; Wed, 23 Nov 2022 14:58:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215494; bh=H4E+ornN4yLvnr16yeufh7PPylH/iBSEDCkhqnKmsoc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W9+eXjDSC1R4nNd9Jwt7t686RyYH8lusBKyNYUEynnIAYBRHXwe7tUjzf9oVBF/bh SwsOwvlRxMjMk/zVHL7E2vspGvflxzlrjv39SeMzwj9++c7AAauNlg/sWdjORASZok 48Fhn6J3OKtyCsOcXw0xg4sEzWYBECXwG2Aa7sl8Dxd1iDnULk2gJaZ5oCnIYeR1i5 il0yPsso+LMMXkh2RJMHJHGOWlsBICoUnQgZQVjK7sxfmQvqrFW3rvXRl34sm9hRWe GYcBU6SpC+94s5T6+DNzuyE78f74Poj6dWzQ+K5Zl5EoNsijatlOBCH/n2WLAPCzHQ 1Q1vquHlsWpPg== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Ofir Bitton Subject: [PATCH 7/8] habanalabs: fail driver load if EEPROM errors detected Date: Wed, 23 Nov 2022 16:58:00 +0200 Message-Id: <20221123145801.542029-7-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221123145801.542029-1-ogabbay@kernel.org> References: <20221123145801.542029-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299979245455984?= X-GMAIL-MSGID: =?utf-8?q?1750299979245455984?= From: Ofir Bitton In case EEPROM is not burned, firmware sets default EEPROM values. As this is not valid in production, driver should fail load upon any EEPROM error reported by firmware. Signed-off-by: Ofir Bitton Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/firmware_if.c | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/misc/habanalabs/common/firmware_if.c b/drivers/misc/habanalabs/common/firmware_if.c index cf8147e43833..228b92278e48 100644 --- a/drivers/misc/habanalabs/common/firmware_if.c +++ b/drivers/misc/habanalabs/common/firmware_if.c @@ -617,16 +617,12 @@ static bool fw_report_boot_dev0(struct hl_device *hdev, u32 err_val, if (sts_val & CPU_BOOT_DEV_STS0_ENABLED) dev_dbg(hdev->dev, "Device status0 %#x\n", sts_val); - /* All warnings should go here in order not to reach the unknown error validation */ if (err_val & CPU_BOOT_ERR0_EEPROM_FAIL) { - dev_warn(hdev->dev, - "Device boot warning - EEPROM failure detected, default settings applied\n"); - /* This is a warning so we don't want it to disable the - * device - */ - err_val &= ~CPU_BOOT_ERR0_EEPROM_FAIL; + dev_err(hdev->dev, "Device boot error - EEPROM failure detected\n"); + err_exists = true; } + /* All warnings should go here in order not to reach the unknown error validation */ if (err_val & CPU_BOOT_ERR0_DRAM_SKIPPED) { dev_warn(hdev->dev, "Device boot warning - Skipped DRAM initialization\n"); @@ -2532,7 +2528,7 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev, struct fw_load_mgr *fw_loader) { struct cpu_dyn_regs *dyn_regs; - int rc; + int rc, fw_error_rc; dev_info(hdev->dev, "Loading %sfirmware to device, may take some time...\n", @@ -2632,14 +2628,17 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev, hl_fw_dynamic_update_linux_interrupt_if(hdev); - return 0; - protocol_err: - if (fw_loader->dynamic_loader.fw_desc_valid) - fw_read_errors(hdev, le32_to_cpu(dyn_regs->cpu_boot_err0), + if (fw_loader->dynamic_loader.fw_desc_valid) { + fw_error_rc = fw_read_errors(hdev, le32_to_cpu(dyn_regs->cpu_boot_err0), le32_to_cpu(dyn_regs->cpu_boot_err1), le32_to_cpu(dyn_regs->cpu_boot_dev_sts0), le32_to_cpu(dyn_regs->cpu_boot_dev_sts1)); + + if (fw_error_rc) + return fw_error_rc; + } + return rc; } From patchwork Wed Nov 23 14:58:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 25041 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2844288wrr; Wed, 23 Nov 2022 07:06:57 -0800 (PST) X-Google-Smtp-Source: AA0mqf6feK3vA2BQ+HTWu9I88QgUtovmw6dzbQC1ZEcyKSKUf+E8HrFHslKYVdHNyh/YDehUK5c6 X-Received: by 2002:a63:2001:0:b0:477:b0d0:bbee with SMTP id g1-20020a632001000000b00477b0d0bbeemr5545966pgg.51.1669216016683; Wed, 23 Nov 2022 07:06:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669216016; cv=none; d=google.com; s=arc-20160816; b=nGxqxpYhmj58U2R0isiUapDr+foPB3hZ9zkIivkPeLoWNkdfgXxgtiFOYOekCqEJ9t Cjr5VN2P/ZgunPt1P4LYPuTrdZuI3bOcP3zHfIN00jhAfOLcCFV+bLnjxWop/hM+o3Gt pBfBIb0MJBcZ5r6jxwhxZcwspnF1x451Ie8Iqfnmy/kXuFf92kD+lVVzqFWq3LtxRBZ4 oKAypMMLBMtD1oLRl/+oYJqT2llmK5oVIQVKjcgqGb44Lq+QFFjH4E56sG0blwplZ356 +a5fwn1rvUxQ/Gj4d9CPaQP98QhSnonmmKt9ARLd8bFSmNxSi/frmqmW0rTFKlEXe8J0 1mag== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8RL+avtpHq3y7hguwemcuy7e+Mx+3EZvhJBWWILy1ZM=; b=CwaFr/1/MV2ZGT/yq8kCiR3zW4V9/2IRWwtdsLIz28CfM5jmqTtHu7QxNE2r0Acyvy VnlDiysiE39avIndkWpxGHjYtClENBqcDpyp1OSeF4As2PA0lfJwcc23XxxK0i2SKvD/ AlYWPhbrwlBw/t+CxlVSgBeTzO0EJuQ70MABOoVjVpB/dz1Lt/ZTnItP99S58ES63BbH j16WTeLqgkS/+GNw4KEt3A7SWFKPuyLhdCC4emxm0r9Ms/h+s4DZilmmtTpW+BNSkQZB mX02RYMPPnB1xIg/b2+kjokXZ/uXTsEoxG9aXZbXDKc8H+YxK+6GNt8nsAoUSKV9Mqmo NGzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="fbVAF/Eu"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z3-20020a1709028f8300b0017669d005casi14855853plo.595.2022.11.23.07.06.37; Wed, 23 Nov 2022 07:06:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="fbVAF/Eu"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238194AbiKWO6t (ORCPT + 99 others); Wed, 23 Nov 2022 09:58:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59640 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238239AbiKWO6W (ORCPT ); Wed, 23 Nov 2022 09:58:22 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 619D9634E for ; Wed, 23 Nov 2022 06:58:18 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 1EBADB8201C for ; Wed, 23 Nov 2022 14:58:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19DB3C433D7; Wed, 23 Nov 2022 14:58:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669215495; bh=5jxaYMiu4ozkhB4fDUDBApe2T/jh7jSelB/YFfvZn64=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fbVAF/EuyJTb5kE0t2LUt+2GaWCNKNXdwAEOR0juma/lTnErFo6v9Yigbr5c/7b+a A9TLqyM3iaphnG0i3IsHxqSGwZ6t1It570pFioQ9rRov6jwvN4tLlZ4SoCckuotrnB i8igL0xbEDf0RRFE2fo5aBWTPwtZdegmvCjflPNpBfnGNpkp9bnLb2G19cOCYpQ57t g78eKwZn0/DUHkVVKDU4UQFwe6NUz3hyDf5NOVnvhHT5KmvzL3vYUzJwqAYUfyq7Rr KaBHU+L8OZIUZ/yduv4y2s+A48fMBMMUtMkffZIILW3s9Kl52HEX3FH3DsMjt8EVHO dsJEj4io0RnhA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Ohad Sharabi Subject: [PATCH 8/8] habanalabs: fix VA range calculation Date: Wed, 23 Nov 2022 16:58:01 +0200 Message-Id: <20221123145801.542029-8-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221123145801.542029-1-ogabbay@kernel.org> References: <20221123145801.542029-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750299853929843204?= X-GMAIL-MSGID: =?utf-8?q?1750299853929843204?= From: Ohad Sharabi Current implementation is fixing the page size to PAGE_SIZE whereas the input page size may be different. Signed-off-by: Ohad Sharabi Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/memory.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/misc/habanalabs/common/memory.c b/drivers/misc/habanalabs/common/memory.c index 541e1b6a2176..7c5c18be294a 100644 --- a/drivers/misc/habanalabs/common/memory.c +++ b/drivers/misc/habanalabs/common/memory.c @@ -2508,24 +2508,20 @@ static int va_range_init(struct hl_device *hdev, struct hl_va_range **va_ranges, /* * PAGE_SIZE alignment - * it is the callers responsibility to align the addresses if the + * it is the caller's responsibility to align the addresses if the * page size is not a power of 2 */ if (is_power_of_2(page_size)) { - if (start & (PAGE_SIZE - 1)) { - start &= PAGE_MASK; - start += PAGE_SIZE; - } + start = round_up(start, page_size); /* * The end of the range is inclusive, hence we need to align it * to the end of the last full page in the range. For example if * end = 0x3ff5 with page size 0x1000, we need to align it to - * 0x2fff. The remainig 0xff5 bytes do not form a full page. + * 0x2fff. The remaining 0xff5 bytes do not form a full page. */ - if ((end + 1) & (PAGE_SIZE - 1)) - end = ((end + 1) & PAGE_MASK) - 1; + end = round_down(end + 1, page_size) - 1; } if (start >= end) {