Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp2055550rwi; Fri, 28 Oct 2022 02:24:17 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7oh9J4Mx/OSlskNZ4c9Azkirh8pymXWYZDFjKivSa5gThztX3PGo9gtJjq8UYsH7fJbKqn X-Received: by 2002:a65:6e0f:0:b0:43a:1cd4:4ae6 with SMTP id bd15-20020a656e0f000000b0043a1cd44ae6mr45212332pgb.289.1666949057038; Fri, 28 Oct 2022 02:24:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666949057; cv=none; d=google.com; s=arc-20160816; b=LLELleTJzNsWz47b9gOgJu3k19fB9Njl+T+sNmRjA7+Sc7gBOse70R8B6g72IefzfR n2b/zUm4wS1SA/id+bw03mY3FwmNXcQVK6Z4ke7NnqqTp42J+hrfmz9H2SlJwvLOZrP9 CG1/Yi8kT+BnNzavwrkWuGJg7idNe7eWkiiXYtbsFTxo3eEJZwLsIwtrwzWCaZDWmFmI RNurzMLHSmCp4ehBBRUsv5TsMTf8Lnp7e4HC+ULSNnKHpUg3971MM80zYoNkrmbMFsAV sBvf9/URN+JMSST4SXKVcXggJRH03aGY2t0OceityireSFB7UPwVshaC6MpEDnYv1ZgI R8+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=x1L42+LCw/BuCrHRpLPc25vTi7gNqb6QS+8UDQW1KmM=; b=FGLtWDsmFjeS7f3Pu/C4fpHE/tK43XfiQnIjmdPJIsh9lRCWVeRRLO7/TElROgaFIS zTXlt6Sdo27H6zWSDfuPtjLck/5y+A90N6y8jzvSUhu4q8zJ4ZLM1wUcWtiD58ART9Es 7RNazv8GMtjuccIgipmL5iPjWuqqsX5uagCzfNJOzsLj5eNhLRJfmsbcWCd1hysCTVCM K/dWFSDP5zU4lS/vstqYSyGtZM2A13KD2g7vPKXsxKGrH1h/Qis4I3eZZqHbYKt+C1/Y 8SxPyWOAX6KYgSxK3a1NDRoRNou6P6Z2IgpcIoAD94sdyYIN6BvYsur+W7JZSALTaJIy gWww== 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 u1-20020a056a00158100b0056bb75c96d6si5549878pfk.227.2022.10.28.02.24.05; Fri, 28 Oct 2022 02:24:17 -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 S229706AbiJ1IdY (ORCPT + 99 others); Fri, 28 Oct 2022 04:33:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229489AbiJ1IdX (ORCPT ); Fri, 28 Oct 2022 04:33:23 -0400 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 023981C491B; Fri, 28 Oct 2022 01:33:22 -0700 (PDT) Received: from fraeml711-chm.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4MzG3Z4cxzz6864S; Fri, 28 Oct 2022 16:31:22 +0800 (CST) Received: from lhrpeml500003.china.huawei.com (7.191.162.67) by fraeml711-chm.china.huawei.com (10.206.15.60) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 28 Oct 2022 10:33:19 +0200 Received: from [10.48.144.136] (10.48.144.136) by lhrpeml500003.china.huawei.com (7.191.162.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 28 Oct 2022 09:33:18 +0100 Message-ID: Date: Fri, 28 Oct 2022 09:33:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [PATCH RFC v3 2/7] ata: libata-scsi: Add ata_internal_queuecommand() To: Damien Le Moal , , , , , , , CC: , , , , , , , References: <1666693976-181094-1-git-send-email-john.garry@huawei.com> <1666693976-181094-3-git-send-email-john.garry@huawei.com> <08fdb698-0df3-7bc8-e6af-7d13cc96acfa@opensource.wdc.com> <83d9dc82-ea37-4a3c-7e67-1c097f777767@huawei.com> <9a2f30cc-d0e9-b454-d7cd-1b0bd3cf0bb9@opensource.wdc.com> <0e60fab5-8a76-9b7e-08cf-fb791e01ae08@huawei.com> <71b56949-e4d7-fd94-c44a-867080b7a4fa@opensource.wdc.com> From: John Garry In-Reply-To: <71b56949-e4d7-fd94-c44a-867080b7a4fa@opensource.wdc.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.48.144.136] X-ClientProxiedBy: lhrpeml100005.china.huawei.com (7.191.160.25) To lhrpeml500003.china.huawei.com (7.191.162.67) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H2,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 On 28/10/2022 09:07, Damien Le Moal wrote: >> Well, yeah. So if some error happens and EH kicks in, then full queue >> depth of requests may be allocated. I have seen this for NCQ error. So >> this is why I make in very first patch change allow us to allocate >> reserved request from sdev request queue even when budget is fully >> allocated. >> >> Please also note that for AHCI, I make reserved depth =1, while for SAS >> controllers it is greater. This means that in theory we could alloc > 1x >> reserved command for SATA disk, but I don't think it matters. > Yes, 1 is enough. However, is 1 reserved out of 32 total, meaning that the > user can only use 31 tags ? or is it 32+1 reserved ? which we can do since > when using the reserved request, we will not use a hw tag (all reserved > requests will be non-ncq). > > The 32 + 1 scheme will work. Yes, 32 + 1 is what we want. I now think that there is a mistake in my code in this series for ahci. So I think we need for ahci: can_queue = 33 nr_reserved_cmds = 1 while I only have can_queue = 32 I need to check that again for ahci driver and AHCI SHT... > But for CDL command completion handling, we > will need a NCQ command to do a read log, to avoid forcing a queue drain. > For that to reliably work, we'll need a 31+1+1 setup... > So is your idea to permanently reserve 1 more command from 32 commands ? Or re-use 1 from 32 (and still also have 1 separate internal command)? Thanks, John