aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@linaro.org>2018-10-24 15:45:38 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2018-10-29 13:54:22 +0300
commit8de012860878e3cb70aab7b6151223b201a8d9a1 (patch)
tree32f72314f0a089300a620168d9d1e7f1868c7e23 /platform
parent52d54fae53f5e65f232cb21b116e51ea36b4eb0b (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.c10
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);