Message ID | 20230527021121.31647-1-lihuisong@huawei.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B992942BB0; Sat, 27 May 2023 04:14:05 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D262842D44; Sat, 27 May 2023 04:13:50 +0200 (CEST) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 40CFC41141 for <dev@dpdk.org>; Sat, 27 May 2023 04:13:46 +0200 (CEST) Received: from kwepemm600004.china.huawei.com (unknown [172.30.72.54]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4QSldw4J1xzsRlm; Sat, 27 May 2023 10:11:32 +0800 (CST) Received: from localhost.localdomain (10.28.79.22) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Sat, 27 May 2023 10:13:42 +0800 From: Huisong Li <lihuisong@huawei.com> To: <dev@dpdk.org> CC: <thomas@monjalon.net>, <ferruh.yigit@amd.com>, <andrew.rybchenko@oktetlabs.ru>, <liudongdong3@huawei.com>, <liuyonglong@huawei.com>, <fengchengwen@huawei.com>, <lihuisong@huawei.com> Subject: [PATCH V6 0/5] app/testpmd: support multiple process attach and detach port Date: Sat, 27 May 2023 10:11:16 +0800 Message-ID: <20230527021121.31647-1-lihuisong@huawei.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20220825024425.10534-1-lihuisong@huawei.com> References: <20220825024425.10534-1-lihuisong@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.28.79.22] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemm600004.china.huawei.com (7.193.23.242) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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 |
Series |
app/testpmd: support multiple process attach and detach port
|
|
Message
lihuisong (C)
May 27, 2023, 2:11 a.m. UTC
This patchset fix some bugs and support attaching and detaching port in primary and secondary. --- -v6: adjust rte_eth_dev_is_used position based on alphabetical order in version.map -v5: move 'ALLOCATED' state to the back of 'REMOVED' to avoid abi break. -v4: fix a misspelling. -v3: #1 merge patch 1/6 and patch 2/6 into patch 1/5, and add modification for other bus type. #2 add a RTE_ETH_DEV_ALLOCATED state in rte_eth_dev_state to resolve the probelm in patch 2/5. -v2: resend due to CI unexplained failure. Huisong Li (5): drivers/bus: restore driver assignment at front of probing ethdev: fix skip valid port in probing callback app/testpmd: check the validity of the port app/testpmd: add attach and detach port for multiple process app/testpmd: stop forwarding in new or destroy event app/test-pmd/testpmd.c | 47 +++++++++++++++--------- app/test-pmd/testpmd.h | 1 - drivers/bus/auxiliary/auxiliary_common.c | 9 ++++- drivers/bus/dpaa/dpaa_bus.c | 9 ++++- drivers/bus/fslmc/fslmc_bus.c | 8 +++- drivers/bus/ifpga/ifpga_bus.c | 12 ++++-- drivers/bus/pci/pci_common.c | 9 ++++- drivers/bus/vdev/vdev.c | 10 ++++- drivers/bus/vmbus/vmbus_common.c | 9 ++++- drivers/net/bnxt/bnxt_ethdev.c | 3 +- drivers/net/bonding/bonding_testpmd.c | 1 - drivers/net/mlx5/mlx5.c | 2 +- lib/ethdev/ethdev_driver.c | 13 +++++-- lib/ethdev/ethdev_driver.h | 12 ++++++ lib/ethdev/ethdev_pci.h | 2 +- lib/ethdev/rte_class_eth.c | 2 +- lib/ethdev/rte_ethdev.c | 4 +- lib/ethdev/rte_ethdev.h | 4 +- lib/ethdev/version.map | 1 + 19 files changed, 114 insertions(+), 44 deletions(-)
Comments
On 5/27/2023 3:11 AM, Huisong Li wrote: > This patchset fix some bugs and support attaching and detaching port > in primary and secondary. > Hi Huisong, As commented on v4, I have some concerns on this set. The set does multiple ethdev/testpmd change, but the main target of the patch is not described clearly/simply. It looks like intention is to be able to register NEW event callback in the secondary process and be able to setup device in secondary when primary attaches a device, but my question is why not multi-process communication socket can't be used for this? MP socket/communication/thread is developed for this reason, I am not convinced why it can't be used to sync primary and secondary for device attach/detach. > --- > -v6: adjust rte_eth_dev_is_used position based on alphabetical order > in version.map > -v5: move 'ALLOCATED' state to the back of 'REMOVED' to avoid abi break. > -v4: fix a misspelling. > -v3: > #1 merge patch 1/6 and patch 2/6 into patch 1/5, and add modification > for other bus type. > #2 add a RTE_ETH_DEV_ALLOCATED state in rte_eth_dev_state to resolve > the probelm in patch 2/5. > -v2: resend due to CI unexplained failure. > > Huisong Li (5): > drivers/bus: restore driver assignment at front of probing > ethdev: fix skip valid port in probing callback > app/testpmd: check the validity of the port > app/testpmd: add attach and detach port for multiple process > app/testpmd: stop forwarding in new or destroy event > > app/test-pmd/testpmd.c | 47 +++++++++++++++--------- > app/test-pmd/testpmd.h | 1 - > drivers/bus/auxiliary/auxiliary_common.c | 9 ++++- > drivers/bus/dpaa/dpaa_bus.c | 9 ++++- > drivers/bus/fslmc/fslmc_bus.c | 8 +++- > drivers/bus/ifpga/ifpga_bus.c | 12 ++++-- > drivers/bus/pci/pci_common.c | 9 ++++- > drivers/bus/vdev/vdev.c | 10 ++++- > drivers/bus/vmbus/vmbus_common.c | 9 ++++- > drivers/net/bnxt/bnxt_ethdev.c | 3 +- > drivers/net/bonding/bonding_testpmd.c | 1 - > drivers/net/mlx5/mlx5.c | 2 +- > lib/ethdev/ethdev_driver.c | 13 +++++-- > lib/ethdev/ethdev_driver.h | 12 ++++++ > lib/ethdev/ethdev_pci.h | 2 +- > lib/ethdev/rte_class_eth.c | 2 +- > lib/ethdev/rte_ethdev.c | 4 +- > lib/ethdev/rte_ethdev.h | 4 +- > lib/ethdev/version.map | 1 + > 19 files changed, 114 insertions(+), 44 deletions(-) >
在 2023/6/7 0:26, Ferruh Yigit 写道: > On 5/27/2023 3:11 AM, Huisong Li wrote: >> This patchset fix some bugs and support attaching and detaching port >> in primary and secondary. >> > Hi Huisong, > > As commented on v4, I have some concerns on this set. please see my reply. > > The set does multiple ethdev/testpmd change, but the main target of the > patch is not described clearly/simply. The main target is to support attaching and detaching port in primary and secondary. Fixed some problems by the way. > > It looks like intention is to be able to register NEW event callback in > the secondary process and be able to setup device in secondary when > primary attaches a device, > but my question is why not multi-process communication socket can't be > used for this? > > MP socket/communication/thread is developed for this reason, I am not > convinced why it can't be used to sync primary and secondary for device > attach/detach. The secondary process automatically probes the device when primary attaches a device. The primary process automatically probes the device before doing probe phase in secondary when secondary attaches a device. Above behavior itself is attributed to multi-process socket communication(see hogplug_mp.c). This series are just to support this feature in testpmd. But hogplug_mp cannot do something for application, like updating information, which is the duty of application. > > >> --- >> -v6: adjust rte_eth_dev_is_used position based on alphabetical order >> in version.map >> -v5: move 'ALLOCATED' state to the back of 'REMOVED' to avoid abi break. >> -v4: fix a misspelling. >> -v3: >> #1 merge patch 1/6 and patch 2/6 into patch 1/5, and add modification >> for other bus type. >> #2 add a RTE_ETH_DEV_ALLOCATED state in rte_eth_dev_state to resolve >> the probelm in patch 2/5. >> -v2: resend due to CI unexplained failure. >> >> Huisong Li (5): >> drivers/bus: restore driver assignment at front of probing >> ethdev: fix skip valid port in probing callback >> app/testpmd: check the validity of the port >> app/testpmd: add attach and detach port for multiple process >> app/testpmd: stop forwarding in new or destroy event >> >> app/test-pmd/testpmd.c | 47 +++++++++++++++--------- >> app/test-pmd/testpmd.h | 1 - >> drivers/bus/auxiliary/auxiliary_common.c | 9 ++++- >> drivers/bus/dpaa/dpaa_bus.c | 9 ++++- >> drivers/bus/fslmc/fslmc_bus.c | 8 +++- >> drivers/bus/ifpga/ifpga_bus.c | 12 ++++-- >> drivers/bus/pci/pci_common.c | 9 ++++- >> drivers/bus/vdev/vdev.c | 10 ++++- >> drivers/bus/vmbus/vmbus_common.c | 9 ++++- >> drivers/net/bnxt/bnxt_ethdev.c | 3 +- >> drivers/net/bonding/bonding_testpmd.c | 1 - >> drivers/net/mlx5/mlx5.c | 2 +- >> lib/ethdev/ethdev_driver.c | 13 +++++-- >> lib/ethdev/ethdev_driver.h | 12 ++++++ >> lib/ethdev/ethdev_pci.h | 2 +- >> lib/ethdev/rte_class_eth.c | 2 +- >> lib/ethdev/rte_ethdev.c | 4 +- >> lib/ethdev/rte_ethdev.h | 4 +- >> lib/ethdev/version.map | 1 + >> 19 files changed, 114 insertions(+), 44 deletions(-) >> > .
Hi Ferruh, Can you take a look at this series? I added the call stack info for segment fault. /Huisong 在 2023/5/27 10:11, Huisong Li 写道: > This patchset fix some bugs and support attaching and detaching port > in primary and secondary. > > --- > -v6: adjust rte_eth_dev_is_used position based on alphabetical order > in version.map > -v5: move 'ALLOCATED' state to the back of 'REMOVED' to avoid abi break. > -v4: fix a misspelling. > -v3: > #1 merge patch 1/6 and patch 2/6 into patch 1/5, and add modification > for other bus type. > #2 add a RTE_ETH_DEV_ALLOCATED state in rte_eth_dev_state to resolve > the probelm in patch 2/5. > -v2: resend due to CI unexplained failure. > > Huisong Li (5): > drivers/bus: restore driver assignment at front of probing > ethdev: fix skip valid port in probing callback > app/testpmd: check the validity of the port > app/testpmd: add attach and detach port for multiple process > app/testpmd: stop forwarding in new or destroy event > > app/test-pmd/testpmd.c | 47 +++++++++++++++--------- > app/test-pmd/testpmd.h | 1 - > drivers/bus/auxiliary/auxiliary_common.c | 9 ++++- > drivers/bus/dpaa/dpaa_bus.c | 9 ++++- > drivers/bus/fslmc/fslmc_bus.c | 8 +++- > drivers/bus/ifpga/ifpga_bus.c | 12 ++++-- > drivers/bus/pci/pci_common.c | 9 ++++- > drivers/bus/vdev/vdev.c | 10 ++++- > drivers/bus/vmbus/vmbus_common.c | 9 ++++- > drivers/net/bnxt/bnxt_ethdev.c | 3 +- > drivers/net/bonding/bonding_testpmd.c | 1 - > drivers/net/mlx5/mlx5.c | 2 +- > lib/ethdev/ethdev_driver.c | 13 +++++-- > lib/ethdev/ethdev_driver.h | 12 ++++++ > lib/ethdev/ethdev_pci.h | 2 +- > lib/ethdev/rte_class_eth.c | 2 +- > lib/ethdev/rte_ethdev.c | 4 +- > lib/ethdev/rte_ethdev.h | 4 +- > lib/ethdev/version.map | 1 + > 19 files changed, 114 insertions(+), 44 deletions(-) >