All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Stephen Hemminger <stephen@networkplumber.org>,
	Andrew Rybchenko <arybchenko@solarflare.com>
Cc: dev@dpdk.org, Stephen Hemminger <sthemmin@microsoft.com>
Subject: Re: [RFC 02/14] virtio: use eth_link_read/write (and bug fix)
Date: Fri, 05 Jan 2018 16:04:23 +0100	[thread overview]
Message-ID: <3049472.WSApEpTIyO@xps> (raw)
In-Reply-To: <20170717092836.0d8932fc@xeon-e3>

17/07/2017 18:28, Stephen Hemminger:
> On Mon, 17 Jul 2017 19:14:16 +0300
> Andrew Rybchenko <arybchenko@solarflare.com> wrote:
> 
> > On 07/17/2017 07:01 PM, Stephen Hemminger wrote:
> > > On Sun, 16 Jul 2017 15:33:26 +0300
> > > Andrew Rybchenko <arybchenko@solarflare.com> wrote:
> > >  
> > >>> +	link.link_autoneg = ETH_LINK_SPEED_FIXED;  
> > >> As I understand link_autoneg is 1 bit field with boolean semantics. I.e. 0/false - no autoneg, 1/true - autoneg.
> > >> It looks like it has wrong comment:
> > >>           uint16_t link_autoneg : 1;  /**< ETH_LINK_SPEED_[AUTONEG/FIXED] */
> > >>
> > >> since
> > >> #define ETH_LINK_SPEED_AUTONEG  (0 <<  0)  /**< Autonegotiate (all speeds) */
> > >> #define ETH_LINK_SPEED_FIXED    (1 <<  0)  /**< Disable autoneg (fixed speed) */
> > >>
> > >> whereas
> > >> #define ETH_LINK_FIXED          0 /**< No autonegotiation. */
> > >> #define ETH_LINK_AUTONEG        1 /**< Autonegotiated. */
> > >>
> > >> In general this attempt to introduce bug is the result of wrong comment which is caused by very similar
> > >> defines with opposite values.  
> > > Orignal observation was because some drivers (vmxnet3) were setting autoneg = fixed
> > > and others were not. Turns out it makes no difference
> > > since FIXED == 0, the old code and new code have same effect.  
> > 
> > May be I miss something, but  ETH_LINK_SPEED_FIXED==1, but 
> > ETH_LINK_FIXED==0.
> > So, initially it was 0 (fixed speed), but now it is 1 (autoneg).
> 
> My understanding is that ETH_SPEED_XXX and ETH_LINK_FIXED are for rte_eth_link
> structure; and ETH_LINK_SPEED_XXX values are for dev_info->speed_capa

Right.
The comment is wrong.
rte_eth_link.link_autoneg must uses ETH_LINK_[FIXED/AUTONEG]
ETH_LINK_SPEED_[AUTONEG/FIXED] is for rte_eth_conf.link_speeds
and for rte_eth_dev_info.speed_capa.

So in this patch, you should set link.link_autoneg = ETH_LINK_FIXED.

I will send a patch to fix the comment in ethdev.

  reply	other threads:[~2018-01-05 15:04 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-14 18:30 [RFC 00/14] link status API improvement and bugfixes Stephen Hemminger
2017-07-14 18:30 ` [RFC 01/14] ethdev: add link status read/write functions Stephen Hemminger
2017-07-16 13:26   ` Andrew Rybchenko
2017-07-17 15:58     ` Stephen Hemminger
2017-07-17 16:12       ` Andrew Rybchenko
2017-07-17 16:21         ` Stephen Hemminger
2017-07-17 16:31           ` Andrew Rybchenko
2017-10-11  8:32   ` Yang, Qiming
2017-10-13 15:12     ` Stephen Hemminger
2018-01-05 14:24       ` Thomas Monjalon
2018-01-05 20:15         ` Stephen Hemminger
2017-07-14 18:30 ` [RFC 02/14] virtio: use eth_link_read/write (and bug fix) Stephen Hemminger
2017-07-16 12:33   ` Andrew Rybchenko
2017-07-17 16:01     ` Stephen Hemminger
2017-07-17 16:14       ` ***Spam*** " Andrew Rybchenko
2017-07-17 16:28         ` Stephen Hemminger
2018-01-05 15:04           ` Thomas Monjalon [this message]
2017-07-14 18:30 ` [RFC 03/14] bnxt: use rte_link_update Stephen Hemminger
2017-07-14 18:30 ` [RFC 04/14] vmxnet3: use rte_eth_link_update Stephen Hemminger
2017-07-14 18:30 ` [RFC 05/14] dpaa2: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 06/14] nfp: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 07/14] e1000: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 08/14] ixgbe: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 09/14] sfc: use new rte_eth_link helpers Stephen Hemminger
2017-07-16 13:48   ` Andrew Rybchenko
2017-07-17 16:02     ` Stephen Hemminger
2017-07-17 16:19       ` Andrew Rybchenko
2017-07-14 18:30 ` [RFC 10/14] i40e: use rte_eth_link_update (and bug fix) Stephen Hemminger
2017-07-14 18:30 ` [RFC 11/14] liquidio: use _rte_eth_link_update Stephen Hemminger
2017-07-18 10:17   ` Shijith Thotton
2017-07-14 18:30 ` [RFC 12/14] thunderx: " Stephen Hemminger
2017-07-14 18:30 ` [RFC 13/14] szedata: " Stephen Hemminger
2017-07-16 12:46   ` Andrew Rybchenko
2017-07-14 18:30 ` [RFC 14/14] enic: " Stephen Hemminger
2017-07-16 13:55 ` [RFC 00/14] link status API improvement and bugfixes Andrew Rybchenko
2018-01-05 14:29 ` Thomas Monjalon
2018-01-05 20:18   ` Stephen Hemminger

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=3049472.WSApEpTIyO@xps \
    --to=thomas@monjalon.net \
    --cc=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    --cc=stephen@networkplumber.org \
    --cc=sthemmin@microsoft.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.