On Thu, Oct 13, 2016 at 2:03 AM, Christophe Milard <
christophe.mil...@linaro.org> wrote:

> On 13 October 2016 at 02:44, Bill Fischofer <bill.fischo...@linaro.org>
> wrote:
> > Add the odp_dev_id() API used for NUMA support
> >
>
> I am a bit confused here: what is a device? a numa_id or other things
> as well? In this patch series everything that relates to numa is
> called "device". Shouldn't be called numa_dev when it is a numa
> device?
> If devices are numa dev only, they should be called numa_dev. If a
> device can be anything else (which you general approach seems to
> imply), how are they different from handles?
>
> Not sure I understand where these patches lead to...
>

These patches are just implementing the APIs proposed by Petri during the
ODP Design Summit at LAS16.  We can consider them RFCs for now if that's
preferable. A dev_id in ODP is supposed to be the same as a socket_id in
DPDK, but not necessarily tied to the CPU socket config. The intent is
simply to have a placeholder where hierarchical NUMA-type identifiers can
be obtained and then used as part of resource (pools, etc.) creation. This
is inherently system dependent, which is why the odp-linux versions are
mostly placeholders, and why I put the implementations under the arch
directory.


>
> Christophe.
>
> > Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org>
> > ---
> >  include/odp/api/spec/dev.h | 89 ++++++++++++++++++++++++++++++
> ++++++++++++++++
> >  1 file changed, 89 insertions(+)
> >  create mode 100644 include/odp/api/spec/dev.h
> >
> > diff --git a/include/odp/api/spec/dev.h b/include/odp/api/spec/dev.h
> > new file mode 100644
> > index 0000000..1f7ed8b
> > --- /dev/null
> > +++ b/include/odp/api/spec/dev.h
> > @@ -0,0 +1,89 @@
> > +/* Copyright (c) 2016, Linaro Limited
> > + * All rights reserved.
> > + *
> > + * SPDX-License-Identifier:     BSD-3-Clause
> > + */
> > +
> > +/**
> > + * @file
> > + *
> > + * ODP device
> > + */
> > +
> > +#ifndef ODP_API_DEV_H_
> > +#define ODP_API_DEV_H_
> > +#include <odp/visibility_begin.h>
> > +
> > +#ifdef __cplusplus
> > +extern "C" {
> > +#endif
> > +
> > +#include <odp/api/std_types.h>
> > +
> > +/** @defgroup odp_dev ODP DEVICE
> > + *  Operations on devices
> > + *  @{
> > + */
> > +
> > +/**
> > + * @typedef odp_dev_t
> > + * ODP Device
> > + */
> > +
> > +/**
> > + * @def ODP_DEV_NAME_LEN
> > + * Maximum device name length in chars
> > + */
> > +
> > +/**
> > + * @def ODP_DEV_ANY
> > + * Any device
> > + */
> > +
> > +/**
> > + * @def ODP_DEV_INVALID
> > + * Invalid device
> > + */
> > +
> > +/**
> > + * Get Device ID by Name
> > + *
> > + * Get an implementation-defined device identifier from a device name.
> Device
> > + * names are supplied as parameter info (command line, file, etc.) to
> the
> > + * application. This routine translates this symbolic name into an
> internal
> > + * identifier that can be used to define a device connection hierarchy
> for
> > + * NUMA or other purposes.
> > + *
> > + * The reserved id ODP_DEV_ANY may be used as a "don't care" placeholder
> > + * wherever a device id is required.
> > + *
> > + * @param name Name of the device
> > + *
> > + * @return Device ID
> > + * @retval ODP_DEV_INVALID Device is unknown
> > + */
> > +odp_dev_t odp_dev_id(const char *name);
> > +
> > +/**
> > + * Get printable value for an odp_dev_t
> > + *
> > + * @param hdl  odp_dev_t handle to be printed
> > + * @return     uint64_t value that can be used to print/display this
> > + *             handle
> > + *
> > + * @note This routine is intended to be used for diagnostic purposes
> > + * to enable applications to generate a printable value that represents
> > + * an odp_dev_t handle.
> > + */
> > +uint64_t odp_dev_to_u64(odp_dev_t hdl);
> > +
> > +/**
> > + * @}
> > + */
> > +
> > +#ifdef __cplusplus
> > +}
> > +#endif
> > +
> > +#include <odp/visibility_end.h>
> > +#endif
> > --
> > 2.7.4
> >
>

Reply via email to