projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename genhd wrapper to blkdev
[lttng-modules.git]
/
src
/
lttng-statedump-impl.c
diff --git
a/src/lttng-statedump-impl.c
b/src/lttng-statedump-impl.c
index a9a757bcd1415748b778cf8c31b7b85eaed51183..0e7530906c5c79b87a2e9cf02a23bec5e5a8f83b 100644
(file)
--- a/
src/lttng-statedump-impl.c
+++ b/
src/lttng-statedump-impl.c
@@
-23,26
+23,28
@@
#include <linux/file.h>
#include <linux/interrupt.h>
#include <linux/irqnr.h>
#include <linux/file.h>
#include <linux/interrupt.h>
#include <linux/irqnr.h>
-#include <linux/cpu.h>
#include <linux/netdevice.h>
#include <linux/inetdevice.h>
#include <linux/netdevice.h>
#include <linux/inetdevice.h>
-#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/swap.h>
#include <linux/wait.h>
#include <linux/mutex.h>
#include <linux/device.h>
#include <linux/mm.h>
#include <linux/swap.h>
#include <linux/wait.h>
#include <linux/mutex.h>
#include <linux/device.h>
+#include <linux/blkdev.h>
+
#include <lttng/events.h>
#include <lttng/tracer.h>
#include <lttng/events.h>
#include <lttng/tracer.h>
+#include <wrapper/cpu.h>
#include <wrapper/irqdesc.h>
#include <wrapper/fdtable.h>
#include <wrapper/namespace.h>
#include <wrapper/irq.h>
#include <wrapper/tracepoint.h>
#include <wrapper/irqdesc.h>
#include <wrapper/fdtable.h>
#include <wrapper/namespace.h>
#include <wrapper/irq.h>
#include <wrapper/tracepoint.h>
-#include <wrapper/
genhd
.h>
+#include <wrapper/
blkdev
.h>
#include <wrapper/file.h>
#include <wrapper/fdtable.h>
#include <wrapper/file.h>
#include <wrapper/fdtable.h>
+#include <wrapper/sched.h>
#ifdef CONFIG_LTTNG_HAS_LIST_IRQ
#include <linux/irq.h>
#ifdef CONFIG_LTTNG_HAS_LIST_IRQ
#include <linux/irq.h>
@@
-332,7
+334,7
@@
int lttng_enumerate_block_devices(struct lttng_kernel_session *session)
* suppressed
*/
if (get_capacity(disk) == 0 ||
* suppressed
*/
if (get_capacity(disk) == 0 ||
- (disk->flags &
GENHD_FL_SUPPRESS_PARTITION_INFO
))
+ (disk->flags &
LTTNG_GENHD_FL_HIDDEN
))
continue;
ret = lttng_statedump_each_block_device(session, disk);
continue;
ret = lttng_statedump_each_block_device(session, disk);
@@
-617,7
+619,8
@@
void lttng_statedump_process_ns(struct lttng_kernel_session *session,
#endif
trace_lttng_statedump_process_net_ns(session, p, proxy->net_ns);
trace_lttng_statedump_process_uts_ns(session, p, proxy->uts_ns);
#endif
trace_lttng_statedump_process_net_ns(session, p, proxy->net_ns);
trace_lttng_statedump_process_uts_ns(session, p, proxy->uts_ns);
-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0) || \
+ LTTNG_RHEL_KERNEL_RANGE(4,18,0,305,0,0, 4,19,0,0,0,0))
trace_lttng_statedump_process_time_ns(session, p, proxy->time_ns);
#endif
}
trace_lttng_statedump_process_time_ns(session, p, proxy->time_ns);
#endif
}
@@
-660,7
+663,7
@@
int lttng_enumerate_process_states(struct lttng_kernel_session *session)
status = LTTNG_ZOMBIE;
else if (p->exit_state == EXIT_DEAD)
status = LTTNG_DEAD;
status = LTTNG_ZOMBIE;
else if (p->exit_state == EXIT_DEAD)
status = LTTNG_DEAD;
- else if (
p->state == TASK_RUNNING
) {
+ else if (
lttng_task_is_running(p)
) {
/* Is this a forked child that has not run yet? */
if (list_empty(&p->rt.run_list))
status = LTTNG_WAIT_FORK;
/* Is this a forked child that has not run yet? */
if (list_empty(&p->rt.run_list))
status = LTTNG_WAIT_FORK;
@@
-671,7
+674,7
@@
int lttng_enumerate_process_states(struct lttng_kernel_session *session)
* was really running at this time.
*/
status = LTTNG_WAIT_CPU;
* was really running at this time.
*/
status = LTTNG_WAIT_CPU;
- } else if (
p->state
&
+ } else if (
lttng_get_task_state(p)
&
(TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE)) {
/* Task is waiting for something to complete */
status = LTTNG_WAIT;
(TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE)) {
/* Task is waiting for something to complete */
status = LTTNG_WAIT;
@@
-769,7
+772,7
@@
int do_lttng_statedump(struct lttng_kernel_session *session)
* is to guarantee that each CPU has been in a state where is was in
* syscall mode (i.e. not in a trap, an IRQ or a soft IRQ).
*/
* is to guarantee that each CPU has been in a state where is was in
* syscall mode (i.e. not in a trap, an IRQ or a soft IRQ).
*/
-
get_online_cpus
();
+
lttng_cpus_read_lock
();
atomic_set(&kernel_threads_to_run, num_online_cpus());
for_each_online_cpu(cpu) {
INIT_DELAYED_WORK(&cpu_work[cpu], lttng_statedump_work_func);
atomic_set(&kernel_threads_to_run, num_online_cpus());
for_each_online_cpu(cpu) {
INIT_DELAYED_WORK(&cpu_work[cpu], lttng_statedump_work_func);
@@
-777,7
+780,7
@@
int do_lttng_statedump(struct lttng_kernel_session *session)
}
/* Wait for all threads to run */
__wait_event(statedump_wq, (atomic_read(&kernel_threads_to_run) == 0));
}
/* Wait for all threads to run */
__wait_event(statedump_wq, (atomic_read(&kernel_threads_to_run) == 0));
-
put_online_cpus
();
+
lttng_cpus_read_unlock
();
/* Our work is done */
trace_lttng_statedump_end(session);
return 0;
/* Our work is done */
trace_lttng_statedump_end(session);
return 0;
This page took
0.025157 seconds
and
4
git commands to generate.