[PATCH 1/1] fix compile with CONFIG_CHECKPOINT_DEBUG=n

Serge E. Hallyn serue at us.ibm.com
Thu Oct 22 07:32:38 PDT 2009


On the one hand, compiling without checkpoing debug saves a
lot of kernel size:

with debug:
-rwxrwxr-x  1 hallyn hallyn  62391508 Oct 21 22:08 vmlinux
without debug:
-rwxrwxr-x  1 hallyn hallyn  62298077 Oct 21 22:33 vmlinux

OTOH the need for this patch just proves my point that we don't
want any more config options than we need (especially no
CONFIG_CHECKPOINT_LOGGING in addition to _DEBUG).

So that begs the question - is there something we can do to
avoid having to recompile the kernel to turn on debugging,
but not take up 100k of space in vmlinux?  Maybe get rid of
the ckpt_debugs altogether and instead provide pre-written
kprobe sets to turn on debugging at specific places?

Signed-off-by: Serge E. Hallyn <serue at us.ibm.com>
---
 checkpoint/restart.c |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/checkpoint/restart.c b/checkpoint/restart.c
index 32a9fc5..105dd0a 100644
--- a/checkpoint/restart.c
+++ b/checkpoint/restart.c
@@ -26,6 +26,15 @@
 #include <linux/checkpoint.h>
 #include <linux/checkpoint_hdr.h>
 
+#define RESTART_DBG_ROOT	(1 << 0)
+#define RESTART_DBG_GHOST	(1 << 1)
+#define RESTART_DBG_COORD	(1 << 2)
+#define RESTART_DBG_TASK	(1 << 3)
+#define RESTART_DBG_WAITING	(1 << 4)
+#define RESTART_DBG_RUNNING	(1 << 5)
+#define RESTART_DBG_EXITED	(1 << 6)
+#define RESTART_DBG_FAILED	(1 << 7)
+#define RESTART_DBG_SUCCESS	(1 << 8)
 
 #ifdef CONFIG_CHECKPOINT_DEBUG
 
@@ -44,15 +53,6 @@
 
 struct ckpt_task_status {
 	pid_t pid;
-#define RESTART_DBG_ROOT	(1 << 0)
-#define RESTART_DBG_GHOST	(1 << 1)
-#define RESTART_DBG_COORD	(1 << 2)
-#define RESTART_DBG_TASK	(1 << 3)
-#define RESTART_DBG_WAITING	(1 << 4)
-#define RESTART_DBG_RUNNING	(1 << 5)
-#define RESTART_DBG_EXITED	(1 << 6)
-#define RESTART_DBG_FAILED	(1 << 7)
-#define RESTART_DBG_SUCCESS	(1 << 8)
 	int flags;
 	int error;
 	struct list_head list;
@@ -178,7 +178,10 @@ void restore_debug_free(struct ckpt_ctx *ctx)
 
 #else
 
-static inline void restore_debug_task(struct ckpt_ctx *ctx, int flags) {}
+static inline int restore_debug_task(struct ckpt_ctx *ctx, int flags)
+{
+	return 0;
+}
 static inline void restore_debug_error(struct ckpt_ctx *ctx, int err) {}
 static inline void restore_debug_running(struct ckpt_ctx *ctx) {}
 static inline void restore_debug_exit(struct ckpt_ctx *ctx) {}
-- 
1.6.1



More information about the Containers mailing list