All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc <marcdevel@gmail.com>
To: "Zhang, Helin" <helin.zhang@intel.com>
Cc: Thomas Monjalon <thomas.monjalon@6wind.com>,
	"Xu, Qian Q" <qian.q.xu@intel.com>,
	"Xing, Beilei" <beilei.xing@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	"Lu, Wenzhuo" <wenzhuo.lu@intel.com>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	"Glynn, Michael J" <michael.j.glynn@intel.com>
Subject: Re: [PATCH v11 0/8] ethdev: 100G and link speed API refactoring
Date: Sat, 26 Mar 2016 02:25:12 +0100	[thread overview]
Message-ID: <CAExC=0RVN6_ffM7EDPdK32-C1k-QdSXj2GNFDLito+jbttobdQ@mail.gmail.com> (raw)
In-Reply-To: <CAExC=0TPWX6v2pk6hO+vARS0_nH1FE3iSaiD0wVnnJ8Nm2J3fw@mail.gmail.com>

On 25 March 2016 at 22:30, Marc <marcdevel@gmail.com> wrote:

>
>
> On 25 March 2016 at 21:41, Marc <marcdevel@gmail.com> wrote:
>
>>
>> On 25 March 2016 at 16:07, Zhang, Helin <helin.zhang@intel.com> wrote:
>>
>>> Hi Thomas
>>>
>>> Beilei is investigating that, she will give her findings soon later, and
>>> possibly a fix after validating that.
>>> Thanks!
>>>
>>>
>> I will try to reproduce this on my side too with the latest v12. I could
>> not try latest patchsets, but i40 (XL710) and igb (82540EM) were working on
>> my side for previous versions. Which exact NICs were used to test the
>> patchset for igb?
>>
>
> I am able to reproduce it straight away by applying v12. The problem is
> testpmd and in general existing applications have the default value of 0 as
> link_speeds for autoneg.
>
> From v9 to v10 patchset the values ETH_LINK_SPEED_AUTONEG and
> ETH_LINK_SPEED_FIXED were flipped. Reverting this makes it work:
>
> marc@Beluga:~/personal/dpdk/tools$ git diff
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index ef2502a..fb247a7 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -244,8 +244,8 @@ struct rte_eth_stats {
>  /**
>   * Device supported speeds bitmap flags
>   */
> -#define ETH_LINK_SPEED_FIXED    (0 <<  0)  /**< Disable autoneg (fixed
> speed) */
> -#define ETH_LINK_SPEED_AUTONEG  (1 <<  0)  /**< Autonegotiate (all
> speeds) */
> +#define ETH_LINK_SPEED_AUTONEG  (0 <<  0)  /**< Autonegotiate (all
> speeds) */
> +#define ETH_LINK_SPEED_FIXED    (1 <<  0)  /**< Disable autoneg (fixed
> speed) */
>  #define ETH_LINK_SPEED_10M_HD   (1 <<  1)  /**<  10 Mbps half-duplex */
>  #define ETH_LINK_SPEED_10M      (1 <<  2)  /**<  10 Mbps full-duplex */
>  #define ETH_LINK_SPEED_100M_HD  (1 <<  3)  /**< 100 Mbps half-duplex */
>
> I think having autoneg == 0 is better. Do you agree Thomas?
>
> With this change my current NIC (I218-LM) is able to initialize:
>
> Option: 27
>
>   Enter hex bitmask of cores to execute testpmd app on
>   Example: to execute app on cores 0 to 7, enter 0xff
> bitmask: 0x3
> Launching app
> EAL: Detected lcore 0 as core 0 on socket 0
> EAL: Detected lcore 1 as core 0 on socket 0
> EAL: Detected lcore 2 as core 1 on socket 0
> EAL: Detected lcore 3 as core 1 on socket 0
> EAL: Support maximum 128 logical core(s) by configuration.
> EAL: Detected 4 lcore(s)
> EAL: Probing VFIO support...
> EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or
> directory)
> EAL: VFIO modules not loaded, skipping VFIO support...
> EAL: Setting up physically contiguous memory...
> EAL: Ask a virtual area of 0x26800000 bytes
> EAL: Virtual area found at 0x7f33ef800000 (size = 0x26800000)
> EAL: Ask a virtual area of 0x6e00000 bytes
> EAL: Virtual area found at 0x7f33e8800000 (size = 0x6e00000)
> EAL: Ask a virtual area of 0x800000 bytes
> EAL: Virtual area found at 0x7f33e7e00000 (size = 0x800000)
> EAL: Ask a virtual area of 0x4400000 bytes
> EAL: Virtual area found at 0x7f33e3800000 (size = 0x4400000)
> EAL: Ask a virtual area of 0xe00000 bytes
> EAL: Virtual area found at 0x7f33e2800000 (size = 0xe00000)
> EAL: Ask a virtual area of 0x600000 bytes
> EAL: Virtual area found at 0x7f33e2000000 (size = 0x600000)
> EAL: Ask a virtual area of 0x200000 bytes
> EAL: Virtual area found at 0x7f33e1c00000 (size = 0x200000)
> EAL: Ask a virtual area of 0x43600000 bytes
> EAL: Virtual area found at 0x7f339e400000 (size = 0x43600000)
> EAL: Ask a virtual area of 0x8e00000 bytes
> EAL: Virtual area found at 0x7f3395400000 (size = 0x8e00000)
> EAL: Ask a virtual area of 0x200000 bytes
> EAL: Virtual area found at 0x7f3395000000 (size = 0x200000)
> EAL: Ask a virtual area of 0x200000 bytes
> EAL: Virtual area found at 0x7f3394c00000 (size = 0x200000)
> EAL: Requesting 1024 pages of size 2MB from socket 0
> EAL: TSC frequency is ~2593996 KHz
> EAL: Master lcore 0 is ready (tid=180078c0;cpuset=[0])
> EAL: lcore 1 is ready (tid=94bff700;cpuset=[1])
> EAL: PCI device 0000:00:19.0 on NUMA socket -1
> EAL:   probe driver: 8086:15a2 rte_em_pmd
> EAL:   PCI memory mapped at 0x7f3416000000
> EAL:   PCI memory mapped at 0x7f3416020000
> PMD: eth_em_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x15a2
> Interactive-mode selected
> Configuring Port 0 (socket 0)
> PMD: eth_em_tx_queue_setup(): sw_ring=0x7f33e210efc0
> hw_ring=0x7f33e21110c0 dma_addr=0x745110c0
> PMD: eth_em_rx_queue_setup(): sw_ring=0x7f33e20fea80
> hw_ring=0x7f33e20fef80 dma_addr=0x744fef80
> PMD: eth_em_start(): <<
>
> I am troubleshooting link status reporting, which seems not correct with
> l2fwd. I will also double check that fixed speed and autoneg with subset of
> speeds work.
>

Fixed and tested (with I218-LM only) for autoneg (all speeds and subset),
fixed speed and link reporting:

* (unrelated) I found what appears to be a bug in the e1000 base driver,
not reporting changes on link negociation when it is triggered by the peer
(randomly). The behaviour is the same as current master HEAD, so I will
report it separately.

* (unrelated) l2fwd, also in current HEAD, shows a misleading trace "Port
down" at startup, when actually the port is not yet started (or ready).

* From v9 to v10 patchset the values ETH_LINK_SPEED_AUTONEG and
ETH_LINK_SPEED_FIXED were flipped. Reverting this makes it work.

* Setting link to fixed speed was not working after flipping back values
_AUTONEG and _FIXED, since conditions were modified from v9 -> v10
accordingly. Also link reading autoneg flag was incorrect after that. Fixed
for all drivers => NEEDS TESTING, specially for Intel NICs ixgbe and i40e.

* Found two existing bugs in the patchset for e1000 (igb and em), both
fixed:
  - Link reading was always reporting Full duplex.
  - Setting a fixed speed was incorrectly accepting more than 1 speed in
the bitmap.

Attached the set of changes over v12 that will be merged in patch #6 of the
series in v13, for easier reviewing.

Marc

marc@Beluga:~/personal/dpdk$ git diff
328addc166c7217134858fc65febebbd8ddffe7d > v12_fixes.patch
marc@Beluga:~/personal/dpdk$ cat v12_fixes.patch
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c
b/drivers/net/bnx2x/bnx2x_ethdev.c
index af84175..071b44f 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -45,8 +45,8 @@ bnx2x_link_update(struct rte_eth_dev *dev)
  dev->data->dev_link.link_duplex = ETH_LINK_HALF_DUPLEX;
  break;
  }
- dev->data->dev_link.link_autoneg = (dev->data->dev_conf.link_speeds &
- ETH_LINK_SPEED_AUTONEG);
+ dev->data->dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+ ETH_LINK_SPEED_FIXED);
  dev->data->dev_link.link_status = sc->link_vars.link_up;
 }

diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 3e26ab0..9fb59a2 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -620,14 +620,14 @@ eth_em_start(struct rte_eth_dev *dev)
  hw->phy.autoneg_advertised = E1000_ALL_SPEED_DUPLEX;
  } else {
  num_speeds = 0;
- autoneg = (*speeds & ETH_LINK_SPEED_AUTONEG);
+ autoneg = (*speeds & ETH_LINK_SPEED_FIXED) == 0;

  /* Reset */
  hw->phy.autoneg_advertised = 0;

  if (*speeds & ~(ETH_LINK_SPEED_10M_HD | ETH_LINK_SPEED_10M |
  ETH_LINK_SPEED_100M_HD | ETH_LINK_SPEED_100M |
- ETH_LINK_SPEED_1G)) {
+ ETH_LINK_SPEED_1G | ETH_LINK_SPEED_FIXED)) {
  num_speeds = -1;
  goto error_invalid_config;
  }
@@ -651,7 +651,7 @@ eth_em_start(struct rte_eth_dev *dev)
  hw->phy.autoneg_advertised |= ADVERTISE_1000_FULL;
  num_speeds++;
  }
- if (num_speeds == 0 || (!autoneg && (num_speeds > 2)))
+ if (num_speeds == 0 || (!autoneg && (num_speeds > 1)))
  goto error_invalid_config;
  }

@@ -1100,14 +1100,18 @@ eth_em_link_update(struct rte_eth_dev *dev, int
wait_to_complete)
  if (link_check && (link.link_status == ETH_LINK_DOWN)) {
  uint16_t duplex, speed;
  hw->mac.ops.get_link_up_info(hw, &speed, &duplex);
- link.link_duplex = duplex ? ETH_LINK_FULL_DUPLEX :
+ link.link_duplex = (duplex == FULL_DUPLEX) ?
+ ETH_LINK_FULL_DUPLEX :
  ETH_LINK_HALF_DUPLEX;
  link.link_speed = speed;
  link.link_status = ETH_LINK_UP;
+ link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+ ETH_LINK_SPEED_FIXED);
  } else if (!link_check && (link.link_status == ETH_LINK_UP)) {
  link.link_speed = 0;
  link.link_duplex = ETH_LINK_HALF_DUPLEX;
  link.link_status = ETH_LINK_DOWN;
+ link.link_autoneg = ETH_LINK_SPEED_FIXED;
  }
  rte_em_dev_atomic_write_link_status(dev, &link);

diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index ced864c..e0053fe 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -1241,14 +1241,14 @@ eth_igb_start(struct rte_eth_dev *dev)
  hw->phy.autoneg_advertised = E1000_ALL_SPEED_DUPLEX;
  } else {
  num_speeds = 0;
- autoneg = (*speeds & ETH_LINK_SPEED_AUTONEG);
+ autoneg = (*speeds & ETH_LINK_SPEED_FIXED) == 0;

  /* Reset */
  hw->phy.autoneg_advertised = 0;

  if (*speeds & ~(ETH_LINK_SPEED_10M_HD | ETH_LINK_SPEED_10M |
  ETH_LINK_SPEED_100M_HD | ETH_LINK_SPEED_100M |
- ETH_LINK_SPEED_1G)) {
+ ETH_LINK_SPEED_1G | ETH_LINK_SPEED_FIXED)) {
  num_speeds = -1;
  goto error_invalid_config;
  }
@@ -1272,7 +1272,7 @@ eth_igb_start(struct rte_eth_dev *dev)
  hw->phy.autoneg_advertised |= ADVERTISE_1000_FULL;
  num_speeds++;
  }
- if (num_speeds == 0 || (!autoneg && (num_speeds > 2)))
+ if (num_speeds == 0 || (!autoneg && (num_speeds > 1)))
  goto error_invalid_config;
  }

@@ -2063,12 +2063,13 @@ eth_igb_link_update(struct rte_eth_dev *dev, int
wait_to_complete)
  if (link_check) {
  uint16_t duplex, speed;
  hw->mac.ops.get_link_up_info(hw, &speed, &duplex);
- link.link_duplex = duplex ? ETH_LINK_FULL_DUPLEX :
+ link.link_duplex = (duplex == FULL_DUPLEX) ?
+ ETH_LINK_FULL_DUPLEX :
  ETH_LINK_HALF_DUPLEX;
  link.link_speed = speed;
  link.link_status = ETH_LINK_UP;
- link.link_autoneg = (dev->data->dev_conf.link_speeds &
- ETH_LINK_SPEED_AUTONEG);
+ link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+ ETH_LINK_SPEED_FIXED);
  } else if (!link_check) {
  link.link_speed = 0;
  link.link_duplex = ETH_LINK_HALF_DUPLEX;
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 87bc767..c9ef417 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1422,7 +1422,7 @@ i40e_apply_link_speed(struct rte_eth_dev *dev)

  speed = i40e_parse_link_speeds(conf->link_speeds);
  abilities |= I40E_AQ_PHY_ENABLE_ATOMIC_LINK;
- if (conf->link_speeds & ETH_LINK_SPEED_AUTONEG)
+ if (!(conf->link_speeds & ETH_LINK_SPEED_FIXED))
  abilities |= I40E_AQ_PHY_AN_ENABLED;
  else
  abilities |= I40E_AQ_PHY_LINK_ENABLED;
@@ -1442,7 +1442,7 @@ i40e_dev_start(struct rte_eth_dev *dev)

  hw->adapter_stopped = 0;

- if (!(dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_AUTONEG)) {
+ if (dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED) {
  PMD_INIT_LOG(ERR, "Invalid link_speeds for port %hhu; autonegotiation
disabled",
      dev->data->port_id);
  return -EINVAL;
@@ -1806,8 +1806,8 @@ i40e_dev_link_update(struct rte_eth_dev *dev,
  break;
  }

- link.link_autoneg = (dev->data->dev_conf.link_speeds &
- ETH_LINK_SPEED_AUTONEG);
+ link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+ ETH_LINK_SPEED_FIXED);

 out:
  rte_i40e_dev_atomic_write_link_status(dev, &link);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
b/drivers/net/ixgbe/ixgbe_ethdev.c
index ff23d7d..6cc2da0 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2098,9 +2098,12 @@ ixgbe_dev_start(struct rte_eth_dev *dev)

  PMD_INIT_FUNC_TRACE();

- /* IXGBE devices don't support half duplex */
- if (!(dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_AUTONEG)) {
- PMD_INIT_LOG(ERR, "Invalid link_speeds for port %hhu; autonegotiation
disabled",
+ /* IXGBE devices don't support:
+ *    - half duplex (checked afterwards for valid speeds)
+ *    - fixed speed: TODO implement
+ */
+ if (dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED) {
+ PMD_INIT_LOG(ERR, "Invalid link_speeds for port %hhu; fix speed not
supported",
      dev->data->port_id);
  return -EINVAL;
  }
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 43ac763..81528c9 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -4721,8 +4721,8 @@ mlx4_link_update_unlocked(struct rte_eth_dev *dev,
int wait_to_complete)
  dev_link.link_speed = link_speed;
  dev_link.link_duplex = ((edata.duplex == DUPLEX_HALF) ?
  ETH_LINK_HALF_DUPLEX : ETH_LINK_FULL_DUPLEX);
- dev_link.link_autoneg = (dev->data->dev_conf.link_speeds &
- ETH_LINK_SPEED_AUTONEG);
+ dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+ ETH_LINK_SPEED_FIXED);
  if (memcmp(&dev_link, &dev->data->dev_link, sizeof(dev_link))) {
  /* Link status changed. */
  dev->data->dev_link = dev_link;
diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 477939f..36b369e 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -630,6 +630,8 @@ mlx5_link_update_unlocked(struct rte_eth_dev *dev, int
wait_to_complete)
  dev_link.link_speed = link_speed;
  dev_link.link_duplex = ((edata.duplex == DUPLEX_HALF) ?
  ETH_LINK_HALF_DUPLEX : ETH_LINK_FULL_DUPLEX);
+ dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+ ETH_LINK_SPEED_FIXED);
  if (memcmp(&dev_link, &dev->data->dev_link, sizeof(dev_link))) {
  /* Link status changed. */
  dev->data->dev_link = dev_link;
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index ef2502a..fb247a7 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -244,8 +244,8 @@ struct rte_eth_stats {
 /**
  * Device supported speeds bitmap flags
  */
-#define ETH_LINK_SPEED_FIXED    (0 <<  0)  /**< Disable autoneg (fixed
speed) */
-#define ETH_LINK_SPEED_AUTONEG  (1 <<  0)  /**< Autonegotiate (all speeds)
*/
+#define ETH_LINK_SPEED_AUTONEG  (0 <<  0)  /**< Autonegotiate (all speeds)
*/
+#define ETH_LINK_SPEED_FIXED    (1 <<  0)  /**< Disable autoneg (fixed
speed) */
 #define ETH_LINK_SPEED_10M_HD   (1 <<  1)  /**<  10 Mbps half-duplex */
 #define ETH_LINK_SPEED_10M      (1 <<  2)  /**<  10 Mbps full-duplex */
 #define ETH_LINK_SPEED_100M_HD  (1 <<  3)  /**< 100 Mbps half-duplex */



>
> @Thomas: once I've fixed this shall I submit v13 or should we wait for
> more feedback from the rest of untested NICs? This patchset needs to be
> tested by all drivers, at least.
>
> marc
>
>
>> Marc
>>
>>
>>> Regards,
>>> Helin
>>>
>>> > -----Original Message-----
>>> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
>>> > Sent: Friday, March 25, 2016 5:36 PM
>>> > To: Xu, Qian Q <qian.q.xu@intel.com>
>>> > Cc: dev@dpdk.org; Marc <marcdevel@gmail.com>; Ananyev, Konstantin
>>> > <konstantin.ananyev@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>;
>>> > Zhang, Helin <helin.zhang@intel.com>; Richardson, Bruce
>>> > <bruce.richardson@intel.com>; Glynn, Michael J <
>>> michael.j.glynn@intel.com>
>>> > Subject: Re: [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed API
>>> > refactoring
>>> >
>>> > Is there someone investigating the issue?
>>> > I think it should be simple to fix for someone mastering these Intel
>>> drivers.
>>> >
>>> > 2016-03-25 01:02, Xu, Qian Q:
>>> > > Marc
>>> > > #Test1 is just a simple test. Just launch testpmd with these nic
>>> port.
>>> > > ./testpmd –c 0x3 –n 4 -- -i
>>> > >
>>> > > Thanks
>>> > > Qian
>>> > >
>>> > > From: marc.sune@gmail.com [mailto:marc.sune@gmail.com] On Behalf Of
>>> > > Marc
>>> > > Sent: Thursday, March 24, 2016 3:48 PM
>>> > > To: Xu, Qian Q
>>> > > Cc: Thomas Monjalon; Ananyev, Konstantin; Lu, Wenzhuo; Zhang, Helin;
>>> > > Richardson, Bruce; dev@dpdk.org
>>> > > Subject: Re: [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed
>>> > > API refactoring
>>> > >
>>> > >
>>> > >
>>> > > On 24 March 2016 at 07:21, Xu, Qian Q
>>> > <qian.q.xu@intel.com<mailto:qian.q.xu@intel.com>> wrote:
>>> > > Marc
>>> > > I didn’t quite get your points, I observed that after applying this
>>> patchset, all
>>> > intel nic can’t be started, maybe something wrong happened when you
>>> check
>>> > the duplex/autoneg value for different NICs. If we want to merge the
>>> patchset in
>>> > RC2, we need fix them. Maybe not an easy job in several days.
>>> > >
>>> > > Is this test#1 one of the tests contained in the DPDK repository or
>>> is it an
>>> > internal test?
>>> > >
>>> > > Marc
>>> > >
>>> > >
>>> > >
>>> > > Thanks
>>> > > Qian
>>> > >
>>> > > From: marc.sune@gmail.com<mailto:marc.sune@gmail.com>
>>> > > [mailto:marc.sune@gmail.com<mailto:marc.sune@gmail.com>] On Behalf
>>> Of
>>> > > Marc
>>> > > Sent: Thursday, March 24, 2016 4:54 AM
>>> > > To: Xu, Qian Q
>>> > > Cc: Thomas Monjalon; Ananyev, Konstantin; Lu, Wenzhuo; Zhang, Helin;
>>> > > Richardson, Bruce; dev@dpdk.org<mailto:dev@dpdk.org>
>>> > >
>>> > > Subject: Re: [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed
>>> > > API refactoring
>>> > >
>>> > > Qian,
>>> > >
>>> > > On 23 March 2016 at 02:18, Xu, Qian Q
>>> > <qian.q.xu@intel.com<mailto:qian.q.xu@intel.com>> wrote:
>>> > > We have tested with intel nic and found port can't be started for all
>>> > nics:ixgbe/i40e/igb/bonding, see attached mail for more details.
>>> Please check
>>> > and fix it.
>>> > >
>>> > >
>>> > > Thanks
>>> > > Qian
>>> > >
>>> > > -----Original Message-----
>>> > > From: dev [mailto:dev-bounces@dpdk.org<mailto:dev-bounces@dpdk.org>]
>>> > > On Behalf Of Thomas Monjalon
>>> > > Sent: Wednesday, March 23, 2016 3:59 AM
>>> > > To: Ananyev, Konstantin; Lu, Wenzhuo; Zhang, Helin
>>> > > Cc: marcdevel@gmail.com<mailto:marcdevel@gmail.com>; Richardson,
>>> > > Bruce; dev@dpdk.org<mailto:dev@dpdk.org>
>>> > > Subject: Re: [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed
>>> > > API refactoring
>>> > >
>>> > > 2016-03-17 19:08, Thomas Monjalon:
>>> > > > There are still too few tests and reviews, especially for
>>> > > > autonegotiation with Intel devices (patch #6).
>>> > > > I would not be surprised to see some bugs in this rework.
>>> > >
>>> > > Any feedback about autoneg in e1000/ixgbe/i40e?
>>> > > Has it been tested before its integration in RC2?
>>> > >
>>> > > > The capabilities must be adapted per device. It can be improved in
>>> a
>>> > > > separate patch.
>>> > > >
>>> > > > It will be integrated in 16.04-rc2.
>>> > > > Please test and review shortly, thanks!
>>> > >
>>> > >
>>> > > ---------- Forwarded message ----------
>>> > > From: "Xu, Qian Q" <qian.q.xu@intel.com<mailto:qian.q.xu@intel.com>>
>>> > > To: "Cao, Waterman"
>>> > > <waterman.cao@intel.com<mailto:waterman.cao@intel.com>>, "Glynn,
>>> > > Michael J"
>>> > > <michael.j.glynn@intel.com<mailto:michael.j.glynn@intel.com>>
>>> > > Cc: "Richardson, Bruce"
>>> > > <bruce.richardson@intel.com<mailto:bruce.richardson@intel.com>>,
>>> "Zhu,
>>> > > Heqing" <heqing.zhu@intel.com<mailto:heqing.zhu@intel.com>>,
>>> > > "O'Driscoll, Tim"
>>> > > <tim.odriscoll@intel.com<mailto:tim.odriscoll@intel.com>>,
>>> "Mcnamara,
>>> > > John" <john.mcnamara@intel.com<mailto:john.mcnamara@intel.com>>,
>>> "Xu,
>>> > > HuilongX" <huilongx.xu@intel.com<mailto:huilongx.xu@intel.com>>,
>>> "Fu,
>>> > > JingguoX" <jingguox.fu@intel.com<mailto:jingguox.fu@intel.com>>,
>>> "Xu,
>>> > > Qian Q" <qian.q.xu@intel.com<mailto:qian.q.xu@intel.com>>, "Zhang,
>>> > > Helin" <helin.zhang@intel.com<mailto:helin.zhang@intel.com>>
>>> > > Date: Tue, 22 Mar 2016 06:41:37 +0000
>>> > > Subject: RE: DPDK link speed with Intel devices Hi, all We have
>>> worked
>>> > > out the basic test cases for the patchset.
>>> > > 1. Test the link speed on major Intel NICs to see if the speed is
>>> right.
>>> > > 2. Test the auto-negoation on major Intel NICs to ensure it's
>>> working.
>>> > > Nic covered: ixgbe, igb, i40e, fm10k, bonding(SW), virtio(SW)
>>> > >
>>> > > When we run the Test#1 for all major NICs. We found that all these
>>> NIC port(igb,
>>> > ixgbe, i40e, fm10k) can't be started. Pls check, if the patch is
>>> applied, all INTEL
>>> > port can't be start, terrible things!
>>> > >
>>> > > Interactive-mode selected
>>> > > Configuring Port 0 (socket 0)
>>> > > PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f13e99e3440
>>> > > hw_ring=0x7f13e99e5480 dma_addr=0x8299e5480
>>> > > PMD: ixgbe_set_tx_function(): Using simple tx code path
>>> > > PMD: ixgbe_set_tx_function(): Vector tx enabled.
>>> > > PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f13ffcb8080
>>> > > sw_sc_ring=0x7f13ffcbaac0 hw_ring=0x7f13e99d3380 dma_addr=0x8299d3380
>>> > > PMD: ixgbe_dev_start(): Invalid link_speeds for port 0;
>>> > > autonegotiation disabled Fail to start port 0 Configuring Port 1
>>> > > (socket 0)
>>> > > PMD: i40e_set_tx_function_flag(): Vector tx can be enabled on this
>>> txq.
>>> > > PMD: i40e_dev_rx_queue_setup(): Rx Burst Bulk Alloc Preconditions are
>>> > satisfied. Rx Burst Bulk Alloc function will be used on port=1,
>>> queue=0.
>>> > > PMD: i40e_dev_start(): Invalid link_speeds for port 1;
>>> autonegotiation
>>> > > disabled
>>> > >
>>> > >
>>> > > Just to double-check; is the test#1 adapted to the _new_ API that
>>> ethdev has
>>> > to set link speeds? For the output it seems autoneg is disabled =>
>>> fixed speed,
>>> > hence the new bitmaps have to be used.
>>> > >
>>> > > (I am not claiming patchset is bug free; there might be issues still)
>>> > >
>>> > > Regards
>>> > > marc
>>> > >
>>> > > Fail to start port 1
>>> > > Please stop the ports first
>>> > > Done
>>> > >
>>> > > Thanks
>>> > > Qian
>>> > >
>>> > >
>>> > > -----Original Message-----
>>> > > From: Cao, Waterman
>>> > > Sent: Tuesday, March 22, 2016 11:06 AM
>>> > > To: Glynn, Michael J
>>> > > Cc: Richardson, Bruce; Zhu, Heqing; O'Driscoll, Tim; Mcnamara, John;
>>> > > Xu, Qian Q; Cao, Waterman
>>> > > Subject: RE: DPDK link speed with Intel devices
>>> > >
>>> > > Hi Mike,
>>> > >
>>> > >         We just knew this patch set last week.
>>> > >         Since this patch set is required to test with a lot of NIC,
>>> we need
>>> > more document from Dev about this patch.
>>> > >         Currently, Qian is working on with Wenzhuo on it now.
>>> > >
>>> > > Waterman
>>> > >
>>> > >
>>> > > -----Original Message-----
>>> > > From: Glynn, Michael J
>>> > > Sent: Tuesday, March 22, 2016 1:31 AM
>>> > > To: Cao, Waterman
>>> > > <waterman.cao@intel.com<mailto:waterman.cao@intel.com>>
>>> > > Cc: Richardson, Bruce
>>> > > <bruce.richardson@intel.com<mailto:bruce.richardson@intel.com>>;
>>> Zhu,
>>> > > Heqing <heqing.zhu@intel.com<mailto:heqing.zhu@intel.com>>;
>>> > > O'Driscoll, Tim
>>> > > <tim.odriscoll@intel.com<mailto:tim.odriscoll@intel.com>>; Mcnamara,
>>> > > John <john.mcnamara@intel.com<mailto:john.mcnamara@intel.com>>
>>> > > Subject: FW: DPDK link speed with Intel devices
>>> > > Importance: High
>>> > >
>>> > > Hi Waterman, all
>>> > >
>>> > > See below - are you aware? And if so where are we with
>>> testing/resolution?
>>> > >
>>> > > Regards
>>> > > Mike
>>> > >
>>> > >
>>> > >
>>> > > -----Original Message-----
>>> > > From: Thomas Monjalon
>>> > >
>>> > [mailto:thomas.monjalon@6wind.com<mailto:thomas.monjalon@6wind.com>]
>>> > > Sent: Monday, March 21, 2016 2:19 PM
>>> > > To: O'Driscoll, Tim
>>> > > <tim.odriscoll@intel.com<mailto:tim.odriscoll@intel.com>>; Glynn,
>>> > > Michael J
>>> > > <michael.j.glynn@intel.com<mailto:michael.j.glynn@intel.com>>; Zhu,
>>> > > Heqing <heqing.zhu@intel.com<mailto:heqing.zhu@intel.com>>
>>> > > Cc: vincent.jardin@6wind.com<mailto:vincent.jardin@6wind.com>
>>> > > Subject: DPDK link speed with Intel devices
>>> > >
>>> > > Hi,
>>> > >
>>> > > We are still waiting for test feedbacks for this important patchset:
>>> > >         ethdev: 100G and link speed API refactoring It is possible
>>> that it
>>> > breaks the autonegotiation in e1000/ixgbe/i40e.
>>> > >
>>> > > Thanks for taking care.
>>> > >
>>> > >
>>> >
>>>
>>>
>>
>

  reply	other threads:[~2016-03-26  1:25 UTC|newest]

Thread overview: 167+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1443993003-1059-1-git-send-email-marcdevel@gmail.com>
2015-10-25 21:59 ` [PATCH v6 0/5] ethdev: add speed capabilities and refactor link API Marc Sune
2015-10-25 21:59   ` [PATCH v6 1/5] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2015-11-01 22:11     ` Thomas Monjalon
2015-11-18 23:08       ` Marc Sune
2015-10-25 21:59   ` [PATCH v6 2/5] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2015-10-25 21:59   ` [PATCH v6 3/5] ethdev: redesign link speed config API Marc Sune
2015-10-25 22:03     ` Marc Sune
2015-11-01 22:16     ` Thomas Monjalon
2015-11-18 22:59       ` Marc Sune
2015-10-25 21:59   ` [PATCH v6 4/5] doc: update with link changes Marc Sune
2015-10-25 22:00   ` [PATCH v6 5/5] ethdev: add rte_eth_speed_to_bm_flag() to ver. map Marc Sune
2015-12-16 20:37   ` [PATCH v6 0/5] ethdev: add speed capabilities and refactor link API Marc Sune
2015-12-16 20:44     ` Olga Shern
2016-01-29  0:42   ` [PATCH v7 " Marc Sune
2016-01-29  0:42     ` [PATCH v7 1/5] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2016-01-29  0:42     ` [PATCH v7 2/5] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2016-01-29  0:42     ` [PATCH v7 3/5] ethdev: redesign link speed config API Marc Sune
2016-01-29  9:24       ` Ananyev, Konstantin
2016-01-29  9:37         ` Thomas Monjalon
2016-01-29  9:47           ` Ananyev, Konstantin
2016-01-29  9:53             ` Thomas Monjalon
2016-01-29 10:17               ` Ananyev, Konstantin
2016-01-29 12:40                 ` Marc
2016-02-01  0:40                 ` Zhang, Helin
2016-02-02  0:04                   ` Marc
2016-02-02  0:45                     ` FW: " Zhang, Helin
2016-01-29 16:16       ` Nélio Laranjeiro
2016-01-31 21:24         ` Marc
2016-01-29  0:42     ` [PATCH v7 4/5] doc: update with link changes Marc Sune
2016-01-29  0:42     ` [PATCH v7 5/5] ethdev: add rte_eth_speed_to_bm_flag() to ver. map Marc Sune
2016-01-29 13:05       ` Panu Matilainen
2016-01-31 21:21         ` Marc
2016-02-14 22:17     ` [PATCH v8 0/4] ethdev: add speed capabilities and refactor link API Marc Sune
2016-02-14 22:17       ` [PATCH v8 1/4] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2016-02-16 20:42         ` Stephen Hemminger
2016-02-14 22:17       ` [PATCH v8 2/4] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2016-02-15  8:43         ` Nélio Laranjeiro
2016-02-15  9:17           ` Chen, Jing D
2016-02-15 14:43         ` Rahul Lakkireddy
2016-02-15 17:14           ` Marc
2016-02-16 15:25             ` Nélio Laranjeiro
2016-02-16 22:49               ` Marc
2016-02-14 22:17       ` [PATCH v8 3/4] ethdev: redesign link speed config API Marc Sune
2016-02-15  8:46         ` Nélio Laranjeiro
2016-02-15 11:00           ` Marc
2016-02-15 11:39             ` Olga Shern
2016-02-16 10:28         ` Matej Vido
2016-02-16 22:55           ` Marc
2016-02-14 22:17       ` [PATCH v8 4/4] doc: update with link changes Marc Sune
2016-02-18 18:14         ` Mcnamara, John
2016-02-28 22:17           ` Marc
2016-03-01  0:45       ` [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API Marc Sune
2016-03-01  0:45         ` [PATCH v9 1/4] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2016-03-01  0:45         ` [PATCH v9 2/4] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2016-03-01  0:45         ` [PATCH v9 3/4] ethdev: redesign link speed config API Marc Sune
2016-03-09  8:45           ` Nélio Laranjeiro
2016-03-09 10:09             ` Marc
2016-03-09 10:20               ` Nélio Laranjeiro
2016-03-01  0:45         ` [PATCH v9 4/4] doc: update with link changes Marc Sune
2016-03-08 15:00         ` [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API Marc Sune
2016-03-08 16:53           ` Nélio Laranjeiro
2016-03-09  9:29             ` Nélio Laranjeiro
2016-03-09 10:09               ` Nélio Laranjeiro
2016-03-09 20:57                 ` Marc
2016-03-14 21:55         ` [PATCH v10 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-14 21:55           ` [PATCH v10 1/8] ethdev: use constants for link state Thomas Monjalon
2016-03-15  1:26             ` Zhang, Helin
2016-03-14 21:55           ` [PATCH v10 2/8] ethdev: use constants for link duplex Thomas Monjalon
2016-03-14 21:55           ` [PATCH v10 3/8] app/testpmd: move speed and duplex parsing in a function Thomas Monjalon
2016-03-14 21:55           ` [PATCH v10 4/8] ethdev: rename link speed constants Thomas Monjalon
2016-03-14 21:55           ` [PATCH v10 5/8] ethdev: add speed capabilities Thomas Monjalon
2016-03-14 21:55           ` [PATCH v10 6/8] ethdev: redesign link speed config Thomas Monjalon
2016-03-14 21:55           ` [PATCH v10 7/8] ethdev: convert speed number to bitmap flag Thomas Monjalon
2016-03-14 21:55           ` [PATCH v10 8/8] ethdev: add 100G link speed Thomas Monjalon
2016-03-15  0:04           ` [PATCH v10 0/8] ethdev: 100G and link speed API refactoring Matej Vido
2016-03-15  7:12             ` Thomas Monjalon
2016-03-15  7:45               ` Matej Vido
2016-03-15  8:38           ` Nélio Laranjeiro
2016-03-15 13:12           ` [PATCH 0/4] szedata2: " Matej Vido
2016-03-15 13:12             ` [PATCH 1/4] szedata2: use constants for link state Matej Vido
2016-03-15 13:12             ` [PATCH 2/4] szedata2: rename link speed constants Matej Vido
2016-03-15 13:12             ` [PATCH 3/4] szedata2: redesign link speed config Matej Vido
2016-03-15 13:12             ` [PATCH 4/4] szedata2: add 100G link speed Matej Vido
2016-03-15 13:41               ` Thomas Monjalon
2016-03-15 13:47                 ` Matej Vido
2016-03-15 13:50                 ` Matej Vido
2016-03-15 20:51                   ` Thomas Monjalon
2016-03-17 18:08           ` [PATCH v11 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-17 18:08             ` [PATCH v11 1/8] ethdev: use constants for link state Thomas Monjalon
2016-03-17 18:08             ` [PATCH v11 2/8] ethdev: use constants for link duplex Thomas Monjalon
2016-03-23  2:44               ` Zhang, Helin
2016-03-23  8:34                 ` Thomas Monjalon
2016-03-17 18:09             ` [PATCH v11 3/8] app/testpmd: move speed and duplex parsing in a function Thomas Monjalon
2016-03-17 18:09             ` [PATCH v11 4/8] ethdev: rename link speed constants Thomas Monjalon
2016-03-23  2:52               ` Zhang, Helin
2016-03-23  8:31                 ` Thomas Monjalon
2016-03-17 18:09             ` [PATCH v11 5/8] ethdev: add speed capabilities Thomas Monjalon
2016-03-18  5:18               ` Chen, Jing D
2016-03-18  8:06                 ` Thomas Monjalon
2016-03-18  9:28               ` Adrien Mazarguil
2016-03-18 10:12                 ` Thomas Monjalon
2016-03-17 18:09             ` [PATCH v11 6/8] ethdev: redesign link speed config Thomas Monjalon
2016-03-17 18:09             ` [PATCH v11 7/8] ethdev: convert speed number to bitmap flag Thomas Monjalon
2016-03-17 18:09             ` [PATCH v11 8/8] ethdev: add 100G link speed Thomas Monjalon
2016-03-22 19:58             ` [PATCH v11 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-23  1:18               ` Xu, Qian Q
2016-03-23  8:39                 ` Thomas Monjalon
2016-03-23 20:54                 ` Marc
2016-03-24  6:21                   ` Xu, Qian Q
2016-03-24  7:47                     ` Marc
2016-03-25  1:02                       ` Xu, Qian Q
2016-03-25  9:35                         ` Thomas Monjalon
2016-03-25 15:07                           ` Zhang, Helin
2016-03-25 15:32                             ` Thomas Monjalon
2016-03-25 20:41                             ` Marc
2016-03-25 21:30                               ` Marc
2016-03-26  1:25                                 ` Marc [this message]
2016-03-26  8:08                                 ` Thomas Monjalon
2016-03-26 10:24                                   ` Marc
2016-03-27  9:53                                     ` Thomas Monjalon
2016-03-27 19:39                                       ` Marc
2016-03-28 13:42                                         ` Thomas Monjalon
2016-03-28 19:11                                           ` Marc
2016-03-24 17:32             ` Matej Vido
2016-03-25 19:42             ` [PATCH v12 " Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 1/8] ethdev: use constants for link state Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 2/8] ethdev: use constants for link duplex Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 3/8] app/testpmd: move speed and duplex parsing in a function Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 4/8] ethdev: rename link speed constants Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 5/8] ethdev: add speed capabilities Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 6/8] ethdev: redesign link speed config Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 7/8] ethdev: convert speed number to bitmap flag Thomas Monjalon
2016-03-25 19:42               ` [PATCH v12 8/8] ethdev: add 100G link speed Thomas Monjalon
2016-03-26  1:27               ` [PATCH v13 0/8] ethdev: 100G and link speed API refactoring Marc Sune
2016-03-26  1:27                 ` [PATCH v13 1/8] ethdev: use constants for link state Marc Sune
2016-03-26  1:27                 ` [PATCH v13 2/8] ethdev: use constants for link duplex Marc Sune
2016-03-26  1:27                 ` [PATCH v13 3/8] app/testpmd: move speed and duplex parsing in a function Marc Sune
2016-03-26  1:27                 ` [PATCH v13 4/8] ethdev: rename link speed constants Marc Sune
2016-04-06  8:34                   ` Weglicki, MichalX
2016-04-06  8:52                     ` Thomas Monjalon
2016-04-06  9:16                       ` Weglicki, MichalX
2016-04-06  9:34                         ` Thomas Monjalon
2016-03-26  1:27                 ` [PATCH v13 5/8] ethdev: add speed capabilities Marc Sune
2016-03-29 13:31                   ` Alejandro Lucero
2016-03-30  8:06                     ` Marc
2016-03-26  1:27                 ` [PATCH v13 6/8] ethdev: redesign link speed config Marc Sune
2016-03-29  6:18                   ` Xing, Beilei
2016-03-30  7:59                     ` Marc
2016-03-31  0:57                       ` Xing, Beilei
2016-03-31 12:28                         ` Thomas Monjalon
2016-04-01  9:53                           ` Xing, Beilei
2016-03-26  1:27                 ` [PATCH v13 7/8] ethdev: convert speed number to bitmap flag Marc Sune
2016-03-26  1:27                 ` [PATCH v13 8/8] ethdev: add 100G link speed Marc Sune
2016-03-26  8:11                 ` [PATCH v13 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-31 16:17                   ` Adrien Mazarguil
2016-03-30  9:23                 ` Thomas Monjalon
2016-03-31  6:25                   ` Lu, Wenzhuo
2016-03-31 22:12                 ` [PATCH v14 " Marc Sune
2016-03-31 22:12                   ` [PATCH v14 1/8] ethdev: use constants for link state Marc Sune
2016-03-31 22:12                   ` [PATCH v14 2/8] ethdev: use constants for link duplex Marc Sune
2016-03-31 22:12                   ` [PATCH v14 3/8] app/testpmd: move speed and duplex parsing in a function Marc Sune
2016-03-31 22:12                   ` [PATCH v14 4/8] ethdev: rename link speed constants Marc Sune
2016-03-31 22:12                   ` [PATCH v14 5/8] ethdev: add speed capabilities Marc Sune
2016-03-31 22:12                   ` [PATCH v14 6/8] ethdev: redesign link speed config Marc Sune
2016-03-31 22:12                   ` [PATCH v14 7/8] ethdev: convert speed number to bitmap flag Marc Sune
2016-03-31 22:12                   ` [PATCH v14 8/8] ethdev: add 100G link speed Marc Sune
2016-04-01 19:38                   ` [PATCH v14 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAExC=0RVN6_ffM7EDPdK32-C1k-QdSXj2GNFDLito+jbttobdQ@mail.gmail.com' \
    --to=marcdevel@gmail.com \
    --cc=beilei.xing@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=michael.j.glynn@intel.com \
    --cc=qian.q.xu@intel.com \
    --cc=thomas.monjalon@6wind.com \
    --cc=wenzhuo.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.