diff --git a/NEWS b/NEWS index 6b852cab46fe8a11b5108781f7fe102d991e0fa4..d78be4349fa4742d55645a9e877f8e0bc3723f9c 100644 --- a/NEWS +++ b/NEWS @@ -186,6 +186,10 @@ documents those changes that are of interest to users and admins. * Changes in SLURM 2.3.5 ======================== + -- Improve support for overlapping advanced reservations. Patch from + Bill Brophy, Bull. + -- Modify Makefiles for support of Debian hardening flags. Patch from + Simon Ruderich. * Changes in SLURM 2.3.4 ======================== diff --git a/contribs/pam/Makefile.am b/contribs/pam/Makefile.am index d74b092e8db112a4c4625672b0016a6d4cfd4a2a..25c3a2f1ff61a2419f3d8a0008db58a3f92500ce 100644 --- a/contribs/pam/Makefile.am +++ b/contribs/pam/Makefile.am @@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = foreign -CPPFLAGS = -fPIC +AM_CPPFLAGS = -fPIC INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common PLUGIN_FLAGS = -module --export-dynamic -avoid-version diff --git a/contribs/pam/Makefile.in b/contribs/pam/Makefile.in index 6b6378ac22b13013c3312bce14d68a1d6fceaab7..112089959dff3b08d14150221a7b2cb10ac5092e 100644 --- a/contribs/pam/Makefile.in +++ b/contribs/pam/Makefile.in @@ -162,7 +162,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = -fPIC +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -340,6 +340,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CPPFLAGS = -fPIC INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common PLUGIN_FLAGS = -module --export-dynamic -avoid-version @HAVE_PAM_FALSE@pam_lib = diff --git a/contribs/perlapi/libslurm/Makefile.am b/contribs/perlapi/libslurm/Makefile.am index b0e7e9e6a46c8bdd08b4766a6d3850a2970794b5..5cad2a733abd6364ba1310bb27737be530da1c24 100644 --- a/contribs/perlapi/libslurm/Makefile.am +++ b/contribs/perlapi/libslurm/Makefile.am @@ -84,16 +84,16 @@ if HAVE_AIX if [ ! -f Makefile ]; then \ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT= ; \ fi && \ - ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ - $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ + ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ + $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ cd ..; else @cd $(perl_dir) && \ if [ ! -f Makefile ]; then \ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT= ; \ fi && \ - ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ - $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ + ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ + $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ cd ..; endif diff --git a/contribs/perlapi/libslurm/Makefile.in b/contribs/perlapi/libslurm/Makefile.in index 1f2c4bc632421eaf8ee4133838c3cff3ef55f106..7dfa142f5c214ec11cd6d14728ef216b4dc54599 100644 --- a/contribs/perlapi/libslurm/Makefile.in +++ b/contribs/perlapi/libslurm/Makefile.in @@ -557,15 +557,15 @@ all-local: $(perl_dir)/Makefile #libslurm @HAVE_AIX_TRUE@ if [ ! -f Makefile ]; then \ @HAVE_AIX_TRUE@ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT= ; \ @HAVE_AIX_TRUE@ fi && \ -@HAVE_AIX_TRUE@ ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ -@HAVE_AIX_TRUE@ $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ +@HAVE_AIX_TRUE@ ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ +@HAVE_AIX_TRUE@ $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ @HAVE_AIX_TRUE@ cd ..; @HAVE_AIX_FALSE@ @cd $(perl_dir) && \ @HAVE_AIX_FALSE@ if [ ! -f Makefile ]; then \ @HAVE_AIX_FALSE@ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT= ; \ @HAVE_AIX_FALSE@ fi && \ -@HAVE_AIX_FALSE@ ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ -@HAVE_AIX_FALSE@ $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ +@HAVE_AIX_FALSE@ ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ +@HAVE_AIX_FALSE@ $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ @HAVE_AIX_FALSE@ cd ..; install-exec-local: diff --git a/contribs/perlapi/libslurmdb/Makefile.am b/contribs/perlapi/libslurmdb/Makefile.am index 978d4b542d8e5c196a2a84919f6efe3e531b9d23..7119a15832b5363af5e81e5bf055000c7decc89f 100644 --- a/contribs/perlapi/libslurmdb/Makefile.am +++ b/contribs/perlapi/libslurmdb/Makefile.am @@ -34,16 +34,16 @@ if HAVE_AIX if [ ! -f Makefile ]; then \ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT=; \ fi && \ - ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ - $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ + ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ + $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ cd ..; else @cd $(perl_dir) && \ if [ ! -f Makefile ]; then \ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT=; \ fi && \ - ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ - $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ + ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ + $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ cd ..; endif diff --git a/contribs/perlapi/libslurmdb/Makefile.in b/contribs/perlapi/libslurmdb/Makefile.in index 4a9ee5ee48f2beae732453eca529009bc10ecc52..78d09d453370336e76df335c2568f4bffe2139ae 100644 --- a/contribs/perlapi/libslurmdb/Makefile.in +++ b/contribs/perlapi/libslurmdb/Makefile.in @@ -507,15 +507,15 @@ all-local: $(perl_dir)/Makefile #libslurmdb @HAVE_AIX_TRUE@ if [ ! -f Makefile ]; then \ @HAVE_AIX_TRUE@ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT=; \ @HAVE_AIX_TRUE@ fi && \ -@HAVE_AIX_TRUE@ ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ -@HAVE_AIX_TRUE@ $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ +@HAVE_AIX_TRUE@ ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ +@HAVE_AIX_TRUE@ $(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ @HAVE_AIX_TRUE@ cd ..; @HAVE_AIX_FALSE@ @cd $(perl_dir) && \ @HAVE_AIX_FALSE@ if [ ! -f Makefile ]; then \ @HAVE_AIX_FALSE@ $(perlpath) Makefile.PL $(PERL_MM_PARAMS) prefix=${prefix} INSTALL_BASE= PERL_MM_OPT=; \ @HAVE_AIX_FALSE@ fi && \ -@HAVE_AIX_FALSE@ ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS) || \ -@HAVE_AIX_FALSE@ $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \ +@HAVE_AIX_FALSE@ ($(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS) || \ +@HAVE_AIX_FALSE@ $(MAKE) CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="$(PERL_CFLAGS) -g -static $(CFLAGS) $(CPPFLAGS)" $(PERL_EXTRA_OPTS)) && \ @HAVE_AIX_FALSE@ cd ..; install-exec-local: diff --git a/contribs/phpext/Makefile.am b/contribs/phpext/Makefile.am index 7f93dedacd6d2e076f0e10911766f771caee3840..0454804b0c3a3e0691f1f92bfdbfa287bf7be876 100644 --- a/contribs/phpext/Makefile.am +++ b/contribs/phpext/Makefile.am @@ -3,9 +3,9 @@ php_dir=slurm_php phpize=/usr/bin/phpize if HAVE_AIX -config_line=CC="$(CC)" CCFLAGS="-g -static $(CFLAGS)" ./configure +config_line=CC="$(CC)" CCFLAGS="-g -static $(CFLAGS) $(CPPFLAGS)" ./configure else -config_line=CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="-g -static $(CFLAGS)" CFLAGS="$(CFLAGS)" ./configure +config_line=CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="-g -static $(CFLAGS)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" ./configure endif all-local: diff --git a/contribs/phpext/Makefile.in b/contribs/phpext/Makefile.in index 719449cacf1cbc6d19e6fea45e182d227e8825d7..4d75ad2f3024195b4d22275af5c816fc4d8abcd1 100644 --- a/contribs/phpext/Makefile.in +++ b/contribs/phpext/Makefile.in @@ -288,8 +288,8 @@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign php_dir = slurm_php phpize = /usr/bin/phpize -@HAVE_AIX_FALSE@config_line = CC="$(CC)" LD="$(CC) $(CFLAGS)" CCFLAGS="-g -static $(CFLAGS)" CFLAGS="$(CFLAGS)" ./configure -@HAVE_AIX_TRUE@config_line = CC="$(CC)" CCFLAGS="-g -static $(CFLAGS)" ./configure +@HAVE_AIX_FALSE@config_line = CC="$(CC)" LD="$(CC) $(CFLAGS) $(LDFLAGS)" CCFLAGS="-g -static $(CFLAGS)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" ./configure +@HAVE_AIX_TRUE@config_line = CC="$(CC)" CCFLAGS="-g -static $(CFLAGS) $(CPPFLAGS)" ./configure all: all-am .SUFFIXES: diff --git a/doc/html/team.shtml b/doc/html/team.shtml index d051d4f549182d7008d0acb4d6e5000c133fb654..44bfa0dd0cf06e17ca1fbfa18ef718890041e40c 100644 --- a/doc/html/team.shtml +++ b/doc/html/team.shtml @@ -86,6 +86,7 @@ organizations. The current SLURM development staff includes: </p> <li>Andy Roosen (University of Deleware)</li> <li>Miguel Ros (Barcelona Supercomputer Center, Spain)</li> <li>Beat Rubischon (DALCO AG, Switzerland)</li> +<li>Simon Ruderich</li> <li>Dan Rusak (Bull)</li> <li>Eygene Ryabinkin (Kurchatov Institute, Russia)</li> <li>Federico Sacerdoti (D.E. Shaw)</li> diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 8ad3b62953b8dd45a01dec09b25f5ee9b2305131..8df61a75d14cf4417dd6d9966b430a4b1e37acef 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -8,7 +8,7 @@ # only be 1 address per symbol. If you link to the libcommon.la in # a plugin you will get 2 addresses for one symbol which could lead to problems. -CPPFLAGS = -DGRES_CONFIG_FILE=\"$(sysconfdir)/gres.conf\" +AM_CPPFLAGS = -DGRES_CONFIG_FILE=\"$(sysconfdir)/gres.conf\" AUTOMAKE_OPTIONS = foreign if HAVE_UNSETENV diff --git a/src/common/Makefile.in b/src/common/Makefile.in index 36288e1772d2be0f4f1b266b48995460141911da..f5c186616a793837b2a276f2f9cb0f2b7e2f6b7e 100644 --- a/src/common/Makefile.in +++ b/src/common/Makefile.in @@ -230,7 +230,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = -DGRES_CONFIG_FILE=\"$(sysconfdir)/gres.conf\" +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -408,6 +408,7 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +AM_CPPFLAGS = -DGRES_CONFIG_FILE=\"$(sysconfdir)/gres.conf\" AUTOMAKE_OPTIONS = foreign @HAVE_UNSETENV_FALSE@build_unsetenv_src = unsetenv.c unsetenv.h @HAVE_UNSETENV_TRUE@build_unsetenv_src = diff --git a/src/common/xcgroup.c b/src/common/xcgroup.c index 568696fc5553fabc934e6a4e1dbe5e3f33b59361..2a03ec0dce038b98d6666ba4deec0b893a7e9962 100644 --- a/src/common/xcgroup.c +++ b/src/common/xcgroup.c @@ -748,6 +748,52 @@ int xcgroup_get_uint64_param(xcgroup_t* cg, char* param, uint64_t* value) return fstatus; } +static int cgroup_move_process_by_task (xcgroup_t *cg, pid_t pid) +{ + DIR *dir; + struct dirent *entry; + char path [PATH_MAX]; + + if (snprintf (path, PATH_MAX, "/proc/%d/task", (int) pid) >= PATH_MAX) { + error ("xcgroup: move_process_by_task: path overflow!"); + return XCGROUP_ERROR; + } + + dir = opendir (path); + if (!dir) { + error ("xcgroup: opendir(%s): %m", path); + return XCGROUP_ERROR; + } + + while ((entry = readdir (dir))) { + if (entry->d_name[0] != '.') + xcgroup_set_param (cg, "tasks", entry->d_name); + } + closedir (dir); + return XCGROUP_SUCCESS; +} + +static int cgroup_procs_writable (xcgroup_t *cg) +{ + struct stat st; + char *path = NULL; + int rc = 0; + + xstrfmtcat (path, "%s/%s", cg->path, "cgroup.procs"); + if ((stat (path, &st) >= 0) && (st.st_mode & S_IWUSR)) + rc = 1; + xfree (path); + return (rc); +} + +int xcgroup_move_process (xcgroup_t *cg, pid_t pid) +{ + if (!cgroup_procs_writable (cg)) + return cgroup_move_process_by_task (cg, pid); + + return xcgroup_set_uint32_param (cg, "cgroup.procs", pid); +} + /* * ----------------------------------------------------------------------------- diff --git a/src/common/xcgroup.h b/src/common/xcgroup.h index 7b83d278889eb0a80395227bad85c8571feacae1..4f03b5cef7af4503195bab87ff43359d1533e7ce 100644 --- a/src/common/xcgroup.h +++ b/src/common/xcgroup.h @@ -314,4 +314,18 @@ int xcgroup_set_uint64_param(xcgroup_t* cg,char* parameter,uint64_t value); */ int xcgroup_get_uint64_param(xcgroup_t* cg,char* param,uint64_t* value); + +/* + * Move process 'pid' (and all its threads) to cgroup 'cg' + * + * This call ensures that pid and all its threads are moved to the + * cgroup cg. If the cgroup.procs file is not writable, then threads + * must be moved individually and this call can be racy. + * + * returns: + * - XCGROUP_ERROR + * - XCGROUP_SUCCESS + */ +int xcgroup_move_process(xcgroup_t *cg, pid_t pid); + #endif diff --git a/src/plugins/jobcomp/pgsql/Makefile.am b/src/plugins/jobcomp/pgsql/Makefile.am index 6c78796b9f997304e7a4146f4a9039897aad9683..456a272e67f871a70e8ecc77b6d7119edd756f47 100644 --- a/src/plugins/jobcomp/pgsql/Makefile.am +++ b/src/plugins/jobcomp/pgsql/Makefile.am @@ -1,6 +1,6 @@ # Makefile for jobcomp/pgsql plugin -CPPFLAGS = $(PGSQL_CFLAGS) +AM_CPPFLAGS = $(PGSQL_CFLAGS) AUTOMAKE_OPTIONS = foreign PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/jobcomp/pgsql/Makefile.in b/src/plugins/jobcomp/pgsql/Makefile.in index dd51abc81311dfdb674ba73cae47afcec3188ed5..1fc1781a5805c4e52826fb4c283f008b326f6281 100644 --- a/src/plugins/jobcomp/pgsql/Makefile.in +++ b/src/plugins/jobcomp/pgsql/Makefile.in @@ -164,7 +164,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = $(PGSQL_CFLAGS) +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -341,6 +341,7 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +AM_CPPFLAGS = $(PGSQL_CFLAGS) AUTOMAKE_OPTIONS = foreign PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common diff --git a/src/plugins/sched/backfill/Makefile.am b/src/plugins/sched/backfill/Makefile.am index 242b693c4e82d84f730496e8e566906eff5348bb..88998e6a6a2be49319b41c043c8f1b3e9c464b58 100644 --- a/src/plugins/sched/backfill/Makefile.am +++ b/src/plugins/sched/backfill/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign -CXXFLAGS = -fexceptions +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/sched/backfill/Makefile.in b/src/plugins/sched/backfill/Makefile.in index 873511d6fafa2b84dacfffd16f4ecfdea38361e0..3fc62c37774432920e588abde2c156f2be131431 100644 --- a/src/plugins/sched/backfill/Makefile.in +++ b/src/plugins/sched/backfill/Makefile.in @@ -159,7 +159,7 @@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = -fexceptions +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -333,6 +333,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = sched_backfill.la diff --git a/src/plugins/sched/builtin/Makefile.am b/src/plugins/sched/builtin/Makefile.am index ff36ef1e5929013cbaf81c84439fcc6aaf5dfc37..faf4f0a682540b92a7b874849782cba256f87f0e 100644 --- a/src/plugins/sched/builtin/Makefile.am +++ b/src/plugins/sched/builtin/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign -CXXFLAGS = -fexceptions +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/sched/builtin/Makefile.in b/src/plugins/sched/builtin/Makefile.in index 826c4ff528d4252327f3061fcb47b89352208204..fa2775925964805da2902517348ba0a816553dd7 100644 --- a/src/plugins/sched/builtin/Makefile.in +++ b/src/plugins/sched/builtin/Makefile.in @@ -159,7 +159,7 @@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = -fexceptions +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -333,6 +333,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = sched_builtin.la diff --git a/src/plugins/sched/hold/Makefile.am b/src/plugins/sched/hold/Makefile.am index 8787797100ef345244558b9dc476f1ecf1f28f51..d03a995481dda85ed36b972d12ccb31ab2a58fef 100644 --- a/src/plugins/sched/hold/Makefile.am +++ b/src/plugins/sched/hold/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign -CXXFLAGS = -fexceptions +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/sched/hold/Makefile.in b/src/plugins/sched/hold/Makefile.in index 8c59d47033bb8d4b77a96dd03b96598736a671a1..e2c43f513077cf055b0312879697daadb36fcb0a 100644 --- a/src/plugins/sched/hold/Makefile.in +++ b/src/plugins/sched/hold/Makefile.in @@ -159,7 +159,7 @@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = -fexceptions +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -333,6 +333,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = sched_hold.la diff --git a/src/plugins/sched/wiki/Makefile.am b/src/plugins/sched/wiki/Makefile.am index 70c23917adb8f70118ce8308690f144260790d26..3864a3b790e4f5c069340ae2c85fa2443cbb7a82 100644 --- a/src/plugins/sched/wiki/Makefile.am +++ b/src/plugins/sched/wiki/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign -CXXFLAGS = -fexceptions +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/sched/wiki/Makefile.in b/src/plugins/sched/wiki/Makefile.in index 714667f8a48b7f22de4b73a7ee184caa45ecd45f..f4d33aa34c36f75a48baffe6ba2483c081587eb9 100644 --- a/src/plugins/sched/wiki/Makefile.in +++ b/src/plugins/sched/wiki/Makefile.in @@ -161,7 +161,7 @@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = -fexceptions +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -335,6 +335,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = sched_wiki.la diff --git a/src/plugins/sched/wiki2/Makefile.am b/src/plugins/sched/wiki2/Makefile.am index 19c026a5e0a6f632c6e96a2985bf8ecf1d3f03d4..c5c708c9d54d53dfaf81f55a225eaf37a985dcb1 100644 --- a/src/plugins/sched/wiki2/Makefile.am +++ b/src/plugins/sched/wiki2/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign -CXXFLAGS = -fexceptions +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/sched/wiki2/Makefile.in b/src/plugins/sched/wiki2/Makefile.in index 296805173380aaf12d9bb665eec2e66a50425246..782db1b320351445b13788124f97e296a18ae127 100644 --- a/src/plugins/sched/wiki2/Makefile.in +++ b/src/plugins/sched/wiki2/Makefile.in @@ -164,7 +164,7 @@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = -fexceptions +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -338,6 +338,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CXXFLAGS = -fexceptions PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = sched_wiki2.la diff --git a/src/plugins/select/bluegene/Makefile.am b/src/plugins/select/bluegene/Makefile.am index 505f17a77f18f4cecfb2d1bc1561bc6e3bf6d82e..95af1f7dd87a9fc29ed05cf423ed693269fff479 100644 --- a/src/plugins/select/bluegene/Makefile.am +++ b/src/plugins/select/bluegene/Makefile.am @@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS = foreign CLEANFILES = core.* -CPPFLAGS = -DBLUEGENE_CONFIG_FILE=\"$(sysconfdir)/bluegene.conf\" +AM_CPPFLAGS = -DBLUEGENE_CONFIG_FILE=\"$(sysconfdir)/bluegene.conf\" PLUGIN_FLAGS = -module -avoid-version --export-dynamic -lm diff --git a/src/plugins/select/bluegene/Makefile.in b/src/plugins/select/bluegene/Makefile.in index 70b005219b7ad10d32942be59ebf6c39cb6c0f7c..88a7acfa68e55513b0172aad848a5cda94fbc76b 100644 --- a/src/plugins/select/bluegene/Makefile.in +++ b/src/plugins/select/bluegene/Makefile.in @@ -318,7 +318,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = -DBLUEGENE_CONFIG_FILE=\"$(sysconfdir)/bluegene.conf\" +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -497,6 +497,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign CLEANFILES = core.* +AM_CPPFLAGS = -DBLUEGENE_CONFIG_FILE=\"$(sysconfdir)/bluegene.conf\" PLUGIN_FLAGS = -module -avoid-version --export-dynamic -lm INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common $(BG_INCLUDES) pkglib_LTLIBRARIES = select_bluegene.la $(am__append_2) \ diff --git a/src/plugins/select/cray/Makefile.am b/src/plugins/select/cray/Makefile.am index 3b4a41a2e4a6f4c3199f4c403b7f87532bc66f82..2ec30a33b27d1adc7725be213b8395afffcf7161 100644 --- a/src/plugins/select/cray/Makefile.am +++ b/src/plugins/select/cray/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign -CPPFLAGS = -DCRAY_CONFIG_FILE=\"$(sysconfdir)/cray.conf\" +AM_CPPFLAGS = -DCRAY_CONFIG_FILE=\"$(sysconfdir)/cray.conf\" PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/select/cray/Makefile.in b/src/plugins/select/cray/Makefile.in index 63abac41c59f71f2d834cdc53115215749a63c7e..5f61f42398730d539fab8f2e8bea53b38b230fe3 100644 --- a/src/plugins/select/cray/Makefile.in +++ b/src/plugins/select/cray/Makefile.in @@ -202,7 +202,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = -DCRAY_CONFIG_FILE=\"$(sysconfdir)/cray.conf\" +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -380,6 +380,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CPPFLAGS = -DCRAY_CONFIG_FILE=\"$(sysconfdir)/cray.conf\" PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common -I. pkglib_LTLIBRARIES = select_cray.la diff --git a/src/plugins/switch/federation/Makefile.am b/src/plugins/switch/federation/Makefile.am index d90112c816d3904331b49141316820fc42c5148d..1d166c8e20cc2cc211353c867b0e29b62ad77b81 100644 --- a/src/plugins/switch/federation/Makefile.am +++ b/src/plugins/switch/federation/Makefile.am @@ -1,6 +1,6 @@ # Makefile for switch/federation plugin -CPPFLAGS = -DFEDERATION_CONFIG_FILE=\"$(sysconfdir)/federation.conf\" +AM_CPPFLAGS = -DFEDERATION_CONFIG_FILE=\"$(sysconfdir)/federation.conf\" AUTOMAKE_OPTIONS = foreign if HAVE_FEDERATION diff --git a/src/plugins/switch/federation/Makefile.in b/src/plugins/switch/federation/Makefile.in index 3787f07c0e0e209bb644f6cd3b4fb7fc5839204b..9fb83fbd5a70416e150f8eb4bea321e3610dce1d 100644 --- a/src/plugins/switch/federation/Makefile.in +++ b/src/plugins/switch/federation/Makefile.in @@ -164,7 +164,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = -DFEDERATION_CONFIG_FILE=\"$(sysconfdir)/federation.conf\" +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -341,6 +341,7 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +AM_CPPFLAGS = -DFEDERATION_CONFIG_FILE=\"$(sysconfdir)/federation.conf\" AUTOMAKE_OPTIONS = foreign @HAVE_FEDERATION_FALSE@federation_lib = @HAVE_FEDERATION_TRUE@federation_lib = switch_federation.la diff --git a/src/plugins/task/cgroup/task_cgroup_memory.c b/src/plugins/task/cgroup/task_cgroup_memory.c index a7e0b0de711ef9cf869de112ab8ece60f0ac77fc..ef37a0685d6f04e75379abb94c15c13ad2c6d4c0 100644 --- a/src/plugins/task/cgroup/task_cgroup_memory.c +++ b/src/plugins/task/cgroup/task_cgroup_memory.c @@ -175,19 +175,22 @@ extern int task_cgroup_memory_fini(slurm_cgroup_conf_t *slurm_cgroup_conf) return SLURM_SUCCESS; /* - * Move the slurmstepd back to the root memory cg and force empty + * Move the slurmstepd back to the root memory cg and remove[*] * the step cgroup to move its allocated pages to its parent. - * The release_agent will asynchroneously be called for the step - * cgroup. It will do the necessary cleanup. - * It should be good if this force_empty mech could be done directly - * by the memcg implementation at the end of the last task managed - * by a cgroup. It is too difficult and near impossible to handle - * that cleanup correctly with current memcg. + * + * [*] Calling rmdir(2) on an empty cgroup moves all resident charged + * pages to the parent (i.e. the job cgroup). (If force_empty were + * used instead, only clean pages would be flushed). This keeps + * resident pagecache pages associated with the job. It is expected + * that the job epilog will then optionally force_empty the + * job cgroup (to flush pagecache), and then rmdir(2) the cgroup + * or wait for release notification from kernel. */ if (xcgroup_create(&memory_ns,&memory_cg,"",0,0) == XCGROUP_SUCCESS) { - xcgroup_set_uint32_param(&memory_cg,"tasks",getpid()); + xcgroup_move_process(&memory_cg, getpid()); xcgroup_destroy(&memory_cg); - xcgroup_set_param(&step_memory_cg,"memory.force_empty","1"); + if (xcgroup_delete(&step_memory_cg) != XCGROUP_SUCCESS) + error ("cgroup: rmdir step memcg failed: %m"); } xcgroup_destroy(&user_memory_cg); diff --git a/src/plugins/topology/tree/Makefile.am b/src/plugins/topology/tree/Makefile.am index 93ebf6549030c2d2ef3af5be38ab0f67c07d2a1a..b739c9c474f1b2c59de3b3f84d6785c800eb3e46 100644 --- a/src/plugins/topology/tree/Makefile.am +++ b/src/plugins/topology/tree/Makefile.am @@ -1,6 +1,6 @@ # Makefile for topology/tree plugin -CPPFLAGS = -DTOPOLOGY_CONFIG_FILE=\"$(sysconfdir)/topology.conf\" +AM_CPPFLAGS = -DTOPOLOGY_CONFIG_FILE=\"$(sysconfdir)/topology.conf\" AUTOMAKE_OPTIONS = foreign PLUGIN_FLAGS = -module -avoid-version --export-dynamic diff --git a/src/plugins/topology/tree/Makefile.in b/src/plugins/topology/tree/Makefile.in index 67c344cffd3dec615c39f8d90cb5ea3dad0b5c8b..06e3ee413a02bb4080c8ee89e05fe0661aac6ace 100644 --- a/src/plugins/topology/tree/Makefile.in +++ b/src/plugins/topology/tree/Makefile.in @@ -155,7 +155,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = -DTOPOLOGY_CONFIG_FILE=\"$(sysconfdir)/topology.conf\" +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -332,6 +332,7 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +AM_CPPFLAGS = -DTOPOLOGY_CONFIG_FILE=\"$(sysconfdir)/topology.conf\" AUTOMAKE_OPTIONS = foreign PLUGIN_FLAGS = -module -avoid-version --export-dynamic INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c index d09012043b41ca41d5c83249a96b8f3ef87bb993..3ced2e8bf94449aa8fedb26aeb73c126eaa0872d 100644 --- a/src/slurmctld/node_scheduler.c +++ b/src/slurmctld/node_scheduler.c @@ -1874,6 +1874,10 @@ static int _build_node_list(struct job_record *job_ptr, info("No nodes satisfy job %u requirements", job_ptr->job_id); xfree(node_set_ptr); + if (job_ptr->resv_name) { + job_ptr->state_reason = WAIT_RESERVATION; + return ESLURM_NODES_BUSY; + } return ESLURM_REQUESTED_NODE_CONFIG_UNAVAILABLE; } diff --git a/src/slurmd/slurmd/Makefile.am b/src/slurmd/slurmd/Makefile.am index a47fde0a7ce169674bf4c7ae234ea8b977e49a4b..7d81740c4f266f0e480f13b87307772f33fb5aff 100644 --- a/src/slurmd/slurmd/Makefile.am +++ b/src/slurmd/slurmd/Makefile.am @@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = foreign sbin_PROGRAMS = slurmd -CPPFLAGS = -DLIBSLURM_SO=\"$(libdir)/libslurm.so\" +AM_CPPFLAGS = -DLIBSLURM_SO=\"$(libdir)/libslurm.so\" INCLUDES = -I$(top_srcdir) slurmd_LDADD = \ diff --git a/src/slurmd/slurmd/Makefile.in b/src/slurmd/slurmd/Makefile.in index b263d9bb03800d41245733bb397da01dc08cd423..ca136869b8e11fde8db251ad4f7d1628272f6f3d 100644 --- a/src/slurmd/slurmd/Makefile.in +++ b/src/slurmd/slurmd/Makefile.in @@ -141,7 +141,7 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CMD_LDFLAGS = @CMD_LDFLAGS@ CPP = @CPP@ -CPPFLAGS = -DLIBSLURM_SO=\"$(libdir)/libslurm.so\" +CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -319,6 +319,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign +AM_CPPFLAGS = -DLIBSLURM_SO=\"$(libdir)/libslurm.so\" INCLUDES = -I$(top_srcdir) slurmd_LDADD = \ $(top_builddir)/src/common/libdaemonize.la \