| 3cb617cf | 13-Jun-2024 |
Jim Harris <jim.harris@samsung.com> |
scheduler/gscheduler: decide freq on highest util of SMT siblings
The CPU frequency governor can only take effect if all SMT siblings agree on the same frequency. Assume there are two SMT siblings,
scheduler/gscheduler: decide freq on highest util of SMT siblings
The CPU frequency governor can only take effect if all SMT siblings agree on the same frequency. Assume there are two SMT siblings, one is 80% busy, the other is 20% busy, we want to make the decision on frequency for both cores based on the 80% busy. This ensures the work on that 80% core is not impacted by the other core trying to set 20%.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: Ifffffaa90dd04285467235b55a3009c21fe45d57 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23724 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| 54a1bea0 | 13-Jun-2024 |
Jim Harris <jim.harris@samsung.com> |
scheduler/gscheduler: break out busy_pct calc to a helper function
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I0d87a31a6f12387c94aa315d6623230bcbd096eb Reviewed-on: https://review
scheduler/gscheduler: break out busy_pct calc to a helper function
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I0d87a31a6f12387c94aa315d6623230bcbd096eb Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23701 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| a75a557b | 11-Jun-2024 |
Jim Harris <jim.harris@samsung.com> |
scheduler/dynamic: adjust frequency when core goes to sleep or wakes
When all spdk_threads have been moved to the scheduling core because they are all idle, we will try to reduce frequency on the sc
scheduler/dynamic: adjust frequency when core goes to sleep or wakes
When all spdk_threads have been moved to the scheduling core because they are all idle, we will try to reduce frequency on the scheduling core if it is still idle. But the frequency changes don't take effect if it has an SMT sibling which is still set to max frequency.
So when we have moved the last thread off of a core, set its frequency to min. And conversely, when we move the first thread onto a core, set its frequency to max.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I034194d553aa678d387b1b5448631ba4ffcbb3d3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23649 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
show more ...
|
| 8a610145 | 04-Jun-2024 |
Jim Harris <jim.harris@samsung.com> |
dpdk_governor: don't load if app core mask has subset of SMT siblings
SPDK schedulers and governors don't understand SMT yet, but let's at least disable the case where the app core mask contains one
dpdk_governor: don't load if app core mask has subset of SMT siblings
SPDK schedulers and governors don't understand SMT yet, but let's at least disable the case where the app core mask contains one SMT core but not its sibling. Upcoming patches will teach schedulers about SMT to make better decisions, but we can never really make governor changes if SPDK only is managing one core out of a set of siblings.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: Ie2a7403e2b5a7c3ab47023f01c2edec5de020ab6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23528 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
show more ...
|
| 3daf1f00 | 24-May-2024 |
Jim Harris <jim.harris@samsung.com> |
dpdk_governor: use rte_power_set_env() to reduce noisy log messages
If an application doesn't set the power env explicitly, DPDK will just iterate through them one at a time until it finds one that
dpdk_governor: use rte_power_set_env() to reduce noisy log messages
If an application doesn't set the power env explicitly, DPDK will just iterate through them one at a time until it finds one that works. This clutters the log with error messages about the ones that didn't work. So use the rte_power_check_env_supported() API to iterate through them ourselves (just like DPDK does) and set the first one that we find.
From what I can see, only one can ever work. So SPDK iterates through the DPDK enum in order, even though DPDK does them out of order when it needs to find one because the user didn't set one.
While here, set the DPDK rte_power log level to WARNING, which also eliminates a ton of noisy messages when enabling the governor. While adding this, we noticed that cryptodev flag here is setting WARNING but the comment says ERR, so fix that comment while here.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I5cb2552d3b41235884577669bd574f88ca944f2a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23408 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| 5ba5dde9 | 24-May-2024 |
Jim Harris <jim.harris@samsung.com> |
gscheduler: add percentage variables
Currently the up/down decision is based on comparing idle v. busy, which implicitly means comparing against 50%.
Likewise the min/max decisions are based on com
gscheduler: add percentage variables
Currently the up/down decision is based on comparing idle v. busy, which implicitly means comparing against 50%.
Likewise the min/max decisions are based on comparing idle v. busy/100 (or vice versa), which implicitly means comparing against 99% (or 1%).
Upcoming patches will allow for configuring these values, so in preparation for that, create variables for these percentages and do calculations based on those.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I9f8253356a9b8fec417519cca38fa0b625ae4f1d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23384 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 2d64c287 | 11-Jun-2024 |
Krishna Kanth Reddy <krish.reddy@samsung.com> |
module/scheduler: Added dump_info_json function pointer
Implemented a function dump_info_json to output governor-specific information to a JSON stream.
Change-Id: Ifbd4c9e7a0d6dea0e6aa0c565eb088a07
module/scheduler: Added dump_info_json function pointer
Implemented a function dump_info_json to output governor-specific information to a JSON stream.
Change-Id: Ifbd4c9e7a0d6dea0e6aa0c565eb088a07a0e2826 Signed-off-by: Krishna Kanth Reddy <krish.reddy@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23639 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| fefbeadb | 11-Jun-2024 |
Krishna Kanth Reddy <krish.reddy@samsung.com> |
module/scheduler: Added get_core_avail_freqs
To get the available frequencies of a specific Core ID.
Change-Id: I9187a1643c22fb0cff76ba069f99eac1a577e2ad Signed-off-by: Krishna Kanth Reddy <krish.r
module/scheduler: Added get_core_avail_freqs
To get the available frequencies of a specific Core ID.
Change-Id: I9187a1643c22fb0cff76ba069f99eac1a577e2ad Signed-off-by: Krishna Kanth Reddy <krish.reddy@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23638 Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| f7e1f48a | 14-Sep-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/event: do not set default scheduling period during init
reactor_run() decides whether to start gather_metrics based on non-zero scheduler period. The default of 1 sec was set during initializati
lib/event: do not set default scheduling period during init
reactor_run() decides whether to start gather_metrics based on non-zero scheduler period. The default of 1 sec was set during initialization, in scheduler_subsystem_init().
This resulted in unessecary operations each second, even if only 'static' scheduler is used.
This patch moves setting default scheduling period to respective schedulers.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I953aee271a959b6314c8e83434c922dba9638de4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9492 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
| 0f3ddc9c | 09-Jun-2022 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
env/dpdk: skip build of DPDK based governors when missing rte_power
rte_power was added to DPDK long time ago, but some of the DPDK packages do not include it.
For those cases just skip building co
env/dpdk: skip build of DPDK based governors when missing rte_power
rte_power was added to DPDK long time ago, but some of the DPDK packages do not include it.
For those cases just skip building components that depend on in.
This change still allows to use dynamic scheduler, since the dpdk_governor usage is optional.
Fixes #2534
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ied88edc8d58aae07d1384c1c40203fc80b919d80 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12993 Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|