[dpdk-dev] [PATCH v9 01/10] eal: add thread id and simple thread functions

Narcisa Ana Maria Vasile navasile at linux.microsoft.com
Fri Jun 18 23:30:22 CEST 2021


On Wed, Jun 09, 2021 at 02:03:48AM +0300, Dmitry Kozlyuk wrote:
> 2021-06-04 16:44 (UTC-0700), Narcisa Ana Maria Vasile:
> > From: Narcisa Vasile <navasile at microsoft.com>
> > 
> > Use a portable, type-safe representation for the thread identifier.
> > Add functions for comparing thread ids and obtaining the thread id
> > for the current thread.
> > 
> > Signed-off-by: Narcisa Vasile <navasile at microsoft.com>
> > ---
> >  lib/eal/common/rte_thread.c                   | 105 ++++++++++++++++++
> >  lib/eal/include/rte_thread.h                  |  53 +++++++--
> >  lib/eal/include/rte_thread_types.h            |  10 ++
> >  .../include/rte_windows_thread_types.h        |  10 ++
> >  lib/eal/windows/rte_thread.c                  |  17 +++
> >  5 files changed, 186 insertions(+), 9 deletions(-)
> >  create mode 100644 lib/eal/common/rte_thread.c
> >  create mode 100644 lib/eal/include/rte_thread_types.h
> >  create mode 100644 lib/eal/windows/include/rte_windows_thread_types.h
> 
> It is strange that new files are being filled in the series, but are neither
> compiled nor installed until the last patch. Any reason not to replace
> lib/eal/unix/rte_thread.c starting from this patch?
> 
Replaced unix/rte_thread.c starting from here.

> A better name for rte_thread_types.h would be rte_posix_thread_types.h
> to indicate this file is not really common.
> 
> > 
> > +rte_thread_t
> > +rte_thread_self(void)
> > +{
> > +	rte_thread_t thread_id = { 0 };
> 
> (Applies to entire series.)
> Please do not initialize variables when you intend to overwrite them.
> This prevents compiler from reporting code paths where the variable is used
> before a proper assignment.

Thanks for the explanation, Dmitry!
> 
> 
> [...]
> > diff --git a/lib/eal/include/rte_thread.h b/lib/eal/include/rte_thread.h
> > index 8be8ed8f36..347df1a6ae 100644
> directly, see lib/eal/$arch/rte_atomic_64.h for examples.
> 
> Note that rte_*_thread_types.h should be `indirect_headers`, not `headers`
> in `meson.build` so that they're not checked by `buildtools/chkincs` when is
> gets enabled for Windows. This is especially
> true for lib/eal/common/rte_thread.h that cannot work without pthread.
> 
> However, in later patches these headers only contain mutex bits,
> see the comment to pathc 07/10 about them. Maybe we don't need these files
> after all.

Agreed, I was able to remove them after reimplementing the mutex functions.


More information about the dev mailing list