diff --git a/NEWS b/NEWS index f4653f6988f32df56aaf6263307a65150aa53fe9..9eaa1b9a5d9562d0993514981c2a59ec7eadac58 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ This file describes changes in recent versions of SLURM. It primarily documents those changes that are of interest to users and admins. +* Changes in SLURM 1.4.0-pre8 +============================= + * Changes in SLURM 1.4.0-pre7 ============================= -- Bug fix for preemption with select/cons_res when there are no idle nodes. diff --git a/doc/man/man1/salloc.1 b/doc/man/man1/salloc.1 index 596586ed4ed5d1b7ebb690e32d99383581832fcc..583e4490d27b41e736af8635e600233e4e2823df 100644 --- a/doc/man/man1/salloc.1 +++ b/doc/man/man1/salloc.1 @@ -616,6 +616,10 @@ job name and user have terminated. \fB\-q\fR, \fB\-\-quiet\fR Suppress informational messages from salloc. Errors will still be displayed. +.TP +\fB\-\-reservation\fR=\fIname\fR +Allocate resources for the job from the named reservation. + .TP \fB\-s\fR, \fB\-\-share\fR The job allocation can share nodes with other running jobs. (The default diff --git a/doc/man/man1/sbatch.1 b/doc/man/man1/sbatch.1 index f6090a51a61f9fd98d7f37d4dd5341b148a9ecd3..03626aa10bbb3f9809bd858d890200b6ec442bde 100644 --- a/doc/man/man1/sbatch.1 +++ b/doc/man/man1/sbatch.1 @@ -693,6 +693,10 @@ Also see the \fB\-\-no\-requeue\fR option. The \fIJobRequeue\fR configuration parameter controls the default behavior on the cluster. +.TP +\fB\-\-reservation\fR=\fIname\fR +Allocate resources for the job from the named reservation. + .TP \fB\-s\fR, \fB\-\-share\fR The job allocation can share nodes with other running jobs. (The default diff --git a/doc/man/man1/srun.1 b/doc/man/man1/srun.1 index 3c6ec7a03273ef6994f2e615889f9d3c318acffe..c549c0ae7ba50d3a230af3c44405dd71026c3836 100644 --- a/doc/man/man1/srun.1 +++ b/doc/man/man1/srun.1 @@ -843,6 +843,10 @@ value of \fB\-\-nodes\fR exceeds the number of nodes identified with the \fB\-\-relative\fR option, a warning message will be printed and the \fB\-\-relative\fR option will take precedence. +.TP +\fB\-\-reservation\fR=\fIname\fR +Allocate resources for the job from the named reservation. + .TP \fB\-s\fR, \fB\-\-share\fR The job can share nodes with other running jobs. This may result in faster job diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in index c85cb381de7c2b58411295f3ccb1d26b1d1c1027..69565e663c676bdb8446d42d2aa33a43a63db26c 100644 --- a/slurm/slurm.h.in +++ b/slurm/slurm.h.in @@ -2,7 +2,7 @@ * slurm.h - Definitions for all of the SLURM RPCs ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette1@llnl.gov>, * Joey Ekstrom <ekstrom1@llnl.gov> et. al. @@ -534,7 +534,7 @@ typedef struct job_descriptor { /* For submit, allocate, and update requests */ char *req_nodes; /* comma separated list of required nodes * default NONE */ uint16_t requeue; /* enable or disable job requeue option */ - + char *reservation; /* name of reservation to use */ char *script; /* the actual job script, default NONE */ uint16_t shared; /* 1 if job can share nodes with other jobs, * 0 if job needs exclusive access to the node, diff --git a/slurm/slurm_errno.h b/slurm/slurm_errno.h index eafe21aa7c657f4acd2aaf241168eedfae592a85..6ab77838ab64762e3baafab4b5e7669e7e5c1ba1 100644 --- a/slurm/slurm_errno.h +++ b/slurm/slurm_errno.h @@ -159,6 +159,8 @@ enum { ESLURM_NEED_RESTART, ESLURM_ACCOUNTING_POLICY, ESLURM_INVALID_TIME_LIMIT, + ESLURM_RESERVATION_ACCESS, + ESLURM_RESERVATION_INVALID, /* switch specific error codes, specific values defined in plugin module */ ESLURM_SWITCH_MIN = 3000, diff --git a/src/api/init_msg.c b/src/api/init_msg.c index d0eaac8ffc32bccdbf07555ef57a6546a64b4818..95d9ea6187dbfb7980ac0a11b8441f7b8efb01b5 100644 --- a/src/api/init_msg.c +++ b/src/api/init_msg.c @@ -129,6 +129,7 @@ void slurm_init_job_desc_msg(job_desc_msg_t * job_desc_msg) job_desc_msg->resp_host = NULL; job_desc_msg->req_nodes = NULL; job_desc_msg->requeue = (uint16_t) NO_VAL; + job_desc_msg->reservation = NULL; job_desc_msg->rotate = (uint16_t) NO_VAL; job_desc_msg->script = NULL; job_desc_msg->select_jobinfo = NULL; diff --git a/src/common/slurm_errno.c b/src/common/slurm_errno.c index 0cdab103de322b75b301881013397d7ce0f190b4..fe1f2c4f757d92ac60cf3bd7200e63488371c386 100644 --- a/src/common/slurm_errno.c +++ b/src/common/slurm_errno.c @@ -218,9 +218,14 @@ static slurm_errtab_t slurm_errtab[] = { "The node configuration changes that were made require restart " "of the slurmctld daemon to take effect"}, { ESLURM_ACCOUNTING_POLICY, - "Job violates accounting policy (job submit limit, the user's size and/or time limits)"}, + "Job violates accounting policy (job submit limit, the user's " + "size and/or time limits)"}, { ESLURM_INVALID_TIME_LIMIT, "Requested time limit exceeds partition limit" }, + { ESLURM_RESERVATION_ACCESS, + "Access denied to requested reservation" }, + { ESLURM_RESERVATION_INVALID, + "Requested reservation is invalid" }, /* slurmd error codes */ diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index e15137dc66d1e46298f128f40de7332a35c021fa..0503a91a69c38f120ead3b706a3e7ddd1689dc58 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -2825,6 +2825,7 @@ _pack_job_desc_msg(job_desc_msg_t * job_desc_ptr, Buf buffer) packstr(job_desc_ptr->licenses, buffer); pack16(job_desc_ptr->mail_type, buffer); packstr(job_desc_ptr->mail_user, buffer); + packstr(job_desc_ptr->reservation, buffer); packstr(job_desc_ptr->wckey, buffer); if(job_desc_ptr->select_jobinfo) @@ -2964,6 +2965,7 @@ _unpack_job_desc_msg(job_desc_msg_t ** job_desc_buffer_ptr, Buf buffer) safe_unpackstr_xmalloc(&job_desc_ptr->licenses, &uint32_tmp, buffer); safe_unpack16(&job_desc_ptr->mail_type, buffer); safe_unpackstr_xmalloc(&job_desc_ptr->mail_user, &uint32_tmp, buffer); + safe_unpackstr_xmalloc(&job_desc_ptr->reservation, &uint32_tmp, buffer); safe_unpackstr_xmalloc(&job_desc_ptr->wckey, &uint32_tmp, buffer); if (select_g_alloc_jobinfo (&job_desc_ptr->select_jobinfo) diff --git a/src/salloc/opt.c b/src/salloc/opt.c index c8f99a475f57f3faf3eba943a89b088d155dec4b..9005f2c98267e67c50a16c83b5510b0e60b78e00 100644 --- a/src/salloc/opt.c +++ b/src/salloc/opt.c @@ -2,7 +2,7 @@ * opt.c - options processing for salloc ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <grondona1@llnl.gov>, et. al. * LLNL-CODE-402394. @@ -135,6 +135,7 @@ #define LONG_OPT_HINT 0x13b #define LONG_OPT_ACCTG_FREQ 0x13c #define LONG_OPT_WCKEY 0x13d +#define LONG_OPT_RESERVATION 0x13e /*---- global variables, defined in opt.h ----*/ opt_t opt; @@ -301,7 +302,8 @@ static void _opt_default() opt.no_shell = false; opt.get_user_env_time = -1; opt.get_user_env_mode = -1; - opt.wckey = NULL; + opt.reservation = NULL; + opt.wckey = NULL; } /*---[ env var processing ]-----------------------------------------------*/ @@ -573,6 +575,7 @@ void set_options(const int argc, char **argv) {"cpu_bind", required_argument, 0, LONG_OPT_CPU_BIND}, {"mem_bind", required_argument, 0, LONG_OPT_MEM_BIND}, {"wckey", required_argument, 0, LONG_OPT_WCKEY}, + {"reservation", required_argument, 0, LONG_OPT_RESERVATION}, {NULL, 0, 0, 0} }; char *opt_string = "+a:B:c:C:d:D:F:g:hHIJ:kK:L:m:n:N:Op:P:qR:st:uU:vVw:W:x:"; @@ -963,6 +966,10 @@ void set_options(const int argc, char **argv) xfree(opt.wckey); opt.wckey = xstrdup(optarg); break; + case LONG_OPT_RESERVATION: + xfree(opt.reservation); + opt.reservation = xstrdup(optarg); + break; default: fatal("Unrecognized command line parameter %c", opt_char); @@ -1376,6 +1383,7 @@ static void _opt_list() info("partition : %s", opt.partition == NULL ? "default" : opt.partition); info("job name : `%s'", opt.job_name); + info("reservation : `%s'", opt.reservation); info("wckey : `%s'", opt.wckey); if (opt.jobid != NO_VAL) info("jobid : %u", opt.jobid); @@ -1461,7 +1469,7 @@ static void _usage(void) " [--bell] [--no-bell] [--kill-command[=signal]]\n" " [--nodefile=file] [--nodelist=hosts] [--exclude=hosts]\n" " [--network=type] [--mem-per-cpu=MB]\n" -" [--cpu_bind=...] [--mem_bind=...]\n" +" [--cpu_bind=...] [--mem_bind=...] [--reservation=name]\n" " [executable [args...]]\n"); } @@ -1520,6 +1528,7 @@ static void _help(void) " -F, --nodefile=filename request a specific list of hosts\n" " -w, --nodelist=hosts... request a specific list of hosts\n" " -x, --exclude=hosts... exclude a specific list of hosts\n" +" --reservation=name allocate resources from named reservation\n" "\n" "Consumable resources related options:\n" " --exclusive allocate nodes in exclusive mode when\n" diff --git a/src/salloc/opt.h b/src/salloc/opt.h index 1301f950114941befe34e463d83a108ffd26e667..b842830d2f9c2cd4f8efb6542e50cf3fe8b57fc0 100644 --- a/src/salloc/opt.h +++ b/src/salloc/opt.h @@ -2,7 +2,7 @@ * opt.h - definitions for salloc option processing ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <grondona1@llnl.gov>, * Christopher J. Morrone <morrone2@llnl.gov>, et. al. @@ -138,6 +138,7 @@ typedef struct salloc_options { int get_user_env_time; /* --get-user-env[=secs] */ int get_user_env_mode; /* --get-user-env=[S|L] */ char *cwd; /* current working directory */ + char *reservation; /* --reservation */ char *wckey; /* --wckey workload characterization key */ } opt_t; diff --git a/src/salloc/salloc.c b/src/salloc/salloc.c index 9295bbcfe3f8367a8ea8827e46714915aa0f9661..549a617b3a796401b54cf7d0c00f49fe26fd432c 100644 --- a/src/salloc/salloc.c +++ b/src/salloc/salloc.c @@ -348,6 +348,7 @@ static int _fill_job_desc_from_opts(job_desc_msg_t *desc) desc->features = opt.constraints; desc->immediate = opt.immediate ? 1 : 0; desc->name = xstrdup(opt.job_name); + desc->reservation = xstrdup(opt.reservation); desc->wckey = xstrdup(opt.wckey); desc->req_nodes = opt.nodelist; diff --git a/src/sbatch/opt.c b/src/sbatch/opt.c index ea77c0d78fbc5c7f47fc433f2dc1c2bec5798718..71b0e9199b770629d3496ba6d43275a3046c871c 100644 --- a/src/sbatch/opt.c +++ b/src/sbatch/opt.c @@ -2,7 +2,7 @@ * opt.c - options processing for sbatch ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <grondona1@llnl.gov>, et. al. * LLNL-CODE-402394. @@ -138,6 +138,7 @@ #define LONG_OPT_OPEN_MODE 0x147 #define LONG_OPT_ACCTG_FREQ 0x148 #define LONG_OPT_WCKEY 0x149 +#define LONG_OPT_RESERVATION 0x14a /*---- global variables, defined in opt.h ----*/ opt_t opt; @@ -306,7 +307,8 @@ static void _opt_default() opt.get_user_env_time = -1; opt.get_user_env_mode = -1; opt.acctg_freq = -1; - opt.wckey = NULL; + opt.reservation = NULL; + opt.wckey = NULL; } /*---[ env var processing ]-----------------------------------------------*/ @@ -586,6 +588,7 @@ static struct option long_options[] = { {"cpu_bind", required_argument, 0, LONG_OPT_CPU_BIND}, {"mem_bind", required_argument, 0, LONG_OPT_MEM_BIND}, {"wckey", required_argument, 0, LONG_OPT_WCKEY}, + {"reservation", required_argument, 0, LONG_OPT_RESERVATION}, {NULL, 0, 0, 0} }; @@ -1364,6 +1367,10 @@ static void _set_options(int argc, char **argv) xfree(opt.wckey); opt.wckey = xstrdup(optarg); break; + case LONG_OPT_RESERVATION: + xfree(opt.reservation); + opt.reservation = xstrdup(optarg); + break; default: fatal("Unrecognized command line parameter %c", opt_char); @@ -2119,6 +2126,7 @@ static void _opt_list() info("partition : %s", opt.partition == NULL ? "default" : opt.partition); info("job name : `%s'", opt.job_name); + info("reservation : `%s'", opt.reservation); info("wckey : `%s'", opt.wckey); info("distribution : %s", format_task_dist_states(opt.distribution)); if(opt.distribution == SLURM_DIST_PLANE) @@ -2208,7 +2216,7 @@ static void _usage(void) " [--requeue] [--no-requeue] [--ntasks-per-node=n] [--propagate]\n" " [--nodefile=file] [--nodelist=hosts] [--exclude=hosts]\n" " [--network=type] [--mem-per-cpu=MB]\n" -" [--cpu_bind=...] [--mem_bind=...]\n" +" [--cpu_bind=...] [--mem_bind=...] [--reservation=name]\n" " executable [args...]\n"); } @@ -2269,6 +2277,7 @@ static void _help(void) " -F, --nodefile=filename request a specific list of hosts\n" " -w, --nodelist=hosts... request a specific list of hosts\n" " -x, --exclude=hosts... exclude a specific list of hosts\n" +" --reservation=name allocate resources from named reservation\n" "\n" "Consumable resources related options:\n" " --exclusive allocate nodes in exclusive mode when\n" diff --git a/src/sbatch/opt.h b/src/sbatch/opt.h index 1d53bb46deb28b657f9b4b258b601008fb6c54e4..516613c926a6b4fe2ef90db6111eae6d29d5c830 100644 --- a/src/sbatch/opt.h +++ b/src/sbatch/opt.h @@ -2,7 +2,7 @@ * opt.h - definitions for srun option processing ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <grondona1@llnl.gov>, * Christopher J. Morrone <morrone2@llnl.gov>, et. al. @@ -144,6 +144,7 @@ typedef struct sbatch_options { int get_user_env_time; /* --get-user-env[=timeout] */ int get_user_env_mode; /* --get-user-env=[S|L] */ char *wckey; /* --wckey workload characterization key */ + char *reservation; /* --reservation */ } opt_t; extern opt_t opt; diff --git a/src/sbatch/sbatch.c b/src/sbatch/sbatch.c index 685cb9f434e66d7578cba203bb326be773cdc514..72d0ec54a95000ca24fe79b9148b7c17be41f2f3 100644 --- a/src/sbatch/sbatch.c +++ b/src/sbatch/sbatch.c @@ -2,7 +2,7 @@ * sbatch.c - Submit a SLURM batch script.$ ***************************************************************************** * Copyright (C) 2006-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Christopher J. Morrone <morrone2@llnl.gov> * LLNL-CODE-402394. @@ -146,7 +146,7 @@ static int fill_job_desc_from_opts(job_desc_msg_t *desc) desc->name = xstrdup(opt.job_name); else desc->name = xstrdup("sbatch"); - + desc->reservation = xstrdup(opt.reservation); desc->wckey = xstrdup(opt.wckey); desc->req_nodes = opt.nodelist; diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 29bbcf9ef80d453d9589ef88d45673cfa2de3498..7f139e0f28d1886fc5c5ebdda19b88d655630412 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -4,7 +4,7 @@ * (last_job_update), and hash table (job_hash) ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette1@llnl.gov> * LLNL-CODE-402394. @@ -1403,8 +1403,8 @@ void dump_job_desc(job_desc_msg_t * job_specs) debug3(" min_memory_%s=%ld job_min_tmp_disk=%ld", mem_type, job_min_memory, job_min_tmp_disk); immediate = (job_specs->immediate == 0) ? 0L : 1L; - debug3(" immediate=%ld features=%s", - immediate, job_specs->features); + debug3(" immediate=%ld features=%s reservation=%s", + immediate, job_specs->features, job_specs->reservation); debug3(" req_nodes=%s exc_nodes=%s", job_specs->req_nodes, job_specs->exc_nodes); diff --git a/src/srun/allocate.c b/src/srun/allocate.c index b39775f155f1230388569d177f2afa2ee39bd1ef..449577dc94ddcb6c2e6470d5403476404fc70609 100644 --- a/src/srun/allocate.c +++ b/src/srun/allocate.c @@ -2,7 +2,7 @@ * src/srun/allocate.c - srun functions for managing node allocations ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <mgrondona@llnl.gov>. * LLNL-CODE-402394. @@ -343,8 +343,8 @@ job_desc_msg_create_from_opts () j->name = xstrdup(opt.job_name); else j->name = xstrdup(opt.cmd_name); - - j->wckey = xstrdup(opt.wckey); + j->reservation = xstrdup(opt.reservation); + j->wckey = xstrdup(opt.wckey); j->req_nodes = xstrdup(opt.nodelist); diff --git a/src/srun/opt.c b/src/srun/opt.c index a04056d6777d19368a945e6987c36fec87147f04..fffe6324afce9b4e5c171dae3b301bd3d9f09e12 100644 --- a/src/srun/opt.c +++ b/src/srun/opt.c @@ -2,7 +2,7 @@ * opt.c - options processing for srun ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. - * Copyright (C) 2008 Lawrence Livermore National Security. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <grondona1@llnl.gov>, et. al. * LLNL-CODE-402394. @@ -168,6 +168,7 @@ #define LONG_OPT_OPEN_MODE 0x149 #define LONG_OPT_ACCTG_FREQ 0x14a #define LONG_OPT_WCKEY 0x14b +#define LONG_OPT_RESERVATION 0x14c /*---- global variables, defined in opt.h ----*/ int _verbose; @@ -435,6 +436,7 @@ static void _opt_default() opt.pty = false; opt.open_mode = 0; opt.acctg_freq = -1; + opt.reservation = NULL; opt.wckey = NULL; } @@ -770,6 +772,7 @@ static void set_options(const int argc, char **argv) {"open-mode", required_argument, 0, LONG_OPT_OPEN_MODE}, {"acctg-freq", required_argument, 0, LONG_OPT_ACCTG_FREQ}, {"wckey", required_argument, 0, LONG_OPT_WCKEY}, + {"reservation", required_argument, 0, LONG_OPT_RESERVATION}, {NULL, 0, 0, 0} }; char *opt_string = "+aAbB:c:C:d:D:e:Eg:Hi:IjJ:kKlL:m:n:N:" @@ -1297,6 +1300,10 @@ static void set_options(const int argc, char **argv) xfree(opt.wckey); opt.wckey = xstrdup(optarg); break; + case LONG_OPT_RESERVATION: + xfree(opt.reservation); + opt.reservation = xstrdup(optarg); + break; case LONG_OPT_CHECKPOINT_PATH: xfree(opt.ckpt_path); opt.ckpt_path = xstrdup(optarg); @@ -1840,6 +1847,7 @@ static void _opt_list() info("partition : %s", opt.partition == NULL ? "default" : opt.partition); info("job name : `%s'", opt.job_name); + info("reservation : `%s'", opt.reservation); info("wckey : `%s'", opt.wckey); info("distribution : %s", format_task_dist_states(opt.distribution)); if(opt.distribution == SLURM_DIST_PLANE) @@ -1946,7 +1954,7 @@ static void _usage(void) " [--mpi=type] [--account=name] [--dependency=type:jobid]\n" " [--kill-on-bad-exit] [--propagate[=rlimits] [--comment=name]\n" " [--cpu_bind=...] [--mem_bind=...] [--network=type]\n" -" [--ntasks-per-node=n] [--ntasks-per-socket=n]\n" +" [--ntasks-per-node=n] [--ntasks-per-socket=n] [reservation=name]\n" " [--ntasks-per-core=n] [--mem-per-cpu=MB] [--preserve-env]\n" #ifdef HAVE_BG /* Blue gene specific options */ " [--geometry=XxYxZ] [--conn-type=type] [--no-rotate] [--reboot]\n" @@ -2039,6 +2047,7 @@ static void _help(void) " -w, --nodelist=hosts... request a specific list of hosts\n" " -x, --exclude=hosts... exclude a specific list of hosts\n" " -Z, --no-allocate don't allocate nodes (must supply -w)\n" +" --reservation=name allocate resources from named reservation\n" "\n" "Consumable resources related options:\n" " --exclusive allocate nodes in exclusive mode when\n" diff --git a/src/srun/opt.h b/src/srun/opt.h index c273790ce615c41b27eb3318ac29143eb83c4f9d..4a1e56798d3bdd55a14e86727cb6127bc33390e6 100644 --- a/src/srun/opt.h +++ b/src/srun/opt.h @@ -2,7 +2,8 @@ * opt.h - definitions for srun option processing * $Id$ ***************************************************************************** - * Copyright (C) 2002-2006 The Regents of the University of California. + * Copyright (C) 2002-2007 The Regents of the University of California. + * Copyright (C) 2008-2009 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <grondona1@llnl.gov>, et. al. * LLNL-CODE-402394. @@ -210,6 +211,7 @@ typedef struct srun_options { int argc; /* length of argv array */ char **argv; /* left over on command line */ char *wckey; /* --wckey workload characterization key */ + char *reservation; /* --reservation */ } opt_t; extern opt_t opt;