From 20e179f6dca124214b9a5c29c9252d7c260f20f9 Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Tue, 30 Jan 2018 11:57:24 +0900 Subject: [PATCH] sdma_select_user_engine(): refactor selection code --- kernel/sdma.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/kernel/sdma.c b/kernel/sdma.c index 8c344203..5eea9f42 100644 --- a/kernel/sdma.c +++ b/kernel/sdma.c @@ -115,13 +115,20 @@ done: struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd, u32 selector, u8 vl) { + int idx = 0; + int idx_start = 0; + int idx_modulo = 16; + /* Hash on rank for MPI jobs */ if (cpu_local_var(current)->proc->nr_processes > 1) { - return &dd->per_sdma[cpu_local_var(current)->proc->process_rank % 16]; + idx = idx_start + + (cpu_local_var(current)->proc->process_rank % idx_modulo); } else { - return &dd->per_sdma[ihk_mc_get_processor_id() % 16]; + idx = ihk_mc_get_processor_id() % idx_modulo; } + + return &dd->per_sdma[idx]; } /*