Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3088253iog; Mon, 27 Jun 2022 08:54:46 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uCJRg8zvtrRZio/dEMQ5d3Pb4cbWsL/1IPnvnp2Pb4m8aRvIrkPMAsK+3suctbv1gR7xid X-Received: by 2002:a05:6a00:140a:b0:4e0:54d5:d01 with SMTP id l10-20020a056a00140a00b004e054d50d01mr15550383pfu.20.1656345286056; Mon, 27 Jun 2022 08:54:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656345286; cv=none; d=google.com; s=arc-20160816; b=VRfDraci4ujKCiClpgTzl7l48R4DFuzaBRW9UMhCxcUtmLn2cBeZOiHlpkHZNotFc7 tTg3KJpapmi4chk1FV3428lbfE25WzOrcDrSLL2x0W5L3bndxgp9/vq4ecEycKLcWNBh LNgK2s9riXAL4WjF7Vc/2HCiNQsPdCOEwuM8e9ZoAFAzlY+XFiPKJh39Gj/AEa6RqBLD kAeNEPuB7UcAMFl4N3GYY6fP16gwaUn8tnfvPQf76ZNWvBGdC5St/NaNjXTOF3wCdb5k e+ru+ELvYmOs4MlBTeDlplTiIpFJemtDOHmgdNwqX5nk4PHusSlFiCqpxyO6HqX6L1ig Z9CA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=YwYrBFxe5cHtP4lFxjgu3qvVQrUlGQXzFGrUDu/jNZM=; b=YPUQH6z3BPdBB6UMCRjYdW2pJBZ/boSf+2plhZiLzRyOHgnOGq9GInd0FYiJPuadfq aedK3g4Zs8HWPMdQKyjxCoKIkTjfOgUKa/AkZXoMCycGt0ukKNhFm3dpZUWAUKRHAQhC Y3OaB/HlweehZDCJX9dk8bsoVkF8jzdNYWWcECQ6MwHmek0AKXrHZKhx35HQAkusxKqj ApfoA3K/XXEhnxtgFvfKJNTLe9/hEwp38m17mNRBVcPKERir/brwMNSIheV5oNGBnrKO YnY4Yy6xt0GjGR2LA89Y59DMi80gtdONxQq5oBZAYPC6m0mdOIB/nNPoeiaGuhIwdJ5G R6Ww== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 13-20020a170902c24d00b0016a64fd5b0esi12314576plg.122.2022.06.27.08.54.31; Mon, 27 Jun 2022 08:54:46 -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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238370AbiF0PdG (ORCPT + 99 others); Mon, 27 Jun 2022 11:33:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52396 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236506AbiF0PcH (ORCPT ); Mon, 27 Jun 2022 11:32:07 -0400 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2BD201A06B; Mon, 27 Jun 2022 08:31:49 -0700 (PDT) Received: from fraeml741-chm.china.huawei.com (unknown [172.18.147.201]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4LWs6q2Lcmz6H8F0; Mon, 27 Jun 2022 23:27:47 +0800 (CST) Received: from lhreml724-chm.china.huawei.com (10.201.108.75) by fraeml741-chm.china.huawei.com (10.206.15.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Mon, 27 Jun 2022 17:31:47 +0200 Received: from localhost.localdomain (10.69.192.58) by lhreml724-chm.china.huawei.com (10.201.108.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Mon, 27 Jun 2022 16:31:43 +0100 From: John Garry To: , , , , , , , CC: , , , , , , , John Garry Subject: [PATCH v4 4/5] scsi: scsi_transport_sas: Cap shost max_sectors according to DMA optimal mapping limit Date: Mon, 27 Jun 2022 23:25:20 +0800 Message-ID: <1656343521-62897-5-git-send-email-john.garry@huawei.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1656343521-62897-1-git-send-email-john.garry@huawei.com> References: <1656343521-62897-1-git-send-email-john.garry@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.58] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To lhreml724-chm.china.huawei.com (10.201.108.75) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 Streaming DMA mappings may be considerably slower when mappings go through an IOMMU and the total mapping length is somewhat long. This is because the IOMMU IOVA code allocates and free an IOVA for each mapping, which may affect performance. For performance reasons set the request queue max_sectors from dma_opt_mapping_size(), which knows this mapping limit. Signed-off-by: John Garry --- drivers/scsi/scsi_transport_sas.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c index 12bff64dade6..1b45248748e0 100644 --- a/drivers/scsi/scsi_transport_sas.c +++ b/drivers/scsi/scsi_transport_sas.c @@ -225,6 +225,7 @@ static int sas_host_setup(struct transport_container *tc, struct device *dev, { struct Scsi_Host *shost = dev_to_shost(dev); struct sas_host_attrs *sas_host = to_sas_host_attrs(shost); + struct device *dma_dev = shost->dma_dev; INIT_LIST_HEAD(&sas_host->rphy_list); mutex_init(&sas_host->lock); @@ -236,6 +237,11 @@ static int sas_host_setup(struct transport_container *tc, struct device *dev, dev_printk(KERN_ERR, dev, "fail to a bsg device %d\n", shost->host_no); + if (dma_dev) { + shost->max_sectors = min_t(unsigned int, shost->max_sectors, + dma_opt_mapping_size(dma_dev) >> SECTOR_SHIFT); + } + return 0; } -- 2.35.3