The source project of this merge request has been removed.
[wperf, wperf-lib, wperf-scripts] WPERF-1038: Direct event-to-core assignment, part 2
Introduction
This MR is the biggest part of the core_N/.../
selector work. ioctl_events
is poorly encapsulated, which led to a cascade of changes that must be done together.
There are a few issues that are NOT addressed by this MR, to reduce its already-enormous size.
- cores_idx is redundant, the same information appears in ioctl_events.
- Some checks are done against cores_idx, which will not catch issues arising from invalid core_N selectors.
- multiplexing is still a global flag per class. The last core's multiplexing status will incorrectly apply to all other cores if the core selector syntax is used and only some cores need multiplexing.
In this patch:
- wperf-scripts: Test cases for the core_N/.../ selector syntax
- wperf: Update test output
- wperf-lib: Mirror the updates in wperf
- wperf: Only collect the event classes once
- wperf: Update the test functions with the new ioctl_events type
- wperf: Multicore events_assign
- wperf: Multicore print_core_metrics
- wperf: Adjust print_dmc_stat
- wperf: Adjust print_dsu_stat, fix a crash when used on hardware without DSU
- wperf: Limited multicore print_core_stat (existing TODO kept in place)
- wperf: Adjust spe_print_core_stats and get_core_stat_by_name
- wperf: Multicore timeline_header
- wperf: Use ioctl_events
- wperf: Produce individual ioctl_events for each core
Testing
These tests are new:
wperf_cli_stat_multicore_test.py::test_wperf_stat_multicore[0-ld_spec-expected0] PASSED [ 25%]
wperf_cli_stat_multicore_test.py::test_wperf_stat_multicore[0-ld_spec,core_1/st_spec/-expected1] PASSED [ 50%]
wperf_cli_stat_multicore_test.py::test_wperf_stat_multicore[0,1-ld_spec,core_1/st_spec/-expected2] PASSED [ 75%]
wperf_cli_stat_multicore_test.py::test_wperf_stat_multicore[0-2-{ld_spec,inst_spec},core_1/st_spec/,core_2/l1d_cache,{exc_taken}/,core_4/{ld_retired,st_retired}/-expected3] PASSED [100%]
The rest:
wperf-test
Tests in group: 293
Total Duration: 1.4 sec
Outcomes
293 Passed
wperf_cli_common_test.py .... [ 0%]
wperf_cli_config_test.py ..... [ 0%]
wperf_cli_cpython_bench_test.py .s [ 1%]
wperf_cli_cpython_dep_record_test.py ................ [ 2%]
wperf_cli_cpython_dep_sample_test.py . [ 2%]
wperf_cli_dmc_test.py s [ 2%]
wperf_cli_dmc_value_test.py s [ 2%]
wperf_cli_extra_events_test.py .... [ 3%]
wperf_cli_hammer_core_test.py .................. [ 5%]
wperf_cli_help_test.py .s [ 5%]
wperf_cli_info_str_test.py . [ 5%]
wperf_cli_json_validator_test.py ................s [ 7%]
wperf_cli_list_test.py .....s [ 7%]
wperf_cli_lock_test.py ..... [ 8%]
wperf_cli_man_test.py ..................................................................... [ 14%]
wperf_cli_man_ts_test.py ....................................................................................... [ 23%]
....................................................................... [ 30%]
wperf_cli_metrics_test.py ..s....s [ 31%]
wperf_cli_padding_test.py ...................................................................................... [ 39%]
................................................................................................................ [ 50%]
................................................................................................................ [ 61%]
.................................. [ 65%]
wperf_cli_prettytable_test.py ..... [ 65%]
wperf_cli_record_test.py ................s [ 67%]
wperf_cli_sample_test.py .......... [ 68%]
wperf_cli_stat_multicore_test.py .... [ 68%]
wperf_cli_stat_test.py ...................................................................... [ 75%]
wperf_cli_stat_value_test.py ................................................................................... [ 83%]
................................................................................................. [ 93%]
wperf_cli_test_test.py ........... [ 94%]
wperf_cli_timeline_test.py ..................................................... [ 99%]
wperf_cli_xperf_test.py s [ 99%]
wperf_lib_app_test.py . [ 99%]
wperf_lib_c_compat_test.py . [100%]
Edited by lcsondes