From: Hongbo Zhang <[email protected]>

v4 -> v5 changes:
- most obvious change is split some patches into even smaller patches
and re-arange the sequency for convenience of review
- change odp_cpu_id_*() to odp_cpu_*_id()

v3 -> v4 changes:
- rebase to latest odp version
- add odp_cpumask_available() to iterate each cpu

v2 -> v3 changes:
- move all CPU related API declaration into cpu.h
- refine tests for per-CPU APIs
- revise API for getting current frequency

v1 -> v2 changes:
- separate original 1/3 patch to two
- add validation patch to test new APIs
- other minor updates upon review comments

v1 notes:
The current API of getting CPU frequency is really ambiguous.
CPU has its max frequency, and if enabled, the current frequency may be
scaled from time to time, what's more, on some AMP platforms, cores are
heterogenous, they have different max and current frequencies.

This patch set cleans up these above issues.
Patch 1/3 makes cpu_hz and model_str to be per-CPU data, then on AMP
system, it is possible to acquire data for each different CPU.
Patch 2/3 makes it clear that the cpu_hz stands for max CPU frequency
Patch 3/3 adds new API to get the current CPU frequency if needed.

Due to lack of test platform, only x86 platform is implemented right now,
the others should follow up if this patch set is accepted.

Hongbo Zhang (17):
  linux-generic: sysinfo: make the model_str per-CPU data
  linux-generic: sysinfo: make the cpu_hz per-CPU data
  api: sysinfo: move CPU model API to cpu.h
  api: sysinfo: move CPU Hz API to cpu.h
  api: sysinfo: add new API to get per-CPU model string
  api: sysinfo: add new API to get CPU max frequency
  api: sysinfo: add new API to get per-CPU max frequency
  api: sysinfo: revise odp_cpu_hz() to return current frequency
  api: sysinfo: add new API to get per-CPU current frequency
  api: cpumask: add API odp_cpumask_all_available()
  validation: system: update legacy CPU API names
  validation: system: add validation for new CPU APIs
  example: update CPU model string calling functions
  test: update CPU model string calling functions
  example: update CPU Hz calling functions
  test: update CPU Hz calling functions
  linux-generic: update CPU Hz calling functions

 example/classifier/odp_classifier.c                |   4 +-
 example/generator/odp_generator.c                  |   2 +-
 example/ipsec/odp_ipsec.c                          |   2 +-
 example/packet/odp_pktio.c                         |   2 +-
 example/timer/odp_timer_test.c                     |   6 +-
 include/odp/api/cpu.h                              |  60 +++++++++
 include/odp/api/cpumask.h                          |  10 ++
 include/odp/api/system_info.h                      |  14 ---
 .../linux-generic/arch/linux/odp_time_cycles.c     |   3 +-
 platform/linux-generic/include/odp_internal.h      |   6 +-
 platform/linux-generic/odp_cpumask_task.c          |  11 ++
 platform/linux-generic/odp_system_info.c           | 136 ++++++++++++++++-----
 platform/linux-generic/odp_time.c                  |   5 +-
 test/api_test/odp_common.c                         |   4 +-
 test/performance/odp_atomic.c                      |   4 +-
 test/performance/odp_l2fwd.c                       |   2 +-
 test/performance/odp_scheduling.c                  |   4 +-
 test/validation/system/system.c                    |  74 ++++++++++-
 test/validation/system/system.h                    |   8 +-
 19 files changed, 283 insertions(+), 74 deletions(-)

-- 
1.9.1

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

Reply via email to