Re: [dpdk-dev] Multi-driver support for Fortville
Hi Nitin, > -Original Message- > From: Nitin Katiyar [mailto:nitin.kati...@ericsson.com] > Sent: Wednesday, February 14, 2018 6:53 PM > To: Xing, Beilei ; dev@dpdk.org > Cc: Venkatesan Pradeep > Subject: RE: Multi-driver support for Fortville > > Hi Beilei, > Thanks for clarifying the queries. We have been referring to following > patches. > https://dpdk.org/dev/patchwork/patch/34945/ > https://dpdk.org/dev/patchwork/patch/34946/ > https://dpdk.org/dev/patchwork/patch/34947/ > https://dpdk.org/dev/patchwork/patch/34948/ > > Are these final versions and merged in dpdk branch? If not, where can I find > latest patches? Sorry for late reply due to Chinese New Year. Yes, they are the final versions applied in DPDK master branch. > > Regards, > Nitin > > > > > -Original Message- > From: Xing, Beilei [mailto:beilei.x...@intel.com] > Sent: Wednesday, February 14, 2018 6:50 AM > To: Nitin Katiyar ; dev@dpdk.org > Cc: Venkatesan Pradeep > Subject: RE: Multi-driver support for Fortville > > Hi Nitin, > > > -Original Message- > > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Nitin Katiyar > > Sent: Tuesday, February 13, 2018 11:48 AM > > To: dev@dpdk.org > > Cc: Venkatesan Pradeep > > Subject: [dpdk-dev] Multi-driver support for Fortville > > > > Hi, > > Resending the queries with change in subject line. > > 1) With these patches, we have 2 different values for some of the > > global registers depending upon whether single driver or multi-driver > > is using all ports of the NIC. Does it impact any > > functionality/performance if we use DPDK drivers in single driver vs multi- > driver support? > > Yes. If support multi-driver, > for functionality, some configurations will not be supported. Including flow > director flexible payload, RSS input set/RSS bit mask/hash > function/symmetric hash/FDIR input set/TPID/flow control watermark/GRE > tunnel key length configuration, QinQ parser and QinQ cloud filter support. > For performance, PF will use INT0 instead of INTN when support multi-driver, > so there'll be many interrupts costing CPU cycles during receiving packets. > > > 2) Why can't we have same settings for both the cases? i.e > > Unconditionally programming the global registers in DPDK driver with > > the same values as in Kernel driver. That way we don't have to care for > extra parameter. > > The reason is same as above. > > > 3) Does this issue need any update for kernel driver also? > > As I know, there's no need to update kernel driver. > > > > > Regards, > > Nitin > > > > -Original Message- > > From: Nitin Katiyar > > Sent: Monday, February 12, 2018 11:32 AM > > To: dev@dpdk.org > > Cc: Venkatesan Pradeep > > Subject: RE: dev Digest, Vol 180, Issue 152 > > > > Hi Beilei, > > I was looking at the patches and have few queries regarding > > support-multi-driver. > > 1) With these patches, we have 2 different values for some of the > > global registers depending upon whether single driver or multi-driver > > is using all ports of the NIC. Does it impact any > > functionality/performance if we use DPDK drivers in single driver vs multi- > driver support? > > 2) Why can't we have same settings for both the cases? That way we > > don't have to care for extra parameter. > > 3) Does this issue need any update for kernel driver also? > > > > > > Regards, > > Nitin > > > > -Original Message- > > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of > > dev-requ...@dpdk.org > > Sent: Friday, February 02, 2018 5:55 PM > > To: dev@dpdk.org > > Subject: dev Digest, Vol 180, Issue 152 > > > > Send dev mailing list submissions to > > dev@dpdk.org > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://dpdk.org/ml/listinfo/dev > > or, via email, send a message with subject or body 'help' to > > dev-requ...@dpdk.org > > > > You can reach the person managing the list at > > dev-ow...@dpdk.org > > > > When replying, please edit your Subject line so it is more specific than > > "Re: > > Contents of dev digest..." > > > > > > Today's Topics: > > > >1. [PATCH v3 2/4] net/i40e: add debug logs when writing global > > registers (Beilei Xing) > >2. [PATCH v3 3/4] net/i40e: fix multiple driver support issue > > (Beilei Xing) > >3. [PATCH v3 4/4] net/i40e: fi
Re: [dpdk-dev] Multi-driver support for Fortville
Hi Beilei, Thanks for clarifying the queries. We have been referring to following patches. https://dpdk.org/dev/patchwork/patch/34945/ https://dpdk.org/dev/patchwork/patch/34946/ https://dpdk.org/dev/patchwork/patch/34947/ https://dpdk.org/dev/patchwork/patch/34948/ Are these final versions and merged in dpdk branch? If not, where can I find latest patches? Regards, Nitin -Original Message- From: Xing, Beilei [mailto:beilei.x...@intel.com] Sent: Wednesday, February 14, 2018 6:50 AM To: Nitin Katiyar ; dev@dpdk.org Cc: Venkatesan Pradeep Subject: RE: Multi-driver support for Fortville Hi Nitin, > -Original Message- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Nitin Katiyar > Sent: Tuesday, February 13, 2018 11:48 AM > To: dev@dpdk.org > Cc: Venkatesan Pradeep > Subject: [dpdk-dev] Multi-driver support for Fortville > > Hi, > Resending the queries with change in subject line. > 1) With these patches, we have 2 different values for some of the > global registers depending upon whether single driver or multi-driver > is using all ports of the NIC. Does it impact any > functionality/performance if we use DPDK drivers in single driver vs > multi-driver support? Yes. If support multi-driver, for functionality, some configurations will not be supported. Including flow director flexible payload, RSS input set/RSS bit mask/hash function/symmetric hash/FDIR input set/TPID/flow control watermark/GRE tunnel key length configuration, QinQ parser and QinQ cloud filter support. For performance, PF will use INT0 instead of INTN when support multi-driver, so there'll be many interrupts costing CPU cycles during receiving packets. > 2) Why can't we have same settings for both the cases? i.e > Unconditionally programming the global registers in DPDK driver with > the same values as in Kernel driver. That way we don't have to care for extra > parameter. The reason is same as above. > 3) Does this issue need any update for kernel driver also? As I know, there's no need to update kernel driver. > > Regards, > Nitin > > -Original Message- > From: Nitin Katiyar > Sent: Monday, February 12, 2018 11:32 AM > To: dev@dpdk.org > Cc: Venkatesan Pradeep > Subject: RE: dev Digest, Vol 180, Issue 152 > > Hi Beilei, > I was looking at the patches and have few queries regarding > support-multi-driver. > 1) With these patches, we have 2 different values for some of the > global registers depending upon whether single driver or multi-driver > is using all ports of the NIC. Does it impact any > functionality/performance if we use DPDK drivers in single driver vs > multi-driver support? > 2) Why can't we have same settings for both the cases? That way we > don't have to care for extra parameter. > 3) Does this issue need any update for kernel driver also? > > > Regards, > Nitin > > -Original Message- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of > dev-requ...@dpdk.org > Sent: Friday, February 02, 2018 5:55 PM > To: dev@dpdk.org > Subject: dev Digest, Vol 180, Issue 152 > > Send dev mailing list submissions to > dev@dpdk.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://dpdk.org/ml/listinfo/dev > or, via email, send a message with subject or body 'help' to > dev-requ...@dpdk.org > > You can reach the person managing the list at > dev-ow...@dpdk.org > > When replying, please edit your Subject line so it is more specific than "Re: > Contents of dev digest..." > > > Today's Topics: > >1. [PATCH v3 2/4] net/i40e: add debug logs when writingglobal > registers (Beilei Xing) >2. [PATCH v3 3/4] net/i40e: fix multiple driver supportissue > (Beilei Xing) >3. [PATCH v3 4/4] net/i40e: fix interrupt conflict whenusing > multi-driver (Beilei Xing) > > > -- > > Message: 1 > Date: Fri, 2 Feb 2018 20:25:08 +0800 > From: Beilei Xing > To: dev@dpdk.org, jingjing...@intel.com > Cc: sta...@dpdk.org > Subject: [dpdk-dev] [PATCH v3 2/4] net/i40e: add debug logs when > writing global registers > Message-ID: <1517574310-93096-3-git-send-email-beilei.x...@intel.com> > > Add debug logs when writing global registers. > > Signed-off-by: Beilei Xing > Cc: sta...@dpdk.org > --- > drivers/net/i40e/i40e_ethdev.c | 127 > + > drivers/net/i40e/i40e_ethdev.h | 8 +++ > 2 files changed, 87 insertions(+), 48 deletions(-) > > diff --git a/drivers/net/i40e/i40e_ethdev.c > b/drivers/net/i40e/i40e_ethdev.c
Re: [dpdk-dev] Multi-driver support for Fortville
Hi Nitin, > -Original Message- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Nitin Katiyar > Sent: Tuesday, February 13, 2018 11:48 AM > To: dev@dpdk.org > Cc: Venkatesan Pradeep > Subject: [dpdk-dev] Multi-driver support for Fortville > > Hi, > Resending the queries with change in subject line. > 1) With these patches, we have 2 different values for some of the global > registers depending upon whether single driver or multi-driver is using all > ports of the NIC. Does it impact any functionality/performance if we use > DPDK drivers in single driver vs multi-driver support? Yes. If support multi-driver, for functionality, some configurations will not be supported. Including flow director flexible payload, RSS input set/RSS bit mask/hash function/symmetric hash/FDIR input set/TPID/flow control watermark/GRE tunnel key length configuration, QinQ parser and QinQ cloud filter support. For performance, PF will use INT0 instead of INTN when support multi-driver, so there'll be many interrupts costing CPU cycles during receiving packets. > 2) Why can't we have same settings for both the cases? i.e Unconditionally > programming the global registers in DPDK driver with the same values as in > Kernel driver. That way we don't have to care for extra parameter. The reason is same as above. > 3) Does this issue need any update for kernel driver also? As I know, there's no need to update kernel driver. > > Regards, > Nitin > > -Original Message- > From: Nitin Katiyar > Sent: Monday, February 12, 2018 11:32 AM > To: dev@dpdk.org > Cc: Venkatesan Pradeep > Subject: RE: dev Digest, Vol 180, Issue 152 > > Hi Beilei, > I was looking at the patches and have few queries regarding > support-multi-driver. > 1) With these patches, we have 2 different values for some of the global > registers depending upon whether single driver or multi-driver is using all > ports of the NIC. Does it impact any functionality/performance if we use > DPDK drivers in single driver vs multi-driver support? > 2) Why can't we have same settings for both the cases? That way we don't > have to care for extra parameter. > 3) Does this issue need any update for kernel driver also? > > > Regards, > Nitin > > -Original Message- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of > dev-requ...@dpdk.org > Sent: Friday, February 02, 2018 5:55 PM > To: dev@dpdk.org > Subject: dev Digest, Vol 180, Issue 152 > > Send dev mailing list submissions to > dev@dpdk.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://dpdk.org/ml/listinfo/dev > or, via email, send a message with subject or body 'help' to > dev-requ...@dpdk.org > > You can reach the person managing the list at > dev-ow...@dpdk.org > > When replying, please edit your Subject line so it is more specific than "Re: > Contents of dev digest..." > > > Today's Topics: > >1. [PATCH v3 2/4] net/i40e: add debug logs when writingglobal > registers (Beilei Xing) >2. [PATCH v3 3/4] net/i40e: fix multiple driver supportissue > (Beilei Xing) >3. [PATCH v3 4/4] net/i40e: fix interrupt conflict whenusing > multi-driver (Beilei Xing) > > > -- > > Message: 1 > Date: Fri, 2 Feb 2018 20:25:08 +0800 > From: Beilei Xing > To: dev@dpdk.org, jingjing...@intel.com > Cc: sta...@dpdk.org > Subject: [dpdk-dev] [PATCH v3 2/4] net/i40e: add debug logs when > writing global registers > Message-ID: <1517574310-93096-3-git-send-email-beilei.x...@intel.com> > > Add debug logs when writing global registers. > > Signed-off-by: Beilei Xing > Cc: sta...@dpdk.org > --- > drivers/net/i40e/i40e_ethdev.c | 127 > + > drivers/net/i40e/i40e_ethdev.h | 8 +++ > 2 files changed, 87 insertions(+), 48 deletions(-) > > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c > index 44821f2..ef23241 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -716,6 +716,15 @@ rte_i40e_dev_atomic_write_link_status(struct > rte_eth_dev *dev, > return 0; > } > > +static inline void > +i40e_write_global_rx_ctl(struct i40e_hw *hw, u32 reg_addr, u32 reg_val) > +{ > + i40e_write_rx_ctl(hw, reg_addr, reg_val); > + PMD_DRV_LOG(DEBUG, "Global register 0x%08x is modified " > + "with value 0x%08x", > + reg_addr, reg_val); > +} > + > RTE_PMD_REGISTER_PCI(net_i40e, rte_i40
[dpdk-dev] Multi-driver support for Fortville
Hi, Resending the queries with change in subject line. 1) With these patches, we have 2 different values for some of the global registers depending upon whether single driver or multi-driver is using all ports of the NIC. Does it impact any functionality/performance if we use DPDK drivers in single driver vs multi-driver support? 2) Why can't we have same settings for both the cases? i.e Unconditionally programming the global registers in DPDK driver with the same values as in Kernel driver. That way we don't have to care for extra parameter. 3) Does this issue need any update for kernel driver also? Regards, Nitin -Original Message- From: Nitin Katiyar Sent: Monday, February 12, 2018 11:32 AM To: dev@dpdk.org Cc: Venkatesan Pradeep Subject: RE: dev Digest, Vol 180, Issue 152 Hi Beilei, I was looking at the patches and have few queries regarding support-multi-driver. 1) With these patches, we have 2 different values for some of the global registers depending upon whether single driver or multi-driver is using all ports of the NIC. Does it impact any functionality/performance if we use DPDK drivers in single driver vs multi-driver support? 2) Why can't we have same settings for both the cases? That way we don't have to care for extra parameter. 3) Does this issue need any update for kernel driver also? Regards, Nitin -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of dev-requ...@dpdk.org Sent: Friday, February 02, 2018 5:55 PM To: dev@dpdk.org Subject: dev Digest, Vol 180, Issue 152 Send dev mailing list submissions to dev@dpdk.org To subscribe or unsubscribe via the World Wide Web, visit https://dpdk.org/ml/listinfo/dev or, via email, send a message with subject or body 'help' to dev-requ...@dpdk.org You can reach the person managing the list at dev-ow...@dpdk.org When replying, please edit your Subject line so it is more specific than "Re: Contents of dev digest..." Today's Topics: 1. [PATCH v3 2/4] net/i40e: add debug logs when writing global registers (Beilei Xing) 2. [PATCH v3 3/4] net/i40e: fix multiple driver support issue (Beilei Xing) 3. [PATCH v3 4/4] net/i40e: fix interrupt conflict when using multi-driver (Beilei Xing) -- Message: 1 Date: Fri, 2 Feb 2018 20:25:08 +0800 From: Beilei Xing To: dev@dpdk.org, jingjing...@intel.com Cc: sta...@dpdk.org Subject: [dpdk-dev] [PATCH v3 2/4] net/i40e: add debug logs when writing global registers Message-ID: <1517574310-93096-3-git-send-email-beilei.x...@intel.com> Add debug logs when writing global registers. Signed-off-by: Beilei Xing Cc: sta...@dpdk.org --- drivers/net/i40e/i40e_ethdev.c | 127 + drivers/net/i40e/i40e_ethdev.h | 8 +++ 2 files changed, 87 insertions(+), 48 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 44821f2..ef23241 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -716,6 +716,15 @@ rte_i40e_dev_atomic_write_link_status(struct rte_eth_dev *dev, return 0; } +static inline void +i40e_write_global_rx_ctl(struct i40e_hw *hw, u32 reg_addr, u32 reg_val) +{ + i40e_write_rx_ctl(hw, reg_addr, reg_val); + PMD_DRV_LOG(DEBUG, "Global register 0x%08x is modified " + "with value 0x%08x", + reg_addr, reg_val); +} + RTE_PMD_REGISTER_PCI(net_i40e, rte_i40e_pmd.pci_drv); RTE_PMD_REGISTER_PCI_TABLE(net_i40e, pci_id_i40e_map); @@ -735,9 +744,9 @@ static inline void i40e_GLQF_reg_init(struct i40e_hw *hw) * configuration API is added to avoid configuration conflicts * between ports of the same device. */ - I40E_WRITE_REG(hw, I40E_GLQF_ORT(33), 0x00E0); - I40E_WRITE_REG(hw, I40E_GLQF_ORT(34), 0x00E3); - I40E_WRITE_REG(hw, I40E_GLQF_ORT(35), 0x00E6); + I40E_WRITE_GLB_REG(hw, I40E_GLQF_ORT(33), 0x00E0); + I40E_WRITE_GLB_REG(hw, I40E_GLQF_ORT(34), 0x00E3); + I40E_WRITE_GLB_REG(hw, I40E_GLQF_ORT(35), 0x00E6); i40e_global_cfg_warning(I40E_WARNING_ENA_FLX_PLD); /* @@ -746,8 +755,8 @@ static inline void i40e_GLQF_reg_init(struct i40e_hw *hw) * configuration API is added to avoid configuration conflicts * between ports of the same device. */ - I40E_WRITE_REG(hw, I40E_GLQF_ORT(40), 0x0029); - I40E_WRITE_REG(hw, I40E_GLQF_PIT(9), 0x9420); + I40E_WRITE_GLB_REG(hw, I40E_GLQF_ORT(40), 0x0029); + I40E_WRITE_GLB_REG(hw, I40E_GLQF_PIT(9), 0x9420); i40e_global_cfg_warning(I40E_WARNING_QINQ_PARSER); } @@ -2799,8 +2808,9 @@ i40e_vlan_tpid_set(struct rte_eth_dev *dev, "I40E_GL_SWT_L2TAGCTRL[%d]", reg_id); return ret; } - PMD_