[dpdk-dev] [PATCH v5] net/memif: zero-copy slave
David Marchand
david.marchand at redhat.com
Tue Oct 29 15:28:33 CET 2019
On Fri, Oct 25, 2019 at 6:45 PM Yigit, Ferruh
<ferruh.yigit at linux.intel.com> wrote:
>
> On 8/22/2019 9:18 AM, Jakub Grajciar wrote:
> > Zero-copy slave support for memif PMD.
> > Slave interface exposes DPDK memory to
> > master interface. Only single file segments
> > are supported (EAL option --single-file-segments).
Do you really want this additional configuration in your driver or
can't you enable/disable the functional
> >
> > Signed-off-by: Jakub Grajciar <jgrajcia at cisco.com>
>
> Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>
>
> Since bind() issue solved, we can continue with the patch.
>
> <...>
>
> > @@ -131,7 +132,7 @@ struct pmd_process_private {
> > * @param proc_private
> > * device process private data
> > */
> > -void memif_free_regions(struct pmd_process_private *proc_private);
> > +void memif_free_regions(struct rte_eth_dev *dev);
> >
> > /**
> > * Finalize connection establishment process. Map shared memory file
> > diff --git a/lib/librte_eal/common/eal_common_mcfg.c b/lib/librte_eal/common/eal_common_mcfg.c
> > index 066549432..03d9d472d 100644
> > --- a/lib/librte_eal/common/eal_common_mcfg.c
> > +++ b/lib/librte_eal/common/eal_common_mcfg.c
> > @@ -161,3 +161,10 @@ rte_mcfg_timer_unlock(void)
> > struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
> > rte_spinlock_unlock(&mcfg->tlock);
> > }
> > +
> > +uint32_t
> > +rte_mcfg_get_single_file_segments(void)
> > +{
> > + struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
> > + return mcfg->single_file_segments;
> > +}
> > diff --git a/lib/librte_eal/common/include/rte_eal_memconfig.h b/lib/librte_eal/common/include/rte_eal_memconfig.h
> > index 34b0e44a0..9bb4a57f8 100644
> > --- a/lib/librte_eal/common/include/rte_eal_memconfig.h
> > +++ b/lib/librte_eal/common/include/rte_eal_memconfig.h
> > @@ -109,6 +109,16 @@ __rte_experimental
> > void
> > rte_mcfg_timer_unlock(void);
> >
> > +/**
> > + * @warning
> > + * @b EXPERIMENTAL: this API may change without prior notice
> > + *
> > + * Get the single_file_segments parameter value from memory configuration.
I would prefer you describe what this actually means.
We don't really care about the value itself.
> > + */
> > +__rte_experimental
> > +uint32_t
And a boolean is enough, this is a flag.
> > +rte_mcfg_get_single_file_segments(void);
> > +
> > #ifdef __cplusplus
> > }
> > #endif
> > diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
> > index 7cbf82d37..c2b9d473f 100644
> > --- a/lib/librte_eal/rte_eal_version.map
> > +++ b/lib/librte_eal/rte_eal_version.map
> > @@ -418,5 +418,6 @@ EXPERIMENTAL {
> > rte_lcore_to_cpu_id;
> > rte_mcfg_timer_lock;
> > rte_mcfg_timer_unlock;
> > + rte_mcfg_get_single_file_segments;
>
> This should be moved to 19.11 block in experimental
+1
> cc'ed Dave for eal part,
> @Dave, change looks straight forward but can you please check/comment?
I don't like the name of this API, since it gives the impression it
returns "segments"..
But on the other hand, this is aligned with the mcfg field: people
touching the internals have more chances to see there is an exported
API.
Cc: Anatoly (but I think he is off for this week).
Other than that I am ok with this change.
--
David Marchand
More information about the dev
mailing list