This patch series replaces the patches previously submitted with subjects:

ODP API: add control/worker cpumasks to init data -and-
linux-generic: add support for initial cpumasks

The addition of the ability for ODP to accept control and worker
cpumasks from external sources is impacted by the code for fixing
Linaro BUG 2027 <https://bugs.linaro.org/show_bug.cgi?id=2027>.

Consequently I have added the BUG 2027 fix patches
to this API change as prerequisites.

The modifications presented here accomplish the following:
  (1) fix the validation and performance tests as needed in order to
      prevent hanging in barrier-wait due to deprecated means of
      determining the number of CPUs available for worker threads
  (2) replace the 'CPU affinity' based methods of determining the set
      of installed CPUs with logic which works regardless of the
      isolation / NO_HZ_FULL support in the underlying kernel
  (3) default to reasonable non-overlapping control and worker cpumasks
      conforming to suggestions from Petri S.
  (4) extend the ODP API to add control and worker cpumasks to the
      initialization data recognized by odp_init_global() -and-
  (5) allow externally specified control and/or worker cpumasks to
      safely override the default cpumask settings when
      odp_init_global() is called

The new initialization odp_cpumask_t pointers have been given 'const'
qualifiers in order to make it clear that the cpumasks are not to be
modified by any functions receiving them as parameters.

Change in v7: Add CPUMASK_INIT stage for odp_init_global() and
              odp_term_global()

Gary S. Robertson (5):
  test: correct worker count calculation
  test: allow more than one control cpu
  linux-generic: Make cpu detection work with NO_HZ_FULL
  api: init: add control/worker cpumasks to init data
  linux-generic: add support for initial cpumasks

 include/odp/api/spec/init.h                   |  27 +++
 platform/linux-generic/include/odp_internal.h |  34 ++--
 platform/linux-generic/odp_cpumask.c          | 275 ++++++++++++++++++++++++++
 platform/linux-generic/odp_cpumask_task.c     |  70 ++++---
 platform/linux-generic/odp_init.c             |  17 +-
 platform/linux-generic/odp_system_info.c      |  13 +-
 test/validation/cpumask/cpumask.c             |   2 +-
 test/validation/shmem/shmem.c                 |   3 +-
 test/validation/timer/timer.c                 |  18 +-
 9 files changed, 398 insertions(+), 61 deletions(-)

-- 
2.5.0

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to