| 3184f6e2 | 22-Sep-2021 |
Jim Harris <james.r.harris@intel.com> |
scheduler/dynamic: rename _is_core_over_limit()
Rename it to _is_core_at_limit(). This function currently returns true if the core is at the limit (instead of over the limit) which is really the se
scheduler/dynamic: rename _is_core_over_limit()
Rename it to _is_core_at_limit(). This function currently returns true if the core is at the limit (instead of over the limit) which is really the semantics that we want - so just change the name of the function to make it more precise.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Idf815f67c71463c3b98bc00211aafdc291abdbd2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9582 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| cf494305 | 22-Sep-2021 |
Jim Harris <james.r.harris@intel.com> |
scheduler/dynamic: don't put dst core over limit when moving thread
We have _is_core_over_limit() which determines if a core is currently over its busy:total tsc ratio. We use this to determine if
scheduler/dynamic: don't put dst core over limit when moving thread
We have _is_core_over_limit() which determines if a core is currently over its busy:total tsc ratio. We use this to determine if we need to move threads off of a core that is too busy.
But when we pick a core to move a thread *to* we were allowing the dst core to fill to 100%, rather than the SCHEDULER_CORE_LIMIT.
This patch fixes that, which has the nice effect of keeping thread-to-core assignments much more stable when running I/O workloads.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Id98b08803939d2a25104082e6436bb8d4727d7c2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9578 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| 6c3728e9 | 20-Sep-2021 |
Jim Harris <james.r.harris@intel.com> |
scheduler/dynamic: reduce SCHEDULER_CORE_LIMIT to 80%
This will lead the scheduler to be quicker to move threads to an unused core - favoring performance over power savings.
Signed-off-by: Jim Harr
scheduler/dynamic: reduce SCHEDULER_CORE_LIMIT to 80%
This will lead the scheduler to be quicker to move threads to an unused core - favoring performance over power savings.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Ibaa5edc61a4bdca5550bd23a562c3645fded25e9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9551 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| bcff0888 | 22-Sep-2021 |
Jim Harris <james.r.harris@intel.com> |
scheduler/dynamic: don't adjust tsc too much for very busy cores
If a core has a very high busy percentage, we should not assume that moving a thread will gain that thread's busy tsc as newly idle c
scheduler/dynamic: don't adjust tsc too much for very busy cores
If a core has a very high busy percentage, we should not assume that moving a thread will gain that thread's busy tsc as newly idle cycles for the current core.
So if the current core's percentage is above SCHEDULER_CORE_BUSY (95%), do not adjust the current core's busy/idle tsc when moving a thread off of it. If moving the thread does actually result in some newly idle tsc, it will get adjusted next scheduling period.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I26a0282cd8f8e821809289b80c979cf94335353d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9581 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| f1acee8f | 20-Sep-2021 |
Jim Harris <james.r.harris@intel.com> |
scheduler_dynamic: fix busy tsc accounting
For the src thread, add the busy_tsc of the thread we are moving to the idle_tsc of the current core. This is consistent with how are accounting for the cy
scheduler_dynamic: fix busy tsc accounting
For the src thread, add the busy_tsc of the thread we are moving to the idle_tsc of the current core. This is consistent with how are accounting for the cycles in the target core too.
We will disable the load_balancing.sh script for now. We will reenable it later in this patch set once a few other changes are made, along with some updates to the load_balancing.sh script based on the changes made in this patch set.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I8af82610804e97dabf62ccd90f75a0e6e37d276f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9550 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|