From 4ad1e215e712f64a986031a74cac090cf56f43ad Mon Sep 17 00:00:00 2001 From: Danny Auble <da@schedmd.com> Date: Mon, 7 Oct 2019 14:07:38 -0600 Subject: [PATCH] Remove use_spec_resources variable from slurm_ctl_conf_t This is now part of the conf_flags. Bug 7496 --- contribs/perlapi/libslurm/perl/conf.c | 2 -- slurm/slurm.h.in | 3 +-- src/api/config_info.c | 5 +++-- src/common/read_config.c | 10 +++++----- src/common/slurm_protocol_api.c | 17 ----------------- src/common/slurm_protocol_api.h | 5 ----- src/common/slurm_protocol_pack.c | 14 ++++++++------ src/plugins/select/cons_common/cons_common.c | 2 +- src/plugins/select/cons_common/job_test.c | 2 +- src/slurmctld/job_mgr.c | 5 +++-- src/slurmctld/proc_req.c | 1 - 11 files changed, 22 insertions(+), 44 deletions(-) diff --git a/contribs/perlapi/libslurm/perl/conf.c b/contribs/perlapi/libslurm/perl/conf.c index 730aaf8010b..6c2bbb4430f 100644 --- a/contribs/perlapi/libslurm/perl/conf.c +++ b/contribs/perlapi/libslurm/perl/conf.c @@ -390,7 +390,6 @@ slurm_ctl_conf_to_hv(slurm_ctl_conf_t *conf, HV *hv) STORE_FIELD(hv, conf, unkillable_program, charp); STORE_FIELD(hv, conf, unkillable_timeout, uint16_t); STORE_FIELD(hv, conf, use_pam, uint16_t); - STORE_FIELD(hv, conf, use_spec_resources, uint16_t); if (conf->version) STORE_FIELD(hv, conf, version, charp); STORE_FIELD(hv, conf, vsize_factor, uint16_t); @@ -631,7 +630,6 @@ hv_to_slurm_ctl_conf(HV *hv, slurm_ctl_conf_t *conf) FETCH_FIELD(hv, conf, unkillable_program, charp, FALSE); FETCH_FIELD(hv, conf, unkillable_timeout, uint16_t, TRUE); FETCH_FIELD(hv, conf, use_pam, uint16_t, TRUE); - FETCH_FIELD(hv, conf, use_spec_resources, uint16_t, TRUE); FETCH_FIELD(hv, conf, version, charp, FALSE); FETCH_FIELD(hv, conf, vsize_factor, uint16_t, TRUE); FETCH_FIELD(hv, conf, wait_time, uint16_t, TRUE); diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in index e31136dfd9a..53c147d111d 100644 --- a/slurm/slurm.h.in +++ b/slurm/slurm.h.in @@ -2615,6 +2615,7 @@ typedef struct reservation_name_msg { #define CTL_CONF_OR 0x00000001 /*SlurmdParameters=config_overrides*/ #define CTL_CONF_SJC 0x00000002 /* AccountingStoreJobComment */ #define CTL_CONF_DRJ 0x00000004 /* DisableRootJobs */ +#define CTL_CONF_ASRU 0x00000008 /* AllowSpecResourcesUsage */ #define LOG_FMT_ISO8601_MS 0 #define LOG_FMT_ISO8601 1 @@ -2884,8 +2885,6 @@ typedef struct slurm_ctl_conf { * job step have been signaled, before * they are considered "unkillable". */ uint16_t use_pam; /* enable/disable PAM support */ - uint16_t use_spec_resources; /* enable/disable job control over - * specialized resources */ char *version; /* version of slurmctld */ uint16_t vsize_factor; /* virtual memory limit size factor */ uint16_t wait_time; /* default job --wait time */ diff --git a/src/api/config_info.c b/src/api/config_info.c index 939395b1884..5358c991d98 100644 --- a/src/api/config_info.c +++ b/src/api/config_info.c @@ -585,8 +585,9 @@ extern void *slurm_ctl_conf_2_key_pairs (slurm_ctl_conf_t* slurm_ctl_conf_ptr) key_pair = xmalloc(sizeof(config_key_pair_t)); key_pair->name = xstrdup("AllowSpecResourcesUsage"); - key_pair->value = xstrdup_printf( - "%u", slurm_ctl_conf_ptr->use_spec_resources); + key_pair->value = xstrdup( + (slurm_ctl_conf_ptr->conf_flags & CTL_CONF_ASRU) ? + "Yes" : "No"); list_append(ret_list, key_pair); key_pair = xmalloc(sizeof(config_key_pair_t)); diff --git a/src/common/read_config.c b/src/common/read_config.c index a40d1ab7a78..da983878caa 100644 --- a/src/common/read_config.c +++ b/src/common/read_config.c @@ -2969,7 +2969,6 @@ init_slurm_conf (slurm_ctl_conf_t *ctl_conf_ptr) xfree (ctl_conf_ptr->unkillable_program); ctl_conf_ptr->unkillable_timeout = NO_VAL16; ctl_conf_ptr->use_pam = 0; - ctl_conf_ptr->use_spec_resources = 0; ctl_conf_ptr->vsize_factor = 0; ctl_conf_ptr->wait_time = NO_VAL16; xfree (ctl_conf_ptr->x11_params); @@ -3426,10 +3425,11 @@ _validate_and_set_defaults(slurm_ctl_conf_t *conf, s_p_hashtbl_t *hashtbl) "AcctGatherNodeFreq", hashtbl)) conf->acct_gather_node_freq = 0; - if (s_p_get_boolean(&truth, "AllowSpecResourcesUsage", hashtbl)) - conf->use_spec_resources = truth; - else - conf->use_spec_resources = DEFAULT_ALLOW_SPEC_RESOURCE_USAGE; + if (s_p_get_boolean(&truth, "AllowSpecResourcesUsage", hashtbl)) { + if (truth) + conf->conf_flags |= CTL_CONF_ASRU; + } else if (DEFAULT_ALLOW_SPEC_RESOURCE_USAGE) + conf->conf_flags |= CTL_CONF_ASRU; (void) s_p_get_string(&default_storage_type, "DefaultStorageType", hashtbl); diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c index 60d470b5e8f..97d358b5fb9 100644 --- a/src/common/slurm_protocol_api.c +++ b/src/common/slurm_protocol_api.c @@ -1460,23 +1460,6 @@ extern uint16_t slurm_get_track_wckey(void) return track_wckey; } -/* slurm_get_use_spec_resources - * returns the value of use_spec_resources in slurmctld_conf object - */ -extern uint16_t slurm_get_use_spec_resources(void) -{ - uint16_t use_spec_val = 0; - slurm_ctl_conf_t *conf; - - if (slurmdbd_conf) { - } else { - conf = slurm_conf_lock(); - use_spec_val = conf->use_spec_resources; - slurm_conf_unlock(); - } - return use_spec_val; -} - /* slurm_set_tree_width * sets the value of tree_width in slurmctld_conf object * RET 0 or error code diff --git a/src/common/slurm_protocol_api.h b/src/common/slurm_protocol_api.h index 46a6250017a..d518f6d6d5a 100644 --- a/src/common/slurm_protocol_api.h +++ b/src/common/slurm_protocol_api.h @@ -518,11 +518,6 @@ extern char *slurm_get_comm_parameters(void); */ extern char *slurm_get_cred_type(void); -/* slurm_get_use_spec_resources - * returns the value of use_spec_resources in slurmctld_conf object - */ -extern uint16_t slurm_get_use_spec_resources(void); - /* slurm_get_power_parameters * returns the PowerParameters from slurmctld_conf object * RET char * - PowerParameters, MUST be xfreed by caller diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index e9d20635320..b4082661551 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -5959,7 +5959,6 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer, pack16(build_ptr->tree_width, buffer); pack16(build_ptr->use_pam, buffer); - pack16(build_ptr->use_spec_resources, buffer); packstr(build_ptr->unkillable_program, buffer); pack16(build_ptr->unkillable_timeout, buffer); packstr(build_ptr->version, buffer); @@ -6255,7 +6254,7 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer, pack16(build_ptr->tree_width, buffer); pack16(build_ptr->use_pam, buffer); - pack16(build_ptr->use_spec_resources, buffer); + pack16((build_ptr->conf_flags & CTL_CONF_ASRU) ? 1 : 0, buffer); packstr(build_ptr->unkillable_program, buffer); pack16(build_ptr->unkillable_timeout, buffer); packstr(build_ptr->version, buffer); @@ -6548,7 +6547,7 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer, pack16(build_ptr->tree_width, buffer); pack16(build_ptr->use_pam, buffer); - pack16(build_ptr->use_spec_resources, buffer); + pack16((build_ptr->conf_flags & CTL_CONF_ASRU) ? 1 : 0, buffer); packstr(build_ptr->unkillable_program, buffer); pack16(build_ptr->unkillable_timeout, buffer); packstr(build_ptr->version, buffer); @@ -6966,7 +6965,6 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t **build_buffer_ptr, safe_unpack16(&build_ptr->tree_width, buffer); safe_unpack16(&build_ptr->use_pam, buffer); - safe_unpack16(&build_ptr->use_spec_resources, buffer); safe_unpackstr_xmalloc(&build_ptr->unkillable_program, &uint32_tmp, buffer); safe_unpack16(&build_ptr->unkillable_timeout, buffer); @@ -7370,7 +7368,9 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t **build_buffer_ptr, safe_unpack16(&build_ptr->tree_width, buffer); safe_unpack16(&build_ptr->use_pam, buffer); - safe_unpack16(&build_ptr->use_spec_resources, buffer); + safe_unpack16(&uint16_tmp, buffer); + if (uint16_tmp == 1) + build_ptr->conf_flags |= CTL_CONF_ASRU; safe_unpackstr_xmalloc(&build_ptr->unkillable_program, &uint32_tmp, buffer); safe_unpack16(&build_ptr->unkillable_timeout, buffer); @@ -7769,7 +7769,9 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t **build_buffer_ptr, safe_unpack16(&build_ptr->tree_width, buffer); safe_unpack16(&build_ptr->use_pam, buffer); - safe_unpack16(&build_ptr->use_spec_resources, buffer); + safe_unpack16(&uint16_tmp, buffer); + if (uint16_tmp == 1) + build_ptr->conf_flags |= CTL_CONF_ASRU; safe_unpackstr_xmalloc(&build_ptr->unkillable_program, &uint32_tmp, buffer); safe_unpack16(&build_ptr->unkillable_timeout, buffer); diff --git a/src/plugins/select/cons_common/cons_common.c b/src/plugins/select/cons_common/cons_common.c index 0e6de468f76..aed4355fad2 100644 --- a/src/plugins/select/cons_common/cons_common.c +++ b/src/plugins/select/cons_common/cons_common.c @@ -777,7 +777,7 @@ extern bitstr_t **common_mark_avail_cores( int rem_core_spec, node_core_spec, thread_spec = 0; struct node_record *node_ptr; bitstr_t *core_map = NULL; - uint16_t use_spec_cores = slurm_get_use_spec_resources(); + uint16_t use_spec_cores = slurmctld_conf.conf_flags & CTL_CONF_ASRU; node_res_record_t *node_res_ptr = NULL; uint32_t coff; diff --git a/src/plugins/select/cons_common/job_test.c b/src/plugins/select/cons_common/job_test.c index b594d8766d5..d18123643fa 100644 --- a/src/plugins/select/cons_common/job_test.c +++ b/src/plugins/select/cons_common/job_test.c @@ -2200,7 +2200,7 @@ extern int common_job_test(struct job_record *job_ptr, bitstr_t *node_bitmap, uint16_t job_node_req; char tmp[128]; - if (slurm_get_use_spec_resources() == 0) + if (!(slurmctld_conf.conf_flags & CTL_CONF_ASRU)) job_ptr->details->core_spec = NO_VAL16; if ((job_ptr->details->core_spec != NO_VAL16) && (job_ptr->details->whole_node != 1)) { diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 9174ab74641..0a0d73222c3 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -7893,7 +7893,7 @@ _copy_job_desc_to_job_record(job_desc_msg_t * job_desc, } if (job_desc->contiguous != NO_VAL16) detail_ptr->contiguous = job_desc->contiguous; - if (slurm_get_use_spec_resources()) + if (slurmctld_conf.conf_flags & CTL_CONF_ASRU) detail_ptr->core_spec = job_desc->core_spec; else detail_ptr->core_spec = NO_VAL16; @@ -12568,7 +12568,8 @@ static int _update_job(struct job_record *job_ptr, job_desc_msg_t * job_specs, if (job_specs->core_spec != NO_VAL16) { if ((!IS_JOB_PENDING(job_ptr)) || (detail_ptr == NULL)) error_code = ESLURM_JOB_NOT_PENDING; - else if (operator && slurm_get_use_spec_resources()) { + else if (operator && + (slurmctld_conf.conf_flags & CTL_CONF_ASRU)) { if (job_specs->core_spec == INFINITE16) detail_ptr->core_spec = NO_VAL16; else diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index f5b475b09bf..f10f4fdc5f4 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c @@ -968,7 +968,6 @@ static void _fill_ctld_conf(slurm_ctl_conf_t * conf_ptr) conf_ptr->wait_time = conf->wait_time; conf_ptr->use_pam = conf->use_pam; - conf_ptr->use_spec_resources = conf->use_spec_resources; conf_ptr->unkillable_program = xstrdup(conf->unkillable_program); conf_ptr->unkillable_timeout = conf->unkillable_timeout; conf_ptr->version = xstrdup(SLURM_VERSION_STRING); -- GitLab