[CRIU] [PATCH v3 2/4] IPC: show dump content

Kinsbursky Stanislav skinsbursky at openvz.org
Tue Jan 31 07:59:47 EST 2012


From: Stanislav Kinsbursky <skinsbursky at parallels.com>



Signed-off-by: Stanislav Kinsbursky <skinsbursky at parallels.com>

---
 cr-show.c |    4 ++++
 ipc_ns.c  |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/cr-show.c b/cr-show.c
index 33d2468..6855b50 100644
--- a/cr-show.c
+++ b/cr-show.c
@@ -20,6 +20,7 @@
 #include "sockets.h"
 #include "image.h"
 #include "uts_ns.h"
+#include "ipc_ns.h"
 
 #define DEF_PAGES_PER_LINE	6
 
@@ -513,6 +514,9 @@ static int cr_parse_file(struct cr_options *opts)
 	case CREDS_MAGIC:
 		show_creds(fd);
 		break;
+	case IPCNS_MAGIC:
+		show_ipc_ns(fd);
+		break;
 	default:
 		pr_err("Unknown magic %x on %s\n", magic, opts->show_dump_file);
 		goto err;
diff --git a/ipc_ns.c b/ipc_ns.c
index 1ed290a..11e96e6 100644
--- a/ipc_ns.c
+++ b/ipc_ns.c
@@ -274,3 +274,39 @@ int dump_ipc_ns(int ns_pid, struct cr_fdset *fdset)
 	}
 	return 0;
 }
+
+static void show_ipc_entry(struct ipc_ns_entry *entry)
+{
+	pr_info("/proc/sys/kernel/sem             : %d\t%d\t%d\t%d\n",
+				entry->sem_ctls[0], entry->sem_ctls[1],
+				entry->sem_ctls[2], entry->sem_ctls[3]);
+	pr_info("/proc/sys/kernel/msgmax          : %d\n", entry->msg_ctlmax);
+	pr_info("/proc/sys/kernel/msgmnb          : %d\n", entry->msg_ctlmnb);
+	pr_info("/proc/sys/kernel/msgmni          : %d\n", entry->msg_ctlmni);
+	pr_info("/proc/sys/kernel/auto_msgmni     : %d\n", entry->auto_msgmni);
+	pr_info("/proc/sys/kernel/shmmax          : %ld\n", *(u64 *)entry->shm_ctlmax);
+	pr_info("/proc/sys/kernel/shmall          : %ld\n", *(u64 *)entry->shm_ctlall);
+	pr_info("/proc/sys/kernel/shmmni          : %d\n", entry->shm_ctlmni);
+	pr_info("/proc/sys/kernel/shm_rmid_forced : %d\n", entry->shm_rmid_forced);
+	pr_info("/proc/sys/fs/mqueue/queues_max   : %d\n", entry->mq_queues_max);
+	pr_info("/proc/sys/fs/mqueue/msg_max      : %d\n", entry->mq_msg_max);
+	pr_info("/proc/sys/fs/mqueue/msgsize_max  : %d\n", entry->mq_msgsize_max);
+}
+
+static void show_ipc_data(int fd)
+{
+	int ret;
+	struct ipc_ns_data ipc;
+
+	ret = read_img(fd, &ipc);
+	if (ret <= 0)
+		return;
+	show_ipc_entry(&ipc.entry);
+}
+
+void show_ipc_ns(int fd)
+{
+	pr_img_head(CR_FD_IPCNS);
+	show_ipc_data(fd);
+	pr_img_tail(CR_FD_IPCNS);
+}



More information about the CRIU mailing list