1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
From 66d0869cf54ed79a33345f537dce2f7840e279f0 Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Tue, 29 Sep 2020 10:28:20 -0400
Subject: [PATCH] lttng-modules: backport writeback.h changes from 2.12.x to
fix kernel 5.4.62+
Backporting the kernel version changes for writeback.h to fix
compilation against kernel stable versions 5.4.62+
This is a combination of upstream commits:
87b2aff [fix: writeback: Fix sync livelock due to b_dirty_time processing (v5.9)]
b74b25f [fix: version ranges for ext4_discard_preallocations and writeback_queue_io
Upstream-status: Backport
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
.../events/lttng-module/writeback.h | 48 +++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h
index 3327a0f..8d2250e 100644
--- a/instrumentation/events/lttng-module/writeback.h
+++ b/instrumentation/events/lttng-module/writeback.h
@@ -372,34 +372,55 @@ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balanc
#endif
LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
+ LTTNG_KERNEL_RANGE(5,8,6, 5,9,0) || \
+ LTTNG_KERNEL_RANGE(5,4,62, 5,5,0) || \
+ LTTNG_KERNEL_RANGE(4,19,143, 4,20,0) || \
+ LTTNG_KERNEL_RANGE(4,14,196, 4,15,0) || \
+ LTTNG_KERNEL_RANGE(4,9,235, 4,10,0) || \
+ LTTNG_KERNEL_RANGE(4,4,235, 4,5,0) || \
+ LTTNG_UBUNTU_KERNEL_RANGE(4,15,18,119, 4,16,0,0))
+LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
+ TP_PROTO(struct bdi_writeback *wb,
+ struct wb_writeback_work *work,
+ unsigned long dirtied_before,
+ int moved),
+ TP_ARGS(wb, work, dirtied_before, moved),
+ TP_FIELDS(
+ ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
+ ctf_integer(unsigned long, older, dirtied_before)
+ ctf_integer(int, moved, moved)
+ )
+)
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
TP_PROTO(struct bdi_writeback *wb,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
struct wb_writeback_work *work,
-#else
- unsigned long *older_than_this,
-#endif
int moved),
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
TP_ARGS(wb, work, moved),
-#else
+ TP_FIELDS(
+ ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
+ ctf_integer(int, moved, moved)
+ )
+)
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
+LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
+ TP_PROTO(struct bdi_writeback *wb,
+ unsigned long *older_than_this,
+ int moved),
TP_ARGS(wb, older_than_this, moved),
-#endif
TP_FIELDS(
ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-#else
ctf_integer(unsigned long, older,
older_than_this ? *older_than_this : 0)
ctf_integer(long, age,
older_than_this ?
(jiffies - *older_than_this) * 1000 / HZ
: -1)
-#endif
ctf_integer(int, moved, moved)
)
)
+#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
@@ -425,7 +446,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
)
)
-#else
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
writeback_global_dirty_state,
@@ -450,7 +471,6 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
)
)
#endif
-#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
@@ -661,7 +681,6 @@ LTTNG_TRACEPOINT_EVENT(writeback_sb_inodes_requeue,
)
#endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_congest_waited_template,
TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
@@ -687,7 +706,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_congest_waited_template, writeback_wai
TP_ARGS(usec_timeout, usec_delayed)
)
-#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
LTTNG_TRACEPOINT_EVENT_CLASS(writeback_single_inode_template,
--
2.25.1
|