From patchwork Thu Oct 27 09:09:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 11675 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119306wru; Thu, 27 Oct 2022 02:11:47 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6uati2PS33fExn7WSOpluODLS8O131o/zXTl/SVcAJD6mq8/EbE1QhioOt0Jp/Geo+IKU9 X-Received: by 2002:a17:907:3e9c:b0:78d:ce8b:8548 with SMTP id hs28-20020a1709073e9c00b0078dce8b8548mr42225969ejc.427.1666861907614; Thu, 27 Oct 2022 02:11:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861907; cv=none; d=google.com; s=arc-20160816; b=ZkP1Gt7UozUpKQwDZQTdTWmEw8uGJcMGh0I0T392oqqQ5XN4b86H7W71Ed32L5gMXl M0HTqLwO+y8EghSuO9XRXE91kNmzHBqMSxirQBnMw1H7EsLLOH/nPvcHH3SFD+MdLUhb zeFvK2T0nzHoT1pgNNlJL5uJ3hdeVDBMm3by4kiS8K8ilsSnipPHjrCq8P60qzOFAp20 laeeV3wsiVJFrQGpEGbdBafFTU7j1Sa4k2NAc6mQnBg0FMG5wacW333bAaAQsLCoM/SE FeiybIuv+zvj6gkLLYu1/EMcd8N4K6972FbU+Yx2RHgNW/gY5NvxE12hPqig9+H1a4iV QRoA== 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=a4BGeA0q9NwwpehXxID2qFM08oJWEDqdZVuglhipGbA=; b=tWVBNC3mplfM0obAtxURWuN0ajiu1BoaQkA8x6dwy4U/33CXVGPNmbiqOkigdn0rbV 2Ln3wM7RGzp8l9DiqUJhxC1gVjCm5TxtLFgYs5g8yRuycpcZs2S7GJPaGyabb4tGD3G/ rLpXeIiWh4yMHZtX83KQ1t94aTK+5YF6EUU2tbJd8k2StvvWC6iT2xiLWAOXkg8zS/eL iG9y0PApUp4Iw3nwhKXP4OdKNyWP6IXPDkp9On4ag/E5LEvyEGwNrXl+HAPBWkYGnexr irWzViC7iut0GO5IyPqBP75GLUpS0AuZn6ni+WArxCEQ+zu0uB4vEerNTfJx9BKOf2AU s4fg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=pfoQnXnM; 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 dr4-20020a170907720400b0073de493b83esi1165277ejc.147.2022.10.27.02.11.23; Thu, 27 Oct 2022 02:11:47 -0700 (PDT) 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=pfoQnXnM; 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 S235247AbiJ0JKh (ORCPT + 99 others); Thu, 27 Oct 2022 05:10:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235228AbiJ0JKW (ORCPT ); Thu, 27 Oct 2022 05:10:22 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8C97186E3 for ; Thu, 27 Oct 2022 02:10:16 -0700 (PDT) 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 146B6B82558 for ; Thu, 27 Oct 2022 09:10:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DD825C433D7; Thu, 27 Oct 2022 09:10:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861813; bh=tSX9KWeRRKgdyRd+ltEPm7bb1mNdvSggLOMwkpA8MaI=; h=From:To:Cc:Subject:Date:From; b=pfoQnXnMwbTuRISxVvze0SCxnIibPXssCt10jXVWR1Gxu8wGGKAVElFplEwaCZgIu UhYQ4pGVVAZvof61rFQJckSIs5txWQRmoSIcad39m8sZrnyhW6fU/IFfy0aNYTb45v uAjOuIRxrPO8ci6TgWoZL89F/hElVigPBhMhWX28mUSXGPndhS9lDcXh+LCNmkTaO9 hwXAHaAQMQINIaeozy+C3aUytAIS8BdEhWWVEh/e3+4GpEPoOJNOSxcxWWif22gWsY X1prZekhJZkXbIGtd2tIxVUTKQ7VuBQauh6oOQPnubUf1AdGkWpBa77GUxwD7k2r85 rKq7Mkwyq4fpA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Ohad Sharabi Subject: [PATCH 01/15] habanalabs: fix using freed pointer Date: Thu, 27 Oct 2022 12:09:53 +0300 Message-Id: <20221027091007.664797-1-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831391698059754?= X-GMAIL-MSGID: =?utf-8?q?1747831391698059754?= From: Ohad Sharabi The code uses the pointer for trace purpose (without actually dereference it) but still get static analysis warning. This patch eliminate the warning. Signed-off-by: Ohad Sharabi Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index 9b54d1df5302..dd01be5c4ba3 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -135,6 +135,9 @@ static void hl_asic_dma_free_common(struct hl_device *hdev, size_t size, void *c dma_addr_t dma_handle, enum dma_alloc_type alloc_type, const char *caller) { + /* this is needed to avoid warning on using freed pointer */ + u64 store_cpu_addr = (u64) (uintptr_t) cpu_addr; + switch (alloc_type) { case DMA_ALLOC_COHERENT: hdev->asic_funcs->asic_dma_free_coherent(hdev, size, cpu_addr, dma_handle); @@ -147,7 +150,7 @@ static void hl_asic_dma_free_common(struct hl_device *hdev, size_t size, void *c break; } - trace_habanalabs_dma_free(hdev->dev, (u64) (uintptr_t) cpu_addr, dma_handle, size, caller); + trace_habanalabs_dma_free(hdev->dev, store_cpu_addr, dma_handle, size, caller); } void *hl_asic_dma_alloc_coherent_caller(struct hl_device *hdev, size_t size, dma_addr_t *dma_handle, From patchwork Thu Oct 27 09:09: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: 11679 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119435wru; Thu, 27 Oct 2022 02:12:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7HV5ePwdGpZpqd5PYVv0SELT2SX9H1xwG3trfii9nDcPy0gifGUVGSUnLOoZQTKOGRo3YS X-Received: by 2002:a05:6402:1d55:b0:45f:c87f:c753 with SMTP id dz21-20020a0564021d5500b0045fc87fc753mr37033632edb.32.1666861921878; Thu, 27 Oct 2022 02:12:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861921; cv=none; d=google.com; s=arc-20160816; b=egARyuSykuMSNHBNfBFieehWZ1bHv5NjbiK5azmY2XTnngZvorGTD1EyMtUrnynM2L PCbAP1sloFQG341G0IhfAimkTfhcgwl/IMQsFs2MWGTSx+5wtsJMLcH0Havrlrgkf6FI egG5sXhyipBj2vcbZGX/Eyl+dnc+9GAksuvZvtEcOELgJyW1DJOeC5XspOkERoorSIg6 F3TnLaZktiW+Om0p1kPkET9yNqgCAjxkj97VsEsWuJk2RUK98mfqNsvg9i9Gp0iLsaqJ GFjc4d1BF0zKlKNjTaF2MMjAg8q6adjGwTcFudo1XWl3uyz72lbYLk/vu6XBb+Ur1fiD LDQg== 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=sqmB4fZrEuUxSKJ+k14myD8Hhq/7iWhal9avPZ7ofoo=; b=AwAhEvLtJEHG7VQyyqZYK6WL72HXv4dkeg4+uVTLc3ONxz9SZv+2u4d4MwFpAgk5am 9i9Qh9+8ceEzq/NwbWPct2q+AwDqZqGXHFC0vnl6D0/wdfoiWSv4hJdpkCLyR/o1gmos qbP7omvJWQRguyW1UU37pqOiRNXQl10DOSxClrw8fh+7uSCCOIsiG/4XLx6CengWaQO9 Xl0WsaDuzRpkzFaTQJuX423UM3dMXt7Y7UlonaoV0z8nNBhzLFPjWzKx/i1KnVrQ042V EChnPfv/qiFD9miHScApKldfsQD3/Qolqser2zwHCDQrh4HdmDPmvQy+/UxbGsbbld+w GLzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=JqudOp8G; 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 s21-20020a056402521500b00461d726439asi1211394edd.538.2022.10.27.02.11.37; Thu, 27 Oct 2022 02:12:01 -0700 (PDT) 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=JqudOp8G; 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 S235325AbiJ0JKl (ORCPT + 99 others); Thu, 27 Oct 2022 05:10:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40730 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235231AbiJ0JKW (ORCPT ); Thu, 27 Oct 2022 05:10:22 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8D511D326 for ; Thu, 27 Oct 2022 02:10:16 -0700 (PDT) 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 AC4F262240 for ; Thu, 27 Oct 2022 09:10:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E3DEC433D6; Thu, 27 Oct 2022 09:10:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861815; bh=v5nxiY4I8yxea4BPZ1V36MIq3Ss/7dC0lP06N7ysZtE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JqudOp8GfKFqE/ZT9UeMZz8CN5Us/af+7iNJbRCpDOOZaqoIeV/cPD+RGpYe5IhG+ KVu4PxbHdB/MhQ9TGXfgmL1WAnbkufBAwIBscmnBmH99yQ9XbD8oksF4pkD8xECn6b 2rfK/TDE3VVRdvgD7DjGYwl8jkZoVoqdv7qwlRBjY/s6dcEUy205uQAkrBzt9aFjet CC6c60I5Afk2F4MXjqAb5wOhyrP4v9uSmxUvGZm638JeGXla4zSJ+ahJFivkQiU9LN DEQOBBlgT/jS2vleIteDaJFtPm0M/8F/ix6PCMvJ2Cj/7ZRrqKKxrVrSGT/VgTm9FN jQTXmC+Fc96VQ== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Ohad Sharabi Subject: [PATCH 02/15] habanalabs: allow setting HBM BAR to other regions Date: Thu, 27 Oct 2022 12:09:54 +0300 Message-Id: <20221027091007.664797-2-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831406656900711?= X-GMAIL-MSGID: =?utf-8?q?1747831406656900711?= From: Ohad Sharabi Up until now the use-case in the driver was that the HBM is accessed using the HBM BAR, yet the BAR sometimes cannot cover the whole HBM and so we needed to set the BAR to other HBM offset. Now we are facing the need to access other PCI memory regions that can be covered by the HBM BAR. To answer that we are allowing the caller to determine if the HBM BAR need to be set or not regardless of the PCI memory region. Signed-off-by: Ohad Sharabi Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 29 ++++++++++++--------- drivers/misc/habanalabs/common/habanalabs.h | 2 ++ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index dd01be5c4ba3..0026fe42b3d2 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -32,6 +32,7 @@ enum dma_alloc_type { * @hdev: pointer to habanalabs device structure. * @addr: the address the caller wants to access. * @region: the PCI region. + * @new_bar_region_base: the new BAR region base address. * * @return: the old BAR base address on success, U64_MAX for failure. * The caller should set it back to the old address after use. @@ -41,7 +42,8 @@ enum dma_alloc_type { * This function can be called also if the bar doesn't need to be set, * in that case it just won't change the base. */ -static u64 hl_set_dram_bar(struct hl_device *hdev, u64 addr, struct pci_mem_region *region) +static u64 hl_set_dram_bar(struct hl_device *hdev, u64 addr, struct pci_mem_region *region, + u64 *new_bar_region_base) { struct asic_fixed_properties *prop = &hdev->asic_prop; u64 bar_base_addr, old_base; @@ -55,27 +57,28 @@ static u64 hl_set_dram_bar(struct hl_device *hdev, u64 addr, struct pci_mem_regi old_base = hdev->asic_funcs->set_dram_bar_base(hdev, bar_base_addr); /* in case of success we need to update the new BAR base */ - if (old_base != U64_MAX) - region->region_base = bar_base_addr; + if ((old_base != U64_MAX) && new_bar_region_base) + *new_bar_region_base = bar_base_addr; return old_base; } -static int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val, - enum debugfs_access_type acc_type, enum pci_region region_type) +int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val, + enum debugfs_access_type acc_type, enum pci_region region_type, bool set_dram_bar) { struct pci_mem_region *region = &hdev->pci_mem_region[region_type]; + u64 old_base = 0, rc, new_bar_region_base = 0; void __iomem *acc_addr; - u64 old_base = 0, rc; - if (region_type == PCI_REGION_DRAM) { - old_base = hl_set_dram_bar(hdev, addr, region); + if (set_dram_bar) { + old_base = hl_set_dram_bar(hdev, addr, region, &new_bar_region_base); if (old_base == U64_MAX) return -EIO; } - acc_addr = hdev->pcie_bar[region->bar_id] + addr - region->region_base + - region->offset_in_bar; + acc_addr = hdev->pcie_bar[region->bar_id] + region->offset_in_bar + + (addr - new_bar_region_base); + switch (acc_type) { case DEBUGFS_READ8: *val = readb(acc_addr); @@ -97,8 +100,8 @@ static int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val break; } - if (region_type == PCI_REGION_DRAM) { - rc = hl_set_dram_bar(hdev, old_base, region); + if (set_dram_bar) { + rc = hl_set_dram_bar(hdev, old_base, region, NULL); if (rc == U64_MAX) return -EIO; } @@ -283,7 +286,7 @@ int hl_access_dev_mem(struct hl_device *hdev, enum pci_region region_type, case PCI_REGION_SRAM: case PCI_REGION_DRAM: return hl_access_sram_dram_region(hdev, addr, val, acc_type, - region_type); + region_type, (region_type == PCI_REGION_DRAM)); default: return -EFAULT; } diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h index 4913197c433e..c8347eac09ed 100644 --- a/drivers/misc/habanalabs/common/habanalabs.h +++ b/drivers/misc/habanalabs/common/habanalabs.h @@ -3486,6 +3486,8 @@ void hl_asic_dma_pool_free_caller(struct hl_device *hdev, void *vaddr, dma_addr_ int hl_dma_map_sgtable(struct hl_device *hdev, struct sg_table *sgt, enum dma_data_direction dir); void hl_dma_unmap_sgtable(struct hl_device *hdev, struct sg_table *sgt, enum dma_data_direction dir); +int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val, + enum debugfs_access_type acc_type, enum pci_region region_type, bool set_dram_bar); int hl_access_cfg_region(struct hl_device *hdev, u64 addr, u64 *val, enum debugfs_access_type acc_type); int hl_access_dev_mem(struct hl_device *hdev, enum pci_region region_type, From patchwork Thu Oct 27 09:09: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: 11677 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119338wru; Thu, 27 Oct 2022 02:11:51 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4wgMzTstZNNuRMJSxiOQ0EqvylHxPfaWtEtA9hi7qIRUuZ6sN8fr+8N8M44t2EwnnzA9w4 X-Received: by 2002:a17:906:cc10:b0:78d:f741:9d87 with SMTP id ml16-20020a170906cc1000b0078df7419d87mr41232687ejb.295.1666861900406; Thu, 27 Oct 2022 02:11:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861900; cv=none; d=google.com; s=arc-20160816; b=GYpGx9aJINcXodrLlcKbIptzlnudBe9mjbucFwKeGClNMIAQyGgTogBsoes+TcFA4t ciR43+rN/PbWJtAW5/kLkcll/LKQ88jQnKU8mvWMgdD2obt5QbHy+CieRaDrQdPNfV2u W5YQ3xKPj2YxT5hYv+ee6Ve85R0rqlo7UhfpCxd0NVEacTpv8geVQOWr7HdiNQSWQdAP XpOKRQoDKg+9VdLTDT3FIGC/DATKTLseYNLTxBkyzBqpUiPOiGdO7aqxLnbqmaYJ7PPD eqpk2PgGyz7rykJBCBOXT28bAMGogCeMS1qC1KzqdNjUkl0v0dQ/+BtXi74NMzPoP9KG uouA== 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=Q06as9PStYabD6aHzGtOmrgyyglcvNQH/oWgSs7w0l4=; b=E9i46Sl0qW73De/f0dto388Nr+Ar9d0hoPBd9SzOALRFj9uPrPm+57UtCcARwvbYNu xXNCh8jumTD478bn2CswqRm07jVcngq2k4rviw6ARMEimUDsvlKsU8vc01Ku5GYElWyz cP+13upWV2EEJ/LUOqhOIoGNAjHMI7eSVZTo/9T/YVmtjwja1BZxELjwy57Dgd9Owqt+ 3XRsVf+lHmDQD70uTkY6AYQejllnvdXOHtCL/Ix7e0DtosuAeByJffGcKO/m31kG15uC TbZ4h4h2Ltt5CQxbY3xKNaiEGKO3O8AFvsaTksqsCjhU6JBx2uxioEUEACJEXDu44wqt wdYA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="UbQqNb/K"; 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 m14-20020a056402050e00b0043d00293d23si900538edv.391.2022.10.27.02.11.15; Thu, 27 Oct 2022 02:11:40 -0700 (PDT) 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="UbQqNb/K"; 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 S235329AbiJ0JKt (ORCPT + 99 others); Thu, 27 Oct 2022 05:10:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40754 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235235AbiJ0JKW (ORCPT ); Thu, 27 Oct 2022 05:10:22 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 663973122C for ; Thu, 27 Oct 2022 02:10:17 -0700 (PDT) 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 02F5D62242 for ; Thu, 27 Oct 2022 09:10:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 91B87C433C1; Thu, 27 Oct 2022 09:10:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861816; bh=I8Rl+bjV8YixLuRld88Rl1wxpGnPcrLbZqrTdMjNFjc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UbQqNb/KeB7tyMEctzWhI4saze611TfSwvXJeoL6MObjJIlEr8EqxFkmcVpAmnc5P t2ucCHsQVjQng7LNj4uUTyaJCoTkvDHN2mOYHv4sfVtVGnwS91idn32fuD7iwM5woY 0Tu3KUZ7kJF/94ImcFg/PMM9p0LcXxlxIW4a5cQxTU3e9htSNQyFzgtLNS5lvTbPQE Yf5oubeP4hvCW3FT7VO1DSaG+s74m57rLbBjrYc6JpQgm+2AubtYevHXaDVjfPo5Oz Kn7AsC89yzSv0UjqMmausiUy8CaDM1+U0aH0cz0c+3psWpV/+UH2PgYWTaX3z+dStc C8ntvr08bcMLQ== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 03/15] habanalabs/gaudi2: remove configurations to access the MSI-X doorbell Date: Thu, 27 Oct 2022 12:09:55 +0300 Message-Id: <20221027091007.664797-3-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831384274310788?= X-GMAIL-MSGID: =?utf-8?q?1747831384274310788?= From: Tomer Tayar The virtual MSI-X doorbell is supported now in F/W, so all configurations to access the PCIE_DBI MSI-X doorbell can be removed. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/gaudi2/gaudi2.c | 34 +++---------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/drivers/misc/habanalabs/gaudi2/gaudi2.c b/drivers/misc/habanalabs/gaudi2/gaudi2.c index a4e3586f1a12..9208f69dd7f8 100644 --- a/drivers/misc/habanalabs/gaudi2/gaudi2.c +++ b/drivers/misc/habanalabs/gaudi2/gaudi2.c @@ -4473,23 +4473,9 @@ static void gaudi2_init_sm(struct hl_device *hdev) reg_val = FIELD_PREP(DCORE0_SYNC_MNGR_OBJS_MON_CONFIG_CQ_EN_MASK, 1); WREG32(mmDCORE0_SYNC_MNGR_OBJS_MON_CONFIG_0 + (4 * i), reg_val); - /* Init CQ0 DB */ - /* Configure the monitor to trigger MSI-X interrupt */ - /* TODO: - * Remove the if statement when virtual MSI-X doorbell is supported in simulator (SW-93022) - * and in F/W (SW-93024). - */ - if (!hdev->pdev || hdev->asic_prop.fw_security_enabled) { - u64 msix_db_reg = CFG_BASE + mmPCIE_DBI_MSIX_DOORBELL_OFF; - - WREG32(mmDCORE0_SYNC_MNGR_GLBL_LBW_ADDR_L_0, lower_32_bits(msix_db_reg)); - WREG32(mmDCORE0_SYNC_MNGR_GLBL_LBW_ADDR_H_0, upper_32_bits(msix_db_reg)); - } else { - WREG32(mmDCORE0_SYNC_MNGR_GLBL_LBW_ADDR_L_0, - lower_32_bits(gaudi2->virt_msix_db_dma_addr)); - WREG32(mmDCORE0_SYNC_MNGR_GLBL_LBW_ADDR_H_0, - upper_32_bits(gaudi2->virt_msix_db_dma_addr)); - } + /* Init CQ0 DB - configure the monitor to trigger MSI-X interrupt */ + WREG32(mmDCORE0_SYNC_MNGR_GLBL_LBW_ADDR_L_0, lower_32_bits(gaudi2->virt_msix_db_dma_addr)); + WREG32(mmDCORE0_SYNC_MNGR_GLBL_LBW_ADDR_H_0, upper_32_bits(gaudi2->virt_msix_db_dma_addr)); WREG32(mmDCORE0_SYNC_MNGR_GLBL_LBW_DATA_0, GAUDI2_IRQ_NUM_COMPLETION); for (i = 0 ; i < GAUDI2_RESERVED_CQ_NUMBER ; i++) { @@ -4657,20 +4643,6 @@ static void gaudi2_init_vdec_brdg_ctrl(struct hl_device *hdev, u64 base_addr, u3 { u32 sob_id; - /* TODO: - * Remove when virtual MSI-X doorbell is supported in simulator (SW-93022) and in F/W - * (SW-93024). - */ - if (!hdev->pdev || hdev->asic_prop.fw_security_enabled) { - u32 interrupt_id = GAUDI2_IRQ_NUM_DCORE0_DEC0_NRM + 2 * decoder_id; - - WREG32(base_addr + BRDG_CTRL_NRM_MSIX_LBW_AWADDR, mmPCIE_DBI_MSIX_DOORBELL_OFF); - WREG32(base_addr + BRDG_CTRL_NRM_MSIX_LBW_WDATA, interrupt_id); - WREG32(base_addr + BRDG_CTRL_ABNRM_MSIX_LBW_AWADDR, mmPCIE_DBI_MSIX_DOORBELL_OFF); - WREG32(base_addr + BRDG_CTRL_ABNRM_MSIX_LBW_WDATA, interrupt_id + 1); - return; - } - /* VCMD normal interrupt */ sob_id = GAUDI2_RESERVED_SOB_DEC_NRM_FIRST + decoder_id; WREG32(base_addr + BRDG_CTRL_NRM_MSIX_LBW_AWADDR, From patchwork Thu Oct 27 09:09: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: 11678 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119360wru; Thu, 27 Oct 2022 02:11:53 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6oRLSPmSb9bhtee2lE718xWrwhQh64HnlXNjscVgsztltHd0sjs3tqXtEx8MzaH0bUkGZF X-Received: by 2002:a05:6402:3594:b0:45d:acf9:c782 with SMTP id y20-20020a056402359400b0045dacf9c782mr46301356edc.63.1666861913777; Thu, 27 Oct 2022 02:11:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861913; cv=none; d=google.com; s=arc-20160816; b=MuPwePAb0eFa0Sbg4nJYvkpZGnI9Rc8zMBz5kfP/scIB6j0M3YQImjDLZo5EEFZerk TDr5Zmw+Tz8jzk0Xu4ci78YxNMthAyCB2CqzVBWJMUE0KlEUjTmjag16jg4i1dIV5PC0 Gq1B9aM5Yjgja5jV0OTcBSyC7PMvClK7FFFuP+sHC8Y/X2m3TRcOQor+IJkEoH9JDhOe SY/r+fqRtcHAoGS4vnLx62nY5CQwc1X5TTuxMHtpo7aNdKS59MmEGhMZ4isLYnbipg1w lGZ2rSiwy8RbNu0FJui39iKVXtq9nM6UCbVSBkEE023zpHicrYd4K0mqJxcIoQmCd++u XeGQ== 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=Ht30IWjURQdVz2MMBpY67GNAX4oErfzC3WITaufvBrE=; b=nrhm6/s0nGf0R2BxODtmobpMId01ba8mDZGYqxu76wwBmblz8yy9zcip9M/aBJvuJH 6PAh4hw8MTbNc5efqpbszdWA3Qa+tTTbB83kX2ARU+pskcQXzIwxdhmZ/8fqXS4RVx5M bHZNUhoiOGhGaPVnb9z3CHqzzQSwYdp/BX/g4/e70Okycs9z7oesN0/AsNQigKzXh9Dw OVKTmrrM7BJKlLMBLyZzE4gm87twSu5W/OoMdWnAxs/WMg9ftlhszJFytmg35BdswaEW k6Lwjm5BqzKmJiApqIULHN8fvkEpMJVFu67604TyyerfKqxMeEQ3v8kqBgmn13G1VYam 0aaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Z5KcJGJ4; 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 x11-20020a056402414b00b00461c50013b8si1083971eda.192.2022.10.27.02.11.27; Thu, 27 Oct 2022 02:11:53 -0700 (PDT) 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=Z5KcJGJ4; 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 S235339AbiJ0JKy (ORCPT + 99 others); Thu, 27 Oct 2022 05:10:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235254AbiJ0JKZ (ORCPT ); Thu, 27 Oct 2022 05:10:25 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5EB6F10059 for ; Thu, 27 Oct 2022 02:10:20 -0700 (PDT) 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 09439B8255B for ; Thu, 27 Oct 2022 09:10:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4E26C433D6; Thu, 27 Oct 2022 09:10:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861817; bh=dQF2+43kff3gQF+6a/Xx6YbAFvzuGAzfM4cCujcupLU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z5KcJGJ438pv+d34ILDz0V04vC4I9oPn7Hmkz1CPuZVp3/KS86bdeE50TbOFOYcAo lg4joZa9GLUa0HVww7Y7CBEPM4jhwygoBRb7EUXxz9H9uV1SL0Zx3OeKCWCNMuX0Jh PGOmyI6m95dE8ghv/V9vqMb+e3aTUDI+2tnkurxzEwmY12p6m5fCks+Pq9zrIXWrDI FZMMb+iyWD9mx05rnD+7qgpdI3udnzTIQKyB0caKKT9QtE6wNLjpp0xAAjff+23xiB hL263s8UaSIY6cgH0SpsFGpBFB0+CxneWqHlO09dWk7XlohRR26A+qRGnoiZHr4Tel pv0md0Z6AK7uA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Dani Liberman Subject: [PATCH 04/15] habanalabs: fix user mappings calculation in case of page fault Date: Thu, 27 Oct 2022 12:09:56 +0300 Message-Id: <20221027091007.664797-4-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831398026499569?= X-GMAIL-MSGID: =?utf-8?q?1747831398026499569?= From: Dani Liberman As there are 2 types of user mappings, pmmu and hmmu, calculate only the relevant mappings for the requested type. Signed-off-by: Dani Liberman Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index 0026fe42b3d2..0e88396744a1 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -2305,8 +2305,13 @@ static void hl_capture_user_mappings(struct hl_device *hdev, bool is_pmmu) } mutex_lock(&ctx->mem_hash_lock); - hash_for_each(ctx->mem_hash, i, hnode, node) - pgf_info->num_of_user_mappings++; + hash_for_each(ctx->mem_hash, i, hnode, node) { + vm_type = hnode->ptr; + if (((*vm_type == VM_TYPE_USERPTR) && is_pmmu) || + ((*vm_type == VM_TYPE_PHYS_PACK) && !is_pmmu)) + pgf_info->num_of_user_mappings++; + + } if (!pgf_info->num_of_user_mappings) goto finish; From patchwork Thu Oct 27 09:09: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: 11676 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119320wru; Thu, 27 Oct 2022 02:11:49 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6gsJus8Nfx0wMyQofS26i3KtwqHnoLT+JdNDX5/HkqWrNVwF1RmhdLSIjNOEVDdWK29lJh X-Received: by 2002:a17:907:3f28:b0:7ad:88f8:7644 with SMTP id hq40-20020a1709073f2800b007ad88f87644mr3206370ejc.738.1666861908744; Thu, 27 Oct 2022 02:11:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861908; cv=none; d=google.com; s=arc-20160816; b=cYHOZ5zs0LeUfgQWkOxjfxEdEm6JFYuEVARhrhTIW+DYQRq3BPoyEwX9v9v0ILmKmq wWl+UXNvEav9vGrjTuIThEgynWD4TVfmDWTTZPyQFYuJZboPesY8ndVfCepXG91BR7i0 Creyjp+CavXihBFkrYg4IikpEIX26bQrKTSuOktRatnelfAxsUTrcAztFd8G4s5drkPA rRJWDBrehZDEyhBISnIY4hSQDMmrN6chmz3BwNRawfdr6oMM61o4GA1bm/jIF5I52Sp7 9qbLaijaSxvopIIJ2HZsSvqE0UG6dG4O0BdSRnLXpO6Cc3FvnTt+/6kY8VRs1wgp7B2B qf0w== 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=/dxMhaiQkbELR5cRCF3auNLCWo02kh5lcqfROaPMYpg=; b=WYUvnZVoIiBQdcwBP07H0qCT+Fe810XipFXRW5Qw5+b9TggZXWBBYGqYfdw097GrED D9gzjabpXVV4gdIkAF0xleMGTpOI03GNHUdPtDDyC7HfS34a5jVdYUlyJOzctJZS0GqU 0WnhS4ZJKjyjfKhUcIx5qxvglQVf0f591ynkZNwJIGqG5LClFXOK9g4m0oq2gQTC2QMJ Olhu4gQU2hH8rxQciik5dL/bcYb5jA+m5LkSjjAnzbg4PEbmgIo7L7QBSPqC9d2BmsZa JrKi6JdqNvgrxYNC1AGSmzpes7Ux3ilTrc6ZeV2LXOo2+iKtX4Vx/ZXWldmOGf7KaCCD dZqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=JtBEdbYs; 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 j11-20020a1709062a0b00b00780def41dc4si717211eje.527.2022.10.27.02.11.22; Thu, 27 Oct 2022 02:11:48 -0700 (PDT) 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=JtBEdbYs; 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 S235334AbiJ0JKv (ORCPT + 99 others); Thu, 27 Oct 2022 05:10:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40892 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235246AbiJ0JKZ (ORCPT ); Thu, 27 Oct 2022 05:10:25 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12BB41FF92 for ; Thu, 27 Oct 2022 02:10:20 -0700 (PDT) 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 A402362243 for ; Thu, 27 Oct 2022 09:10:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 44A54C433C1; Thu, 27 Oct 2022 09:10:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861819; bh=VpRfkhtCImVDOH7LH3f1cCEnxnIxnNzXwZHVtePJVkg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JtBEdbYsaEkCHFIKvmPIqw1pCTXO75n0J8VNPzct1Q2Sc2EqxH7SDoCzOORdqqylb lDM6Lhp4aJkgwZil+JwhL4p7L+z6hhf0ixGwT/1QP1TgspUjBXHlcNoRG5ZFZwfmm+ dDi2lH56mekF5pd9XyNuOFc5O1H/VQQyRQFSkq/0RgUBf6vswqMsUTvok/KXDN3+Ig fu0fMghUtHxvtoRzAonHHYDstBo+h6HpFJLeEAvQi9xYD/0jPjwcdSfKvYCtLquD0B XN6tbA0w794qlmGTPO/AEScCMJ2xTSO/1Y4gjjkfBxHtJaFNNYGKEnT+AzrNK5I4yI nI3/DmFzpNOQQ== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Ohad Sharabi Subject: [PATCH 05/15] habanalabs: avoid divide by zero in device utilization Date: Thu, 27 Oct 2022 12:09:57 +0300 Message-Id: <20221027091007.664797-5-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831392699488302?= X-GMAIL-MSGID: =?utf-8?q?1747831392699488302?= From: Ohad Sharabi Currently there is no verification whether the divisor is legal. Signed-off-by: Ohad Sharabi Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index 0e88396744a1..b71303ba11d0 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -987,11 +987,16 @@ static void device_late_fini(struct hl_device *hdev) int hl_device_utilization(struct hl_device *hdev, u32 *utilization) { - u64 max_power, curr_power, dc_power, dividend; + u64 max_power, curr_power, dc_power, dividend, divisor; int rc; max_power = hdev->max_power; dc_power = hdev->asic_prop.dc_power_default; + divisor = max_power - dc_power; + if (!divisor) { + dev_warn(hdev->dev, "device utilization is not supported\n"); + return -EOPNOTSUPP; + } rc = hl_fw_cpucp_power_get(hdev, &curr_power); if (rc) @@ -1000,7 +1005,7 @@ int hl_device_utilization(struct hl_device *hdev, u32 *utilization) curr_power = clamp(curr_power, dc_power, max_power); dividend = (curr_power - dc_power) * 100; - *utilization = (u32) div_u64(dividend, (max_power - dc_power)); + *utilization = (u32) div_u64(dividend, divisor); return 0; } From patchwork Thu Oct 27 09:09: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: 11683 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119602wru; Thu, 27 Oct 2022 02:12:20 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4bSJr4Vy+NF7GCE/vj9mknDdUAjTPdr6OVhELesLto+l70F0Pg1bbMnSgTSv04rVOZCghO X-Received: by 2002:a17:907:7610:b0:78d:b374:898e with SMTP id jx16-20020a170907761000b0078db374898emr43630268ejc.28.1666861939882; Thu, 27 Oct 2022 02:12:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861939; cv=none; d=google.com; s=arc-20160816; b=Eg45YhWM7gpEOWT3sgRZLoG8FEcjTmlWlwvJa3hOsSBJwBs0SsDYNntwphmn3swj4x /ZILFpnN4QWjZQ7c8Cs+NFkrJ3afR9H3YCxQUwWM187Iln36naH6lSdO7sf4fROoz5j3 CLrM0QXXr6VbnazrXoUhLI1iTtCp3oG5uZQuTIUVuIHtjzZ4B6ZX40p2PttuCdpxUZyM hCUXev91aHEZWKJaxy/7bh5wg0WsKYQoLx2AMt8zt/5F9XRB/FvaaqC6Kz1HEx24+Www 4c/1mAhFxMQKW6MGuuaxmhlYCkVKC+nXCR51iKAdaFwXKlThJuhlKT1Gn8PmdqU8feq7 XhyQ== 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=s0dLIIxmHUc8sOiG/YUaXbXP2q/poomZl+z0popk/rM=; b=pnSM23uU6xbKRP0/rxLHeK8FDTVG8dyQEua/9mxKjTZtYtbAiwWsM0YZsuB4hQl44p PCSunW43pXZLZot7mjULbqk97l0ffx0ocq4krF0/EcGects9X5EVxePo1ZtlUOrf9+rJ lYg3fILTGqHACnM0jfAmD628FvtlDWzd4TWFmL4t1UiMy0vCBo+FVVG3sQftegCY2yeK kcaPVtItSz6dtejoapjHrdkZG8kkY9rUU3JD8ZxcQvnVUFH/pzehqOf2zW7msNOZV1Qs KuBm/mM7zjsLasjOPsC9nQkYkeMR/WTJ9tvtkLwQUPYwq9wfiQ0P6R9gwS2hHKpunYQd 1/oQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KgRnxcFu; 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 qa12-20020a170907868c00b00781f51771b6si944592ejc.900.2022.10.27.02.11.52; Thu, 27 Oct 2022 02:12:19 -0700 (PDT) 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=KgRnxcFu; 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 S235296AbiJ0JLY (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235259AbiJ0JKa (ORCPT ); Thu, 27 Oct 2022 05:10:30 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B824033E05 for ; Thu, 27 Oct 2022 02:10:21 -0700 (PDT) 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 3FC6A62241 for ; Thu, 27 Oct 2022 09:10:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98911C433D6; Thu, 27 Oct 2022 09:10:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861820; bh=zp9jCk1x9mMPKUMofhmNDKb/B6OS0vNsjs0MayLTObk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KgRnxcFuM+GC5HpDv7O08U+jkxy925ZBzfR7QZASyT1JrQU5jN80evdxlsJtt+r67 X8mlb5Ktl4xrLCIT6GPHnNc9hCnZjsmue+uhpL3Hv1Ns5Xe5C3rGBhr9vEDkU+/LkD 0MSYGmCEkmN6mHSX5SkTrCPIpKeq9//mNv8zT/PVTYj6euEDPHKQvYwSnTSZsCazho vrixGmxA9MRgEYxEFRYkuSEfW+mXFeVGbZzrbZpE2wXTMjML/EaaVGQOyS0S15Pqyq 8Ys61D5koM158bVgpSBTupr/WDSQSxscfI4I+cCoC0ISp2k+WGDQK2hc46+FlxIXOA /mh6sBYCfYGPA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 06/15] habanalabs: add support for graceful hard reset Date: Thu, 27 Oct 2022 12:09:58 +0300 Message-Id: <20221027091007.664797-6-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831425538851799?= X-GMAIL-MSGID: =?utf-8?q?1747831425538851799?= From: Tomer Tayar Calling hl_device_reset() for a hard reset will lead to a quite immediate device reset and to killing user process. For resets that follow errors, it disables the option to debug the errors on both the device side and the user application side. This patch adds a 'graceful hard reset' option and a new hl_device_cond_reset() function. Under some conditions, mainly if there is no user process or if he is not registered to driver notifications, this function will execute hard reset as usual. Otherwise, the reset will be postponed and a notification will be sent to user, to let him perform post-error actions and then to release the device, after which reset will take place. If device is not released by user in some defined time, a watchdog work will execute the reset in any case. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 141 ++++++++++++++++++-- drivers/misc/habanalabs/common/habanalabs.h | 14 +- 2 files changed, 140 insertions(+), 15 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index b71303ba11d0..bcd959924971 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -16,7 +16,9 @@ #include -#define HL_RESET_DELAY_USEC 10000 /* 10ms */ +#define HL_RESET_DELAY_USEC 10000 /* 10ms */ + +#define HL_DEVICE_RELEASE_WATCHDOG_TIMEOUT_SEC 5 enum dma_alloc_type { DMA_ALLOC_COHERENT, @@ -387,7 +389,7 @@ bool hl_ctrl_device_operational(struct hl_device *hdev, static void hpriv_release(struct kref *ref) { u64 idle_mask[HL_BUSY_ENGINES_MASK_EXT_SIZE] = {0}; - bool device_is_idle = true; + bool reset_device, device_is_idle = true; struct hl_fpriv *hpriv; struct hl_device *hdev; @@ -404,14 +406,20 @@ static void hpriv_release(struct kref *ref) mutex_destroy(&hpriv->ctx_lock); mutex_destroy(&hpriv->restore_phase_mutex); - /* No need for idle status check if device is going to be reset in any case */ - if (!hdev->reset_upon_device_release && hdev->pdev && !hdev->pldm) + /* Device should be reset if reset-upon-device-release is enabled, or if there is a pending + * reset that waits for device release. + */ + reset_device = hdev->reset_upon_device_release || hdev->reset_info.watchdog_active; + + /* Unless device is reset in any case, check idle status and reset if device is not idle */ + if (!reset_device && hdev->pdev && !hdev->pldm) device_is_idle = hdev->asic_funcs->is_device_idle(hdev, idle_mask, HL_BUSY_ENGINES_MASK_EXT_SIZE, NULL); - - if (!device_is_idle) + if (!device_is_idle) { dev_err(hdev->dev, "device not idle after user context is closed (0x%llx_%llx)\n", idle_mask[1], idle_mask[0]); + reset_device = true; + } /* We need to remove the user from the list to make sure the reset process won't * try to kill the user process. Because, if we got here, it means there are no @@ -426,9 +434,10 @@ static void hpriv_release(struct kref *ref) list_del(&hpriv->dev_node); mutex_unlock(&hdev->fpriv_list_lock); - if (!device_is_idle || hdev->reset_upon_device_release) { + if (reset_device) { hl_device_reset(hdev, HL_DRV_RESET_DEV_RELEASE); } else { + /* Scrubbing is handled within hl_device_reset(), so here need to do it directly */ int rc = hdev->asic_funcs->scrub_device_mem(hdev); if (rc) @@ -695,6 +704,20 @@ static void device_hard_reset_pending(struct work_struct *work) } } +static void device_release_watchdog_func(struct work_struct *work) +{ + struct hl_device_reset_work *device_release_watchdog_work = + container_of(work, struct hl_device_reset_work, reset_work.work); + struct hl_device *hdev = device_release_watchdog_work->hdev; + u32 flags; + + dev_dbg(hdev->dev, "Device wasn't released in time. Initiate device reset.\n"); + + flags = device_release_watchdog_work->flags | HL_DRV_RESET_FROM_WD_THR; + + hl_device_reset(hdev, flags); +} + /* * device_early_init - do some early initialization for the habanalabs device * @@ -813,11 +836,14 @@ static int device_early_init(struct hl_device *hdev) goto free_cb_mgr; } - INIT_DELAYED_WORK(&hdev->device_reset_work.reset_work, - device_hard_reset_pending); + INIT_DELAYED_WORK(&hdev->device_reset_work.reset_work, device_hard_reset_pending); hdev->device_reset_work.hdev = hdev; hdev->device_fini_pending = 0; + INIT_DELAYED_WORK(&hdev->device_release_watchdog_work.reset_work, + device_release_watchdog_func); + hdev->device_release_watchdog_work.hdev = hdev; + mutex_init(&hdev->send_cpu_message_lock); mutex_init(&hdev->debug_lock); INIT_LIST_HEAD(&hdev->cs_mirror_list); @@ -1367,8 +1393,8 @@ static void handle_reset_trigger(struct hl_device *hdev, u32 flags) int hl_device_reset(struct hl_device *hdev, u32 flags) { bool hard_reset, from_hard_reset_thread, fw_reset, hard_instead_soft = false, - reset_upon_device_release = false, schedule_hard_reset = false, - skip_wq_flush, delay_reset; + reset_upon_device_release = false, schedule_hard_reset = false, delay_reset, + from_dev_release, from_watchdog_thread; u64 idle_mask[HL_BUSY_ENGINES_MASK_EXT_SIZE] = {0}; struct hl_ctx *ctx; int i, rc; @@ -1381,8 +1407,9 @@ int hl_device_reset(struct hl_device *hdev, u32 flags) hard_reset = !!(flags & HL_DRV_RESET_HARD); from_hard_reset_thread = !!(flags & HL_DRV_RESET_FROM_RESET_THR); fw_reset = !!(flags & HL_DRV_RESET_BYPASS_REQ_TO_FW); - skip_wq_flush = !!(flags & HL_DRV_RESET_DEV_RELEASE); + from_dev_release = !!(flags & HL_DRV_RESET_DEV_RELEASE); delay_reset = !!(flags & HL_DRV_RESET_DELAY); + from_watchdog_thread = !!(flags & HL_DRV_RESET_FROM_WD_THR); if (!hard_reset && !hdev->asic_prop.supports_compute_reset) { hard_instead_soft = true; @@ -1439,6 +1466,23 @@ int hl_device_reset(struct hl_device *hdev, u32 flags) spin_unlock(&hdev->reset_info.lock); + /* Cancel the device release watchdog work if required. + * In case of reset-upon-device-release while the release watchdog work is + * scheduled, do hard-reset instead of compute-reset. + */ + if ((hard_reset || from_dev_release) && hdev->reset_info.watchdog_active) { + hdev->reset_info.watchdog_active = 0; + if (!from_watchdog_thread) + cancel_delayed_work_sync( + &hdev->device_release_watchdog_work.reset_work); + + if (from_dev_release) { + flags |= HL_DRV_RESET_HARD; + flags &= ~HL_DRV_RESET_DEV_RELEASE; + hard_reset = true; + } + } + if (delay_reset) usleep_range(HL_RESET_DELAY_USEC, HL_RESET_DELAY_USEC << 1); @@ -1474,7 +1518,7 @@ int hl_device_reset(struct hl_device *hdev, u32 flags) return 0; } - cleanup_resources(hdev, hard_reset, fw_reset, skip_wq_flush); + cleanup_resources(hdev, hard_reset, fw_reset, from_dev_release); kill_processes: if (hard_reset) { @@ -1735,6 +1779,73 @@ int hl_device_reset(struct hl_device *hdev, u32 flags) return rc; } +/* + * hl_device_cond_reset() - conditionally reset the device. + * @hdev: pointer to habanalabs device structure. + * @reset_flags: reset flags. + * @event_mask: events to notify user about. + * + * Conditionally reset the device, or alternatively schedule a watchdog work to reset the device + * unless another reset precedes it. + */ +int hl_device_cond_reset(struct hl_device *hdev, u32 flags, u64 event_mask) +{ + struct hl_ctx *ctx = NULL; + + /* Device release watchdog is only for hard reset */ + if (!(flags & HL_DRV_RESET_HARD) && hdev->asic_prop.allow_inference_soft_reset) + goto device_reset; + + /* F/W reset cannot be postponed */ + if (flags & HL_DRV_RESET_BYPASS_REQ_TO_FW) + goto device_reset; + + /* Device release watchdog is relevant only if user exists and gets a reset notification */ + if (!(event_mask & HL_NOTIFIER_EVENT_DEVICE_RESET)) { + dev_err(hdev->dev, "Resetting device without a reset indication to user\n"); + goto device_reset; + } + + ctx = hl_get_compute_ctx(hdev); + if (!ctx || !ctx->hpriv->notifier_event.eventfd) + goto device_reset; + + /* Schedule the device release watchdog work unless reset is already in progress or if the + * work is already scheduled. + */ + spin_lock(&hdev->reset_info.lock); + if (hdev->reset_info.in_reset) { + spin_unlock(&hdev->reset_info.lock); + goto device_reset; + } + + if (hdev->reset_info.watchdog_active) + goto out; + + hdev->device_release_watchdog_work.flags = flags; + dev_dbg(hdev->dev, "Device is going to be reset in %u sec unless being released\n", + hdev->device_release_watchdog_timeout_sec); + schedule_delayed_work(&hdev->device_release_watchdog_work.reset_work, + msecs_to_jiffies(hdev->device_release_watchdog_timeout_sec * 1000)); + hdev->reset_info.watchdog_active = 1; +out: + spin_unlock(&hdev->reset_info.lock); + + hl_notifier_event_send_all(hdev, event_mask); + + hl_ctx_put(ctx); + + return 0; + +device_reset: + if (event_mask) + hl_notifier_event_send_all(hdev, event_mask); + if (ctx) + hl_ctx_put(ctx); + + return hl_device_reset(hdev, flags); +} + static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 event_mask) { mutex_lock(¬ifier_event->lock); @@ -1932,6 +2043,8 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass) hdev->asic_funcs->state_dump_init(hdev); + hdev->device_release_watchdog_timeout_sec = HL_DEVICE_RELEASE_WATCHDOG_TIMEOUT_SEC; + hdev->memory_scrub_val = MEM_SCRUB_DEFAULT_VAL; hl_debugfs_add_device(hdev); @@ -2152,6 +2265,8 @@ void hl_device_fini(struct hl_device *hdev) } } + cancel_delayed_work_sync(&hdev->device_release_watchdog_work.reset_work); + /* Disable PCI access from device F/W so it won't send us additional * interrupts. We disable MSI/MSI-X at the halt_engines function and we * can't have the F/W sending us interrupts after that. We need to diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h index c8347eac09ed..bfaaa9daa750 100644 --- a/drivers/misc/habanalabs/common/habanalabs.h +++ b/drivers/misc/habanalabs/common/habanalabs.h @@ -191,6 +191,9 @@ enum hl_mmu_enablement { * * - HL_DRV_RESET_DELAY * Set if a delay should be added before the reset + * + * - HL_DRV_RESET_FROM_WD_THR + * Set if the caller is the device release watchdog thread */ #define HL_DRV_RESET_HARD (1 << 0) @@ -201,6 +204,7 @@ enum hl_mmu_enablement { #define HL_DRV_RESET_BYPASS_REQ_TO_FW (1 << 5) #define HL_DRV_RESET_FW_FATAL_ERR (1 << 6) #define HL_DRV_RESET_DELAY (1 << 7) +#define HL_DRV_RESET_FROM_WD_THR (1 << 8) /* * Security @@ -3009,6 +3013,7 @@ struct hl_error_info { * same cause. * @skip_reset_on_timeout: Skip device reset if CS has timed out, wait for it to * complete instead. + * @watchdog_active: true if a device release watchdog work is scheduled. */ struct hl_reset_info { spinlock_t lock; @@ -3019,12 +3024,11 @@ struct hl_reset_info { u8 in_compute_reset; u8 needs_reset; u8 hard_reset_pending; - u8 curr_reset_cause; u8 prev_reset_trigger; u8 reset_trigger_repeated; - u8 skip_reset_on_timeout; + u8 watchdog_active; }; /** @@ -3040,6 +3044,8 @@ struct hl_reset_info { * @dev_ctrl: related kernel device structure for the control device * @work_heartbeat: delayed work for CPU-CP is-alive check. * @device_reset_work: delayed work which performs hard reset + * @device_release_watchdog_work: watchdog work that performs hard reset if user doesn't release + * device upon certain error cases. * @asic_name: ASIC specific name. * @asic_type: ASIC specific type. * @completion_queue: array of hl_cq. @@ -3149,6 +3155,7 @@ struct hl_reset_info { * indicates which decoder engines are binned-out * @edma_binning: contains mask of edma engines that is received from the f/w which * indicates which edma engines are binned-out + * @device_release_watchdog_timeout_sec: device release watchdog timeout value in seconds. * @id: device minor. * @id_control: minor of the control device. * @cdev_idx: char device index. Used for setting its name. @@ -3218,6 +3225,7 @@ struct hl_device { struct device *dev_ctrl; struct delayed_work work_heartbeat; struct hl_device_reset_work device_reset_work; + struct hl_device_reset_work device_release_watchdog_work; char asic_name[HL_STR_MAX]; char status[HL_DEV_STS_MAX][HL_STR_MAX]; enum hl_asic_type asic_type; @@ -3312,6 +3320,7 @@ struct hl_device { u32 high_pll; u32 decoder_binning; u32 edma_binning; + u32 device_release_watchdog_timeout_sec; u16 id; u16 id_control; u16 cdev_idx; @@ -3551,6 +3560,7 @@ void hl_device_fini(struct hl_device *hdev); int hl_device_suspend(struct hl_device *hdev); int hl_device_resume(struct hl_device *hdev); int hl_device_reset(struct hl_device *hdev, u32 flags); +int hl_device_cond_reset(struct hl_device *hdev, u32 flags, u64 event_mask); void hl_hpriv_get(struct hl_fpriv *hpriv); int hl_hpriv_put(struct hl_fpriv *hpriv); int hl_device_utilization(struct hl_device *hdev, u32 *utilization); From patchwork Thu Oct 27 09:09: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: 11680 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119446wru; Thu, 27 Oct 2022 02:12:03 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4uIE29bA+6A6XD6REnRo/WU4DEDGwaEM43oI3adO1qiDqa3meaHzJJgbVHzt5jBMYvn5QI X-Received: by 2002:a17:907:7208:b0:78e:176e:e0c6 with SMTP id dr8-20020a170907720800b0078e176ee0c6mr41286193ejc.594.1666861922816; Thu, 27 Oct 2022 02:12:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861922; cv=none; d=google.com; s=arc-20160816; b=mL9S+tffdzisAUp1MbcFAxktrj4Ihr2zFUuFLb1mUvtKNpTK/DaghVY0yg1aRi0wsU hbj+rIlSYutueWFvRrCNBbKAci5c0ozOlxUjsCXX5f6pwHe2cVG5+4moQNvzj5/VyX2B J1r+R+pNQeJwgwAzR1iuPSUB6xCu7JozHYCS2GSYymEFN0POPKTqRCKb/jS8PFYhjcwE Nf65zdcW6vdGp40xmgykjHMME4P3tvnzuTu0uKqMh7W76ky+Znbqg/pmtishqRXAQtMK OTSPdxHXr9RicBSvJ38vYC9+4oAZO5zwiyfSeqTmqDo30+dOnTIxBU5ozn1gLs2LAm+i NNbg== 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=vTpuAnvbplSWD6aYfiKV5Nlty+0OqV7EH+cvbz/aK5o=; b=RJn0INsFDgcNr3R6hUJn8KQOVPdHNuMtYOrzq1ECH1n/jpp793UufB4unmL7bc5GrO 6deyJ+AVVYaWR+enGaMHXlUnrvNo0VVgzd6fc8iwFfghbrxNBw4n1bep9DUz3v6Q3iWi rDZuUOTXn9PqXE9429vG9s2t4SvFvFT+4Wd7YXvrnSHd5+EGFX5Ip1QI/wpGadVFmsvp L54NSDlUqTgxp7a284YOMUq/sVm/whNSRKoIqKZahZq2srx5kvE8J2auXJMKGBNJFG0u /0jCKsRI/Y2u+I2T/4+e9LoDJrKHtgb6YpohRpwaCDw85Iiz0RSE6lISit3eJHG7I5mW k5vg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=CWIGtmJN; 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 y16-20020a50e610000000b004596db363c4si975529edm.264.2022.10.27.02.11.38; Thu, 27 Oct 2022 02:12:02 -0700 (PDT) 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=CWIGtmJN; 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 S235263AbiJ0JLF (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233283AbiJ0JK3 (ORCPT ); Thu, 27 Oct 2022 05:10:29 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A529214009 for ; Thu, 27 Oct 2022 02:10:24 -0700 (PDT) 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 4A855B82558 for ; Thu, 27 Oct 2022 09:10:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C682C433C1; Thu, 27 Oct 2022 09:10:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861822; bh=icNef8V1Wwx19GOqo5GRCHNJaynBT3OZ8JCWz9XdCL8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CWIGtmJNdolosGku/LZRDxMGIjCIlfsFvnMMxjTsdJpwXJWWXeD0NRotiRngDYccd 5rMlKB2aT2QXDc1buosX9Wq3hvP1huAKAYTtYXUWm8abhVgdNA5DWrvwMIxSr13E6p OBwvYOkgmqvktRyIq6doMXR81hJao7cA5A7RDW90noXkLgnzrUj/HqHXyVGaR0oAI+ Yl1KiVODNGsEJ3t9gUvcn4NmnPl+RKiWl6ugFMpPPW6ghsUiZdQfYHw3KdmOpnfPhX sfkQyQJzb/hYF6q9GlJmffbfKlPUOIRwPQZcqwxgeEs/Svbcfemjg2q5QedXEUAPXa 0jFqcHxOAET4A== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 07/15] habanalabs: add an option to control watchdog timeout via debugfs Date: Thu, 27 Oct 2022 12:09:59 +0300 Message-Id: <20221027091007.664797-7-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831407059403411?= X-GMAIL-MSGID: =?utf-8?q?1747831407059403411?= From: Tomer Tayar Add an option to control the timeout value for the driver's watchdog of the reset process. The timeout represents the amount of the user has to close his process once he gets a device reset notification from the driver. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- Documentation/ABI/testing/debugfs-driver-habanalabs | 7 +++++++ drivers/misc/habanalabs/common/debugfs.c | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/Documentation/ABI/testing/debugfs-driver-habanalabs b/Documentation/ABI/testing/debugfs-driver-habanalabs index c915bf17b293..85f6d04f528b 100644 --- a/Documentation/ABI/testing/debugfs-driver-habanalabs +++ b/Documentation/ABI/testing/debugfs-driver-habanalabs @@ -91,6 +91,13 @@ Description: Enables the root user to set the device to specific state. Valid values are "disable", "enable", "suspend", "resume". User can read this property to see the valid values +What: /sys/kernel/debug/habanalabs/hl/device_release_watchdog_timeout +Date: Oct 2022 +KernelVersion: 6.2 +Contact: ttayar@habana.ai +Description: The watchdog timeout value in seconds for a device relese upon + certain error cases, after which the device is reset. + What: /sys/kernel/debug/habanalabs/hl/dma_size Date: Apr 2021 KernelVersion: 5.13 diff --git a/drivers/misc/habanalabs/common/debugfs.c b/drivers/misc/habanalabs/common/debugfs.c index 48d3ec8b5c82..945c0e6758ca 100644 --- a/drivers/misc/habanalabs/common/debugfs.c +++ b/drivers/misc/habanalabs/common/debugfs.c @@ -1769,6 +1769,11 @@ void hl_debugfs_add_device(struct hl_device *hdev) dev_entry, &hl_timeout_locked_fops); + debugfs_create_u32("device_release_watchdog_timeout", + 0644, + dev_entry->root, + &hdev->device_release_watchdog_timeout_sec); + for (i = 0, entry = dev_entry->entry_arr ; i < count ; i++, entry++) { debugfs_create_file(hl_debugfs_list[i].name, 0444, From patchwork Thu Oct 27 09:10: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: 11681 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119494wru; Thu, 27 Oct 2022 02:12:08 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5jdzbcWOYLnI+hhA/bLmyoikEP1MazmxA4iwNQqt/4q7kml2N7W0UVPir8+pOcwV01ThEe X-Received: by 2002:a17:907:86a2:b0:791:910e:cce4 with SMTP id qa34-20020a17090786a200b00791910ecce4mr41893595ejc.36.1666861928272; Thu, 27 Oct 2022 02:12:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861928; cv=none; d=google.com; s=arc-20160816; b=cxFbv8yFQOPtDXSqecvdQG2tAnKHtkOaUwYuva+FbCEgOaUWrDfCdZYdnJnjyhA7jU OJGaiXuYOWTa9+g7UZffJ7Bs7qYtleTAzDd9xXUJIyiOWFvVdFI6F4w1QUyyrhW/SL1J GU45cEiImJJ2SbyXIHj56IfcpwIrz0Ya3jbdX2o/oGXFS2ja4BCnXfSGsGcVCxF8U8Y1 A7qFOvr/er+ArHpi4hp6e376be9RdDM5SP7vWuYZNIHKaJmd/VGMNNIg5nSPzr42M+Jj Hp2Aeqze/E47M0pQPSFkYymzClsbT4WCo7qW3xbLgM2s0+py2x2DRfMTzTQiQlZ0fyCT hkMA== 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=Z+ZfLQRhteRlGO5hhQ+05hYACPHsGkW3e97obsmk4KM=; b=QeQCb6DcVZP4XaK240xbSY5geHSncOu6xMvs0gRPMHexslnTk8c2hI8Y6zE0BLBjMr FCYzuHxhuBRwaR13AEaVHNJsUStloZLE+w9wvSS1jJR1xJgcok0n1lz3hs1nEC8zLwkD xyIFzP+GPphRcCEDJ4MKHYsk3cGfoNtzrtb3ArAz6ylV/E1prEBtqnto4jy2suD/6ltf +BfyJgNT+bj9A2KqVR2UWHK5/EvucZ6wWul230nmVQCn4879sw1MQIpJc8zarGCK5rwL 6YcbCvhtivdl7ri1z+UefWbj0WWLZ0cRPrAuf6Ds09BYmGSct8WET1NxSVVDG6D2L169 g1Eg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=i7kFKr8y; 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 mp14-20020a1709071b0e00b007317ad1f9a4si955089ejc.310.2022.10.27.02.11.41; Thu, 27 Oct 2022 02:12:08 -0700 (PDT) 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=i7kFKr8y; 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 S235273AbiJ0JLN (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235196AbiJ0JK3 (ORCPT ); Thu, 27 Oct 2022 05:10:29 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1463214005 for ; Thu, 27 Oct 2022 02:10:25 -0700 (PDT) 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 9E3A0B8255C for ; Thu, 27 Oct 2022 09:10:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FB84C433D6; Thu, 27 Oct 2022 09:10:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861823; bh=Sh+BmeRGZOX5XGeQBr+NcaVn9R2vZH1mrSUpX2DxTCg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i7kFKr8yqIN8HQUEeg89SJw+uqYK4JRiEOoF8dBqPVF4/ye6zdF7nPWtIGhtwoZdG jssP1Pz/cpz4+jE9l9FT+jQaYOZefLFDofZMU79Qru56sPuMWqcyhsSWo1nK9Jt8Kb 2oLMJJ3PIlAS3FC3aJGBlUkj4PVnVc/0C1/WV1iTWo0eksYu9iexK2tKxGyJZL5EFc UzAUCgm2fiW+Dnf84PeNwHhjlysWDj6Jp6oJPz9qLCqIl4hpEezj/PuUXJ9I0tgzyE HsOX7rkj5LR+4iEGc4YmgbpK/StfKJniTcsNz+xZhn+flN2rfGQME/XFkNEAfKeI2t jRfIuvgmlkRXA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 08/15] habanalabs/gaudi: use graceful hard reset for F/W events Date: Thu, 27 Oct 2022 12:10:00 +0300 Message-Id: <20221027091007.664797-8-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831413312894496?= X-GMAIL-MSGID: =?utf-8?q?1747831413312894496?= From: Tomer Tayar Use graceful hard reset for F/W events on Gaudi device that require a device reset. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/gaudi/gaudi.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/misc/habanalabs/gaudi/gaudi.c b/drivers/misc/habanalabs/gaudi/gaudi.c index 337123f73501..3dfb9ecf7db3 100644 --- a/drivers/misc/habanalabs/gaudi/gaudi.c +++ b/drivers/misc/habanalabs/gaudi/gaudi.c @@ -7942,16 +7942,14 @@ static void gaudi_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_entr reset_required = false; } - /* despite reset doesn't execute. a notification on - * occurred event needs to be sent here - */ - if (event_mask) - hl_notifier_event_send_all(hdev, event_mask); - - if (reset_required) - hl_device_reset(hdev, flags); - else + if (reset_required) { + hl_device_cond_reset(hdev, flags, event_mask); + } else { hl_fw_unmask_irq(hdev, event_type); + /* Notification on occurred event needs to be sent although reset is not executed */ + if (event_mask) + hl_notifier_event_send_all(hdev, event_mask); + } } static void *gaudi_get_events_stat(struct hl_device *hdev, bool aggregate, u32 *size) From patchwork Thu Oct 27 09:10: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: 11685 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119685wru; Thu, 27 Oct 2022 02:12:28 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4gB3YZZZX4S7nsxDLzEDv5iQJii84VU3WPx1MWxzvY2V1Ui3PnqGQVlKM/AQ95jjOjv3Hq X-Received: by 2002:a05:6402:35c9:b0:45c:de2e:ae1c with SMTP id z9-20020a05640235c900b0045cde2eae1cmr44596404edc.393.1666861948017; Thu, 27 Oct 2022 02:12:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861948; cv=none; d=google.com; s=arc-20160816; b=P3f9amv2fWwdJ+F1ku1GY49BudECbUuzlW/xrtwcK1q8HMpfLYsTXvasN6AaDh98+B aZ/t2Vt+x4hvSAGUIdWgr34eg2/2fbUsHBAQ+oaDQTwibgKSXxOI0FwtB0BzRNl4VhaA XbyF2JlLHtWSH0d3EdXsOzaHOxZ5aUXNUqqH4SK83j/Dc9Axac+4M+JpeeqiyyYNB76K 7HbylUYSSKEcQV29Yuq6NNPAH3bU3h0y9IWBdQC2YUAGyZolfm/Ro714z4lWAY2eFEQW oxXKbUulSMI+Q3Ju6Em//XVsi1ua+zg7X2cORAHm55a7xkyHl6vYN1Q9CvsEGVuhosn1 Satw== 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=aoX+s/OcmiiuvVnBb5iaXI9vcEL6A/txx1jVCKEEAH0=; b=p4Kd3x+92W0iV4qOawOuaxeqwR0UtFUGK92eYE/eBUq83mC+M3AAp/Q6tPNrnPlQce sLCPius7Rd5y9rVVOqoW5Yjk7g0KqkqL7OoEA4P0kBaNglij8DZNxbmOVrDCN3Midfze k+Ps9ROMCadWE+748cpE6c5AblK9hpLvHSGrfSK/ri1LkN1zB2Y/ycqwT10IEZv161w9 VfAJlFfR4+VeCCtK9znqycx+19Fhx4yY+pyiwHZfrjFezOHx1QbDxdHrz5GIHqs7k9Fk QKraGPfhv7TFg5hnczIibDm/W6LaYtOdgc+NGLbMex/jLppL1AJVgWq1MKOZ2pV87Nyk ESuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fZQKcz1B; 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 cs12-20020a170906dc8c00b0078e0fd161dasi955371ejc.87.2022.10.27.02.12.03; Thu, 27 Oct 2022 02:12:28 -0700 (PDT) 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=fZQKcz1B; 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 S235251AbiJ0JLg (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235266AbiJ0JKa (ORCPT ); Thu, 27 Oct 2022 05:10:30 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F0FE917046 for ; Thu, 27 Oct 2022 02:10:27 -0700 (PDT) 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 sin.source.kernel.org (Postfix) with ESMTPS id 5C65ACE25B4 for ; Thu, 27 Oct 2022 09:10:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D322CC433B5; Thu, 27 Oct 2022 09:10:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861824; bh=70E0gcVTaPge2EP2TR7/yWf73s0yIGYJywPrINv9RrE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fZQKcz1Bg1F10+ZqqYxTZoBEscMqMqxDOB7XC3ukjLFztc5WJ/XYjYaBomSFqii9t /MARY9DnaVKoVaCmHtaDapZpe2bChhfLxc6+TtF+vbTaU89zqC022m8Obl9uUgEAxi SH/10qm3AcNglKnD1KM1MMbNu8Fq85GsDXBVAReYnR7bQx5jnjuGwF4qXqOJ8gIs42 EJJmzPtHw7HpAKhgn8Ac8UQtSCghxTWdAiGJI3vYOocqqg+q2pOmhOgJ4lkrI/3/Z9 +Tpjquo6Eh5FADJTdZIvsiikVu9xGkLt9yZ8GvpV+o2W8EvmGwnOw13yrwSeglpwee Y+LqBni4NfGhg== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 09/15] habanalabs/gaudi2: use graceful hard reset for F/W events Date: Thu, 27 Oct 2022 12:10:01 +0300 Message-Id: <20221027091007.664797-9-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831434163006954?= X-GMAIL-MSGID: =?utf-8?q?1747831434163006954?= From: Tomer Tayar Use graceful hard reset for F/W events on Gaudi2 device that require a device reset. While at it, do a small refactor of the checks and function calls, to simplify it and to avoid code duplication. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/gaudi2/gaudi2.c | 27 +++++++++---------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/drivers/misc/habanalabs/gaudi2/gaudi2.c b/drivers/misc/habanalabs/gaudi2/gaudi2.c index 9208f69dd7f8..22f5445fe71c 100644 --- a/drivers/misc/habanalabs/gaudi2/gaudi2.c +++ b/drivers/misc/habanalabs/gaudi2/gaudi2.c @@ -8768,9 +8768,9 @@ static void hl_arc_event_handle(struct hl_device *hdev, static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_entry) { - u32 ctl, reset_flags = HL_DRV_RESET_HARD | HL_DRV_RESET_DELAY; - struct gaudi2_device *gaudi2 = hdev->asic_specific; bool reset_required = false, skip_reset = false, is_critical = false; + struct gaudi2_device *gaudi2 = hdev->asic_specific; + u32 ctl, reset_flags = HL_DRV_RESET_HARD; int index, sbte_index; u64 event_mask = 0; u16 event_type; @@ -9158,7 +9158,9 @@ static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_ent event_type); } - if ((gaudi2_irq_map_table[event_type].reset || reset_required) && !skip_reset) + if ((gaudi2_irq_map_table[event_type].reset || reset_required) && !skip_reset && + (hdev->hard_reset_on_fw_events || + (hdev->asic_prop.fw_security_enabled && is_critical))) goto reset_device; /* Send unmask irq only for interrupts not classified as MSG */ @@ -9172,22 +9174,13 @@ static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_ent reset_device: if (hdev->asic_prop.fw_security_enabled && is_critical) { - reset_flags = HL_DRV_RESET_HARD | HL_DRV_RESET_BYPASS_REQ_TO_FW; - - /* notify on device unavailable while the reset triggered by fw */ - event_mask |= (HL_NOTIFIER_EVENT_DEVICE_RESET | - HL_NOTIFIER_EVENT_DEVICE_UNAVAILABLE); - hl_device_reset(hdev, reset_flags); - } else if (hdev->hard_reset_on_fw_events) { - event_mask |= HL_NOTIFIER_EVENT_DEVICE_RESET; - hl_device_reset(hdev, reset_flags); + reset_flags |= HL_DRV_RESET_BYPASS_REQ_TO_FW; + event_mask |= HL_NOTIFIER_EVENT_DEVICE_UNAVAILABLE; } else { - if (!gaudi2_irq_map_table[event_type].msg) - hl_fw_unmask_irq(hdev, event_type); + reset_flags |= HL_DRV_RESET_DELAY; } - - if (event_mask) - hl_notifier_event_send_all(hdev, event_mask); + event_mask |= HL_NOTIFIER_EVENT_DEVICE_RESET; + hl_device_cond_reset(hdev, reset_flags, event_mask); } static int gaudi2_memset_device_memory(struct hl_device *hdev, u64 addr, u64 size, u64 val) From patchwork Thu Oct 27 09:10:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 11684 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119622wru; Thu, 27 Oct 2022 02:12:21 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5wjT7CMOy/yufii9grl3PhFd0dXDK4RumyxIfxoogfZV/TEbv8SoNkJD3YEXy6V11f4YJx X-Received: by 2002:a05:6402:2751:b0:443:d90a:43d4 with SMTP id z17-20020a056402275100b00443d90a43d4mr45492016edd.368.1666861941366; Thu, 27 Oct 2022 02:12:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861941; cv=none; d=google.com; s=arc-20160816; b=Q3ZrBIp3WWyYtrYiqeJVrVGv8yl4Ps0lkPW+hBJbkYLCC2GbjExH3imZJMUWjX28ri EpyhNDaBueULw5zBsDP8Sbw+Fd60SIyHOFrsVqcxI8y3rEZKG9BXdGfmsUYg6tdL+cIJ DeesW5sFSZ7gE1kYa9t7ztZx/2s7mECijnFqalHH5rlCC59AUoOvuLdtv/pGib/vfqwt 5y4ZJQ+CUrdRaK/eipX9gzC5f7XkXmULRzinB67wBnHzptbiyvRjdx6yDflbcCSxwbIi AXTfKe+5BQU1JVGd5rcOANwArLFyQvMA5izTD8Pjf0tuEx+GtDpeA/BKnqptAyvwbkc1 8CEQ== 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=QtjN5qn5z922NowTXE6HNy5qNHv3wj2kNX943KdCEiA=; b=Kke6tnmMafRjhLdd18OsCeRgWxOsARXa59HafVZHU+uuZ2JuAK6AsfRawRpC7uO5Uu BlP/TjWBVqo0eqRki9x3C1E9XeYIBsbjxbigYOi+CjjFgGHBiQwtMSuhmAJkyBTyd3Un JOxYG8TaMY2lMNrB52Co0vYlhBtl5a8+yZqbmw4bdBhwfOReT1Xgvl+/CN3jVlVC8ao5 bDt4mWGXz8YrUIDBqmxYCbknZEBgG3ozm6PQmiXqwKAIl18e/LAfgKAPS5di/wsFrhAQ +mgYPSxlv/tWd0o6u0b+72ZRNMqfQYYMa0tbA29pgQfdTrS+Jk/29oGqA0MiYWoE28Os IMAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="ZQL6L+D/"; 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 cr11-20020a170906d54b00b007a0b8eead9fsi1044974ejc.60.2022.10.27.02.11.55; Thu, 27 Oct 2022 02:12:21 -0700 (PDT) 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="ZQL6L+D/"; 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 S235371AbiJ0JLa (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235264AbiJ0JKa (ORCPT ); Thu, 27 Oct 2022 05:10:30 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8597D63A8 for ; Thu, 27 Oct 2022 02:10:27 -0700 (PDT) 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 96BF162240 for ; Thu, 27 Oct 2022 09:10:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 336C1C433D7; Thu, 27 Oct 2022 09:10:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861826; bh=dk25msN57Pr+8aicPfnpENNefhThVP89CLpSsSKLWow=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZQL6L+D/i/xRquWbhfxbVd5+bCQ7QmWj5zYPEEeswfNwY4u1Aor3QS3UJDQzkUU1Y Ni+oX2HCJlkJHfarACJIUYYCO3bYIpfSe6c3UJ0cY7NBjqA2aBwa2gsinzzHaH3Zfg ziD+pB3VZYXXB63l0Ye/xmNLuXJmm94xsiBp5sX+UT8fvVU+PpoP0lMHmu5L5S+N0V /7PJTQSrYalq5lXsUvJK5NDVMIFxM+/JfWti/W/piT7BbbT/m6dA0XGEunbUxlZXFx 5IyudWxyDZ8x+zKDu+engH8qlyN2FFm17HCgaY7kV3DlVVg2uRN81yzs81pQIl1W4e zajwkxahS6P8A== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 10/15] habanalabs: use graceful hard reset for CS timeouts Date: Thu, 27 Oct 2022 12:10:02 +0300 Message-Id: <20221027091007.664797-10-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831427150598618?= X-GMAIL-MSGID: =?utf-8?q?1747831427150598618?= From: Tomer Tayar Use graceful hard reset when detecting a CS timeout that requires a device reset. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- .../misc/habanalabs/common/command_submission.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/misc/habanalabs/common/command_submission.c b/drivers/misc/habanalabs/common/command_submission.c index fa05770865c6..f1c69c8ed74a 100644 --- a/drivers/misc/habanalabs/common/command_submission.c +++ b/drivers/misc/habanalabs/common/command_submission.c @@ -798,7 +798,7 @@ static void cs_do_release(struct kref *ref) static void cs_timedout(struct work_struct *work) { struct hl_device *hdev; - u64 event_mask; + u64 event_mask = 0x0; int rc; struct hl_cs *cs = container_of(work, struct hl_cs, work_tdr.work); @@ -830,11 +830,7 @@ static void cs_timedout(struct work_struct *work) if (rc) { hdev->captured_err_info.cs_timeout.timestamp = ktime_get(); hdev->captured_err_info.cs_timeout.seq = cs->sequence; - - event_mask = device_reset ? (HL_NOTIFIER_EVENT_CS_TIMEOUT | - HL_NOTIFIER_EVENT_DEVICE_RESET) : HL_NOTIFIER_EVENT_CS_TIMEOUT; - - hl_notifier_event_send_all(hdev, event_mask); + event_mask |= HL_NOTIFIER_EVENT_CS_TIMEOUT; } switch (cs->type) { @@ -869,8 +865,12 @@ static void cs_timedout(struct work_struct *work) cs_put(cs); - if (device_reset) - hl_device_reset(hdev, HL_DRV_RESET_TDR); + if (device_reset) { + event_mask |= HL_NOTIFIER_EVENT_DEVICE_RESET; + hl_device_cond_reset(hdev, HL_DRV_RESET_TDR, event_mask); + } else if (event_mask) { + hl_notifier_event_send_all(hdev, event_mask); + } } static int allocate_cs(struct hl_device *hdev, struct hl_ctx *ctx, From patchwork Thu Oct 27 09:10:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 11682 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119555wru; Thu, 27 Oct 2022 02:12:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5pWyY+yY/B3CNWu1CMm3PxSe9+PzNnsPNFhRafZsrhLNcqev3rWC3l0JhPcMPg2BQV7cQ5 X-Received: by 2002:a17:907:6297:b0:72f:9aad:fcb with SMTP id nd23-20020a170907629700b0072f9aad0fcbmr40926518ejc.161.1666861934099; Thu, 27 Oct 2022 02:12:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861934; cv=none; d=google.com; s=arc-20160816; b=YABOzpQBZdCBSteda3k/brs71scEnVmLAkUAYoSfZsj6TqHmTeO99xM+nL8p6oDVcr 11YnDg0JwYu6rVp5ETCnSeu1QH/WxE5YmxjoQUjL1lcQgEb/7+G7m5VEjIbzsgmj5bS5 Ai/KOjjZkNgd0rbgdmtKYVeQJm+sBaVi8rArk/X18v12OZOEJ4HKSbtCxrw24WCGey/5 QvYZVf1zqIKkFR8liDQqUJ2QBZSBiUWgGhDaCiGyG2JSegfQTM91lGqw70dRodTLGMRj TI/xV459iQT2S80AT8ayi2/fywHgKszneTso4ygEwRVCAhn1nbZPvt66irDA+yoWBo7V 7Bpg== 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=dKGcHaikmCUz6YQLHIcKkpU1O20GfdpiqlMR5Jqd7GY=; b=sqbpWboQpgTUnfwTUUm7NMKCKCWfKutEG1gPhak2M6K7cCl+qTR/3EPX90C35gyhIL HOfPctjb0PiWY457P5fxwf+DY6wMFBqV/O1WhzmeKSCEHG3ycmXM3wG1pzQOcOQKTAsL MdN+vOQ0IuZTsBRsQPAbctl3enaaRE2AKQD1ti4NOlf1UZh1XRJ2hBcdi3od1PSfzh2Q +S9lT4Ve9k9TtsVA+u8CdAvK9D0N4tUccWDwya6Ore/RQfnlryrqNec35CPvM4IO//ga x9TTvbLu+0pI75hm2hikfL6TBz3MJuv/jhZHC5inxi+iOvHDQ+1FvrI5SgaL33Tn4iAV dXzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fBSkRuwf; 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 q20-20020a056402519400b0045d9a3adf19si1262117edd.564.2022.10.27.02.11.48; Thu, 27 Oct 2022 02:12:14 -0700 (PDT) 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=fBSkRuwf; 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 S235288AbiJ0JLU (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235216AbiJ0JK3 (ORCPT ); Thu, 27 Oct 2022 05:10:29 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1BA2255AC for ; Thu, 27 Oct 2022 02:10:28 -0700 (PDT) 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 EBF4662242 for ; Thu, 27 Oct 2022 09:10:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87775C43470; Thu, 27 Oct 2022 09:10:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861827; bh=ohUBb+gBWQFcCb9kdCbyCAtdzYz41hKtbSdipGN5VxQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fBSkRuwf9KVO0ecWQQykSvjXZNmoS892MH+rAUHpuYOiNuKSUHoI3iNhuBaPNN5Ae vXOizD5UmoZ+74et+HGCSmTgwSalyegEECQVdG0mkujRtkLKY7urQ2Q++wy99INNtL Ko7SpscAwnNb+T9zC4CI6oZUMuiH0QulCh1dgoOH98mO2UbCjBpNoHcLHZsYE8Le6M 17DmrFUivQulqqWdk9czo9/RQkzkLlyy3FT5W/CHkb3MOebx7jphdiJxgoXgsL5mG4 2SCM8cY+7BKhP8Cdt6BjfqSxQIaMmYIjHXUlb5m0ZC85/Txl2ddIHdTCs50RwkqiCU oEonEJWqKOlNw== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tal Cohen Subject: [PATCH 11/15] habanalabs: no consecutive err when user context is enabled Date: Thu, 27 Oct 2022 12:10:03 +0300 Message-Id: <20221027091007.664797-11-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831419778679503?= X-GMAIL-MSGID: =?utf-8?q?1747831419778679503?= From: Tal Cohen Consecutive error protects a device reset loop from being triggered due to h/w issues and enters the device into an unavailable state. When user may cause the error, an unavailable state will prevent the user from running its workloads. The commit prevents entering consecutive state when a user context is enabled. Signed-off-by: Tal Cohen Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index bcd959924971..61ddcb1ce508 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -1320,6 +1320,10 @@ static void handle_reset_trigger(struct hl_device *hdev, u32 flags) { u32 cur_reset_trigger = HL_RESET_TRIGGER_DEFAULT; + /* No consecutive mechanism when user context exists */ + if (hdev->is_compute_ctx_active) + return; + /* * 'reset cause' is being updated here, because getting here * means that it's the 1st time and the last time we're here From patchwork Thu Oct 27 09:10:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 11687 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119992wru; Thu, 27 Oct 2022 02:13:10 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7sW+YaqLWHHT+Le6fFES+5SQW4a4WszVsk6EJun9lZ7OFhKymL8pi3uKKxDHb18uuxkLTK X-Received: by 2002:a05:6402:c45:b0:442:c549:8e6b with SMTP id cs5-20020a0564020c4500b00442c5498e6bmr44883996edb.123.1666861989905; Thu, 27 Oct 2022 02:13:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861989; cv=none; d=google.com; s=arc-20160816; b=OlrtfWOYUU/cI7YhVfgbCxFcnKj5zHAf0PsBibBzfceJEXrVeuqsuUpyu5Y9ZnCtxW xMI5mDKg7OzFwUIs5K2fm/h3SY089Na/RrlAemydEvs9R4cBq9Z1ne8xSGgesuOafysO ycB0hx9JDioTsaahAPQ4I7lO+jzskTxC79Rsn6a18DaqUjbv8+0DttgstsNjJkCXqiyQ WRfEZ81YyF8ibBr1OB6m6jfz1cjPIJyUFCjiM9bJ1hQXh7rFk6hdOlgjgXeXN8zEB56x PdX777pl2wQVVZhrTY/opjQb2xJGBAMUE/1AYQwrDgSm///+APCdbsNXXHEARuPOokX4 0qyg== 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=zjvxgKSD4vOaoaliZJ/fDQvs/0A14b1JxBkJ8uINWLA=; b=O2ygpDs9MEUbhynte5nt0/9jVUONAFgifg7+ot49BZH/tf1xTrPX54MCmFhvP0TDut hIdY6Jo9QPPRX1h51e8UKUgBKotX9w89kwxfr4HmxD6NrL7TYfa9MOmlyWuKMeryChH4 vXOB4RGmEtRgaYHZ+sOpisnvG4bztiA7fIqvnnsGD7PNyC/Xe01PP4/PB9r0KKKIQy26 jBVZim03o7hRfSyOYoh07iqcJBdA4XGCPlBXRCsIeVR3hOJL+Nb6+x3F2V4OVDuEfFbb O1Ufv8/2CeDj2IcNftfpPI1wYMqXFk05FCQk/LFQcG3g/Ji2AUnH9alaNMOoErfKvPsp yxmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=qv4ysXdD; 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 q4-20020a5085c4000000b00461c0980a0dsi864310edh.163.2022.10.27.02.12.45; Thu, 27 Oct 2022 02:13:09 -0700 (PDT) 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=qv4ysXdD; 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 S235249AbiJ0JLp (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235280AbiJ0JKc (ORCPT ); Thu, 27 Oct 2022 05:10:32 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6AE5D2D1FC for ; Thu, 27 Oct 2022 02:10:29 -0700 (PDT) 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 5023762245 for ; Thu, 27 Oct 2022 09:10:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC741C4314E; Thu, 27 Oct 2022 09:10:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861828; bh=c9GWqwITW/Ec76TO4vaKC32ouj33G3nwcnNIKBnDo1g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qv4ysXdD0S4JZhKZhqSTXAwA5Sev2/KyXvDQUJZ6C/SU5cSiltZnb2XdI6vlKtY/9 A0RZi4gT0m/eN87JOITfz5kpsyuzvx0Yls/6Q/ruxJeTCizKZBDAyZWIpmFFhGjugB SVcQnqpEsi0cvNzSK+xf3R64hcWkAFVD759CUjBD8VZQscbb3sCfnAZioSRyX3V0e1 5NDX5WO+qh/2g1HIFOr6PUYt91Ojj8hU/zSB1y3YYvclr8QgoVaNaH0yrkFMtlGo9/ Pwvj0BKGQGZReCJxlP0K4syGd/Ht4E+NtnMKiOU+/jYbsQYY75C6yB6Llw3oKQKLVz gPbhxHIECE/4A== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: farah kassabri Subject: [PATCH 12/15] habanalabs: zero ts registration buff when allocated Date: Thu, 27 Oct 2022 12:10:04 +0300 Message-Id: <20221027091007.664797-12-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831477972435017?= X-GMAIL-MSGID: =?utf-8?q?1747831477972435017?= From: farah kassabri To avoid memory corruption in kernel memory while using timestamp registration nodes, zero the kernel buff memory when its allocated. Signed-off-by: farah kassabri Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/habanalabs/common/memory.c b/drivers/misc/habanalabs/common/memory.c index 99b1d6ce26ae..541e1b6a2176 100644 --- a/drivers/misc/habanalabs/common/memory.c +++ b/drivers/misc/habanalabs/common/memory.c @@ -2109,7 +2109,7 @@ static int hl_ts_alloc_buf(struct hl_mmap_mem_buf *buf, gfp_t gfp, void *args) /* Allocate the internal kernel buffer */ size = num_elements * sizeof(struct hl_user_pending_interrupt); - p = vmalloc(size); + p = vzalloc(size); if (!p) goto free_user_buff; From patchwork Thu Oct 27 09:10:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 11686 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp119912wru; Thu, 27 Oct 2022 02:12:58 -0700 (PDT) X-Google-Smtp-Source: AMsMyM53rW3OrKFNAfqrrQ89aBFQkaso76iasItyImdM1SHM02sBeiGnuWBT3tw5XKd9j3e2YXyg X-Received: by 2002:aa7:ca50:0:b0:461:9845:d9d2 with SMTP id j16-20020aa7ca50000000b004619845d9d2mr22367898edt.163.1666861978440; Thu, 27 Oct 2022 02:12:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666861978; cv=none; d=google.com; s=arc-20160816; b=HVy6k1rSFaoUuQHqpDr5W1zCL4vNjc+q+Gl+F+8obwSWheshJpoa5wltX9KJ2uFizo TxY2Y4IOW6n4aQQ/3r58uX0bYTzW0alasrST00YZuEsrUwWlXNLRUMcAKuEh4qyNDqlI uxMh6zVRJ4o7bOj2wreE0KoyK8K7uFD8I1ylhhjHvXb79s1FQStwe3jYVce2vA2i7H+c T9TrM5YOF1MGz1LIw66oHzUnOm/EirCOdqDIAQbKLe4QamJK2DnJS8K0rOWPy2Mo38td 5iKO10tJvOgywz9CWhHx4AqdV4PrRx4BMX/+J2cPr2Xkh42V45b5CI2C69WkQvQ0FAqD mPTQ== 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=43nd5AB3TmBy4+SqjSszeTQJAv/cu0icX4j9qamSpdw=; b=Zw0NS1UgIgKaizkkPdfr6hNNa4mEwBGpiqnNTgj60Cjl65Cm2wP6FR0W6IqJlDg/F5 dmd3qwU2oktcZsOUmWCtojCLmUNjDqS6iqnoFgs4C0eUR7Po16hnrktYh3ViFkXzcBRF DkWh0kCAR7Hqxjjomcam/Td8Lr9B6sbVeKbKQBox3kB3leTASdiudHhIjwKN47+D+4ZI bagloaPwN7OFRW1S0+OVkCzXl+xVQaUr1NZ/dqY0nmbCn9efkv977QGrawh0Rp8TvLJ6 qxx0LCXnrP24icBgP+iAPriBh3JLi8oHLHpN4/QMh7TOL0FTt+S7S3ILtyPLOZFaz9ra d91Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=t4e34kMb; 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 hb37-20020a170907162500b00782e85ae302si1076491ejc.574.2022.10.27.02.12.29; Thu, 27 Oct 2022 02:12:58 -0700 (PDT) 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=t4e34kMb; 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 S235380AbiJ0JLk (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235282AbiJ0JKd (ORCPT ); Thu, 27 Oct 2022 05:10:33 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0BDC734716 for ; Thu, 27 Oct 2022 02:10:31 -0700 (PDT) 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 9CD8062237 for ; Thu, 27 Oct 2022 09:10:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3CD5EC433D6; Thu, 27 Oct 2022 09:10:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861830; bh=Qaxj1nZeuG+aVWYd4CtRyuAwL6cY1PqVxtIBhtixJQo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=t4e34kMb+U8dXhEp/mB18wWn3/9U+N8u9fcvnyO2b5xIbGt5pt67D1wE4cVLoTbdP EE6iqcJrPr5swyQSS/k++kIPGtlIBTW0ebrjmycCjfLHc1uNCPhQiTRD0dm2SY75Xd LydMMtwQY9hrR0tgEKcOMWX0dAb3P/xtNcXg+GwMXBzqCZeT8559OICaxAE/6ByktL /Nia1qDiVX+dYDaCI0lIJQsZyT6qTFuAUpPyIi1wummn3j09QLEhU+Nem7WaNwW87z ECMLmgXcS21effqikSru/ltW5DDSfrjgxTr6KMkVdAjyxmQQqnVBBBk0JczOfCEYA8 NlVsMn+7avt4Q== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Tomer Tayar Subject: [PATCH 13/15] habanalabs: fix PCIe access to SRAM via debugfs Date: Thu, 27 Oct 2022 12:10:05 +0300 Message-Id: <20221027091007.664797-13-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831465886507900?= X-GMAIL-MSGID: =?utf-8?q?1747831465886507900?= From: Tomer Tayar hl_access_sram_dram_region() uses a region base which is set within the hl_set_dram_bar() function. However, for SRAM access this function is not called, and we end up with a wrong value of region base and with a bad calculated address. Fix it by initializing the region base value independently of whether hl_set_dram_bar() is called or not. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index 61ddcb1ce508..cb8ecc17bba1 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -69,17 +69,17 @@ int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val, enum debugfs_access_type acc_type, enum pci_region region_type, bool set_dram_bar) { struct pci_mem_region *region = &hdev->pci_mem_region[region_type]; - u64 old_base = 0, rc, new_bar_region_base = 0; + u64 old_base = 0, rc, bar_region_base = region->region_base; void __iomem *acc_addr; if (set_dram_bar) { - old_base = hl_set_dram_bar(hdev, addr, region, &new_bar_region_base); + old_base = hl_set_dram_bar(hdev, addr, region, &bar_region_base); if (old_base == U64_MAX) return -EIO; } acc_addr = hdev->pcie_bar[region->bar_id] + region->offset_in_bar + - (addr - new_bar_region_base); + (addr - bar_region_base); switch (acc_type) { case DEBUGFS_READ8: From patchwork Thu Oct 27 09:10:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 11688 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp120088wru; Thu, 27 Oct 2022 02:13:25 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4o6xL6BMDggp1iWQk4Vfp4g98St4XosEgMeAfm7vAJGIaEI8tLmXW3YZca0aeXPsarJcB/ X-Received: by 2002:a17:906:ee88:b0:78d:1a9a:b2db with SMTP id wt8-20020a170906ee8800b0078d1a9ab2dbmr40957072ejb.225.1666862005509; Thu, 27 Oct 2022 02:13:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666862005; cv=none; d=google.com; s=arc-20160816; b=aFhLkaL8Jk8qWPTtgfIoKztxy/AebgguIZqpO/36bolnqlkglP73L83iBWzSgN4XJz Z2OaHxsSnE+L8QRmjQAiiWoQ5rC/ijXUQM1TxAu2yoqX3cJJ7ZZXxNRrNCNdL1gL39Kc VMpmLQYclOtwUWUsKNeTJr8iNRPYp/+hTymNa5pEvchK4I27rtWh7k7B5uPM9Sut1/hC fg+2p1a10tLXNtQSz07Nfj2G5naXdBfevZvxQGdI5p1AtlD2Njgg5adScuI7DcAQltn+ yNCon0PC0WM8WKls2TV68dHtLGJdQV69kzkpUJieTC/amrUWD57AUIS1tcgFibWRFRSz hHuw== 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=UuQKpEPllZvyYEN2X9IZ3uqTml23AUl59aRf3wp12Po=; b=ymZWTl4wd3VMZ6hLCnqw45tXJOZ4+yJG0fN3xwJTNkvwAbKGfnNfJL5HeodZHTgKQU xYMk5bKKRMqdZbX8dIU6Muu+VnrA6IG2kFu2SuGhafJWhvlIhw0NPM1iX0GsaBw8nUHq axB/q4qScvSe1l9YuxsZziVZ/jb/aULZX2ubXqiPSqf9oL7u+TFtI3GmlGMfezOEWGzb Je1+HBerHBraioVCcfQ1iJ40D7F2cruNFnKoqgblOWH7UrbLLFP25d4nl4wwyw/T8IDR peFcsKnBynwfmvUtxTUrLS4k6cthK4PJMH39Rqn/cVkMbypsGjVqbc1eD4Wc8Kk0PKa1 yMVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PjxkOKjA; 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 z2-20020a50eb42000000b00461606e36dbsi1044635edp.131.2022.10.27.02.13.01; Thu, 27 Oct 2022 02:13:25 -0700 (PDT) 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=PjxkOKjA; 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 S235282AbiJ0JLt (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235236AbiJ0JKf (ORCPT ); Thu, 27 Oct 2022 05:10:35 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9DCF255BC for ; Thu, 27 Oct 2022 02:10:32 -0700 (PDT) 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 03A7C62240 for ; Thu, 27 Oct 2022 09:10:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9116EC433D7; Thu, 27 Oct 2022 09:10:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861831; bh=rIk8jKMhlIFhlHw+rsEUWOL8K4fslKFxTHy3uNVL2tM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PjxkOKjA5XjTMmA9rsknmXP6ASpUDfMeFE4VgVatFfrAI1qAWJitNU/+3bF3ArxOv MRZipNFgM0UtyrRPOcaQ35ZCfNg3kJWhuv9SrBZCUnTD939gc+JlT7Ha6MxlT1QDtR Gux0kogyG0pvWTsLPfSXmWfdA762mazs6klbLG+YxVG6F0Xi6va9rDSOcKkOBaCiaG iMlOW3gV7IcJD46ciJ9iB+hMO4M/9QGb5osyRI6ucfPNSmRAKA3jkFTQSbogFGm2Bx iSKnm2Mt+3avDc5kvfIbDDDumtKUWtQGjyEPIk5KRvAd1HD6HfoOouGIwm/CsDcvIW zGFUh3MLkM8Zg== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Ofir Bitton Subject: [PATCH 14/15] habanalabs: add warning print upon a PCI error Date: Thu, 27 Oct 2022 12:10:06 +0300 Message-Id: <20221027091007.664797-14-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831494390461906?= X-GMAIL-MSGID: =?utf-8?q?1747831494390461906?= From: Ofir Bitton In order to know if driver catches PCI errors correctly, we need to print a warning per each error. Signed-off-by: Ofir Bitton Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/habanalabs_drv.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/misc/habanalabs/common/habanalabs_drv.c b/drivers/misc/habanalabs/common/habanalabs_drv.c index 714994725224..e82af8989700 100644 --- a/drivers/misc/habanalabs/common/habanalabs_drv.c +++ b/drivers/misc/habanalabs/common/habanalabs_drv.c @@ -595,15 +595,16 @@ hl_pci_err_detected(struct pci_dev *pdev, pci_channel_state_t state) switch (state) { case pci_channel_io_normal: + dev_warn(hdev->dev, "PCI normal state error detected\n"); return PCI_ERS_RESULT_CAN_RECOVER; case pci_channel_io_frozen: - dev_warn(hdev->dev, "frozen state error detected\n"); + dev_warn(hdev->dev, "PCI frozen state error detected\n"); result = PCI_ERS_RESULT_NEED_RESET; break; case pci_channel_io_perm_failure: - dev_warn(hdev->dev, "failure state error detected\n"); + dev_warn(hdev->dev, "PCI failure state error detected\n"); result = PCI_ERS_RESULT_DISCONNECT; break; @@ -639,6 +640,10 @@ static void hl_pci_err_resume(struct pci_dev *pdev) */ static pci_ers_result_t hl_pci_err_slot_reset(struct pci_dev *pdev) { + struct hl_device *hdev = pci_get_drvdata(pdev); + + dev_warn(hdev->dev, "PCI slot reset detected\n"); + return PCI_ERS_RESULT_RECOVERED; } From patchwork Thu Oct 27 09:10:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 11689 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp120152wru; Thu, 27 Oct 2022 02:13:36 -0700 (PDT) X-Google-Smtp-Source: AMsMyM77HRa4NxhjzOBGJfMFcpxB63Gtxnh24s5F6o5DC8Pr5lFu/qdn5hPR1uzHrIa32/QDXFv4 X-Received: by 2002:a17:906:c151:b0:78d:cdbc:9fb7 with SMTP id dp17-20020a170906c15100b0078dcdbc9fb7mr39717861ejc.688.1666862016360; Thu, 27 Oct 2022 02:13:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666862016; cv=none; d=google.com; s=arc-20160816; b=SsZiwEVJBniZHWdRbWAakNoIAutj77kZmDijQMOULe5G18fUJ6clGwn+SeFsfhJx05 CvG2odJTo0M2PbnhHrPFgm0Z2nLF2YAngDel4guKk7p7y2I+2b0nQfRKqfMYtJALTu83 mTQXpKgiQJLLZkO4LYdSg2dCXJwKhlv0/iC1cMTeWcoawmHC8/WkccFSHenROQ8rMdF5 br61D0b/niPAeosY57+YNcxIde+4qQI1JWPEeK4iQkDdxKql6vokmsfgenY4NET5Vc0+ 5NV/MnxLG5NebtGVkGtcuYEd0mKbtwrDCV1XuHEL84aNQBvAs2DgMrEieu84mbNUqnUw 2YeA== 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=o6Pe/FCie3Ggm+g46IrEEyiBtgfpYTmW3nP2UkG3KGo=; b=I0mUSIANlzKHf9LYFwta/u8wesPSAEUBrKN1fiDzMS7EAKayryOilPd96bD0g+UHL6 3AQz5Tk9uoWj+OAyztsawI6J4MQYWTegbCqTzXR6vizN4HsGb6FpGePbrCnLfWcvLaVK zz9G5dok/HlYYPerRT8/kK5yeKk2VjoY7ytBuhZUxRJnatkCL6hCy0TXkfl5JM+/34Pd zm/FPJgj7IQrXJaS1kcWPKbvX34ouR4Gh7+59NohLLbp5FAxJaeK5i2likJxdB/BtRwZ SFHRTDVkz9I2+D8Xk5SQOt+0/WyZVCAtetNDX5WAaxMY6ZiszhyH9mwsxy0r0NtSLxp2 mZ1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WG84I6hC; 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 ga27-20020a1709070c1b00b007832270e889si968686ejc.90.2022.10.27.02.13.04; Thu, 27 Oct 2022 02:13:36 -0700 (PDT) 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=WG84I6hC; 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 S235324AbiJ0JLy (ORCPT + 99 others); Thu, 27 Oct 2022 05:11:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235301AbiJ0JKg (ORCPT ); Thu, 27 Oct 2022 05:10:36 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60C1337424 for ; Thu, 27 Oct 2022 02:10:35 -0700 (PDT) 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 1995EB8255A for ; Thu, 27 Oct 2022 09:10:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5F9CC433D6; Thu, 27 Oct 2022 09:10:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666861832; bh=CL2E2hze9JVQV1r9qVwQtOZ9wYZoyKE/msP/qwJKrLc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WG84I6hClR8cpPgghIFsQpX8Cu4RcQwFv1kBkDGk2ax+zRU0kXXeB3NZvtDslVd0y mWMF25+BXjU/2Ee+aghyhhvgdSUUuYRliloKrgjo6yIGQxqCvO6cySmSvCwWC8Uqit vtL6eQSPMIWlC2eiI3brAu9LMpLBMZlxafP96F14Gyr/0f/QjYrKAT/gioeBfD2c54 xUfYDZigyi9euWkQAcyHEUVDcOEuhYNNDHPaCiyPp6ku+MXDQRdu4gWeXgqzb7QfDg IP3EqpIVQkGvj5vcTwU81eSNHh6AgJkMBDilukFjPl7r4c9rV3QlKCbOA8ByjGJm5b RmG2UTAY7Dafg== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Ofir Bitton Subject: [PATCH 15/15] habanalabs: remove redundant gaudi2_sec asic type Date: Thu, 27 Oct 2022 12:10:07 +0300 Message-Id: <20221027091007.664797-15-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221027091007.664797-1-ogabbay@kernel.org> References: <20221027091007.664797-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 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?1747831505573240296?= X-GMAIL-MSGID: =?utf-8?q?1747831505573240296?= From: Ofir Bitton As Gaudi2 has a single PCI id, the secured asic type is redundant. Signed-off-by: Ofir Bitton Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/device.c | 3 --- drivers/misc/habanalabs/common/habanalabs.h | 2 -- drivers/misc/habanalabs/common/mmu/mmu.c | 1 - drivers/misc/habanalabs/common/sysfs.c | 2 -- drivers/misc/habanalabs/gaudi2/gaudi2.c | 2 +- 5 files changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index cb8ecc17bba1..3ea1ee1ec8ef 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -748,9 +748,6 @@ static int device_early_init(struct hl_device *hdev) gaudi2_set_asic_funcs(hdev); strscpy(hdev->asic_name, "GAUDI2", sizeof(hdev->asic_name)); break; - case ASIC_GAUDI2_SEC: - gaudi2_set_asic_funcs(hdev); - strscpy(hdev->asic_name, "GAUDI2 SEC", sizeof(hdev->asic_name)); break; default: dev_err(hdev->dev, "Unrecognized ASIC type %d\n", diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h index bfaaa9daa750..7d191f388953 100644 --- a/drivers/misc/habanalabs/common/habanalabs.h +++ b/drivers/misc/habanalabs/common/habanalabs.h @@ -1192,7 +1192,6 @@ struct hl_dec { * @ASIC_GAUDI: Gaudi device (HL-2000). * @ASIC_GAUDI_SEC: Gaudi secured device (HL-2000). * @ASIC_GAUDI2: Gaudi2 device. - * @ASIC_GAUDI2_SEC: Gaudi2 secured device. */ enum hl_asic_type { ASIC_INVALID, @@ -1200,7 +1199,6 @@ enum hl_asic_type { ASIC_GAUDI, ASIC_GAUDI_SEC, ASIC_GAUDI2, - ASIC_GAUDI2_SEC, }; struct hl_cs_parser; diff --git a/drivers/misc/habanalabs/common/mmu/mmu.c b/drivers/misc/habanalabs/common/mmu/mmu.c index 589179f8cd41..67d3e70cf571 100644 --- a/drivers/misc/habanalabs/common/mmu/mmu.c +++ b/drivers/misc/habanalabs/common/mmu/mmu.c @@ -635,7 +635,6 @@ int hl_mmu_if_set_funcs(struct hl_device *hdev) hl_mmu_v1_set_funcs(hdev, &hdev->mmu_func[MMU_DR_PGT]); break; case ASIC_GAUDI2: - case ASIC_GAUDI2_SEC: /* MMUs in Gaudi2 are always host resident */ hl_mmu_v2_hr_set_funcs(hdev, &hdev->mmu_func[MMU_HR_PGT]); break; diff --git a/drivers/misc/habanalabs/common/sysfs.c b/drivers/misc/habanalabs/common/sysfs.c index 36e9814139d1..c924fc994bd9 100644 --- a/drivers/misc/habanalabs/common/sysfs.c +++ b/drivers/misc/habanalabs/common/sysfs.c @@ -248,8 +248,6 @@ static ssize_t device_type_show(struct device *dev, case ASIC_GAUDI2: str = "GAUDI2"; break; - case ASIC_GAUDI2_SEC: - str = "GAUDI2 SEC"; break; default: dev_err(hdev->dev, "Unrecognized ASIC type %d\n", diff --git a/drivers/misc/habanalabs/gaudi2/gaudi2.c b/drivers/misc/habanalabs/gaudi2/gaudi2.c index 22f5445fe71c..03f8cf9bb136 100644 --- a/drivers/misc/habanalabs/gaudi2/gaudi2.c +++ b/drivers/misc/habanalabs/gaudi2/gaudi2.c @@ -3969,7 +3969,7 @@ static void gaudi2_init_firmware_loader(struct hl_device *hdev) fw_loader->sram_bar_id = SRAM_CFG_BAR_ID; fw_loader->dram_bar_id = DRAM_BAR_ID; - if (hdev->asic_type == ASIC_GAUDI2 || hdev->asic_type == ASIC_GAUDI2_SEC) + if (hdev->asic_type == ASIC_GAUDI2) fw_loader->cpu_timeout = GAUDI2_CPU_TIMEOUT_USEC; else /* ASIC_GAUDI2_FPGA */ fw_loader->cpu_timeout = GAUDI2_FPGA_CPU_TIMEOUT;