sdma_select_user_engine(): refactor selection code
This commit is contained in:
@@ -115,13 +115,20 @@ done:
|
|||||||
struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
|
struct sdma_engine *sdma_select_user_engine(struct hfi1_devdata *dd,
|
||||||
u32 selector, u8 vl)
|
u32 selector, u8 vl)
|
||||||
{
|
{
|
||||||
|
int idx = 0;
|
||||||
|
int idx_start = 0;
|
||||||
|
int idx_modulo = 16;
|
||||||
|
|
||||||
/* Hash on rank for MPI jobs */
|
/* Hash on rank for MPI jobs */
|
||||||
if (cpu_local_var(current)->proc->nr_processes > 1) {
|
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 {
|
else {
|
||||||
return &dd->per_sdma[ihk_mc_get_processor_id() % 16];
|
idx = ihk_mc_get_processor_id() % idx_modulo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return &dd->per_sdma[idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user