From 0658bdda04bf2b00a1a4a3fcb92bfd805d30fde9 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Wed, 22 Aug 2012 17:09:20 -0400 Subject: [PATCH] Fix: statedump: disable vm maps enumeration We need the tasklist lock to correctly dump these, which is unavailable to modules. Disable this feature for now. Signed-off-by: Mathieu Desnoyers --- lttng-statedump-impl.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c index c510986f..e042a96d 100644 --- a/lttng-statedump-impl.c +++ b/lttng-statedump-impl.c @@ -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); -- 2.34.1