All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhao1, Wei" <wei.zhao1@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	"Mcnamara, John" <john.mcnamara@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"Lu, Wenzhuo" <wenzhuo.lu@intel.com>
Subject: Re: [PATCH v4 1/3] lib/librte_ether: add support for port reset
Date: Fri, 14 Apr 2017 08:03:04 +0000	[thread overview]
Message-ID: <A2573D2ACFCADC41BB3BE09C6DE313CA0207ED75@PGSMSX103.gar.corp.intel.com> (raw)
In-Reply-To: <3836931.6Eq3YNmgkB@xps13>

Hi, Thomas

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Friday, April 14, 2017 2:31 PM
> To: Zhao1, Wei <wei.zhao1@intel.com>
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v4 1/3] lib/librte_ether: add support for port
> reset
> 
> 2017-04-14 01:29, Zhao1, Wei:
> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > 2017-04-13 08:55, Zhao1, Wei:
> > > > From: Ananyev, Konstantin
> > > > > From: Zhao1, Wei
> > > > > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > > > > > 2017-04-06 02:57, Zhao1, Wei:
> > > > > > > > >   /**
> > > > > > > > > > + * Reset an ethernet device when it's not working.
> > > > > > > > > > + One scenario is, after PF
> > > > > > > > > > + * port is down and up, the related VF port should be reset.
> > > > > > > > > > + * The API will stop the port, clear the rx/tx
> > > > > > > > > > + queues, re-setup the rx/tx
> > > > > > > > > > + * queues, restart the port.
> > > > > > > > >
> > > > > > > > > s/The API/This function/
> > > > > > > > >
> > > > > > > > > Please explain exactly the responsibility of this
> > > > > > > > > function, and how it is different from calling
> stop/configure/start.
> > > > > > > >
> > > > > > > > In this reset feature, reset function can do the calling
> > > > > > > > stop/configure/start process, but also It can also do some
> > > > > > > > restore work for the port, for example, it can restore the
> > > > > > > > added parameters  of
> > > > > > > vlan,  mac_addrs, promisc_unicast_enabled falg and
> > > > > > > promisc_multicast_enabled flag.
> > > > >
> > > > > Ok, but why start/stop can't do these things?
> > > > > Konstantin
> > > >
> > > > This is because in i40e PMD code, start and stop process do not
> > > > have the process of store and restore the added key parameters.
> > > > Not  only i40e but also other PMD code. So, in the function
> > > > pointed to by dev_reset,
> > > we add specific function do store and restore of some of the
> > > important parameters  listed above.
> > >
> > > Why store and restore cannot be implemented in start/stop functions?
> >
> > Because reset and  start/stop are used for two purposes,  for example:
> > Some user maybe just start/stop the port  and he do not care what key
> > parameters has been configuration last time, and even worse when he
> > want to clear all the configuration last time , if we add specific
> > function do store and restore in  that two function, it is useless for them,
> and may cause a result that user do not expect.
> 
> Is it said somewhere in the doc that the configuration is lost when stopping a
> device?
> Can we say which configuration parameter is kept and which one is lost?
> 
> rte_eth_dev_config_restore() is called in rte_eth_dev_start().

Port reset process not only involve the rte_eth_dev_start() and rte_eth_dev_stop().
It also involve eth_dev_uninit() and eth_dev_init() process,
in which PMD device uninit and init. In this case, for example, data->mac_addrs buffer is freed so it need to add store and restore function.
BUT, if you only call stop/configure/start process, that is not strictly what named "device reset".

  reply	other threads:[~2017-04-14  8:03 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-30  9:34 [PATCH v4 0/3] net/i40e: vf port reset Wei Zhao
2017-03-30  9:34 ` [PATCH v4 1/3] lib/librte_ether: add support for " Wei Zhao
2017-03-30 19:55   ` Thomas Monjalon
2017-04-06  2:57     ` Zhao1, Wei
2017-04-06  7:11       ` Thomas Monjalon
2017-04-06  8:53         ` Zhao1, Wei
2017-04-06  9:02           ` Ananyev, Konstantin
2017-04-10 20:58             ` Thomas Monjalon
2017-04-13  8:55             ` Zhao1, Wei
2017-04-13 10:06               ` Thomas Monjalon
2017-04-14  1:29                 ` Zhao1, Wei
2017-04-14  6:31                   ` Thomas Monjalon
2017-04-14  8:03                     ` Zhao1, Wei [this message]
2017-04-17  2:08                       ` Zhao1, Wei
2017-04-17  5:02                         ` Zhao1, Wei
2017-04-20  6:07       ` Yuanhan Liu
2017-04-20  9:17         ` Zhao1, Wei
2017-04-21  2:27           ` Yuanhan Liu
2017-04-21  8:27             ` Thomas Monjalon
2017-04-21  8:59               ` Zhao1, Wei
2017-04-21  9:28                 ` Thomas Monjalon
2017-04-24  2:01                   ` Yuanhan Liu
2017-04-24  3:15                     ` Zhao1, Wei
2017-04-24  3:39                     ` Zhao1, Wei
2017-04-24  8:04                       ` Thomas Monjalon
2017-04-25  3:14                         ` Zhao1, Wei
2017-04-21  8:55             ` Zhao1, Wei
2017-03-30  9:34 ` [PATCH v4 2/3] net/i40e: implement device reset on port Wei Zhao
2017-03-30  9:34 ` [PATCH v4 3/3] app/testpmd: add port reset command into testpmd Wei Zhao
2017-03-30 12:32 ` [PATCH v4 0/3] net/i40e: vf port reset Wu, Jingjing
2017-04-05  5:42   ` Zhao1, Wei
2017-04-06  6:33 ` [PATCH v5 " Wei Zhao
2017-04-06  6:33   ` [PATCH v5 1/3] lib/librte_ether: add support for " Wei Zhao
2017-04-06  6:33   ` [PATCH v5 2/3] net/i40e: implement device reset on port Wei Zhao
2017-04-06  6:33   ` [PATCH v5 3/3] app/testpmd: add port reset command into testpmd Wei Zhao
2017-04-06  6:51   ` [PATCH v6 0/3] net/i40e: vf port reset Wei Zhao
2017-04-06  6:51     ` [PATCH v6 1/3] lib/librte_ether: add support for " Wei Zhao
2017-04-07  6:58       ` Yang, Qiming
2017-04-10  2:21         ` Zhao1, Wei
2017-04-06  6:51     ` [PATCH v6 2/3] net/i40e: implement device reset on port Wei Zhao
2017-04-06  6:51     ` [PATCH v6 3/3] app/testpmd: add port reset command into testpmd Wei Zhao
2017-04-10  3:02     ` [PATCH v7 0/3] net/i40e: vf port reset Wei Zhao
2017-04-10  3:02       ` [PATCH v7 1/3] lib/librte_ether: add support for " Wei Zhao
2017-04-20 20:49         ` Thomas Monjalon
2017-04-21  3:20           ` Zhao1, Wei
2017-04-20 20:52         ` Thomas Monjalon
2017-04-10  3:02       ` [PATCH v7 2/3] net/i40e: implement device reset on port Wei Zhao
2017-04-20 21:12         ` Thomas Monjalon
2017-04-21  3:39           ` Zhao1, Wei
2017-04-20 21:20         ` Thomas Monjalon
2017-04-10  3:02       ` [PATCH v7 3/3] app/testpmd: add port reset command into testpmd Wei Zhao
2017-04-20 21:37       ` [PATCH v7 0/3] net/i40e: vf port reset Thomas Monjalon
  -- strict thread matches above, loose matches on Subject: below --
2017-03-30  9:21 [PATCH v4 " Wei Zhao
2017-03-30  9:21 ` [PATCH v4 1/3] lib/librte_ether: add support for " Wei Zhao

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=A2573D2ACFCADC41BB3BE09C6DE313CA0207ED75@PGSMSX103.gar.corp.intel.com \
    --to=wei.zhao1@intel.com \
    --cc=dev@dpdk.org \
    --cc=john.mcnamara@intel.com \
    --cc=konstantin.ananyev@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.