| 7bc1134d | 05-Nov-2024 |
Michal Berger <michal.berger@intel.com> |
test/scheduler: Read PID's status file only once
There's some peculiar issue where reading this file line by line can be tainted by sudden updates to the file resulting in given fields being unrecog
test/scheduler: Read PID's status file only once
There's some peculiar issue where reading this file line by line can be tainted by sudden updates to the file resulting in given fields being unrecognized by the get_proc_cpu_affinity(). To avoid that, make sure this file is read once in full before parsing.
Change-Id: Ied4f03ada3b354b666df71f4d5f5d2467a874d98 Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25407 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|
| 3a02df0b | 30-Aug-2024 |
Jim Harris <jim.harris@samsung.com> |
event: add new 'mappings' parameter to static scheduler
This is useful for testing purposes, to place specific spdk_threads on specific cores. Specified core must be in the thread's cpumask.
Usage:
event: add new 'mappings' parameter to static scheduler
This is useful for testing purposes, to place specific spdk_threads on specific cores. Specified core must be in the thread's cpumask.
Usage:
scripts/rpc.py framework_set_scheduler --mappings='2:0,5:1'
This will move thread 2 to core 0 and thread 5 to core 1.
Note: checking for failure when setting core-limit parameter on static scheduler has been removed. The whole mechanism for determine which optional parameters are accepted for different schedulers needs to be rethought, the current mechanism is not really working.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I16000805b8e2512f7ec6d84ee812d32bfcb2fd6d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24766 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Changpeng Liu <changpeliu@tencent.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Anisa Su <anisa.su@samsung.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
| 78cbcfdd | 23-Jul-2024 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
test/scheduler: fix cpu mask for rpc governor tests
1) When ran through isolate_cores.sh, only specific cores are possible to use due to cgroup settings. "0x$spdk_main_core" was incorrectly assignin
test/scheduler: fix cpu mask for rpc governor tests
1) When ran through isolate_cores.sh, only specific cores are possible to use due to cgroup settings. "0x$spdk_main_core" was incorrectly assigning "0x1" which is core 0. Rather than core 1 as intended.
2) After recent changes gscheduler requires that all SMT cores are included in CPU mask, so this test wouldn't pass with just one. Simply use the same spdk_cpumask as in other tests and modify the remainder of the test to match that.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ieda3e48cb3871a22f45062089daf7aed7b670d1a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24303 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 8d7b140f | 28-Jun-2024 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
test/governor: add tests for framework_get_governor RPC
Add basic tests for framework_get_governor RPC.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I6db15a2476faa700690d7c
test/governor: add tests for framework_get_governor RPC
Add basic tests for framework_get_governor RPC.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I6db15a2476faa700690d7c977895ad353260b9a0 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23959 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 6371dd64 | 28-Jun-2024 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
event/scheduler: do not accept params for scheduler without set_opts
Scheduler should not accept any parameters if set_opts is not implemented. This looks awful, as the decode is done just to check
event/scheduler: do not accept params for scheduler without set_opts
Scheduler should not accept any parameters if set_opts is not implemented. This looks awful, as the decode is done just to check if more opts were provided. Yet it does work.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I31c2385244557ac08de281553cad82eb3b3228ba Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23958 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| cc8a75c4 | 28-Jun-2024 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
event/scheduler: allow framework_get_scheduler before initialization
It was always possible to configure scheduler before subsystem initialization, but never possible to retrieve its configuration a
event/scheduler: allow framework_get_scheduler before initialization
It was always possible to configure scheduler before subsystem initialization, but never possible to retrieve its configuration at that time. Reason for this mismatch might have been omission or 'null' scheduler pointing to the default one until subsystems are initialized.
Leave it as it is for now, but allow to retrieve scheduler configuration at the same time as it is possible to configure it.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Id5a896b2dc329e891690099e9ad45bf3f01a09bd Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23955 Community-CI: Mellanox Build Bot Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|
| 74606c13 | 28-Jun-2024 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
test/scheduler: add tests for changes with static scheduler
There are assumptions which scheduler is the default, or that static can only be switched from, never to. Verify that.
Signed-off-by: Tom
test/scheduler: add tests for changes with static scheduler
There are assumptions which scheduler is the default, or that static can only be switched from, never to. Verify that.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I5c8ac44dc8fe145078d13fe776fdfd5f4f1c5119 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23957 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
show more ...
|
| b24df7cf | 09-May-2024 |
Michal Berger <michal.berger@intel.com> |
test: Drop superfluous calls to print_backtrace()
Since we use errtrace, the ERR trap is inherited and preserved in each subshell, cmd substitution, etc. that we execute along the way. This means th
test: Drop superfluous calls to print_backtrace()
Since we use errtrace, the ERR trap is inherited and preserved in each subshell, cmd substitution, etc. that we execute along the way. This means that each failure inside such subshell triggers call to print_backtrace(). Depending on the context, this may not be desired. Consider simple example:
# foo() { return 1; } # [[ $(foo) == no_output_so_fail_me ]]
This assumes that from the test perspective we don't care if foo(), internally, fails, we just look for a specific string it should return. If it doesn't, errexit will be triggered at the [[ level and fail the test. This is fine, but before this happens, extra print_backtrace() call will be made from the $() context.
Changing logic above and we may start spamming these calls:
# foo() { return 1; } # [[ $(foo) -eq 0 ]]
Here failure still triggers the print_backtrace() but logically the [[ test succeeds so we end up with a useless call in the log which may be downright confusing.
Cherry on top is the fact that we don't inherit errexit inside the subshell. So this print_backtrace() call is entirely foobar as it won't do anything at all.
Best case would be to enable inherit_errexit from autotest_common.sh across all the test suites. This, however, will require proper discipline in maintaining the tests as use of subshell environment would have to be more explicit - in other words the ambiguity from the first example (i.e. failure != no output) would not be allowed.
For now, refactor code a bit to get rid of these extra calls, next step would be to test behavior of inherit_errexit.
Change-Id: Ice3f072008162c1713e78a6da99a833919bc716c Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23078 Reviewed-by: Ben Walker <ben@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 7b52e4c1 | 08-May-2024 |
Michal Berger <michal.berger@intel.com> |
test/scheduler: Meassure utime of $spdk_pid threads as a fallback
Normally these tests look at a business of given cpu as a whole but this is a bit problematic when some external entity starts to st
test/scheduler: Meassure utime of $spdk_pid threads as a fallback
Normally these tests look at a business of given cpu as a whole but this is a bit problematic when some external entity starts to steal its time. This causes discrepancies in tests where given cpu is suddenly marked as busy where in fact SPDK was idle.
To mitigate this, after all per-cpu checks are done, and in case given cpu is not idle where we expect it should be, check utime of the SPDK thread pinned to that cpu.
Fixes issue #3362.
Change-Id: Ia105d1c45a9d0fa4c01a167a6c39790d68fb73ac Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23074 Reviewed-by: Ben Walker <ben@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 1dc06520 | 08-May-2024 |
Michal Berger <michal.berger@intel.com> |
test/scheduler: Calculate median of the cpu load samples
Done for debug purposes to clearly see how the outliers can (sometimes heavily) influence the average.
Related to #3362.
Change-Id: I56db14
test/scheduler: Calculate median of the cpu load samples
Done for debug purposes to clearly see how the outliers can (sometimes heavily) influence the average.
Related to #3362.
Change-Id: I56db14a817607c3ae13172fb41eaee3481c33ea8 Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23073 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|
| 99bebace | 29-Dec-2023 |
Michal Berger <michal.berger@intel.com> |
scripts/perf: Align date's format across the PM tools
vmstat uses 24h timestamp and it cannot be changed so let other tools follow suit.
Change-Id: I34d2d0d0b6ec551ef71d9e24539f62eb368a6346 Signed-
scripts/perf: Align date's format across the PM tools
vmstat uses 24h timestamp and it cannot be changed so let other tools follow suit.
Change-Id: I34d2d0d0b6ec551ef71d9e24539f62eb368a6346 Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21187 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| 36eea926 | 28-Dec-2023 |
Michal Berger <michal.berger@intel.com> |
scripts/perf: Allow to define interval for collect-cpu-load
Change-Id: I35d53128dff8cbd0483b9c972f6baf356e46d221 Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.sp
scripts/perf: Allow to define interval for collect-cpu-load
Change-Id: I35d53128dff8cbd0483b9c972f6baf356e46d221 Signed-off-by: Michal Berger <michal.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21177 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|