diff --git a/src/common/Makefile.am b/src/common/Makefile.am
index 660c4a0d2d49f981016496767dd0177f1edf82e4..c09758208e5ea8a98d97bf4d8fe77aff1e34d552 100644
--- a/src/common/Makefile.am
+++ b/src/common/Makefile.am
@@ -31,8 +31,6 @@ noinst_LTLIBRARIES = 			\
 	libspank.la
 
 libcommon_la_SOURCES = 			\
-	xcgroup_read_config.c xcgroup_read_config.h		\
-	xcgroup.c xcgroup.h 					\
 	cpu_frequency.c cpu_frequency.h \
 	assoc_mgr.c assoc_mgr.h 	\
 	xmalloc.c xmalloc.h 		\
diff --git a/src/common/Makefile.in b/src/common/Makefile.in
index e3b5f759b5e39efa37cbd9a8a1e8baa9cfb95b4d..2a20ca8a6dbad6a05a1d28947ef2e57c24ac522c 100644
--- a/src/common/Makefile.in
+++ b/src/common/Makefile.in
@@ -145,23 +145,22 @@ CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libcommon_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__libcommon_la_SOURCES_DIST = xcgroup_read_config.c \
-	xcgroup_read_config.h xcgroup.c xcgroup.h cpu_frequency.c \
-	cpu_frequency.h assoc_mgr.c assoc_mgr.h xmalloc.c xmalloc.h \
-	xassert.c xassert.h xstring.c xstring.h xsignal.c xsignal.h \
-	strnatcmp.c strnatcmp.h forward.c forward.h strlcpy.c \
-	strlcpy.h list.c list.h xtree.c xtree.h xhash.c xhash.h net.c \
-	net.h log.c log.h cbuf.c cbuf.h safeopen.c safeopen.h \
-	bitstring.c bitstring.h mpi.c mpi.h pack.c pack.h \
-	parse_config.c parse_config.h parse_spec.c parse_spec.h \
-	plugin.c plugin.h plugrack.c plugrack.h print_fields.c \
-	print_fields.h read_config.c read_config.h node_select.c \
-	node_select.h env.c env.h fd.c fd.h slurm_cred.h slurm_cred.c \
-	slurm_errno.c slurm_ext_sensors.c slurm_ext_sensors.h \
-	slurm_priority.c slurm_priority.h slurm_protocol_api.c \
-	slurm_protocol_api.h slurm_protocol_pack.c \
-	slurm_protocol_pack.h slurm_protocol_util.c \
-	slurm_protocol_util.h slurm_protocol_socket_implementation.c \
+am__libcommon_la_SOURCES_DIST = cpu_frequency.c cpu_frequency.h \
+	assoc_mgr.c assoc_mgr.h xmalloc.c xmalloc.h xassert.c \
+	xassert.h xstring.c xstring.h xsignal.c xsignal.h strnatcmp.c \
+	strnatcmp.h forward.c forward.h strlcpy.c strlcpy.h list.c \
+	list.h xtree.c xtree.h xhash.c xhash.h net.c net.h log.c log.h \
+	cbuf.c cbuf.h safeopen.c safeopen.h bitstring.c bitstring.h \
+	mpi.c mpi.h pack.c pack.h parse_config.c parse_config.h \
+	parse_spec.c parse_spec.h plugin.c plugin.h plugrack.c \
+	plugrack.h print_fields.c print_fields.h read_config.c \
+	read_config.h node_select.c node_select.h env.c env.h fd.c \
+	fd.h slurm_cred.h slurm_cred.c slurm_errno.c \
+	slurm_ext_sensors.c slurm_ext_sensors.h slurm_priority.c \
+	slurm_priority.h slurm_protocol_api.c slurm_protocol_api.h \
+	slurm_protocol_pack.c slurm_protocol_pack.h \
+	slurm_protocol_util.c slurm_protocol_util.h \
+	slurm_protocol_socket_implementation.c \
 	slurm_protocol_socket_common.h slurm_protocol_common.h \
 	slurm_protocol_interface.h slurm_protocol_defs.c \
 	slurm_protocol_defs.h slurm_rlimits_info.h \
@@ -189,14 +188,14 @@ am__libcommon_la_SOURCES_DIST = xcgroup_read_config.c \
 	proc_args.c proc_args.h slurm_strcasestr.c slurm_strcasestr.h \
 	node_conf.h node_conf.c gres.h gres.c
 @HAVE_UNSETENV_FALSE@am__objects_1 = unsetenv.lo
-am_libcommon_la_OBJECTS = xcgroup_read_config.lo xcgroup.lo \
-	cpu_frequency.lo assoc_mgr.lo xmalloc.lo xassert.lo xstring.lo \
-	xsignal.lo strnatcmp.lo forward.lo strlcpy.lo list.lo xtree.lo \
-	xhash.lo net.lo log.lo cbuf.lo safeopen.lo bitstring.lo mpi.lo \
-	pack.lo parse_config.lo parse_spec.lo plugin.lo plugrack.lo \
-	print_fields.lo read_config.lo node_select.lo env.lo fd.lo \
-	slurm_cred.lo slurm_errno.lo slurm_ext_sensors.lo \
-	slurm_priority.lo slurm_protocol_api.lo slurm_protocol_pack.lo \
+am_libcommon_la_OBJECTS = cpu_frequency.lo assoc_mgr.lo xmalloc.lo \
+	xassert.lo xstring.lo xsignal.lo strnatcmp.lo forward.lo \
+	strlcpy.lo list.lo xtree.lo xhash.lo net.lo log.lo cbuf.lo \
+	safeopen.lo bitstring.lo mpi.lo pack.lo parse_config.lo \
+	parse_spec.lo plugin.lo plugrack.lo print_fields.lo \
+	read_config.lo node_select.lo env.lo fd.lo slurm_cred.lo \
+	slurm_errno.lo slurm_ext_sensors.lo slurm_priority.lo \
+	slurm_protocol_api.lo slurm_protocol_pack.lo \
 	slurm_protocol_util.lo slurm_protocol_socket_implementation.lo \
 	slurm_protocol_defs.lo slurm_rlimits_info.lo slurmdb_defs.lo \
 	slurmdb_pack.lo slurmdbd_defs.lo working_cluster.lo uid.lo \
@@ -559,8 +558,6 @@ noinst_LTLIBRARIES = \
 	libspank.la
 
 libcommon_la_SOURCES = \
-	xcgroup_read_config.c xcgroup_read_config.h		\
-	xcgroup.c xcgroup.h 					\
 	cpu_frequency.c cpu_frequency.h \
 	assoc_mgr.c assoc_mgr.h 	\
 	xmalloc.c xmalloc.h 		\
@@ -835,8 +832,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/working_cluster.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write_labelled_message.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xassert.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcgroup.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcgroup_read_config.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xhash.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsignal.Plo@am__quote@
diff --git a/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h b/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h
index a945805e6b4587bbf87aa85f8c916cb0e34c2efc..2245f013267dfc2fd8586202b13bd16244a7f06a 100644
--- a/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h
+++ b/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h
@@ -39,9 +39,9 @@
  *  Copyright (C) 2002 The Regents of the University of California.
 \*****************************************************************************/
 
-#include "src/common/xcgroup.h"
 #include "src/common/slurm_jobacct_gather.h"
-#include "src/common/xcgroup_read_config.h"
+#include "src/slurmd/common/xcgroup.h"
+#include "src/slurmd/common/xcgroup_read_config.h"
 
 extern xcgroup_t task_memory_cg;
 extern xcgroup_t task_cpuacct_cg;
diff --git a/src/plugins/proctrack/cgroup/proctrack_cgroup.c b/src/plugins/proctrack/cgroup/proctrack_cgroup.c
index a5a63b1a2e5f0c3feaa90f0615201bcffd00ec88..9add9ab27db012196facfb680fba9b640db08d91 100644
--- a/src/plugins/proctrack/cgroup/proctrack_cgroup.c
+++ b/src/plugins/proctrack/cgroup/proctrack_cgroup.c
@@ -61,8 +61,9 @@
 
 #include "src/slurmd/slurmstepd/slurmstepd_job.h"
 
-#include "src/common/xcgroup_read_config.h"
-#include "src/common/xcgroup.h"
+#include "src/slurmd/common/xcgroup_read_config.h"
+#include "src/slurmd/common/xcgroup.h"
+
 #include "src/common/xstring.h"
 
 #include <sys/types.h>
diff --git a/src/plugins/task/cgroup/task_cgroup.c b/src/plugins/task/cgroup/task_cgroup.c
index bf52f5a3458f717dce05f14016870f3c8555126d..49d5fd75a541592c8792d634e3ef0bd54f8403a9 100644
--- a/src/plugins/task/cgroup/task_cgroup.c
+++ b/src/plugins/task/cgroup/task_cgroup.c
@@ -44,11 +44,14 @@
 
 #include "slurm/slurm_errno.h"
 #include "src/common/slurm_xlator.h"
+#include "src/common/xstring.h"
+
 #include "src/slurmd/slurmstepd/slurmstepd_job.h"
+
 #include "src/slurmd/slurmd/slurmd.h"
-#include "src/common/xcgroup.h"
-#include "src/common/xstring.h"
-#include "src/common/xcgroup_read_config.h"
+
+#include "src/slurmd/common/xcgroup.h"
+#include "src/slurmd/common/xcgroup_read_config.h"
 
 #include "task_cgroup.h"
 #include "task_cgroup_cpuset.h"
diff --git a/src/plugins/task/cgroup/task_cgroup.h b/src/plugins/task/cgroup/task_cgroup.h
index 850e2ca1973dcf04c4d7a13aa498bcde8902c4b8..29cbad7798bf026f96001881af25c40653341088 100644
--- a/src/plugins/task/cgroup/task_cgroup.h
+++ b/src/plugins/task/cgroup/task_cgroup.h
@@ -41,6 +41,9 @@
 #ifndef _TASK_CGROUP_H_
 #define _TASK_CGROUP_H_
 
+#include "src/slurmd/common/xcgroup_read_config.h"
+#include "src/slurmd/common/xcgroup.h"
+
 extern char* task_cgroup_create_slurm_cg (xcgroup_ns_t* ns);
 
 #endif
diff --git a/src/plugins/task/cgroup/task_cgroup_cpuset.c b/src/plugins/task/cgroup/task_cgroup_cpuset.c
index 82a15d2ffd5dbbf548f97a219c646ff7d73e5fb5..5cbb07abf1bc4af79704d1f663fc4abd61b3f89a 100644
--- a/src/plugins/task/cgroup/task_cgroup_cpuset.c
+++ b/src/plugins/task/cgroup/task_cgroup_cpuset.c
@@ -50,13 +50,12 @@
 #include "slurm/slurm.h"
 #include "src/slurmd/slurmstepd/slurmstepd_job.h"
 #include "src/slurmd/slurmd/slurmd.h"
+
 #include "src/common/cpu_frequency.h"
 #include "src/common/slurm_resource_info.h"
 #include "src/common/bitstring.h"
 #include "src/common/proc_args.h"
 #include "src/common/xstring.h"
-#include "src/common/xcgroup_read_config.h"
-#include "src/common/xcgroup.h"
 
 #include "task_cgroup.h"
 
diff --git a/src/plugins/task/cgroup/task_cgroup_cpuset.h b/src/plugins/task/cgroup/task_cgroup_cpuset.h
index fa40fac1b257524d427a35f57018371eb764342a..371be3c60e63f627e96256fab5c152129a1b1849 100644
--- a/src/plugins/task/cgroup/task_cgroup_cpuset.h
+++ b/src/plugins/task/cgroup/task_cgroup_cpuset.h
@@ -41,7 +41,7 @@
 #ifndef _TASK_CGROUP_CPUSET_H_
 #define _TASK_CGROUP_CPUSET_H_
 
-#include "src/common/xcgroup_read_config.h"
+#include "src/slurmd/common/xcgroup_read_config.h"
 
 /* initialize cpuset subsystem of task/cgroup */
 extern int task_cgroup_cpuset_init(slurm_cgroup_conf_t *slurm_cgroup_conf);
diff --git a/src/plugins/task/cgroup/task_cgroup_devices.c b/src/plugins/task/cgroup/task_cgroup_devices.c
index 732169384f468adc3e24b8ec12202049e549e4b1..9b95216d2d167aaf3f0d230da912b057358faeeb 100644
--- a/src/plugins/task/cgroup/task_cgroup_devices.c
+++ b/src/plugins/task/cgroup/task_cgroup_devices.c
@@ -49,9 +49,6 @@
 #include "src/slurmd/slurmd/slurmd.h"
 
 #include "src/common/xstring.h"
-#include "src/common/xcgroup_read_config.h"
-#include "src/common/xcgroup.h"
-
 #include "src/common/gres.h"
 #include "src/common/list.h"
 
diff --git a/src/plugins/task/cgroup/task_cgroup_devices.h b/src/plugins/task/cgroup/task_cgroup_devices.h
index b27fba3c83c468b18b094c52423f6a54caa44ff4..a8a2aa19499de4f0e7ea83388ddfce1f2fde7181 100644
--- a/src/plugins/task/cgroup/task_cgroup_devices.h
+++ b/src/plugins/task/cgroup/task_cgroup_devices.h
@@ -41,7 +41,7 @@
 #ifndef _TASK_CGROUP_DEVICES_H_
 #define _TASK_CGROUP_DEVICES_H_
 
-#include "src/common/xcgroup_read_config.h"
+#include "src/slurmd/common/xcgroup_read_config.h"
 
 /* initialize devices subsystem of task/cgroup */
 extern int task_cgroup_devices_init(slurm_cgroup_conf_t *slurm_cgroup_conf);
diff --git a/src/plugins/task/cgroup/task_cgroup_memory.c b/src/plugins/task/cgroup/task_cgroup_memory.c
index 9fda39c4e6e5ff744a8965d3c5eeabaf3e1179d5..9c0dd61a806485e2c11fdafdd73b7b93c23b129b 100644
--- a/src/plugins/task/cgroup/task_cgroup_memory.c
+++ b/src/plugins/task/cgroup/task_cgroup_memory.c
@@ -47,8 +47,6 @@
 #include "src/slurmd/slurmd/slurmd.h"
 
 #include "src/common/xstring.h"
-#include "src/common/xcgroup_read_config.h"
-#include "src/common/xcgroup.h"
 
 #include "task_cgroup.h"
 
diff --git a/src/plugins/task/cgroup/task_cgroup_memory.h b/src/plugins/task/cgroup/task_cgroup_memory.h
index 75a04b56cfd1d3edf0e94aeeaf959f1145a8137c..4a876f310e6e92eb155e7526dadb20fe03b05c3d 100644
--- a/src/plugins/task/cgroup/task_cgroup_memory.h
+++ b/src/plugins/task/cgroup/task_cgroup_memory.h
@@ -41,7 +41,7 @@
 #ifndef _TASK_CGROUP_MEMORY_H_
 #define _TASK_CGROUP_MEMORY_H_
 
-#include "src/common/xcgroup_read_config.h"
+#include "src/slurmd/common/xcgroup_read_config.h"
 
 /* initialize memory subsystem of task/cgroup */
 extern int task_cgroup_memory_init(slurm_cgroup_conf_t *slurm_cgroup_conf);
diff --git a/src/slurmd/common/Makefile.am b/src/slurmd/common/Makefile.am
index 11784fd872fd12bf7ce2e12e6290a2741977e82d..e0e7ffd9ba39f7318e514e608ae26707f48569f0 100644
--- a/src/slurmd/common/Makefile.am
+++ b/src/slurmd/common/Makefile.am
@@ -21,7 +21,10 @@ libslurmd_common_la_SOURCES =    \
 	task_plugin.c task_plugin.h \
 	set_oomadj.c set_oomadj.h \
 	reverse_tree.h \
-	xcpuinfo.c xcpuinfo.h
+	xcpuinfo.c xcpuinfo.h \
+	xcgroup_read_config.c xcgroup_read_config.h \
+	xcgroup.c xcgroup.h
+
 
 libslurmd_common_la_LDFLAGS  = $(HWLOC_LDFLAGS) $(HWLOC_LIBS)
 
diff --git a/src/slurmd/common/Makefile.in b/src/slurmd/common/Makefile.in
index 10ba55ad952fd7b175f6361a1bbfecfa9163003b..2218aec58e4d355955169363f8af9ad81d9ba8c1 100644
--- a/src/slurmd/common/Makefile.in
+++ b/src/slurmd/common/Makefile.in
@@ -138,7 +138,8 @@ libslurmd_common_la_LIBADD =
 am_libslurmd_common_la_OBJECTS = core_spec_plugin.lo \
 	job_container_plugin.lo proctrack.lo setproctitle.lo \
 	slurmd_cgroup.lo slurmstepd_init.lo run_script.lo \
-	task_plugin.lo set_oomadj.lo xcpuinfo.lo
+	task_plugin.lo set_oomadj.lo xcpuinfo.lo \
+	xcgroup_read_config.lo xcgroup.lo
 libslurmd_common_la_OBJECTS = $(am_libslurmd_common_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -474,7 +475,9 @@ libslurmd_common_la_SOURCES = \
 	task_plugin.c task_plugin.h \
 	set_oomadj.c set_oomadj.h \
 	reverse_tree.h \
-	xcpuinfo.c xcpuinfo.h
+	xcpuinfo.c xcpuinfo.h \
+	xcgroup_read_config.c xcgroup_read_config.h \
+	xcgroup.c xcgroup.h
 
 libslurmd_common_la_LDFLAGS = $(HWLOC_LDFLAGS) $(HWLOC_LIBS)
 
@@ -562,6 +565,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurmd_cgroup.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurmstepd_init.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task_plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcgroup.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcgroup_read_config.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcpuinfo.Plo@am__quote@
 
 .c.o:
diff --git a/src/slurmd/common/slurmd_cgroup.c b/src/slurmd/common/slurmd_cgroup.c
index 90f692f405a5aa485873394a62c5eb1e6f6106f0..384d068b5a66d95f7cf2297abdadf16535920a7d 100644
--- a/src/slurmd/common/slurmd_cgroup.c
+++ b/src/slurmd/common/slurmd_cgroup.c
@@ -51,8 +51,8 @@
 #include "src/common/bitstring.h"
 #include "src/common/slurm_resource_info.h"
 #include "src/common/xstring.h"
-#include "src/common/xcgroup_read_config.h"
-#include "src/common/xcgroup.h"
+#include "src/slurmd/common/xcgroup_read_config.h"
+#include "src/slurmd/common/xcgroup.h"
 #include "src/slurmd/common/slurmd_cgroup.h"
 #include "src/slurmd/slurmd/slurmd.h"
 #include "src/slurmd/slurmstepd/slurmstepd_job.h"
diff --git a/src/slurmd/common/slurmd_cgroup.h b/src/slurmd/common/slurmd_cgroup.h
index e579229f6ba80f1ef081a955244ebfa0a5b42494..9d83003328c9bb8c0f4ec6e4b467a83848acf165 100644
--- a/src/slurmd/common/slurmd_cgroup.h
+++ b/src/slurmd/common/slurmd_cgroup.h
@@ -42,8 +42,6 @@
 #   include "config.h"
 #endif
 
-#include "src/common/xcgroup_read_config.h"
-
 /* Initialize slurmd system cpuset cgroup */
 extern int init_system_cpuset_cgroup(void);
 
diff --git a/src/common/xcgroup.c b/src/slurmd/common/xcgroup.c
similarity index 100%
rename from src/common/xcgroup.c
rename to src/slurmd/common/xcgroup.c
diff --git a/src/common/xcgroup.h b/src/slurmd/common/xcgroup.h
similarity index 100%
rename from src/common/xcgroup.h
rename to src/slurmd/common/xcgroup.h
diff --git a/src/common/xcgroup_read_config.c b/src/slurmd/common/xcgroup_read_config.c
similarity index 100%
rename from src/common/xcgroup_read_config.c
rename to src/slurmd/common/xcgroup_read_config.c
diff --git a/src/common/xcgroup_read_config.h b/src/slurmd/common/xcgroup_read_config.h
similarity index 100%
rename from src/common/xcgroup_read_config.h
rename to src/slurmd/common/xcgroup_read_config.h