From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] qat: fix for VFs not getting recognized Date: Mon, 20 Jun 2016 14:59:21 +0200 Message-ID: <8168457.L01VhZbAK5@xps13> References: <1466090950-12231-1-git-send-email-deepak.k.jain@intel.com> <7138878.rfgI980QT2@xps13> <20160617094241.GA32149@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: "Jain, Deepak K" , dev@dpdk.org, "Griffin, John" , "De Lara Guarch, Pablo" , "Doherty, Declan" , Adrien Mazarguil , Nelio Larenjero , alejandro.lucero@netronome.com To: Jerin Jacob Return-path: Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by dpdk.org (Postfix) with ESMTP id 6D9DA960D for ; Mon, 20 Jun 2016 14:59:34 +0200 (CEST) Received: by mail-wm0-f41.google.com with SMTP id r190so10353389wmr.0 for ; Mon, 20 Jun 2016 05:59:34 -0700 (PDT) In-Reply-To: <20160617094241.GA32149@localhost.localdomain> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2016-06-17 15:12, Jerin Jacob: > Thunderx nicvf also got the same problem when I rebased to > dpdk-next-net/rel_16_07. > > The root cause for this issue is that, PCI CLASS_ID EAL add > changeset(701c8d80c820461e8255dfb7387a09f0e54399f0) > has taken care only the pci devices where id table is created > with RTE_PCI_DEVICE > > For other devices, class_id comes as 0 instread of RTE_CLASS_ANY_ID and > probe failes. To fix it, > > one option is to add RTE_CLASS_ANY_ID for the devices where pci id table is not > created with RTE_PCI_DEVICE > > or > > somewhere in common-code in the initaization set if class_id = 0 then make it as > RTE_CLASS_ANY_ID(Thats would be a hack). > > Seems like first option is correct-way to fix the problem? Any thoughts? The best fix is to use RTE_PCI_DEVICE. If we want to set the class id, we can add a new macro RTE_PCI_ID(class, vend, dev) or maybe RTE_PCI_NET_ID(vend, dev) and RTE_PCI_CRYPTO_ID(vend, dev) > looks like following devices does not exhibit this issue > > [dpdk-thunderx] $ grep -r "RTE_PCI_DEVICE" drivers/ > drivers/net/szedata2/rte_eth_szedata2.c: > drivers/net/bnx2x/bnx2x_ethdev.c > drivers/net/vmxnet3/vmxnet3_ethdev.c > drivers/net/enic/enic_ethdev.c > drivers/net/e1000/em_ethdev.c > drivers/net/ena/ena_ethdev.c > drivers/net/qede/qede_ethdev.c > drivers/net/ixgbe/ixgbe_ethdev.c:#define RTE_PCI_DEV_ID_DECL_IXGBE(vend, > drivers/net/virtio/virtio_ethdev.c:#define > drivers/net/i40e/i40e_ethdev.c:vend, Going further: pci=$(git grep -l rte_pci drivers | cut -d/ -f3 | sort -u) ok=$(git grep -l RTE_PCI_DEVICE drivers | cut -d/ -f3 | sort -u) printf "$pci\n$ok\n$ok" | sort | uniq -u | sed '/^$/d' bonding mlx4 mlx5 nfp qat It seems we need to fix qat, nfp and mlx.