Re: [dpdk-dev] Multi-driver support for Fortville

2018-02-21 Thread Xing, Beilei
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

2018-02-14 Thread Nitin Katiyar
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

2018-02-13 Thread Xing, Beilei
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

2018-02-12 Thread Nitin Katiyar
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_