diff options
author | Petri Savolainen <petri.savolainen@linaro.org> | 2018-10-24 15:45:38 +0300 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-10-29 13:54:22 +0300 |
commit | 8de012860878e3cb70aab7b6151223b201a8d9a1 (patch) | |
tree | 32f72314f0a089300a620168d9d1e7f1868c7e23 /platform | |
parent | 52d54fae53f5e65f232cb21b116e51ea36b4eb0b (diff) |
linux-gen: sched: use spread weight from config file
Use the new config file option instead of fixed prefer ratio.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform')
-rw-r--r-- | platform/linux-generic/odp_schedule_basic.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/platform/linux-generic/odp_schedule_basic.c b/platform/linux-generic/odp_schedule_basic.c index 214d42c8b..456704a08 100644 --- a/platform/linux-generic/odp_schedule_basic.c +++ b/platform/linux-generic/odp_schedule_basic.c @@ -333,7 +333,7 @@ static inline uint8_t prio_spread_index(uint32_t index) static void sched_local_init(void) { int i; - uint8_t spread; + uint8_t spread, prefer_ratio; uint8_t num_spread = sched->config.num_spread; uint8_t offset = 1; @@ -344,11 +344,12 @@ static void sched_local_init(void) sched_local.stash.queue = ODP_QUEUE_INVALID; spread = prio_spread_index(sched_local.thr); + prefer_ratio = sched->config.prefer_ratio; for (i = 0; i < SPREAD_TBL_SIZE; i++) { sched_local.spread_tbl[i] = spread; - if (num_spread > 1 && (i % MAX_PREFER_RATIO) == 0) { + if (num_spread > 1 && (i % prefer_ratio) == 0) { sched_local.spread_tbl[i] = prio_spread_index(spread + offset); offset++; @@ -362,6 +363,7 @@ static int schedule_init_global(void) { odp_shm_t shm; int i, j, grp; + int prefer_ratio; ODP_DBG("Schedule init ... "); @@ -382,8 +384,10 @@ static int schedule_init_global(void) return -1; } + prefer_ratio = sched->config.prefer_ratio; + /* When num_spread == 1, only spread_tbl[0] is used. */ - sched->max_spread = (sched->config.num_spread - 1) * MAX_PREFER_RATIO; + sched->max_spread = (sched->config.num_spread - 1) * prefer_ratio; sched->shm = shm; odp_spinlock_init(&sched->mask_lock); |