DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: "Ma, Liang" <liang.j.ma@intel.com>
Cc: jerin.jacob@caviumnetworks.com, dev@dpdk.org,
	harry.van.haaren@intel.com, bruce.richardson@intel.com,
	deepak.k.jain@intel.com, john.geary@intel.com,
	peter.mccarthy@intel.com, seanbh@gmail.com
Subject: Re: [dpdk-dev] [PATCH v2 1/8] event/opdl: add the opdl ring infrastructure library
Date: Fri, 15 Dec 2017 16:23:24 -0500	[thread overview]
Message-ID: <20171215212324.GA6917@hmswarspite.think-freely.org> (raw)
In-Reply-To: <20171215135041.GB1173@sivswdev01.ir.intel.com>

On Fri, Dec 15, 2017 at 01:50:41PM +0000, Ma, Liang wrote:
> On 15 Dec 07:38, Neil Horman wrote:
> > On Fri, Dec 15, 2017 at 11:26:22AM +0000, Liang Ma wrote:
> > > OPDL ring is the core infrastructure of OPDL PMD. OPDL ring library
> > > provide the core data structure and core helper function set. The Ring
> > > implements a single ring multi-port/stage pipelined packet distribution
> > > mechanism. This mechanism has the following characteristics:
> > > 
> > > • No multiple queue cost, therefore, latency is significant reduced.
> > > • Fixed dependencies between queue/ports is more suitable for complex.
> > >   fixed pipelines of stateless packet processing (static pipeline).
> > > • Has decentralized distribution (no scheduling core).
> > > • Packets remain in order (no reorder core(s)).
> > > 
> > > Signed-off-by: Liang Ma <liang.j.ma@intel.com>
> > > Signed-off-by: Peter, Mccarthy <peter.mccarthy@intel.com>
> > > ---
> > >  drivers/event/opdl/Makefile                       |   66 ++
> > >  drivers/event/opdl/opdl_ring.c                    | 1232 +++++++++++++++++++++
> > >  drivers/event/opdl/opdl_ring.h                    |  601 ++++++++++
> > >  drivers/event/opdl/rte_pmd_evdev_opdl_version.map |    3 +
> > >  4 files changed, 1902 insertions(+)
> > >  create mode 100644 drivers/event/opdl/Makefile
> > >  create mode 100644 drivers/event/opdl/opdl_ring.c
> > >  create mode 100644 drivers/event/opdl/opdl_ring.h
> > >  create mode 100644 drivers/event/opdl/rte_pmd_evdev_opdl_version.map
> > > 
> > ><snip>
> > 
> > > +
> > > +#endif  /* _OPDL_H_ */
> > > diff --git a/drivers/event/opdl/rte_pmd_evdev_opdl_version.map b/drivers/event/opdl/rte_pmd_evdev_opdl_version.map
> > > new file mode 100644
> > > index 0000000..5352e7e
> > > --- /dev/null
> > > +++ b/drivers/event/opdl/rte_pmd_evdev_opdl_version.map
> > > @@ -0,0 +1,3 @@
> > > +DPDK_17.05 {
> > > +	local: *;
> > > +};
> > you need to ennumerate the functions you want to globally export here, or this won't work
> > as a shared library.  This also suggests you haven't tested this as a DSO yet,
> > please do so.
> > 
> > Neil
> FYI, the subject of email has indicated that's part of the PMD.
I apologize, I didn't realize it was its own pmd, rather than part of the other
pmds.  I missed the pathing and thought you were creating a separate library for
others to consume, rather than a PMD to be accessed via the ethdev api

> there is no need to export any function globally.
> you can reference 
> drivers/event/octeontx/rte_pmd_octeontx_ssovf_version.map
> /drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
> drivers/event/sw/rte_pmd_sw_event_version.map
> 
> BTW: I do test with shared library build. 
What did you test with?  I ask because with gcc version 7.2.1, the build throws
several warnings that error the build out:

/home/nhorman/git/dpdk/drivers/event/opdl/opdl_evdev_init.c: In function ‘create_queues_and_rings’:
/home/nhorman/git/dpdk/drivers/event/opdl/opdl_evdev_init.c:570:17: error: ‘%s’ directive writing up to 63 bytes into a region of size 32 [-Werror=format-overflow=]
  sprintf(name, "%s_%u", device->service_name, device->nb_opdls);
                 ^~
/home/nhorman/git/dpdk/drivers/event/opdl/opdl_evdev_init.c:570:2: note: ‘sprintf’ output between 3 and 75 bytes into a destination of size 32
  sprintf(name, "%s_%u", device->service_name, device->nb_opdls);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nhorman/git/dpdk/drivers/event/opdl/opdl_evdev_init.c:570:17: error: ‘%s’ directive writing up to 63 bytes into a region of size 32 [-Werror=format-overflow=]
  sprintf(name, "%s_%u", device->service_name, device->nb_opdls);
                 ^~
/home/nhorman/git/dpdk/drivers/event/opdl/opdl_evdev_init.c:570:2: note: ‘sprintf’ output between 3 and 75 bytes into a destination of size 32
  sprintf(name, "%s_%u", device->service_name, device->nb_opdls);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors


It looks like you're trying to write a string to a 32 byte array, but the first
component of that string (service_name) can be as long as 63 bytes, and the
nb_opdls can be up to 75 bytes long. I'm guessing you want to use snprintf there
rather than sprintf with a limit of RTE_MEMZONE_NAMESIZE - LIB_NAME (to account
for the added characters in opdl_ring_create?

Neil

> > 
> > > -- 
> > > 2.7.5
> > > 
> > > --------------------------------------------------------------
> > > Intel Research and Development Ireland Limited
> > > Registered in Ireland
> > > Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
> > > Registered Number: 308263
> > > 
> > > 
> > > This e-mail and any attachments may contain confidential material for the sole
> > > use of the intended recipient(s). Any review or distribution by others is
> > > strictly prohibited. If you are not the intended recipient, please contact the
> > > sender and delete all copies.
> 

  reply	other threads:[~2017-12-15 21:24 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-15 11:26 [dpdk-dev] [RFC v2 PATCH 0/8] event: eventdev OPDL PMD Liang Ma
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 1/8] event/opdl: add the opdl ring infrastructure library Liang Ma
2017-12-15 12:38   ` Neil Horman
2017-12-15 13:50     ` Ma, Liang
2017-12-15 21:23       ` Neil Horman [this message]
2017-12-18 11:05         ` Ma, Liang
2017-12-16 10:14   ` Jerin Jacob
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 2/8] event/opdl: add the opdl pmd header and init helper function Liang Ma
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 3/8] event/opdl: add the opdl pmd main body and xstats " Liang Ma
2017-12-16 12:09   ` Jerin Jacob
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 4/8] eventdev/opdl: opdl eventdev pmd unit test function Liang Ma
2017-12-16 12:12   ` Jerin Jacob
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 5/8] lib/librte_eventdev: extend the eventdev capability flags Liang Ma
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 6/8] event/*: apply the three new capability flags for sw/dppa2/octeontx Liang Ma
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 7/8] event/opdl: update the build system to enable compilation Liang Ma
2017-12-16 12:15   ` Jerin Jacob
2017-12-15 11:26 ` [dpdk-dev] [PATCH v2 8/8] doc: add eventdev opdl pmd docuement Liang Ma
2017-12-15 11:50 ` [dpdk-dev] [RFC v2 PATCH 0/8] event: eventdev OPDL PMD Ma, Liang
2017-12-18  9:12 ` Jerin Jacob

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=20171215212324.GA6917@hmswarspite.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=bruce.richardson@intel.com \
    --cc=deepak.k.jain@intel.com \
    --cc=dev@dpdk.org \
    --cc=harry.van.haaren@intel.com \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=john.geary@intel.com \
    --cc=liang.j.ma@intel.com \
    --cc=peter.mccarthy@intel.com \
    --cc=seanbh@gmail.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 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).