|
Lines 4802-4808
static bool _valid_pn_min_mem(job_desc_msg_t * job_desc_msg,
Link Here
|
| 4802 |
{ |
4802 |
{ |
| 4803 |
uint32_t job_mem_limit = job_desc_msg->pn_min_memory; |
4803 |
uint32_t job_mem_limit = job_desc_msg->pn_min_memory; |
| 4804 |
uint32_t sys_mem_limit; |
4804 |
uint32_t sys_mem_limit; |
| 4805 |
uint16_t cpus_per_node, ratio; |
4805 |
uint16_t cpus_per_node; |
| 4806 |
|
4806 |
|
| 4807 |
if (part_ptr && part_ptr->max_mem_per_cpu) |
4807 |
if (part_ptr && part_ptr->max_mem_per_cpu) |
| 4808 |
sys_mem_limit = part_ptr->max_mem_per_cpu; |
4808 |
sys_mem_limit = part_ptr->max_mem_per_cpu; |
|
Lines 4817-4830
static bool _valid_pn_min_mem(job_desc_msg_t * job_desc_msg,
Link Here
|
| 4817 |
sys_mem_limit &= (~MEM_PER_CPU); |
4817 |
sys_mem_limit &= (~MEM_PER_CPU); |
| 4818 |
if (job_mem_limit <= sys_mem_limit) |
4818 |
if (job_mem_limit <= sys_mem_limit) |
| 4819 |
return true; |
4819 |
return true; |
| 4820 |
ratio = (job_mem_limit + sys_mem_limit - 1) / sys_mem_limit; |
|
|
| 4821 |
if (job_desc_msg->cpus_per_task == (uint16_t) NO_VAL) { |
| 4822 |
job_desc_msg->cpus_per_task = ratio; |
| 4823 |
job_desc_msg->pn_min_memory = job_mem_limit + ratio-1; |
| 4824 |
job_desc_msg->pn_min_memory /= ratio; |
| 4825 |
job_desc_msg->pn_min_memory |= MEM_PER_CPU; |
| 4826 |
return true; |
| 4827 |
} |
| 4828 |
return false; |
4820 |
return false; |
| 4829 |
} |
4821 |
} |
| 4830 |
|
4822 |
|