From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7AC3242386; Thu, 12 Jan 2023 03:26:53 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0992240A7D; Thu, 12 Jan 2023 03:26:53 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id A6F8F400EF for ; Thu, 12 Jan 2023 03:26:51 +0100 (CET) Received: from kwepemm600004.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4NspGJ453vzqV72; Thu, 12 Jan 2023 10:22:00 +0800 (CST) Received: from [10.67.103.231] (10.67.103.231) 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.2375.34; Thu, 12 Jan 2023 10:26:47 +0800 Message-ID: <2dbfa348-9ee9-a043-a8fb-255230cf613d@huawei.com> Date: Thu, 12 Jan 2023 10:26:46 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH V4 0/5] app/testpmd: support mulitple process attach and detach port To: Ferruh Yigit , , CC: , , , References: <20220825024425.10534-1-lihuisong@huawei.com> <20221206092649.8287-1-lihuisong@huawei.com> <6c448463-b3f0-d128-b144-d4e93c5c11d7@amd.com> <0a87026d-770a-dd4f-4c48-fdd3c16992dd@huawei.com> From: "lihuisong (C)" In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.103.231] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 在 2023/1/11 18:46, Ferruh Yigit 写道: > On 1/11/2023 10:27 AM, Ferruh Yigit wrote: >> On 1/11/2023 12:53 AM, lihuisong (C) wrote: >>> 在 2023/1/11 0:51, Ferruh Yigit 写道: >>>> On 12/6/2022 9:26 AM, Huisong Li wrote: >>>>> This patchset fix some bugs and support attaching and detaching port >>>>> in primary and secondary. >>>>> >>>>> --- >>>>>   -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 >>>>> >>>> Hi Huisong, >>>> >>>> I haven't checked the patch in detail yet, but I can see it gives some >>>> ABI compatibility warnings, is this expected: >>> This is to be expected. Because we insert a device state, >>> RTE_ETH_DEV_ALLOCATED, >>> before RTE_ETH_DEV_ATTACHED for resolving the issue patch 2/5 mentioned. >>> We may have to announce it. What do you think? >> If there is an actual ABI break, it can't go in this release, need to >> wait LTS release and yes needs deprecation notice in advance. >> >> But not all enum value change warnings are real break, need to >> investigate all warnings one by one. >> Need to investigate if old application & new dpdk library may cause any >> unexpected behavior for application. >> > OR, appending new enum item, `RTE_ETH_DEV_ALLOCATED`, to the end of the > enum solves the issue, although logically it won't look nice. Thank you for your suggestion, Ferruh. It seems to be ok. I will fix it. > Perhaps order can be fixed in next LTS, to have more logical order, but > not quite sure if order worth the disturbance may cause in application. Probably not worth it. >>>> 1 function with some indirect sub-type change: >>>> >>>>    [C] 'function int dpaa_eth_eventq_attach(const rte_eth_dev*, int, u16, >>>> const rte_event_eth_rx_adapter_queue_conf*)' at dpaa_ethdev.c:1149:1 has >>>> some indirect sub-type changes: >>>>      parameter 1 of type 'const rte_eth_dev*' has sub-type changes: >>>>        in pointed to type 'const rte_eth_dev': >>>>          in unqualified underlying type 'struct rte_eth_dev' at >>>> ethdev_driver.h:50:1: >>>>            type size hasn't changed >>>>            1 data member change: >>>>              type of 'rte_eth_dev_state state' changed: >>>>                type size hasn't changed >>>>                1 enumerator insertion: >>>>                  'rte_eth_dev_state::RTE_ETH_DEV_ALLOCATED' value '1' >>>>                2 enumerator changes: >>>>                  'rte_eth_dev_state::RTE_ETH_DEV_ATTACHED' from value '1' >>>> to '2' at rte_ethdev.h:2000:1 >>>>                  'rte_eth_dev_state::RTE_ETH_DEV_REMOVED' from value '2' >>>> to '3' at rte_ethdev.h:2000:1 >>>> >>>> 1 function with some indirect sub-type change: >>>> >>>>    [C] 'function int rte_pmd_i40e_set_switch_dev(uint16_t, rte_eth_dev*)' >>>> at rte_pmd_i40e.c:3266:1 has some indirect sub-type changes: >>>>      parameter 2 of type 'rte_eth_dev*' has sub-type changes: >>>>        in pointed to type 'struct rte_eth_dev' at ethdev_driver.h:50:1: >>>>          type size hasn't changed >>>>          1 data member change: >>>>            type of 'rte_eth_dev_state state' changed: >>>>              type size hasn't changed >>>>              1 enumerator insertion: >>>>                'rte_eth_dev_state::RTE_ETH_DEV_ALLOCATED' value '1' >>>>              2 enumerator changes: >>>>                'rte_eth_dev_state::RTE_ETH_DEV_ATTACHED' from value '1' >>>> to '2' at rte_ethdev.h:2000:1 >>>>                'rte_eth_dev_state::RTE_ETH_DEV_REMOVED' from value '2' to >>>> '3' at rte_ethdev.h:2000:1 >>>> >>>> 1 function with some indirect sub-type change: >>>> >>>>    [C] 'function rte_eth_dev* rte_eth_dev_allocate(const char*)' at >>>> ethdev_driver.c:72:1 has some indirect sub-type changes: >>>>      return type changed: >>>>        in pointed to type 'struct rte_eth_dev' at ethdev_driver.h:50:1: >>>>          type size hasn't changed >>>>          1 data member change: >>>>            type of 'rte_eth_dev_state state' changed: >>>>              type size hasn't changed >>>>              1 enumerator insertion: >>>>                'rte_eth_dev_state::RTE_ETH_DEV_ALLOCATED' value '1' >>>>              2 enumerator changes: >>>>                'rte_eth_dev_state::RTE_ETH_DEV_ATTACHED' from value '1' >>>> to '2' at rte_ethdev.h:2000:1 >>>>                'rte_eth_dev_state::RTE_ETH_DEV_REMOVED' from value '2' to >>>> '3' at rte_ethdev.h:2000:1 >>>> >>>> ... there are more warnings for same issue ... >>>> >>>> . > .