From 97eb06b4cd2f57e9033f5d09a5e2b7a7b9d641b9 Mon Sep 17 00:00:00 2001 From: Petri Savolainen Date: Wed, 24 Oct 2018 15:20:21 +0300 Subject: linux-gen: sched: add spread weight config file option Add new config file option to control scheduler internal queue preference ratio. Signed-off-by: Petri Savolainen Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov --- config/odp-linux-generic.conf | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'config/odp-linux-generic.conf') diff --git a/config/odp-linux-generic.conf b/config/odp-linux-generic.conf index af651d7f6..2417d23f2 100644 --- a/config/odp-linux-generic.conf +++ b/config/odp-linux-generic.conf @@ -16,7 +16,7 @@ # Mandatory fields odp_implementation = "linux-generic" -config_file_version = "0.1.1" +config_file_version = "0.1.2" # Shared memory options shm: { @@ -80,13 +80,27 @@ queue_basic: { } sched_basic: { - # Priority level spread. Each priority level is spread into multiple - # scheduler internal queues. A higher spread value typically improves - # parallelism and thus is better for high thread counts, but causes - # uneven service level for low thread counts. Typically, optimal - # value is the number of threads using the scheduler. + # Priority level spread + # + # Each priority level is spread into multiple scheduler internal queues. + # This value defines the number of those queues. Minimum value is 1. + # Each thread prefers one of the queues over other queues. A higher + # spread value typically improves parallelism and thus is better for + # high thread counts, but causes uneven service level for low thread + # counts. Typically, optimal value is the number of threads using + # the scheduler. prio_spread = 4 + # Weight of the preferred scheduler internal queue + # + # Each thread prefers one of the internal queues over other queues. + # This value controls how many times the preferred queue is polled + # between a poll to another internal queue. Minimum value is 1. A higher + # value typically improves parallelism as threads work mostly on their + # preferred queues, but causes uneven service level for low thread + # counts as non-preferred queues are served less often + prio_spread_weight = 63 + # Burst size configuration per priority. The first array element # represents the highest queue priority. The scheduler tries to get # burst_size_default[prio] events from a queue and stashes those that -- cgit v1.2.3