From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD31EC07E96 for ; Thu, 15 Jul 2021 16:04:41 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id EB5E760FD8 for ; Thu, 15 Jul 2021 16:04:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB5E760FD8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 273584014D; Thu, 15 Jul 2021 18:04:40 +0200 (CEST) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 7ED5F40143 for ; Thu, 15 Jul 2021 18:04:37 +0200 (CEST) Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4GQfDv066gzXtQP; Thu, 15 Jul 2021 23:58:55 +0800 (CST) Received: from dggpeml500024.china.huawei.com (7.185.36.10) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 16 Jul 2021 00:04:34 +0800 Received: from [10.40.190.165] (10.40.190.165) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 16 Jul 2021 00:04:34 +0800 From: fengchengwen To: , , , , , CC: , , , , , , , , , References: <1625231891-2963-1-git-send-email-fengchengwen@huawei.com> <1626363661-51103-1-git-send-email-fengchengwen@huawei.com> Message-ID: Date: Fri, 16 Jul 2021 00:04:33 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <1626363661-51103-1-git-send-email-fengchengwen@huawei.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.40.190.165] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To dggpeml500024.china.huawei.com (7.185.36.10) X-CFilter-Loop: Reflected Subject: Re: [dpdk-dev] [PATCH v4] dmadev: introduce DMA device library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" @burce, jerin Some unmodified review comments are returned here: 1. COMMENT: > + memset(dmadev_shared_data->data, 0, > + sizeof(dmadev_shared_data->data)); I believe all memzones are zero on allocation anyway, so this memset is unecessary and can be dropped. REPLY: I didn't find a comment to clear with this function. 2. COMMENT: > + * @see struct rte_dmadev_info::dev_capa > + */ Drop this flag as unnecessary. All devices either always provide ordering guarantee - in which case it's a no-op - or else support the flag. REPLY: I prefer define it, it could let user know whether support fence. 3. COMMENT: I would suggest v4 to split the patch like (so that we can review and ack each patch) 1) Only public header file with Doxygen inclusion, (There is a lot of Doxygen syntax issue in the patch) 2) 1 or more patches for implementation. REPLY: the V4 still one patch and with doxyen files, It's better now for just one patch of header file and implementation. Later I will push doxyen file patch and skelton file patch. 4. COMMENT: > + * @see RTE_DMA_DEV_TO_MEM > + * @see RTE_DMA_DEV_TO_DEV Since we can set of only one direction per vchan . Should be we make it as enum to make it clear. REPLY: May some devices support it. I think it's OK for future use. 5. COMMENT: > +__rte_experimental > +int > +rte_dmadev_vchan_release(uint16_t dev_id, uint16_t vchan); I would like to remove this to align with other device class in DPDK and use configure and start again if there change in vchannel setup/ REPLY: I think we could have dynamic reconfig vchan without stop device ability. 6. COMMENT: > + > +#define RTE_DMADEV_ALL_VCHAN 0xFFFFu RTE_DMADEV_VCHAN_ALL ?? REPLY: I don't like reserved a fix length queue stats in 'struct rte_eth_stats', which may counter the RTE_ETHDEV_QUEUE_STAT_CNTRS too short problem. So here I define the API could get one or ALL vchans stats. 7. COMMENT: > +rte_dmadev_copy_sg(uint16_t dev_id, uint16_t vchan, const struct rte_dma_sg *sg, > + uint64_t flags) In order to avoid population of rte_dma_sg in stack (as it is fastpath), I would like to change the API as rte_dmadev_copy_sg(uint16_t dev_id, uint16_t vchan, struct rte_dma_sge *src, struct rte_dma_sge *dst, uint16_t nb_src, uint16_t nb_dst, uint64_t flags) REPLY: Too many (7) parameters if it separates. I prefer define a struct wrap it. 8. COMMENT: change RTE_LOG_REGISTER(rte_dmadev_logtype, lib.dmadev, INFO); to RTE_LOG_REGISTER_DEFAULT, and change rte_dmadev_logtype to logtype. REPLY: Our CI version still don't support RTE_LOG_REGISTER_DEFAULT (have not sync newest version), I think it could fix in next version or patch. and because RTE_LOG_REGISTER define the rte_dmadev_logtype as a un-static variable, if we change to logtype, there maybe namespace conflict, so I think it's ok to retain the original variables. thanks. [snip] On 2021/7/15 23:41, Chengwen Feng wrote: > This patch introduce 'dmadevice' which is a generic type of DMA > device. > > The APIs of dmadev library exposes some generic operations which can > enable configuration and I/O with the DMA devices. > > Signed-off-by: Chengwen Feng > --- > v4: > * replace xxx_complete_fails with xxx_completed_status. > * add SILENT capability, also a silent_mode in rte_dmadev_conf. > * add op_flag_llc for performance. > * rename dmadev_xxx_t to rte_dmadev_xxx_t to avoid namespace conflict. > * delete filed 'enqueued_count' from rte_dmadev_stats. > * make rte_dmadev hold 'dev_private' filed. > * add RTE_DMA_STATUS_NOT_ATTEMPED status code. > * rename RTE_DMA_STATUS_ACTIVE_DROP to RTE_DMA_STATUS_USER_ABORT. > * rename rte_dma_sg(e) to rte_dmadev_sg(e) to make sure all struct > prefix with rte_dmadev. > * put the comment afterwards. > * fix some doxgen problem. > * delete macro RTE_DMADEV_VALID_DEV_ID_OR_RET and > RTE_DMADEV_PTR_OR_ERR_RET. > * replace strlcpy with rte_strscpy. > * other minor modifications from review comment. > v3: [snip]