Skip to content
Snippets Groups Projects
Commit 79fcc598 authored by Danny Auble's avatar Danny Auble
Browse files

Merge remote-tracking branch 'origin/slurm-14.03' into slurm-14.11

parents da7f1986 d151a215
No related branches found
No related tags found
No related merge requests found
...@@ -275,6 +275,11 @@ documents those changes that are of interest to users and administrators. ...@@ -275,6 +275,11 @@ documents those changes that are of interest to users and administrators.
-- Fix a few sacctmgr error messages. -- Fix a few sacctmgr error messages.
-- Treat non-zero SlurmSchedLogLevel without SlurmSchedLogFile as a fatal -- Treat non-zero SlurmSchedLogLevel without SlurmSchedLogFile as a fatal
error. error.
-- Correct sched_config.html documentation SchedulingParameters
should be SchedulerParameters.
-- When using gres and cgroup ConstrainDevices set correct access
permission for the batch step.
-- Fix minor memory leak in jobcomp/mysql on slurmctld reconfig.
* Changes in Slurm 14.03.9 * Changes in Slurm 14.03.9
========================== ==========================
......
...@@ -17,7 +17,7 @@ Options are sched/backfill, which performs backfill scheduling, and ...@@ -17,7 +17,7 @@ Options are sched/backfill, which performs backfill scheduling, and
sched/builtin, which attempts to schedule jobs in a string priority order within sched/builtin, which attempts to schedule jobs in a string priority order within
each partition/queue.</P> each partition/queue.</P>
<P>There is also a <B>SchedulingParameters</B> configuration parameter which <P>There is also a <B>SchedulerParameters</B> configuration parameter which
can specify a wide range of parameters as described below. can specify a wide range of parameters as described below.
This first set of parameters applies to all scheduling configurations.</P> This first set of parameters applies to all scheduling configurations.</P>
<UL> <UL>
...@@ -68,10 +68,10 @@ before it is killed. A system-wide configuration parameter.</LI> ...@@ -68,10 +68,10 @@ before it is killed. A system-wide configuration parameter.</LI>
Locks are released briefly every two seconds so that other options can be Locks are released briefly every two seconds so that other options can be
processed, for example to process new job submission requests. processed, for example to process new job submission requests.
Backfill scheduling can optionally continue execution after the lock release Backfill scheduling can optionally continue execution after the lock release
and ignore newly submitted jobs (<B>SchedulingParameters=bf_continue</B>). and ignore newly submitted jobs (<B>SchedulerParameters=bf_continue</B>).
Doing so will permit consideration of more jobs, but may result in the delayed Doing so will permit consideration of more jobs, but may result in the delayed
scheduling of newly submitted jobs. scheduling of newly submitted jobs.
A list of <B>SchedulingParameters</B> configuration parameters related to A list of <B>SchedulerParameters</B> configuration parameters related to
backfill scheduling follows.</P> backfill scheduling follows.</P>
<UL> <UL>
<LI><B>bf_continue</B> - If set, then continue backfill scheduling after <LI><B>bf_continue</B> - If set, then continue backfill scheduling after
......
...@@ -225,7 +225,7 @@ extern int fini ( void ) ...@@ -225,7 +225,7 @@ extern int fini ( void )
extern int slurm_jobcomp_set_location(char *location) extern int slurm_jobcomp_set_location(char *location)
{ {
mysql_db_info_t *db_info = create_mysql_db_info(SLURM_MYSQL_PLUGIN_JC); mysql_db_info_t *db_info;
int rc = SLURM_SUCCESS; int rc = SLURM_SUCCESS;
char *db_name = NULL; char *db_name = NULL;
int i = 0; int i = 0;
...@@ -254,6 +254,8 @@ extern int slurm_jobcomp_set_location(char *location) ...@@ -254,6 +254,8 @@ extern int slurm_jobcomp_set_location(char *location)
debug2("mysql_connect() called for db %s", db_name); debug2("mysql_connect() called for db %s", db_name);
jobcomp_mysql_conn = create_mysql_conn(0, 0, NULL); jobcomp_mysql_conn = create_mysql_conn(0, 0, NULL);
db_info = create_mysql_db_info(SLURM_MYSQL_PLUGIN_JC);
mysql_db_get_db_connection(jobcomp_mysql_conn, db_name, db_info); mysql_db_get_db_connection(jobcomp_mysql_conn, db_name, db_info);
xfree(db_name); xfree(db_name);
......
...@@ -360,41 +360,43 @@ extern int task_cgroup_devices_create(stepd_step_rec_t *job) ...@@ -360,41 +360,43 @@ extern int task_cgroup_devices_create(stepd_step_rec_t *job)
} }
gres_step_bit_alloc = xmalloc ( sizeof (int) * (gres_conf_lines + 1)); if (job->stepid != SLURM_BATCH_SCRIPT ) {
/* fetch information concerning the gres devices allocation for the step */ gres_step_bit_alloc = xmalloc ( sizeof (int) * (gres_conf_lines + 1));
gres_plugin_step_state_file(step_gres_list, gres_step_bit_alloc,
/* fetch information concerning the gres devices allocation for the step */
gres_plugin_step_state_file(step_gres_list, gres_step_bit_alloc,
gres_count); gres_count);
/* /*
* with the current cgroup devices subsystem design (whitelist only supported) * with the current cgroup devices subsystem design (whitelist only supported)
* we need to allow all different devices that are supposed to be allowed by * we need to allow all different devices that are supposed to be allowed by
* default. * default.
*/ */
for (k = 0; k < allow_lines; k++) { for (k = 0; k < allow_lines; k++) {
info("Default access allowed to device %s", allowed_dev_major[k]); info("Default access allowed to device %s", allowed_dev_major[k]);
xcgroup_set_param(&step_devices_cg,"devices.allow", xcgroup_set_param(&step_devices_cg,"devices.allow",
allowed_dev_major[k]); allowed_dev_major[k]);
} }
/* /*
* allow or deny access to devices according to gres permissions for the step * allow or deny access to devices according to gres permissions for the step
*/ */
for (k = 0; k < gres_conf_lines; k++) { for (k = 0; k < gres_conf_lines; k++) {
if (gres_step_bit_alloc[k] == 1){ if (gres_step_bit_alloc[k] == 1){
info("Allowing access to device %s for step", info("Allowing access to device %s for step",
gres_cgroup[k]); gres_cgroup[k]);
xcgroup_set_param(&step_devices_cg, "devices.allow", xcgroup_set_param(&step_devices_cg, "devices.allow",
gres_cgroup[k]); gres_cgroup[k]);
} else { } else {
info("Not allowing access to device %s for step", info("Not allowing access to device %s for step",
gres_cgroup[k]); gres_cgroup[k]);
xcgroup_set_param(&step_devices_cg, "devices.deny", xcgroup_set_param(&step_devices_cg, "devices.deny",
gres_cgroup[k]); gres_cgroup[k]);
}
} }
} }
/* attach the slurmstepd to the step devices cgroup */ /* attach the slurmstepd to the step devices cgroup */
pid_t pid = getpid(); pid_t pid = getpid();
rc = xcgroup_add_pids(&step_devices_cg,&pid,1); rc = xcgroup_add_pids(&step_devices_cg,&pid,1);
......
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