From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9FCE6A09D3; Thu, 12 Nov 2020 10:26:29 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7BD66592B; Thu, 12 Nov 2020 10:26:28 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 2978F5928 for ; Thu, 12 Nov 2020 10:26:27 +0100 (CET) IronPort-SDR: k1UNN11jGduRAXQDyyPOAKsFTdksisI8Qvet+XOURLp2Au4oV/neZvzGN7YEgp/GNdpGp++//7 mcOeezoGGPDg== X-IronPort-AV: E=McAfee;i="6000,8403,9802"; a="170448469" X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="170448469" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Nov 2020 01:26:25 -0800 IronPort-SDR: 1Ii9CCuazmGYFpFRelrfcSh9aZMuilycRrSUC7zUCDm37fOZWT4ZiByjpYu0jK5Uash5Pavsnq 1JH7XhweTfrw== X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="542190584" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.194.206]) ([10.213.194.206]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Nov 2020 01:26:21 -0800 To: "Wangxiaoyun (Cloud)" , Qingqing Li , dev@dpdk.org, zhouguoyang@huawei.com Cc: Hushiyuan , yin.yinshi@huawei.com, xuanziyang2@huawei.com References: <836f40cb-57a9-7b02-adcc-dd302a93a722@huawei.com> <0a7d71fa-86f3-d8d0-3e77-1edfa6d5faf5@huawei.com> From: Ferruh Yigit Message-ID: Date: Thu, 12 Nov 2020 09:26:17 +0000 MIME-Version: 1.0 In-Reply-To: <0a7d71fa-86f3-d8d0-3e77-1edfa6d5faf5@huawei.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit 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.15 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" 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); >>   } >>