Hi Gowri,

I've already fixed the same issue you reported. I've tested it successfully.

Subrata has already merged my patch (please, find it in attachment).

Please, check it before to submit another patch.

Thanks
Regards
Francesco Rundo

gowrishankar wrote:

Hi Subrata,
Please accept the patch below.

Thanks,
Gowri
---
cgroups: conditionally enable building cgroup tests

controllers tests gets included into default ltp build if "/proc/cgroup"
exists. It stops the ltp build in realtime kernel environment where kernel is new and supports cgroups, but necessary file "linux/cgroupstats.h" may not exist in the base OS (like RHEL5.3). So configure command enables the build,
but actual build fails, due to missing header file.

Below patch proposes new symbol LTP_CHECK_CGROUPSTATS to check for header file "linux/cgroupstats.h" and include controllers in the list of tests to build.

Tested the patch in non-RT as well as RT environment for the changes.

Signed-off-by: Gowrishankar <[email protected]>
Tested-by: Gowrishankar <[email protected]>
---

------------------------------------------------------------------------

Index: ltp-full-20090630/m4/ltp-cgroupstats.m4
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ ltp-full-20090630/m4/ltp-cgroupstats.m4     2009-07-03 13:41:55.000000000 
+0530
@@ -0,0 +1,9 @@
+dnl
+dnl LTP_CHECK_CGROUPSTATS
+dnl ----------------------------
+dnl
+AC_DEFUN([LTP_CHECK_CGROUPSTATS],
+[dnl
+AC_CHECK_HEADERS(linux/cgroupstats.h,[LTP_CHECK_CGROUPSTATS_HEADER=yes])
+AC_SUBST(LTP_CHECK_CGROUPSTATS_HEADER)
+])
Index: ltp-full-20090630/configure.ac
===================================================================
--- ltp-full-20090630.orig/configure.ac 2009-07-03 13:59:48.000000000 +0530
+++ ltp-full-20090630/configure.ac      2009-07-03 14:00:14.000000000 +0530
@@ -21,5 +21,6 @@
LTP_CHECK_SELINUX
LTP_CHECK_CRYPTO
LTP_CHECK_TASKSTATS
+LTP_CHECK_CGROUPSTATS

AC_OUTPUT
Index: ltp-full-20090630/testcases/kernel/Makefile
===================================================================
--- ltp-full-20090630.orig/testcases/kernel/Makefile    2009-07-03 
14:01:25.000000000 +0530
+++ ltp-full-20090630/testcases/kernel/Makefile 2009-07-03 14:02:42.000000000 
+0530
@@ -1,6 +1,12 @@
-SUBDIRS = power_management numa containers controllers connectors include fs 
io ipc mem pty sched security syscalls timers
+include ../../config.mk
+
+SUBDIRS = power_management numa containers connectors include fs io ipc mem 
pty sched security syscalls timers
UCLINUX_SUBDIRS = include syscalls

+ifeq ($(LTP_CHECK_CGROUPSTATS_HEADER),yes)
+       SUBDIRS+= controllers
+endif
+
all:
        @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i ; done

------------------------------------------------------------------------

------------------------------------------------------------------------------
------------------------------------------------------------------------

_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
This patch allows the cross-build of kernel/controllers (cgroups tests) 
testcase changing the policy to check the cgroups capability at build-time.
Signed-off-by: Francesco Rundo <[email protected]>
--- ltp-full-20090430-cross/testcases/kernel/controllers/Makefile.orig  
2009-05-26 15:37:35.140000000 +0200
+++ ltp-full-20090430-cross/testcases/kernel/controllers/Makefile       
2009-05-28 13:36:36.669998000 +0200
@@ -1,10 +1,26 @@
+ifdef CROSS_COMPILE
+CHECK_CGROUP := $(shell test -f $(TARGET_DIR)/usr/include/linux/cgroupstats.h 
&& echo 'cgroup')
+else
 CHECK_CGROUP := $(shell test -f /proc/cgroups && echo 'cgroup')
 CHECK_CPUCTL := $(shell grep -w cpu /proc/cgroups 2>/dev/null|cut -f1)
 CHECK_MEMCTL := $(shell grep -w memory /proc/cgroups 2>/dev/null|cut -f1)
 CHECK_BLOCKIOCTL := $(shell grep -w blockio /proc/cgroups 2>/dev/null|cut -f1)
 CHECK_FREEZER := $(shell grep -w freezer /proc/cgroups 2>/dev/null| cut -f1)
 CHECK_CPUSETCTL = $(shell grep -w cpuset /proc/cgroups 2>/dev/null|cut -f1)
+endif
 
+ifdef CROSS_COMPILE
+ifeq ($(CHECK_CGROUP),cgroup)
+SUBDIRS += cgroup
+SUBDIRS += cpuctl
+SUBDIRS += memctl
+SUBDIRS += io-throttle
+SUBDIRS += freezer
+SUBDIRS += cpuset
+else
+$(info "Kernel is not compiled with control cgroup support")
+endif
+else
 ifeq ($(CHECK_CGROUP),cgroup)
 SUBDIRS += cgroup
 else
@@ -36,6 +52,7 @@
 else
 $(info "Kernel is not compiled with cpuset resource controller support")
 endif
+endif
 
 # If at least one of the controllers is available then build libcontrollers.
 ifneq ($(SUBDIRS),)
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to