diff --git a/NEWS b/NEWS index 12f0e6c952d456fb13383220bdddd7f6891db848..30ad27806a4b88f9170d476b0025e05d997c6060 100644 --- a/NEWS +++ b/NEWS @@ -109,6 +109,7 @@ documents those changes that are of interest to users and admins. -- BGQ - Fix for printing realtime server debug correctly. -- BGQ - Cleaner handling of cnode failures when reported through the runjob interface instead of through the normal method. + -- smap - spread node information across multiple lines for larger systems. * Changes in SLURM 2.4.3 ======================== diff --git a/src/smap/grid_functions.c b/src/smap/grid_functions.c index 2f0fe3ae9900b8931db54f7ace6b4101404bab66..e02af52a204ba296f65975c43d05dedac1af47e9 100644 --- a/src/smap/grid_functions.c +++ b/src/smap/grid_functions.c @@ -164,7 +164,7 @@ extern int set_grid_bg(int *start, int *end, int count, int set) } /* Build the smap_system_ptr structure from the node records */ -extern void init_grid(node_info_msg_t *node_info_ptr) +extern void init_grid(node_info_msg_t *node_info_ptr, int cols) { int i, j, len; int default_y_offset = 0; @@ -265,11 +265,13 @@ extern void init_grid(node_info_msg_t *node_info_ptr) default_y_offset = (dim_size[3] * dim_size[2]) + (dim_size[2] - dim_size[3]); } + if (cols == 0) + cols = 80; for (i = 0; i < smap_system_ptr->node_cnt; i++) { smap_node = smap_system_ptr->grid[i]; if (params.cluster_dims == 1) { - smap_node->grid_xcord = i + 1; - smap_node->grid_ycord = 1; + smap_node->grid_xcord = (i % cols) + 1; + smap_node->grid_ycord = (i / cols) + 1; } else if (params.cluster_dims == 2) { smap_node->grid_xcord = smap_node->coord[0] + 1; smap_node->grid_ycord = diff --git a/src/smap/smap.c b/src/smap/smap.c index b4126299b1b56efb799f4ef14f2f98101bfbf6bf..03dd4e760a7e6ae277e40a3642d5485c4b86c1ec 100644 --- a/src/smap/smap.c +++ b/src/smap/smap.c @@ -139,10 +139,9 @@ int main(int argc, char *argv[]) if (!params.commandline) { int check_width = min_screen_width; - init_grid(new_node_ptr); - - signal(SIGWINCH, (void (*)(int))_resize_handler); initscr(); + init_grid(new_node_ptr, COLS); + signal(SIGWINCH, (void (*)(int))_resize_handler); if (params.cluster_dims == 4) { height = dim_size[2] * dim_size[3] + dim_size[2] + 3; diff --git a/src/smap/smap.h b/src/smap/smap.h index 7839dcae482f265322997863b1e60d9220487963..e887f10cc3a4a6cfecc01a62a3964da32b83f369 100644 --- a/src/smap/smap.h +++ b/src/smap/smap.h @@ -182,7 +182,7 @@ extern void parse_command_line(int argc, char *argv[]); extern smap_system_t *smap_system_ptr; extern int quiet_flag; -extern void init_grid(node_info_msg_t *node_info_ptr); +extern void init_grid(node_info_msg_t *node_info_ptr, int cols); extern void update_grid(node_info_msg_t *node_info_ptr); extern void clear_grid(void); extern void free_grid(void);