Fix: statedump: disable vm maps enumeration
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 22 Aug 2012 21:09:20 +0000 (17:09 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 22 Aug 2012 21:09:20 +0000 (17:09 -0400)
We need the tasklist lock to correctly dump these, which is unavailable
to modules. Disable this feature for now.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
lttng-statedump-impl.c

index c510986f504b0cedd1c857fec8d99c4d01978e22..e042a96deaceed9e941f1db06afbf4ea620892a7 100644 (file)
@@ -186,6 +186,12 @@ int lttng_enumerate_file_descriptors(struct lttng_session *session)
        return 0;
 }
 
+#if 0
+/*
+ * FIXME: we cannot take a mmap_sem while in a RCU read-side critical section
+ * (scheduling in atomic). Normally, the tasklist lock protects this kind of
+ * iteration, but it is not exported to modules.
+ */
 static
 void lttng_enumerate_task_vm_maps(struct lttng_session *session,
                struct task_struct *p)
@@ -226,6 +232,7 @@ int lttng_enumerate_vm_maps(struct lttng_session *session)
        rcu_read_unlock();
        return 0;
 }
+#endif
 
 #ifdef CONFIG_GENERIC_HARDIRQS
 
@@ -341,7 +348,7 @@ int do_lttng_statedump(struct lttng_session *session)
        trace_lttng_statedump_start(session);
        lttng_enumerate_process_states(session);
        lttng_enumerate_file_descriptors(session);
-       lttng_enumerate_vm_maps(session);
+       /* FIXME lttng_enumerate_vm_maps(session); */
        lttng_list_interrupts(session);
        lttng_enumerate_network_ip_interface(session);
 
This page took 0.02583 seconds and 4 git commands to generate.