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 EA52AA0561; Thu, 18 Mar 2021 07:12:37 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A5D0D140E71; Thu, 18 Mar 2021 07:12:37 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id B592F406B4 for ; Thu, 18 Mar 2021 07:12:36 +0100 (CET) Received: from nkgeml707-chm.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4F1Gnl67JPzWMdS for ; Thu, 18 Mar 2021 14:09:31 +0800 (CST) Received: from [10.174.63.9] (10.174.63.9) by nkgeml707-chm.china.huawei.com (10.98.57.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Thu, 18 Mar 2021 14:12:34 +0800 From: "Wangxiaoyun (Cloud)" To: Ferruh Yigit , Qingqing Li , , CC: Hushiyuan , , References: <836f40cb-57a9-7b02-adcc-dd302a93a722@huawei.com> <0a7d71fa-86f3-d8d0-3e77-1edfa6d5faf5@huawei.com> Message-ID: <3b629e80-39e1-5595-c88f-9b4871eccb8b@huawei.com> Date: Thu, 18 Mar 2021 14:12:27 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.63.9] X-ClientProxiedBy: nkgeml704-chm.china.huawei.com (10.98.57.158) To nkgeml707-chm.china.huawei.com (10.98.57.157) X-CFilter-Loop: Reflected Subject: Re: [dpdk-dev] [v4]net/hinic: fix coredump when the scondary process using the hinic port. 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" Hi Ferruh, For secondary process fix,you can refer to this patch "net/hinic: fix coredump when PMD used by fstack". Thanks 在 2020/11/12 20:30, Wangxiaoyun (Cloud) 写道: > When we complete repair and testing, we will upstream the patch in next release, > maybe not keep up with 20.11. > > 在 2020/11/12 17:26, Ferruh Yigit 写道: >> On 11/12/2020 2:11 AM, Wangxiaoyun (Cloud) wrote: >>> Hi Ferruh, >>> >>> Align with Qingqing Li, this path will not apply to dpdk master now, some dev_ops may >>> casue fail when run in secondary proc, so need to modify it later and add tests for other >>> dev_ops. >>> >> >> So will there be a new version in next release? >> >> Please feel free to put comments in the mail list, it helps recording the status and people looking for it later. >> >> >>> Thanks >>> >>> 在 2020/10/31 18:10, Qingqing Li 写道: >>>> fix coredump when secondary process using the hinic port. the >>>> reason is that during the stage of secondary process port initialization, it lack the initialization of "eth_dev->dev_ops". >>>> >>>> Signed-off-by: Qingqing Li >>>> --- >>>> v4: adapt to the latest version. >>>> --- >>>> v3: update the signed-off information. >>>> --- >>>> v2:  solve the coding style issue. >>>> Signed-off-by: liqingqing >>>> --- >>>>   drivers/net/hinic/hinic_pmd_ethdev.c | 20 ++++++++++++-------- >>>>   1 file changed, 12 insertions(+), 8 deletions(-) >>>> >>>> diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c >>>> index b694fd83c..526dafdad 100644 >>>> --- a/drivers/net/hinic/hinic_pmd_ethdev.c >>>> +++ b/drivers/net/hinic/hinic_pmd_ethdev.c >>>> @@ -3100,14 +3100,6 @@ static int hinic_func_init(struct rte_eth_dev *eth_dev) >>>> >>>>       pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); >>>> >>>> -    /* EAL is SECONDARY and eth_dev is already created */ >>>> -    if (rte_eal_process_type() != RTE_PROC_PRIMARY) { >>>> -        PMD_DRV_LOG(INFO, "Initialize %s in secondary process", >>>> -                eth_dev->data->name); >>>> - >>>> -        return 0; >>>> -    } >>>> - >>>>       eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; >>>> >>>>       nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(eth_dev); >>>> @@ -3241,6 +3233,18 @@ static int hinic_dev_init(struct rte_eth_dev *eth_dev) >>>>       eth_dev->rx_pkt_burst = hinic_recv_pkts; >>>>       eth_dev->tx_pkt_burst = hinic_xmit_pkts; >>>> >>>> +    /* EAL is SECONDARY and eth_dev is already created */ >>>> +    if (rte_eal_process_type() != RTE_PROC_PRIMARY) { >>>> +        PMD_DRV_LOG(INFO, "Initialize %s in secondary process", eth_dev->data->name); >>>> + >>>> +        struct hinic_nic_dev *nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(eth_dev); >>>> +        if (HINIC_IS_VF(nic_dev->hwdev)) >>>> +            eth_dev->dev_ops = &hinic_pmd_vf_ops; >>>> +        else >>>> +            eth_dev->dev_ops = &hinic_pmd_ops; >>>> +        return 0; >>>> +    } >>>> + >>>>       return hinic_func_init(eth_dev); >>>>   } >>>> >> >> .