From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <dev-bounces@dpdk.org> Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id F14DEA0577; Tue, 7 Apr 2020 09:22:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D92052BE9; Tue, 7 Apr 2020 09:22:51 +0200 (CEST) Received: from mail-io1-f68.google.com (mail-io1-f68.google.com [209.85.166.68]) by dpdk.org (Postfix) with ESMTP id 121642BE2 for <dev@dpdk.org>; Tue, 7 Apr 2020 09:22:51 +0200 (CEST) Received: by mail-io1-f68.google.com with SMTP id m4so2328229ioq.6 for <dev@dpdk.org>; Tue, 07 Apr 2020 00:22:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LzGKfJ8n3lVIRuFOw0WSDyFsFndr0gIY2FMiK4G5NNo=; b=eClaJaHj3mE5yLF9zmDUwWPaphzGnMfQ+Sd70olgFTMr7RzoEJXK0P2psG4cowhxRT NXY8BHTVawC3P8+qjoMCvroFSmkZuW/iHYt8xGQNJ0nw5osS/9jQ2l2FxMRa5GrtotG4 5voikhT0M1lKYczx/G29dq5L/j7p8hWK/p2RuhHxgQVnf1iTX9+1pGxQ7QYL8jy2e7A4 3SgeB4pN5VVoWk3OqfVOb7N+AyGY+qsr6ZWvvj3iMWY8DcMyayRYHPgNyDkjhtIDZkeP x16qLn7aUleYz+VzaiNO2Ov4Dio6iSS9gli6B+bvilVpDn17T5xOvvdTUeJ3LeLl4KUi C9EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LzGKfJ8n3lVIRuFOw0WSDyFsFndr0gIY2FMiK4G5NNo=; b=iyPSexgzYuX0SvnLbRu0FuHoNOY/JLo3Y1lGZ2mugE3YFSZ4jax0RIN+ye1J7znxCe dCX6DOqKzDuqBPL3VK6HUADraZJPBLqoJwL5/zWDgNAfT5G15wjvdyDrX4IFCKVPIrZE oQty5IWMGDFlkiHaa/cUaSy/7I8Yf6EzheZodn3VWhkbpOfHdXWf2dbQVK+HJuF3YFwn wLOx2KArD2G0YdkfgPIeK5YCLHCpGBK23/wxFZGilCVbrYbwuWm3Gx6mSLptIBS3ZIB5 BlG51tqs3dwTTfVnMXkqHTSn8F8A5xFlWOoBMmJVdxp+0Xmt6MXiGqWvOaz7mDQbd2kn aqDw== X-Gm-Message-State: AGi0PuZUrIyxBOES4RMHkZZ5IrvTXn8Aq7JRcO8Jc98/ykFUncsvX+hn vjvKogQIqW/fMse1+KZPNuYjfNppeSeDp3V+LT4= X-Google-Smtp-Source: APiQypKtNuzkq3vA61df2LSqQso/2mpqsJklLZphBSvuVtZn9y4mNybcEM3axNsSOTbMkKfHvO/9YaA0CXrM9IJ29EU= X-Received: by 2002:a02:ac94:: with SMTP id x20mr637318jan.133.1586244170321; Tue, 07 Apr 2020 00:22:50 -0700 (PDT) MIME-Version: 1.0 References: <1585464438-111285-1-git-send-email-orika@mellanox.com> <AM6PR05MB51764ED392887FB89C50588BDBC50@AM6PR05MB5176.eurprd05.prod.outlook.com> <CY4PR1801MB186387B80F63A5F730CCC70BDEC20@CY4PR1801MB1863.namprd18.prod.outlook.com> <2061995.157zFVKu8G@xps> <CALBAE1PwF0Z7-TMSuqw32oWg2DvdyA=gSq+DAKAK-ScfZ4Hk=g@mail.gmail.com> <AM6PR05MB51767F31B28EFAD6C556C588DBC20@AM6PR05MB5176.eurprd05.prod.outlook.com> <CALBAE1P9EpadQGvGDebyjxymwweVz5rJob2sLu_DBSoBY-cCJw@mail.gmail.com> <AM6PR05MB517664C0694AD2A384FDCFA0DBC30@AM6PR05MB5176.eurprd05.prod.outlook.com> In-Reply-To: <AM6PR05MB517664C0694AD2A384FDCFA0DBC30@AM6PR05MB5176.eurprd05.prod.outlook.com> From: Jerin Jacob <jerinjacobk@gmail.com> Date: Tue, 7 Apr 2020 12:52:34 +0530 Message-ID: <CALBAE1MOdamv02WxeHZu2OOajzg=URXACPhhtLJRX1Xz=bRN0Q@mail.gmail.com> To: Ori Kam <orika@mellanox.com> Cc: Thomas Monjalon <thomas@monjalon.net>, Jerin Jacob Kollanukkaran <jerinj@marvell.com>, "xiang.w.wang@intel.com" <xiang.w.wang@intel.com>, Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>, "dev@dpdk.org" <dev@dpdk.org>, Shahaf Shuler <shahafs@mellanox.com>, "hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>, Opher Reviv <opher@mellanox.com>, Alex Rosenbaum <alexr@mellanox.com>, Dovrat Zifroni <dovrat@marvell.com>, Prasun Kapoor <pkapoor@marvell.com>, "nipun.gupta@nxp.com" <nipun.gupta@nxp.com>, "bruce.richardson@intel.com" <bruce.richardson@intel.com>, "yang.a.hong@intel.com" <yang.a.hong@intel.com>, "harry.chang@intel.com" <harry.chang@intel.com>, "gu.jian1@zte.com.cn" <gu.jian1@zte.com.cn>, "shanjiangh@chinatelecom.cn" <shanjiangh@chinatelecom.cn>, "zhangy.yun@chinatelecom.cn" <zhangy.yun@chinatelecom.cn>, "lixingfu@huachentel.com" <lixingfu@huachentel.com>, "wushuai@inspur.com" <wushuai@inspur.com>, "yuyingxia@yxlink.com" <yuyingxia@yxlink.com>, "fanchenggang@sunyainfo.com" <fanchenggang@sunyainfo.com>, "davidfgao@tencent.com" <davidfgao@tencent.com>, "liuzhong1@chinaunicom.cn" <liuzhong1@chinaunicom.cn>, "zhaoyong11@huawei.com" <zhaoyong11@huawei.com>, "oc@yunify.com" <oc@yunify.com>, "jim@netgate.com" <jim@netgate.com>, "hongjun.ni@intel.com" <hongjun.ni@intel.com>, "j.bromhead@titan-ic.com" <j.bromhead@titan-ic.com>, "deri@ntop.org" <deri@ntop.org>, "fc@napatech.com" <fc@napatech.com>, "arthur.su@lionic.com" <arthur.su@lionic.com>, Parav Pandit <parav@mellanox.com> Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [EXT] [PATCH v1 3/4] regexdev: add regexdev core functions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> On Tue, Apr 7, 2020 at 12:16 PM Ori Kam <orika@mellanox.com> wrote: > > > > > -----Original Message----- > > From: Jerin Jacob <jerinjacobk@gmail.com> > > Sent: Tuesday, April 7, 2020 8:50 AM > > To: Ori Kam <orika@mellanox.com> > > Cc: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > > <jerinj@marvell.com>; xiang.w.wang@intel.com; Pavan Nikhilesh Bhagavatula > > <pbhagavatula@marvell.com>; dev@dpdk.org; Shahaf Shuler > > <shahafs@mellanox.com>; hemant.agrawal@nxp.com; Opher Reviv > > <opher@mellanox.com>; Alex Rosenbaum <alexr@mellanox.com>; Dovrat > > Zifroni <dovrat@marvell.com>; Prasun Kapoor <pkapoor@marvell.com>; > > nipun.gupta@nxp.com; bruce.richardson@intel.com; yang.a.hong@intel.com; > > harry.chang@intel.com; gu.jian1@zte.com.cn; shanjiangh@chinatelecom.cn; > > zhangy.yun@chinatelecom.cn; lixingfu@huachentel.com; wushuai@inspur.com; > > yuyingxia@yxlink.com; fanchenggang@sunyainfo.com; > > davidfgao@tencent.com; liuzhong1@chinaunicom.cn; > > zhaoyong11@huawei.com; oc@yunify.com; jim@netgate.com; > > hongjun.ni@intel.com; j.bromhead@titan-ic.com; deri@ntop.org; > > fc@napatech.com; arthur.su@lionic.com; Parav Pandit <parav@mellanox.com> > > Subject: Re: [dpdk-dev] [EXT] [PATCH v1 3/4] regexdev: add regexdev core > > functions > > > > > > > > > > If it abstracts it properly adding vdev and PCI is a simple change. > > > > See > > > > > > > > lib/librte_eventdev/rte_eventdev_pmd_vdev.h > > > > lib/librte_eventdev/rte_eventdev_pmd_pci.h > > > > > > > > I think, the common code should take from other matured subsystem > > instead if > > > > writing from scratch, > > > > > > > I agree with you about the rewrite, but this is why I don't want to add this > > code > > > until I know what this code should do and how it should be used. > > > I don't agree, that one subsystem is like other one by default, and that if > > something > > > is done for one subsystem it should be done for other. > > > Not always what was done before is the best. > > > > > > Some time back there was a long thread about ethdev and the rte device > > > where should it be released and by whom. > > > My basic thinking is that unless proven otherwise the code should be in the > > PMD > > > this is also why it is important for me to get this rte level API acked. > > > when starting to implement the code for the PMD it will be cleared what > > > is the shared code and how it is best to configure the system. > > > Also this is not external API so it can be changed at any time. > > > Saying that I don't think we should wait long before adding such code. > > > I think that when we will have our first PMD we know better if such > > > function is needed. > > > Also think about that maybe this PMD will be shared with the > > > net PMD so such function will also introduce more complexity. > > > > > > My thought process was I like this when I added the common code for > > eventdev. > > I have checked ethdev, cryptodev and followed a similar scheme > > wherever it applicable for eventdev. > > If we see the regexdev API, it is similar to ethdev. cryptodev and > > eventdev API. From the device > > API PoV, the framework needs to follow the same behavior to avoid > > having new behavior for regexdev, > > Especially in configure->queue_setup->start->rx_burst->tx_burst->stop- > > >reconfigure->start > > sequence. > > > > > > Ethdev may be bloated by features, My request is to take cryptodev and > > eventdev as a base > > change to accordingly. That makes review process easy, As reviewer > > needs only think, The rationale behind, > > Why it regexdev common code chosen a different approach. Writing from > > scratch makes the reviewer's job > > difficult. > > > > We spend a lot of time reviewing and make mature cryptodev and > > eventdev common code, Please leverage that. > > I fully agree with you that we should leverage known code as much as we > can. But just like you said the idea is to know what the RegEx needs > and then see how it is done in other modules. > I don't know how the vdev pmd will look like (I can guess) > So I prefer to add this code in later stage where we will get better > Understanding on how best to implement it. OK. > > We have the configure, queue_setup, start, enqueue, dequeue and stop. > I will add support for reconfigure like I said in previous code. > So if I understand correctly from your point of view, this patch is just missing > the vdev functions right? If so lets keep them out for now, I promise you that if needed > I will add this function. OK. Just to clarify, what I meant is, when we add the vdev, it should simple as following[1] ie. rte_event_pmd_allocate() and rte_event_pmd_release() etc reused from PCI and VDEV. i.e a) lets have common routes like rte_event_pmd_allocate() for PMD device allocation irrespective of VDEV for PCI b) add PCI specific code c) add VDEV specific code like [1] [1] static inline struct rte_eventdev * rte_event_pmd_vdev_init(const char *name, size_t dev_private_size, int socket_id) { struct rte_eventdev *eventdev; /* Allocate device structure */ eventdev = rte_event_pmd_allocate(name, socket_id); if (eventdev == NULL) return NULL; /* Allocate private device structure */ if (rte_eal_process_type() == RTE_PROC_PRIMARY) { eventdev->data->dev_private = rte_zmalloc_socket("eventdev device private", dev_private_size, RTE_CACHE_LINE_SIZE, socket_id); if (eventdev->data->dev_private == NULL) rte_panic("Cannot allocate memzone for private device" " data"); } return eventdev; } static inline int rte_event_pmd_vdev_uninit(const char *name) { int ret; struct rte_eventdev *eventdev; if (name == NULL) return -EINVAL; eventdev = rte_event_pmd_get_named_dev(name); if (eventdev == NULL) return -ENODEV; ret = rte_event_dev_close(eventdev->data->dev_id); if (ret < 0) return ret; /* Free the event device */ rte_event_pmd_release(eventdev); return 0; } >