DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: Alejandro Lucero <alejandro.lucero@netronome.com>,
	dev@dpdk.org, Ferruh Yigit <ferruh.yigit@intel.com>,
	Andrew Rybchenko <arybchenko@solarflare.com>,
	"Burakov, Anatoly" <anatoly.burakov@intel.com>,
	rasland@mellanox.com
Subject: Re: [dpdk-dev] secondary processes and private data
Date: Wed, 26 Sep 2018 15:33:40 +0100	[thread overview]
Message-ID: <20180926153340.3a672360@shemminger-XPS-13-9360> (raw)
In-Reply-To: <2325089.6vXeJmFoYy@xps>

On Wed, 26 Sep 2018 15:21:52 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:

> Hi Alejandro,
> 
> 25/09/2018 16:10, Alejandro Lucero:
> > I've a problem when part of device private data needs to be private per
> > process.  
> 
> It appears we are facing the same issue to support multi-process in tap.
> 
> > Current multiprocess support shares device private data between primary and
> > secondaries but it is all dependent on a pointer initialized to the same
> > memory address by the multiprocess support code. If there is a per-process
> > data, If a secondary process changes it the primary gets affected, and the
> > same for additional secondaries which will affect not just the primary but
> > other previous secondaries.  
> 
> Yes, the field rte_eth_dev.data.dev_private is private to the device,
> but shared between processes.
> 
> > The solution is to add support for this inside struct rte_eth_dev,
> > something like
> > 
> > void *secondary_priv_data;
> > 
> > so it is up to the secondaries to use this field if necessary.  
> 
> I would say it is not only for secondary process.
> What about this name:
> 
> 	rte_eth_dev.process_private
> 
> > NFP PMD creates the required rte_eth_devs specifically, similar to what is
> > done inside rte_ethdev.c but adding initialization for an interface needed
> > when calling device ethdev_init function. There are other PMDs doing this
> > but none has this requirement for per-process private data.  
> 
> Actually tap has a per-process requirement for its file descriptors.
> 
> > Please, let me know what you think about this change to struct rte_ethdev
> > or if you have a better idea for solving this problem.  
> 
> I support the idea, but we need to agree on name bikeshedding :-)

Good idea, as long as it stays contained to DPDK. Don't want additional user API
pointers buried in internal structures (like ethdev).  If application needs device
private data it should manage its own state. 

  parent reply	other threads:[~2018-09-26 14:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-25 14:10 Alejandro Lucero
2018-09-25 14:20 ` Burakov, Anatoly
2018-09-26 13:21 ` Thomas Monjalon
2018-09-26 13:49   ` Alejandro Lucero
2018-09-26 14:33   ` Stephen Hemminger [this message]
2018-09-26 15:19     ` Alejandro Lucero

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=20180926153340.3a672360@shemminger-XPS-13-9360 \
    --to=stephen@networkplumber.org \
    --cc=alejandro.lucero@netronome.com \
    --cc=anatoly.burakov@intel.com \
    --cc=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=rasland@mellanox.com \
    --cc=thomas@monjalon.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).