Skip to content
Snippets Groups Projects
Commit 16959995 authored by Moe Jette's avatar Moe Jette
Browse files

Add new function clear_job_resources_node(), counterpart to existing

  function set_job_resources_node()
parent 08faf998
No related branches found
No related tags found
No related merge requests found
...@@ -802,8 +802,8 @@ extern int get_job_resources_node(job_resources_t *job_resrcs_ptr, ...@@ -802,8 +802,8 @@ extern int get_job_resources_node(job_resources_t *job_resrcs_ptr,
return 0; return 0;
} }
extern int set_job_resources_node(job_resources_t *job_resrcs_ptr, static int _change_job_resources_node(job_resources_t *job_resrcs_ptr,
uint32_t node_id) uint32_t node_id, bool new_value)
{ {
int i, bit_inx = 0, core_cnt = 0; int i, bit_inx = 0, core_cnt = 0;
...@@ -825,23 +825,39 @@ extern int set_job_resources_node(job_resources_t *job_resrcs_ptr, ...@@ -825,23 +825,39 @@ extern int set_job_resources_node(job_resources_t *job_resrcs_ptr,
} }
} }
if (core_cnt < 1) { if (core_cnt < 1) {
error("set_job_resources_node: core_cnt=0"); error("_change_job_resources_node: core_cnt=0");
return SLURM_ERROR; return SLURM_ERROR;
} }
i = bit_size(job_resrcs_ptr->core_bitmap); i = bit_size(job_resrcs_ptr->core_bitmap);
if ((bit_inx + core_cnt) > i) { if ((bit_inx + core_cnt) > i) {
error("set_job_resources_node: offset > bitmap size " error("_change_job_resources_node: offset > bitmap size "
"(%d >= %d)", (bit_inx + core_cnt), i); "(%d >= %d)", (bit_inx + core_cnt), i);
return SLURM_ERROR; return SLURM_ERROR;
} }
for (i=0; i<core_cnt; i++) for (i=0; i<core_cnt; i++) {
bit_set(job_resrcs_ptr->core_bitmap, bit_inx++); if (new_value)
bit_set(job_resrcs_ptr->core_bitmap, bit_inx++);
else
bit_clear(job_resrcs_ptr->core_bitmap, bit_inx++);
}
return SLURM_SUCCESS; return SLURM_SUCCESS;
} }
extern int set_job_resources_node(job_resources_t *job_resrcs_ptr,
uint32_t node_id)
{
return _change_job_resources_node(job_resrcs_ptr, node_id, true);
}
extern int clear_job_resources_node(job_resources_t *job_resrcs_ptr,
uint32_t node_id)
{
return _change_job_resources_node(job_resrcs_ptr, node_id, false);
}
extern int get_job_resources_cnt(job_resources_t *job_resrcs_ptr, extern int get_job_resources_cnt(job_resources_t *job_resrcs_ptr,
uint32_t node_id, uint16_t *socket_cnt, uint32_t node_id, uint16_t *socket_cnt,
uint16_t *cores_per_socket_cnt) uint16_t *cores_per_socket_cnt)
......
...@@ -207,13 +207,15 @@ extern int set_job_resources_bit(job_resources_t *job_resrcs_ptr, ...@@ -207,13 +207,15 @@ extern int set_job_resources_bit(job_resources_t *job_resrcs_ptr,
uint32_t node_id, uint16_t socket_id, uint32_t node_id, uint16_t socket_id,
uint16_t core_id); uint16_t core_id);
/* Get/set bit value at specified location for whole node allocations /* Get/clear/set bit value at specified location for whole node allocations
* get is for any socket/core on the specified node * get is for any socket/core on the specified node
* set is for all sockets/cores on the specified node * set is for all sockets/cores on the specified node
* fully comptabable with set/get_job_resources_bit() * fully comptabable with set/get_job_resources_bit()
* node_id is all zero origin */ * node_id is all zero origin */
extern int get_job_resources_node(job_resources_t *job_resrcs_ptr, extern int get_job_resources_node(job_resources_t *job_resrcs_ptr,
uint32_t node_id); uint32_t node_id);
extern int clear_job_resources_node(job_resources_t *job_resrcs_ptr,
uint32_t node_id);
extern int set_job_resources_node(job_resources_t *job_resrcs_ptr, extern int set_job_resources_node(job_resources_t *job_resrcs_ptr,
uint32_t node_id); uint32_t node_id);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment