Codebase list lttng-modules / 8e0b514
New upstream version 2.12.5 Michael Jeanson 3 years ago
105 changed file(s) with 1616 addition(s) and 1054 deletion(s). Raw diff Collapse all Expand all
0 2021-02-17 (Random Act of Kindness Day) LTTng modules 2.12.5
1 * fix: Adjust ranges for Ubuntu 5.8.0-44 kernel
2 * fix: missing include for 'task_struct' in fdtable.h
3 * fix: file: Rename fcheck lookup_fd_rcu (v5.11)
4 * Fix: do not use bdi_unknown_name symbol
5 * fix: memcg: fix a crash in wb_workfn when a device disappears (5.6)
6 * Fix: writeback: out-of-bound reads
7 * fix: Add one digit to RHEL major release version
8 * fix: Add one digit to SLES minor release version
9 * fix: RT_PATCH_VERSION is close to overflow
10 * fix: cast LTTNG_KERNEL_VERSION/LTTNG_LINUX_VERSION_CODE to uint64_t
11 * fix: UTS_UBUNTU_RELEASE_ABI is close to overflow
12 * fix: sublevel version overflow in LINUX_VERSION_CODE
13 * Namespace kernel version macros
14 * aarch64: blacklist gcc prior to 5.1
15 * fix: genirq: Restrict export of irq_to_desc() (v5.11)
16 * fix: block: merge struct block_device and struct hd_struct (v5.11)
17 * fix: kprobes: Remove kretprobe hash (v5.11)
18 * fix: block: remove the request_queue argument to the block_bio_remap tracepoint (v5.11)
19 * fix: block: remove the request_queue argument to the block_split tracepoint (v5.11)
20 * fix: block: simplify and extend the block_bio_merge tracepoint class (v5.11)
21 * fix: block: remove the request_queue to argument request based tracepoints (v5.11)
22
023 2021-01-11 (National Clean Off Your Desk Day) LTTng modules 2.12.4
124 * fix: adjust version range for trace_find_free_extent()
225 * Improve the release script
00 # SPDX-License-Identifier: (GPL-2.0 OR LGPL-2.1)
1
2 ccflags-y += -DLTTNG_LINUX_MAJOR=$(VERSION)
3 ccflags-y += -DLTTNG_LINUX_MINOR=$(PATCHLEVEL)
4 ccflags-y += -DLTTNG_LINUX_PATCH=$(SUBLEVEL)
15
26 # Work-around for distro-specific public modules ABI breakages.
37 # Some distributions break the public module instrumentation ABI
55 #define LTTNG_TRACE_9P_H
66
77 #include <probes/lttng-tracepoint-event.h>
8 #include <linux/version.h>
8 #include <lttng-kernel-version.h>
99
10 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
10 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
1111 LTTNG_TRACEPOINT_EVENT(9p_client_req,
1212
1313 TP_PROTO(struct p9_client *clnt, int8_t type, int tag),
22 #define LTTNG_TRACE_EXCEPTIONS_H
33
44 #include <probes/lttng-tracepoint-event.h>
5 #include <linux/version.h>
5 #include <lttng-kernel-version.h>
66
77 #undef TRACE_SYSTEM
88 #define TRACE_SYSTEM x86_exceptions
22 #define LTTNG_TRACE_IRQ_VECTORS_H
33
44 #include <probes/lttng-tracepoint-event.h>
5 #include <linux/version.h>
5 #include <lttng-kernel-version.h>
66
77 #undef TRACE_SYSTEM
88 #define TRACE_SYSTEM x86_irq_vectors
22 #define LTTNG_TRACE_KVM_MMU_H
33
44 #include <probes/lttng-tracepoint-event.h>
5 #include <linux/version.h>
6
7 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
5 #include <lttng-kernel-version.h>
6
7 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0))
88 #include <linux/trace_events.h>
9 #else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
9 #else /* if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
1010 #include <linux/ftrace_event.h>
11 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
11 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
1212
1313 #undef TRACE_SYSTEM
1414 #define TRACE_SYSTEM kvm_mmu
1515
16 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) || \
16 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0) || \
1717 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
1818
1919 #define LTTNG_KVM_MMU_PAGE_FIELDS \
2222 ctf_integer(__u32, root_count, (sp)->root_count) \
2323 ctf_integer(bool, unsync, (sp)->unsync)
2424
25 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
25 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
2626
2727 #define LTTNG_KVM_MMU_PAGE_FIELDS \
2828 ctf_integer(unsigned long, mmu_valid_gen, (sp)->mmu_valid_gen) \
3131 ctf_integer(__u32, root_count, (sp)->root_count) \
3232 ctf_integer(bool, unsync, (sp)->unsync)
3333
34 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
34 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0)) */
3535
3636 #define LTTNG_KVM_MMU_PAGE_FIELDS \
3737 ctf_integer(__u64, gfn, (sp)->gfn) \
3939 ctf_integer(__u32, root_count, (sp)->root_count) \
4040 ctf_integer(bool, unsync, (sp)->unsync)
4141
42 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
43
44 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
42 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0)) */
43
44 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0))
4545 /*
4646 * A pagetable walk has started
4747 */
5555 ctf_integer(__u32, pferr, pferr)
5656 )
5757 )
58 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
58 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0)) */
5959 /*
6060 * A pagetable walk has started
6161 */
7171 | (!!fetch_fault << 4))
7272 )
7373 )
74 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
74 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0)) */
7575
7676 /* We just walked a paging element */
7777 LTTNG_TRACEPOINT_EVENT(
162162 TP_ARGS(sp)
163163 )
164164
165 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
165 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
166166
167167 LTTNG_TRACEPOINT_EVENT_MAP(
168168 mark_mmio_spte,
180180 )
181181 )
182182
183 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
183 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
184184
185185 LTTNG_TRACEPOINT_EVENT_MAP(
186186 mark_mmio_spte,
198198 )
199199 )
200200
201 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
201 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0)) */
202202
203203 LTTNG_TRACEPOINT_EVENT_MAP(
204204 mark_mmio_spte,
215215 )
216216 )
217217
218 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
218 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0)) */
219219
220220 LTTNG_TRACEPOINT_EVENT_MAP(
221221 handle_mmio_page_fault,
232232 )
233233 )
234234
235 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
235 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
236236 LTTNG_TRACEPOINT_EVENT_MAP(
237237 fast_page_fault,
238238
252252 ctf_integer(int, ret, ret)
253253 )
254254 )
255 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) || \
255 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0) || \
256256 LTTNG_KERNEL_RANGE(4,19,103, 4,20,0) || \
257257 LTTNG_KERNEL_RANGE(5,4,19, 5,5,0) || \
258258 LTTNG_KERNEL_RANGE(5,5,3, 5,6,0) || \
44 #include <probes/lttng-tracepoint-event.h>
55 #include <asm/vmx.h>
66 #include <asm/svm.h>
7 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
7 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
88 #include <asm/clocksource.h>
99 #endif
10 #include <linux/version.h>
10 #include <lttng-kernel-version.h>
1111 #include <../arch/x86/kvm/lapic.h>
1212 #include <../arch/x86/kvm/kvm_cache_regs.h>
1313
114114 /*
115115 * Tracepoint for kvm guest exit:
116116 */
117 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
117 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
118118 LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit,
119119 TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa),
120120 TP_ARGS(exit_reason, vcpu, isa),
144144
145145 TP_code_post()
146146 )
147 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
147 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
148148 LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit,
149149 TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa),
150150 TP_ARGS(exit_reason, vcpu, isa),
479479 TP_ARGS(vcpu, failed),
480480
481481 TP_FIELDS(
482 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
482 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,1,0))
483483 ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt.decode.fetch.start)
484484 ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
485485 ctf_integer(__u8, len, vcpu->arch.emulate_ctxt.decode.eip
486486 - vcpu->arch.emulate_ctxt.decode.fetch.start)
487487 ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.decode.fetch.data, 15)
488488 ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
489 #elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0))
489 #elif (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,17,0))
490490 ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt.fetch.start)
491491 ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
492492 ctf_integer(__u8, len, vcpu->arch.emulate_ctxt._eip
493493 - vcpu->arch.emulate_ctxt.fetch.start)
494494 ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.fetch.data, 15)
495495 ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
496 #elif (LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0))
496 #elif (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(5,7,0))
497497 ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt._eip -
498498 (vcpu->arch.emulate_ctxt.fetch.ptr -
499499 vcpu->arch.emulate_ctxt.fetch.data))
532532 )
533533 )
534534
535 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
535 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
536536 LTTNG_TRACEPOINT_EVENT_MAP(kvm_write_tsc_offset, kvm_x86_write_tsc_offset,
537537 TP_PROTO(unsigned int vcpu_id, __u64 previous_tsc_offset,
538538 __u64 next_tsc_offset),
546546 )
547547 #endif
548548
549 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
549 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
550550 #ifdef CONFIG_X86_64
551551
552552 LTTNG_TRACEPOINT_EVENT_MAP(kvm_update_master_clock, kvm_x86_update_master_clock,
577577 )
578578
579579 #endif /* CONFIG_X86_64 */
580 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) */
580 #endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0) */
581581
582582 #endif /* LTTNG_TRACE_KVM_H */
583583
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/ktime.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 #define DAPM_DIRECT "(direct)"
1212
1313 #ifndef _TRACE_ASOC_DEF
1414 #define _TRACE_ASOC_DEF
1515 struct snd_soc_jack;
16 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0))
16 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,19,0))
1717 struct snd_soc_codec;
1818 #endif
19 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0) && \
20 LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
19 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) && \
20 LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
2121 struct snd_soc_platform;
2222 #endif
2323 struct snd_soc_card;
2424 struct snd_soc_dapm_widget;
25 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
25 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
2626 struct snd_soc_dapm_path;
2727 #endif
2828 #endif
2929
30 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) \
30 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0) \
3131 || LTTNG_RHEL_KERNEL_RANGE(3,10,0,514,0,0, 3,11,0,0,0,0))
3232 #define CODEC_NAME_FIELD component.name
3333 #define CODEC_ID_FIELD component.id
3636 #define CODEC_ID_FIELD id
3737 #endif
3838
39 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
39 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
4040 /*
4141 * Log register events
4242 */
7878 )
7979 #endif
8080
81 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0) && \
82 LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
81 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) && \
82 LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,16,0))
8383 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_preg,
8484
8585 TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
223223
224224 )
225225
226 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
226 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
227227 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_walk_done,
228228
229229 asoc_snd_soc_dapm_walk_done,
241241 )
242242 #endif
243243
244 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
244 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
245245 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_path,
246246
247247 asoc_snd_soc_dapm_path,
261261 ctf_integer(int, path_dir, dir)
262262 )
263263 )
264 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
264 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
265265 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_output_path,
266266
267267 asoc_snd_soc_dapm_output_path,
299299 )
300300 #endif
301301
302 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
302 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
303303 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_dapm_connected,
304304
305305 asoc_snd_soc_dapm_connected,
328328 )
329329 )
330330
331 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
331 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
332332 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_jack_report,
333333
334334 asoc_snd_soc_jack_report,
388388 )
389389 #endif
390390
391 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0))
391 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,19,0))
392392 LTTNG_TRACEPOINT_EVENT_MAP(snd_soc_cache_sync,
393393
394394 asoc_snd_soc_cache_sync,
88 #include <linux/blktrace_api.h>
99 #include <linux/blkdev.h>
1010 #include <linux/trace_seq.h>
11 #include <linux/version.h>
12
13 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
11 #include <lttng-kernel-version.h>
12
13 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
1414 #include <scsi/scsi_request.h>
15 #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
15 #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
1616
1717 #ifndef _TRACE_BLOCK_DEF_
1818 #define _TRACE_BLOCK_DEF_
4949 )
5050 )
5151
52 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) || \
52 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0) || \
5353 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
5454 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
5555 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
7777 | ((rw) & REQ_PREFLUSH ? RWBS_FLAG_PREFLUSH : 0) \
7878 | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0))
7979
80 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
80 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
8181
8282 #define lttng_req_op(rq)
8383 #define lttng_req_rw(rq) ((rq)->cmd_flags)
115115
116116 #endif
117117
118 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
118 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
119119 LTTNG_TRACEPOINT_EVENT_CLASS(block_buffer,
120120
121121 TP_PROTO(struct buffer_head *bh),
156156 )
157157 #endif
158158
159 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
159 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0))
160160 /* block_rq_with_error event class removed in kernel 4.12 */
161 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
161 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
162162 LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq_with_error,
163163
164164 TP_PROTO(struct request_queue *q, struct request *rq),
201201
202202 TP_code_post()
203203 )
204 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
204 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
205205 LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq_with_error,
206206
207207 TP_PROTO(struct request_queue *q, struct request *rq),
244244
245245 TP_code_post()
246246 )
247 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
248
249 #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0))
247 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
248
249 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,12,0))
250250 /**
251251 * block_rq_abort - abort block operation request
252252 * @q: queue containing the block operation request
265265 )
266266 #endif
267267
268 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
269 /**
270 * block_rq_requeue - place block IO request back on a queue
271 * @rq: block IO operation request
272 *
273 * The block operation request @rq is being placed back into queue
274 * @q. For some reason the request was not completed and needs to be
275 * put back in the queue.
276 */
277 LTTNG_TRACEPOINT_EVENT(block_rq_requeue,
278
279 TP_PROTO(struct request *rq),
280
281 TP_ARGS(rq),
282
283 TP_FIELDS(
284 ctf_integer(dev_t, dev,
285 rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
286 ctf_integer(sector_t, sector, blk_rq_trace_sector(rq))
287 ctf_integer(unsigned int, nr_sector, blk_rq_trace_nr_sectors(rq))
288 blk_rwbs_ctf_integer(unsigned int, rwbs,
289 lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq))
290 )
291 )
292 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0))
268293 /**
269294 * block_rq_requeue - place block IO request back on a queue
270295 * @q: queue holding operation
274299 * @q. For some reason the request was not completed and needs to be
275300 * put back in the queue.
276301 */
277 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
278302 LTTNG_TRACEPOINT_EVENT(block_rq_requeue,
279303
280304 TP_PROTO(struct request_queue *q, struct request *rq),
311335 * do for the request. If @rq->bio is non-NULL then there is
312336 * additional work required to complete the request.
313337 */
314 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
338 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0))
315339 LTTNG_TRACEPOINT_EVENT(block_rq_complete,
316340
317341 TP_PROTO(struct request *rq, int error, unsigned int nr_bytes),
328352 lttng_req_op(rq), lttng_req_rw(rq), nr_bytes)
329353 )
330354 )
331 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
355 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
332356 LTTNG_TRACEPOINT_EVENT_CODE(block_rq_complete,
333357
334358 TP_PROTO(struct request_queue *q, struct request *rq,
366390
367391 TP_code_post()
368392 )
369 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,5) \
393 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,5) \
370394 || LTTNG_KERNEL_RANGE(3,12,21, 3,13,0) \
371395 || LTTNG_KERNEL_RANGE(3,10,41, 3,11,0) \
372396 || LTTNG_KERNEL_RANGE(3,4,91, 3,5,0) \
411435 TP_code_post()
412436 )
413437
414 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
438 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
415439
416440 /**
417441 * block_rq_complete - block IO operation completed by device driver
431455 TP_ARGS(q, rq)
432456 )
433457
434 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
435
436 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
458 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
459
460 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
437461 LTTNG_TRACEPOINT_EVENT_CLASS(block_rq,
438462
439 TP_PROTO(struct request_queue *q, struct request *rq),
440
441 TP_ARGS(q, rq),
463 TP_PROTO(struct request *rq),
464
465 TP_ARGS(rq),
442466
443467 TP_FIELDS(
444468 ctf_integer(dev_t, dev,
452476 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
453477 )
454478 )
455 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
479 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0))
480 LTTNG_TRACEPOINT_EVENT_CLASS(block_rq,
481
482 TP_PROTO(struct request_queue *q, struct request *rq),
483
484 TP_ARGS(q, rq),
485
486 TP_FIELDS(
487 ctf_integer(dev_t, dev,
488 rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
489 ctf_integer(sector_t, sector, blk_rq_trace_sector(rq))
490 ctf_integer(unsigned int, nr_sector, blk_rq_trace_nr_sectors(rq))
491 ctf_integer(unsigned int, bytes, blk_rq_bytes(rq))
492 ctf_integer(pid_t, tid, current->pid)
493 blk_rwbs_ctf_integer(unsigned int, rwbs,
494 lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq))
495 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
496 )
497 )
498 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
456499 LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq,
457500
458501 TP_PROTO(struct request_queue *q, struct request *rq),
500543
501544 TP_code_post()
502545 )
503 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
546 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
504547 LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq,
505548
506549 TP_PROTO(struct request_queue *q, struct request *rq),
547590
548591 TP_code_post()
549592 )
550 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
551
593 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
594
595 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
552596 /**
553597 * block_rq_insert - insert block operation request into queue
554 * @q: target queue
555598 * @rq: block IO operation request
556599 *
557600 * Called immediately before block operation request @rq is inserted
561604 */
562605 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_insert,
563606
607 TP_PROTO(struct request *rq),
608
609 TP_ARGS(rq)
610 )
611 #else
612 /**
613 * block_rq_insert - insert block operation request into queue
614 * @q: target queue
615 * @rq: block IO operation request
616 *
617 * Called immediately before block operation request @rq is inserted
618 * into queue @q. The fields in the operation request @rq struct can
619 * be examined to determine which device and sectors the pending
620 * operation would access.
621 */
622 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_insert,
623
564624 TP_PROTO(struct request_queue *q, struct request *rq),
565625
566626 TP_ARGS(q, rq)
567627 )
568
628 #endif
629
630 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
631 /**
632 * block_rq_issue - issue pending block IO request operation to device driver
633 * @rq: block IO operation operation request
634 *
635 * Called when block operation request @rq from queue @q is sent to a
636 * device driver for processing.
637 */
638 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_issue,
639
640 TP_PROTO(struct request *rq),
641
642 TP_ARGS(rq)
643 )
644 #else
569645 /**
570646 * block_rq_issue - issue pending block IO request operation to device driver
571647 * @q: queue holding operation
580656
581657 TP_ARGS(q, rq)
582658 )
583
659 #endif
660
661 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
662 /**
663 * block_rq_merge - merge request with another one in the elevator
664 * @rq: block IO operation operation request
665 *
666 * Called when block operation request @rq from queue @q is merged to another
667 * request queued in the elevator.
668 */
669 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_merge,
670
671 TP_PROTO(struct request *rq),
672
673 TP_ARGS(rq)
674 )
675 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
676 /**
677 * block_rq_merge - merge request with another one in the elevator
678 * @q: queue holding operation
679 * @rq: block IO operation operation request
680 *
681 * Called when block operation request @rq from queue @q is merged to another
682 * request queued in the elevator.
683 */
684 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_merge,
685
686 TP_PROTO(struct request_queue *q, struct request *rq),
687
688 TP_ARGS(q, rq)
689 )
690 #endif
691
692 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0))
693 /**
694 * block_bio_complete - completed all work on the block operation
695 * @q: queue holding the block operation
696 * @bio: block operation completed
697 * @error: io error value
698 *
699 * This tracepoint indicates there is no further work to do on this
700 * block IO operation @bio.
701 */
702 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
703
704 TP_PROTO(struct request_queue *q, struct bio *bio),
705
706 TP_ARGS(q, bio),
707
708 TP_FIELDS(
709 ctf_integer(dev_t, dev, bio_dev(bio))
710 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
711 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
712 ctf_integer(int, error, blk_status_to_errno(bio->bi_status))
713 blk_rwbs_ctf_integer(unsigned int, rwbs,
714 lttng_bio_op(bio), lttng_bio_rw(bio),
715 bio->bi_iter.bi_size)
716 )
717 )
718 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
719 /**
720 * block_bio_complete - completed all work on the block operation
721 * @q: queue holding the block operation
722 * @bio: block operation completed
723 * @error: io error value
724 *
725 * This tracepoint indicates there is no further work to do on this
726 * block IO operation @bio.
727 */
728 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
729
730 TP_PROTO(struct request_queue *q, struct bio *bio, int error),
731
732 TP_ARGS(q, bio, error),
733
734 TP_FIELDS(
735 ctf_integer(dev_t, dev, bio_dev(bio))
736 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
737 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
738 ctf_integer(int, error, error)
739 blk_rwbs_ctf_integer(unsigned int, rwbs,
740 lttng_bio_op(bio), lttng_bio_rw(bio),
741 bio->bi_iter.bi_size)
742 )
743 )
744 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
745 /**
746 * block_bio_complete - completed all work on the block operation
747 * @q: queue holding the block operation
748 * @bio: block operation completed
749 * @error: io error value
750 *
751 * This tracepoint indicates there is no further work to do on this
752 * block IO operation @bio.
753 */
754 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
755
756 TP_PROTO(struct request_queue *q, struct bio *bio, int error),
757
758 TP_ARGS(q, bio, error),
759
760 TP_FIELDS(
761 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
762 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
763 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
764 ctf_integer(int, error, error)
765 blk_rwbs_ctf_integer(unsigned int, rwbs,
766 lttng_bio_op(bio), lttng_bio_rw(bio),
767 bio->bi_iter.bi_size)
768 )
769 )
770 #else
771 /**
772 * block_bio_complete - completed all work on the block operation
773 * @q: queue holding the block operation
774 * @bio: block operation completed
775 * @error: io error value
776 *
777 * This tracepoint indicates there is no further work to do on this
778 * block IO operation @bio.
779 */
780 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
781
782 TP_PROTO(struct request_queue *q, struct bio *bio, int error),
783
784 TP_ARGS(q, bio, error),
785
786 TP_FIELDS(
787 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
788 ctf_integer(sector_t, sector, bio->bi_sector)
789 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
790 ctf_integer(int, error, error)
791 blk_rwbs_ctf_integer(unsigned int, rwbs,
792 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
793 )
794 )
795 #endif
796
797 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
798 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio,
799
800 TP_PROTO(struct bio *bio),
801
802 TP_ARGS(bio),
803
804 TP_FIELDS(
805 ctf_integer(dev_t, dev, bio_dev(bio))
806 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
807 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
808 blk_rwbs_ctf_integer(unsigned int, rwbs,
809 lttng_bio_op(bio), lttng_bio_rw(bio),
810 bio->bi_iter.bi_size)
811 ctf_integer(pid_t, tid, current->pid)
812 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
813 )
814 )
815 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
816 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge,
817
818 TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio),
819
820 TP_ARGS(q, rq, bio),
821
822 TP_FIELDS(
823 ctf_integer(dev_t, dev, bio_dev(bio))
824 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
825 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
826 blk_rwbs_ctf_integer(unsigned int, rwbs,
827 lttng_bio_op(bio), lttng_bio_rw(bio),
828 bio->bi_iter.bi_size)
829 ctf_integer(pid_t, tid, current->pid)
830 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
831 )
832 )
833 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
834 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge,
835
836 TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio),
837
838 TP_ARGS(q, rq, bio),
839
840 TP_FIELDS(
841 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
842 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
843 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
844 blk_rwbs_ctf_integer(unsigned int, rwbs,
845 lttng_bio_op(bio), lttng_bio_rw(bio),
846 bio->bi_iter.bi_size)
847 ctf_integer(pid_t, tid, current->pid)
848 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
849 )
850 )
851 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
852 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge,
853
854 TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio),
855
856 TP_ARGS(q, rq, bio),
857
858 TP_FIELDS(
859 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
860 ctf_integer(sector_t, sector, bio->bi_sector)
861 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
862 blk_rwbs_ctf_integer(unsigned int, rwbs,
863 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
864 ctf_integer(pid_t, tid, current->pid)
865 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
866 )
867 )
868 #endif
869
870
871
872 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
584873 /**
585874 * block_bio_bounce - used bounce buffer when processing block operation
586 * @q: queue holding the block operation
587875 * @bio: block operation
588876 *
589877 * A bounce buffer was used to handle the block operation @bio in @q.
592880 * bounce buffer requires extra copying of data and decreases
593881 * performance.
594882 */
883 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_bounce,
884
885 TP_PROTO(struct bio *bio),
886
887 TP_ARGS(bio)
888 )
889 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
890 /**
891 * block_bio_bounce - used bounce buffer when processing block operation
892 * @q: queue holding the block operation
893 * @bio: block operation
894 *
895 * A bounce buffer was used to handle the block operation @bio in @q.
896 * This occurs when hardware limitations prevent a direct transfer of
897 * data between the @bio data memory area and the IO device. Use of a
898 * bounce buffer requires extra copying of data and decreases
899 * performance.
900 */
595901 LTTNG_TRACEPOINT_EVENT(block_bio_bounce,
596
597 TP_PROTO(struct request_queue *q, struct bio *bio),
598
599 TP_ARGS(q, bio),
600
601 TP_FIELDS(
602 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
603 ctf_integer(dev_t, dev, bio_dev(bio))
604 #else
605 ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
606 #endif
607 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
608 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
609 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
610 blk_rwbs_ctf_integer(unsigned int, rwbs,
611 lttng_bio_op(bio), lttng_bio_rw(bio),
612 bio->bi_iter.bi_size)
613 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
614 ctf_integer(sector_t, sector, bio->bi_sector)
615 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
616 blk_rwbs_ctf_integer(unsigned int, rwbs,
617 lttng_bio_op(bio), lttng_bio_rw(bio),
618 bio->bi_size)
619 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
620 ctf_integer(pid_t, tid, current->pid)
621 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
622 )
623 )
624
625
626 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
627 /**
628 * block_bio_complete - completed all work on the block operation
629 * @q: queue holding the block operation
630 * @bio: block operation completed
631 * @error: io error value
632 *
633 * This tracepoint indicates there is no further work to do on this
634 * block IO operation @bio.
635 */
636 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
637902
638903 TP_PROTO(struct request_queue *q, struct bio *bio),
639904
643908 ctf_integer(dev_t, dev, bio_dev(bio))
644909 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
645910 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
646 ctf_integer(int, error, blk_status_to_errno(bio->bi_status))
647911 blk_rwbs_ctf_integer(unsigned int, rwbs,
648912 lttng_bio_op(bio), lttng_bio_rw(bio),
649913 bio->bi_iter.bi_size)
650 )
651 )
652 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
653 /**
654 * block_bio_complete - completed all work on the block operation
655 * @q: queue holding the block operation
656 * @bio: block operation completed
657 * @error: io error value
658 *
659 * This tracepoint indicates there is no further work to do on this
660 * block IO operation @bio.
661 */
662 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
663
664 TP_PROTO(struct request_queue *q, struct bio *bio, int error),
665
666 TP_ARGS(q, bio, error),
667
668 TP_FIELDS(
669 ctf_integer(dev_t, dev, bio_dev(bio))
914 ctf_integer(pid_t, tid, current->pid)
915 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
916 )
917 )
918 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
919 LTTNG_TRACEPOINT_EVENT(block_bio_bounce,
920
921 TP_PROTO(struct request_queue *q, struct bio *bio),
922
923 TP_ARGS(q, bio),
924
925 TP_FIELDS(
926 ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
670927 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
671928 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
672 ctf_integer(int, error, error)
673929 blk_rwbs_ctf_integer(unsigned int, rwbs,
674930 lttng_bio_op(bio), lttng_bio_rw(bio),
675931 bio->bi_iter.bi_size)
676 )
677 )
678 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
679 /**
680 * block_bio_complete - completed all work on the block operation
681 * @q: queue holding the block operation
682 * @bio: block operation completed
683 * @error: io error value
684 *
685 * This tracepoint indicates there is no further work to do on this
686 * block IO operation @bio.
687 */
688 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
689
690 TP_PROTO(struct request_queue *q, struct bio *bio, int error),
691
692 TP_ARGS(q, bio, error),
693
694 TP_FIELDS(
695 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
696 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
697 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
698 ctf_integer(int, error, error)
699 blk_rwbs_ctf_integer(unsigned int, rwbs,
700 lttng_bio_op(bio), lttng_bio_rw(bio),
701 bio->bi_iter.bi_size)
932 ctf_integer(pid_t, tid, current->pid)
933 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
702934 )
703935 )
704936 #else
705 /**
706 * block_bio_complete - completed all work on the block operation
707 * @q: queue holding the block operation
708 * @bio: block operation completed
709 * @error: io error value
710 *
711 * This tracepoint indicates there is no further work to do on this
712 * block IO operation @bio.
713 */
714 LTTNG_TRACEPOINT_EVENT(block_bio_complete,
715
716 TP_PROTO(struct request_queue *q, struct bio *bio, int error),
717
718 TP_ARGS(q, bio, error),
719
720 TP_FIELDS(
721 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
937 LTTNG_TRACEPOINT_EVENT(block_bio_bounce,
938
939 TP_PROTO(struct request_queue *q, struct bio *bio),
940
941 TP_ARGS(q, bio),
942
943 TP_FIELDS(
944 ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
722945 ctf_integer(sector_t, sector, bio->bi_sector)
723946 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
724 ctf_integer(int, error, error)
725 blk_rwbs_ctf_integer(unsigned int, rwbs,
726 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
947 blk_rwbs_ctf_integer(unsigned int, rwbs,
948 lttng_bio_op(bio), lttng_bio_rw(bio),
949 bio->bi_size)
950 ctf_integer(pid_t, tid, current->pid)
951 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
727952 )
728953 )
729954 #endif
730955
731 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
732 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge,
956
957 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
958 /**
959 * block_bio_backmerge - merging block operation to the end of an existing operation
960 * @bio: new block operation to merge
961 *
962 * Merging block request @bio to the end of an existing block request.
963 */
964 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_backmerge,
965
966 TP_PROTO(struct bio *bio),
967
968 TP_ARGS(bio)
969 )
970
971 /**
972 * block_bio_frontmerge - merging block operation to the beginning of an existing operation
973 * @bio: new block operation to merge
974 *
975 * Merging block IO operation @bio to the beginning of an existing block request.
976 */
977 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_frontmerge,
978
979 TP_PROTO(struct bio *bio),
980
981 TP_ARGS(bio)
982 )
983
984 /**
985 * block_bio_queue - putting new block IO operation in queue
986 * @bio: new block operation
987 *
988 * About to place the block IO operation @bio into queue @q.
989 */
990 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_queue,
991
992 TP_PROTO(struct bio *bio),
993
994 TP_ARGS(bio)
995 )
996 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
997 /**
998 * block_bio_backmerge - merging block operation to the end of an existing operation
999 * @q: queue holding operation
1000 * @rq: request bio is being merged into
1001 * @bio: new block operation to merge
1002 *
1003 * Merging block request @bio to the end of an existing block request
1004 * in queue @q.
1005 */
1006 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio_merge, block_bio_backmerge,
7331007
7341008 TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio),
7351009
736 TP_ARGS(q, rq, bio),
737
738 TP_FIELDS(
739 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
1010 TP_ARGS(q, rq, bio)
1011 )
1012
1013 /**
1014 * block_bio_frontmerge - merging block operation to the beginning of an existing operation
1015 * @q: queue holding operation
1016 * @rq: request bio is being merged into
1017 * @bio: new block operation to merge
1018 *
1019 * Merging block IO operation @bio to the beginning of an existing block
1020 * operation in queue @q.
1021 */
1022 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio_merge, block_bio_frontmerge,
1023
1024 TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio),
1025
1026 TP_ARGS(q, rq, bio)
1027 )
1028
1029 /**
1030 * block_bio_queue - putting new block IO operation in queue
1031 * @q: queue holding operation
1032 * @bio: new block operation
1033 *
1034 * About to place the block IO operation @bio into queue @q.
1035 */
1036 LTTNG_TRACEPOINT_EVENT(block_bio_queue,
1037
1038 TP_PROTO(struct request_queue *q, struct bio *bio),
1039
1040 TP_ARGS(q, bio),
1041
1042 TP_FIELDS(
1043 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
7401044 ctf_integer(dev_t, dev, bio_dev(bio))
7411045 #else
7421046 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
7431047 #endif
744 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
1048 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
7451049 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
7461050 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
7471051 blk_rwbs_ctf_integer(unsigned int, rwbs,
7481052 lttng_bio_op(bio), lttng_bio_rw(bio),
7491053 bio->bi_iter.bi_size)
750 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
1054 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */
7511055 ctf_integer(sector_t, sector, bio->bi_sector)
7521056 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
7531057 blk_rwbs_ctf_integer(unsigned int, rwbs,
7541058 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
755 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
1059 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */
1060 ctf_integer(pid_t, tid, current->pid)
1061 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
1062 )
1063 )
1064 #else /* if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) */
1065 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio,
1066
1067 TP_PROTO(struct request_queue *q, struct bio *bio),
1068
1069 TP_ARGS(q, bio),
1070
1071 TP_FIELDS(
1072 ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
1073 ctf_integer(sector_t, sector, bio->bi_sector)
1074 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
1075 blk_rwbs_ctf_integer(unsigned int, rwbs,
1076 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
7561077 ctf_integer(pid_t, tid, current->pid)
7571078 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
7581079 )
7661087 * Merging block request @bio to the end of an existing block request
7671088 * in queue @q.
7681089 */
769 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio_merge, block_bio_backmerge,
770
771 TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio),
772
773 TP_ARGS(q, rq, bio)
1090 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_backmerge,
1091
1092 TP_PROTO(struct request_queue *q, struct bio *bio),
1093
1094 TP_ARGS(q, bio)
7741095 )
7751096
7761097 /**
7811102 * Merging block IO operation @bio to the beginning of an existing block
7821103 * operation in queue @q.
7831104 */
784 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio_merge, block_bio_frontmerge,
785
786 TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio),
787
788 TP_ARGS(q, rq, bio)
1105 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_frontmerge,
1106
1107 TP_PROTO(struct request_queue *q, struct bio *bio),
1108
1109 TP_ARGS(q, bio)
7891110 )
7901111
7911112 /**
7951116 *
7961117 * About to place the block IO operation @bio into queue @q.
7971118 */
798 LTTNG_TRACEPOINT_EVENT(block_bio_queue,
1119 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_queue,
7991120
8001121 TP_PROTO(struct request_queue *q, struct bio *bio),
8011122
802 TP_ARGS(q, bio),
803
804 TP_FIELDS(
805 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
806 ctf_integer(dev_t, dev, bio_dev(bio))
1123 TP_ARGS(q, bio)
1124 )
1125 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) */
1126
1127 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
1128 /**
1129 * block_getrq - get a free request entry in queue for block IO operations
1130 * @bio: pending block IO operation (can be %NULL)
1131 *
1132 * A request struct has been allocated to handle the block IO operation @bio.
1133 */
1134 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_getrq,
1135
1136 TP_PROTO(struct bio *bio),
1137
1138 TP_ARGS(bio)
1139 )
8071140 #else
808 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
809 #endif
810 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
811 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
812 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
813 blk_rwbs_ctf_integer(unsigned int, rwbs,
814 lttng_bio_op(bio), lttng_bio_rw(bio),
815 bio->bi_iter.bi_size)
816 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
817 ctf_integer(sector_t, sector, bio->bi_sector)
818 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
819 blk_rwbs_ctf_integer(unsigned int, rwbs,
820 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
821 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
822 ctf_integer(pid_t, tid, current->pid)
823 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
824 )
825 )
826 #else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) */
827 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio,
828
829 TP_PROTO(struct request_queue *q, struct bio *bio),
830
831 TP_ARGS(q, bio),
832
833 TP_FIELDS(
834 ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
835 ctf_integer(sector_t, sector, bio->bi_sector)
836 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
837 blk_rwbs_ctf_integer(unsigned int, rwbs,
838 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
839 ctf_integer(pid_t, tid, current->pid)
840 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
841 )
842 )
843
844 /**
845 * block_bio_backmerge - merging block operation to the end of an existing operation
846 * @q: queue holding operation
847 * @bio: new block operation to merge
848 *
849 * Merging block request @bio to the end of an existing block request
850 * in queue @q.
851 */
852 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_backmerge,
853
854 TP_PROTO(struct request_queue *q, struct bio *bio),
855
856 TP_ARGS(q, bio)
857 )
858
859 /**
860 * block_bio_frontmerge - merging block operation to the beginning of an existing operation
861 * @q: queue holding operation
862 * @bio: new block operation to merge
863 *
864 * Merging block IO operation @bio to the beginning of an existing block
865 * operation in queue @q.
866 */
867 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_frontmerge,
868
869 TP_PROTO(struct request_queue *q, struct bio *bio),
870
871 TP_ARGS(q, bio)
872 )
873
874 /**
875 * block_bio_queue - putting new block IO operation in queue
876 * @q: queue holding operation
877 * @bio: new block operation
878 *
879 * About to place the block IO operation @bio into queue @q.
880 */
881 LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_queue,
882
883 TP_PROTO(struct request_queue *q, struct bio *bio),
884
885 TP_ARGS(q, bio)
886 )
887 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) */
888
8891141 LTTNG_TRACEPOINT_EVENT_CLASS(block_get_rq,
8901142
8911143 TP_PROTO(struct request_queue *q, struct bio *bio, int rw),
8931145 TP_ARGS(q, bio, rw),
8941146
8951147 TP_FIELDS(
896 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
1148 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
8971149 ctf_integer(dev_t, dev, bio ? bio_dev(bio) : 0)
8981150 #else
8991151 ctf_integer(dev_t, dev, bio ? bio->bi_bdev->bd_dev : 0)
9001152 #endif
901 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
1153 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
9021154 ctf_integer(sector_t, sector, bio ? bio->bi_iter.bi_sector : 0)
9031155 ctf_integer(unsigned int, nr_sector,
9041156 bio ? bio_sectors(bio) : 0)
9061158 bio ? lttng_bio_op(bio) : 0,
9071159 bio ? lttng_bio_rw(bio) : 0,
9081160 bio ? bio->bi_iter.bi_size : 0)
909 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
1161 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */
9101162 ctf_integer(sector_t, sector, bio ? bio->bi_sector : 0)
9111163 ctf_integer(unsigned int, nr_sector,
9121164 bio ? bio->bi_size >> 9 : 0)
9141166 bio ? lttng_bio_op(bio) : 0,
9151167 bio ? lttng_bio_rw(bio) : 0,
9161168 bio ? bio->bi_size : 0)
917 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
1169 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */
9181170 ctf_integer(pid_t, tid, current->pid)
9191171 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
9201172 )
9531205
9541206 TP_ARGS(q, bio, rw)
9551207 )
1208 #endif
9561209
9571210 /**
9581211 * block_plug - keep operations requests in request queue
10031256 TP_ARGS(q, depth, explicit)
10041257 )
10051258
1259 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
1260 /**
1261 * block_split - split a single bio struct into two bio structs
1262 * @bio: block operation being split
1263 * @new_sector: The starting sector for the new bio
1264 *
1265 * The bio request @bio needs to be split into two bio requests. The newly
1266 * created @bio request starts at @new_sector. This split may be required due to
1267 * hardware limitations such as operation crossing device boundaries in a RAID
1268 * system.
1269 */
1270 LTTNG_TRACEPOINT_EVENT(block_split,
1271
1272 TP_PROTO(struct bio *bio, unsigned int new_sector),
1273
1274 TP_ARGS(bio, new_sector),
1275
1276 TP_FIELDS(
1277 ctf_integer(dev_t, dev, bio_dev(bio))
1278 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
1279 blk_rwbs_ctf_integer(unsigned int, rwbs,
1280 lttng_bio_op(bio), lttng_bio_rw(bio),
1281 bio->bi_iter.bi_size)
1282 ctf_integer(sector_t, new_sector, new_sector)
1283 ctf_integer(pid_t, tid, current->pid)
1284 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
1285 )
1286 )
1287
1288 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
10061289 /**
10071290 * block_split - split a single bio struct into two bio structs
10081291 * @q: queue containing the bio
10221305 TP_ARGS(q, bio, new_sector),
10231306
10241307 TP_FIELDS(
1025 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
10261308 ctf_integer(dev_t, dev, bio_dev(bio))
1027 #else
1028 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
1029 #endif
1030 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
10311309 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
10321310 blk_rwbs_ctf_integer(unsigned int, rwbs,
10331311 lttng_bio_op(bio), lttng_bio_rw(bio),
10341312 bio->bi_iter.bi_size)
1035 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
1313 ctf_integer(sector_t, new_sector, new_sector)
1314 ctf_integer(pid_t, tid, current->pid)
1315 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
1316 )
1317 )
1318 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
1319 LTTNG_TRACEPOINT_EVENT(block_split,
1320
1321 TP_PROTO(struct request_queue *q, struct bio *bio,
1322 unsigned int new_sector),
1323
1324 TP_ARGS(q, bio, new_sector),
1325
1326 TP_FIELDS(
1327 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
1328 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
1329 blk_rwbs_ctf_integer(unsigned int, rwbs,
1330 lttng_bio_op(bio), lttng_bio_rw(bio),
1331 bio->bi_iter.bi_size)
1332 ctf_integer(sector_t, new_sector, new_sector)
1333 ctf_integer(pid_t, tid, current->pid)
1334 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
1335 )
1336 )
1337 #else
1338 LTTNG_TRACEPOINT_EVENT(block_split,
1339
1340 TP_PROTO(struct request_queue *q, struct bio *bio,
1341 unsigned int new_sector),
1342
1343 TP_ARGS(q, bio, new_sector),
1344
1345 TP_FIELDS(
1346 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
10361347 ctf_integer(sector_t, sector, bio->bi_sector)
10371348 blk_rwbs_ctf_integer(unsigned int, rwbs,
10381349 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
1039 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
10401350 ctf_integer(sector_t, new_sector, new_sector)
10411351 ctf_integer(pid_t, tid, current->pid)
10421352 ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
10431353 )
10441354 )
1045
1355 #endif
1356
1357 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
1358 /**
1359 * block_bio_remap - map request for a logical device to the raw device
1360 * @bio: revised operation
1361 * @dev: original device for the operation
1362 * @from: original sector for the operation
1363 *
1364 * An operation for a logical device has been mapped to the
1365 * raw block device.
1366 */
1367 LTTNG_TRACEPOINT_EVENT(block_bio_remap,
1368
1369 TP_PROTO(struct bio *bio, dev_t dev, sector_t from),
1370
1371 TP_ARGS(bio, dev, from),
1372
1373 TP_FIELDS(
1374 ctf_integer(dev_t, dev, bio_dev(bio))
1375 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
1376 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
1377 blk_rwbs_ctf_integer(unsigned int, rwbs,
1378 lttng_bio_op(bio), lttng_bio_rw(bio),
1379 bio->bi_iter.bi_size)
1380 ctf_integer(dev_t, old_dev, dev)
1381 ctf_integer(sector_t, old_sector, from)
1382 )
1383 )
1384 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
10461385 /**
10471386 * block_bio_remap - map request for a logical device to the raw device
10481387 * @q: queue holding the operation
10611400 TP_ARGS(q, bio, dev, from),
10621401
10631402 TP_FIELDS(
1064 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
10651403 ctf_integer(dev_t, dev, bio_dev(bio))
1066 #else
1067 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
1068 #endif
1069 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
10701404 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
10711405 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
10721406 blk_rwbs_ctf_integer(unsigned int, rwbs,
10731407 lttng_bio_op(bio), lttng_bio_rw(bio),
10741408 bio->bi_iter.bi_size)
1075 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
1409 ctf_integer(dev_t, old_dev, dev)
1410 ctf_integer(sector_t, old_sector, from)
1411 )
1412 )
1413 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
1414 LTTNG_TRACEPOINT_EVENT(block_bio_remap,
1415
1416 TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev,
1417 sector_t from),
1418
1419 TP_ARGS(q, bio, dev, from),
1420
1421 TP_FIELDS(
1422 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
1423 ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
1424 ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
1425 blk_rwbs_ctf_integer(unsigned int, rwbs,
1426 lttng_bio_op(bio), lttng_bio_rw(bio),
1427 bio->bi_iter.bi_size)
1428 ctf_integer(dev_t, old_dev, dev)
1429 ctf_integer(sector_t, old_sector, from)
1430 )
1431 )
1432 #else
1433 LTTNG_TRACEPOINT_EVENT(block_bio_remap,
1434
1435 TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev,
1436 sector_t from),
1437
1438 TP_ARGS(q, bio, dev, from),
1439
1440 TP_FIELDS(
1441 ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
10761442 ctf_integer(sector_t, sector, bio->bi_sector)
10771443 ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
10781444 blk_rwbs_ctf_integer(unsigned int, rwbs,
10791445 lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size)
1080 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
10811446 ctf_integer(dev_t, old_dev, dev)
10821447 ctf_integer(sector_t, old_sector, from)
10831448 )
10841449 )
1085
1450 #endif
1451
1452 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
1453 /**
1454 * block_rq_remap - map request for a block operation request
1455 * @rq: block IO operation request
1456 * @dev: device for the operation
1457 * @from: original sector for the operation
1458 *
1459 * The block operation request @rq in @q has been remapped. The block
1460 * operation request @rq holds the current information and @from hold
1461 * the original sector.
1462 */
1463 LTTNG_TRACEPOINT_EVENT(block_rq_remap,
1464
1465 TP_PROTO(struct request *rq, dev_t dev, sector_t from),
1466
1467 TP_ARGS(rq, dev, from),
1468
1469 TP_FIELDS(
1470 ctf_integer(dev_t, dev, disk_devt(rq->rq_disk))
1471 ctf_integer(sector_t, sector, blk_rq_pos(rq))
1472 ctf_integer(unsigned int, nr_sector, blk_rq_sectors(rq))
1473 ctf_integer(dev_t, old_dev, dev)
1474 ctf_integer(sector_t, old_sector, from)
1475 blk_rwbs_ctf_integer(unsigned int, rwbs,
1476 lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq))
1477 )
1478 )
1479 #else
10861480 /**
10871481 * block_rq_remap - map request for a block operation request
10881482 * @q: queue holding the operation
11111505 lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq))
11121506 )
11131507 )
1508 #endif
11141509
11151510 #undef __print_rwbs_flags
11161511 #undef blk_fill_rwbs
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/writeback.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 #ifndef _TRACE_BTRFS_DEF_
1212 #define _TRACE_BTRFS_DEF_
1919 struct btrfs_delayed_tree_ref;
2020 struct btrfs_delayed_data_ref;
2121 struct btrfs_delayed_ref_head;
22 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
22 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
2323 struct btrfs_block_group;
24 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
24 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
2525 struct btrfs_block_group_cache;
2626 #endif
27 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
27 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
2828 struct btrfs_free_cluster;
2929 #endif
3030 struct map_lookup;
3131 struct extent_buffer;
32 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
32 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
3333 struct extent_state;
3434 #endif
3535 #endif
3636
3737 #define BTRFS_UUID_SIZE 16
3838
39 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
39 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
4040 #define lttng_fs_info_fsid fs_info->fs_devices->fsid
4141 #else
4242 #define lttng_fs_info_fsid fs_info->fsid
4343 #endif
4444
45 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
45 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
4646 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
4747 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
4848 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
150150 )
151151 #endif
152152
153 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
153 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
154154
155155 LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
156156
173173 )
174174 )
175175
176 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
176 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0))
177177
178178 LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
179179
196196 )
197197 )
198198
199 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
199 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
200200
201201 LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
202202
219219 )
220220 )
221221
222 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
222 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
223223
224224 LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
225225
266266 )
267267 )
268268
269 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
269 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
270270
271271 LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
272272
287287 )
288288 )
289289
290 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
291
292 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
290 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
291
292 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
293293 LTTNG_TRACEPOINT_EVENT(btrfs_handle_em_exist,
294294
295295 TP_PROTO(const struct btrfs_fs_info *fs_info,
308308 ctf_integer(u64, len, len)
309309 )
310310 )
311 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0))
311 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,18,0))
312312 LTTNG_TRACEPOINT_EVENT(btrfs_handle_em_exist,
313313
314314 TP_PROTO(struct btrfs_fs_info *fs_info,
327327 ctf_integer(u64, len, len)
328328 )
329329 )
330 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
330 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
331331 LTTNG_TRACEPOINT_EVENT(btrfs_handle_em_exist,
332332
333333 TP_PROTO(const struct extent_map *existing, const struct extent_map *map, u64 start, u64 len),
345345 )
346346 #endif
347347
348 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
348 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
349349 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent,
350350
351351 TP_PROTO(const struct btrfs_inode *inode,
367367 ctf_integer(u64, root_objectid, inode->root->root_key.objectid)
368368 )
369369 )
370 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
370 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
371371 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent,
372372
373373 TP_PROTO(const struct inode *inode,
389389 BTRFS_I(inode)->root->root_key.objectid)
390390 )
391391 )
392 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
392 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
393393 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent,
394394
395395 TP_PROTO(const struct inode *inode,
411411 BTRFS_I(inode)->root->root_key.objectid)
412412 )
413413 )
414 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
414 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0))
415415 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent,
416416
417417 TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
479479 )
480480 #endif
481481
482 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
482 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
483483 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_add,
484484
485485 TP_PROTO(const struct btrfs_inode *inode,
511511
512512 TP_ARGS(inode, ordered)
513513 )
514 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
514 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
515515 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
516516 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
517517 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
577577 )
578578 #endif
579579
580 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
580 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
581581 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
582582 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
583583 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
664664 ctf_integer(long, pages_skipped, wbc->pages_skipped)
665665 ctf_integer(loff_t, range_start, wbc->range_start)
666666 ctf_integer(loff_t, range_end, wbc->range_end)
667 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
667 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,1,0))
668668 ctf_integer(char, nonblocking, wbc->nonblocking)
669669 #endif
670670 ctf_integer(char, for_kupdate, wbc->for_kupdate)
722722 )
723723 #endif
724724
725 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
725 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
726726 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
727727 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
728728 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
740740 ctf_integer(int, wait, wait)
741741 )
742742 )
743 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
743 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
744744 LTTNG_TRACEPOINT_EVENT(btrfs_sync_fs,
745745
746746 TP_PROTO(struct btrfs_fs_info *fs_info, int wait),
764764 )
765765 #endif
766766
767 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
767 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
768768 LTTNG_TRACEPOINT_EVENT(btrfs_add_block_group,
769769
770770 TP_PROTO(const struct btrfs_fs_info *fs_info,
782782 ctf_integer(int, create, create)
783783 )
784784 )
785 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
785 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
786786 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
787787 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
788788 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
824824 )
825825 #endif
826826
827 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
827 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
828828 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
829829 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
830830 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
881881
882882 TP_ARGS(fs_info, ref, full_ref, action)
883883 )
884 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
884 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
885885 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref,
886886
887887 TP_PROTO(struct btrfs_fs_info *fs_info,
977977
978978 TP_ARGS(ref, full_ref, action)
979979 )
980 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
980 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
981981 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref,
982982
983983 TP_PROTO(struct btrfs_delayed_ref_node *ref,
10231023
10241024 TP_ARGS(ref, full_ref, action)
10251025 )
1026 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
1026 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,7,0))
10271027 LTTNG_TRACEPOINT_EVENT(btrfs_delayed_tree_ref,
10281028
10291029 TP_PROTO(struct btrfs_delayed_ref_node *ref,
10641064 )
10651065 #endif
10661066
1067 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
1067 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
10681068 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
10691069 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
10701070 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
11221122
11231123 TP_ARGS(fs_info, ref, full_ref, action)
11241124 )
1125 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
1125 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
11261126 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref,
11271127
11281128 TP_PROTO(struct btrfs_fs_info *fs_info,
12201220
12211221 TP_ARGS(fs_info, ref, full_ref, action)
12221222 )
1223 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
1223 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
12241224 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref,
12251225
12261226 TP_PROTO(struct btrfs_delayed_ref_node *ref,
12671267
12681268 TP_ARGS(fs_info, ref, full_ref, action)
12691269 )
1270 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
1270 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,7,0))
12711271 LTTNG_TRACEPOINT_EVENT(btrfs_delayed_data_ref,
12721272
12731273 TP_PROTO(struct btrfs_delayed_ref_node *ref,
13101310 )
13111311 #endif
13121312
1313 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
1313 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
13141314 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_ref_head,
13151315
13161316 TP_PROTO(const struct btrfs_fs_info *fs_info,
13531353 TP_ARGS(fs_info, head_ref, action)
13541354 )
13551355
1356 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
1356 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
13571357 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
13581358 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
13591359 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
14071407 TP_ARGS(fs_info, ref, head_ref, action)
14081408 )
14091409
1410 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
1410 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
14111411 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_ref_head,
14121412
14131413 TP_PROTO(struct btrfs_fs_info *fs_info,
14961496 TP_ARGS(ref, head_ref, action)
14971497 )
14981498
1499 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
1499 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
15001500 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_ref_head,
15011501
15021502 TP_PROTO(struct btrfs_delayed_ref_node *ref,
15571557 )
15581558 #endif
15591559
1560 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
1560 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
15611561
15621562 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
15631563
15921592 TP_ARGS(fs_info, map, offset, size)
15931593 )
15941594
1595 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
1595 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
15961596
15971597 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
15981598
16651665 TP_ARGS(root, map, offset, size)
16661666 )
16671667
1668 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
1668 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
16691669
16701670 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
16711671
17001700 TP_ARGS(root, map, offset, size)
17011701 )
17021702
1703 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
1704
1705 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
1703 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
1704
1705 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
17061706 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
17071707 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
17081708 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
17421742 )
17431743 #endif
17441744
1745 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
1745 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
17461746 LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
17471747
17481748 TP_PROTO(const struct btrfs_fs_info *fs_info, const char *type, u64 val,
17581758 ctf_integer(int, reserve, reserve)
17591759 )
17601760 )
1761 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
1761 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
17621762 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
17631763 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
17641764 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
17781778 ctf_integer(int, reserve, reserve)
17791779 )
17801780 )
1781 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
1781 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
17821782 LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
17831783
17841784 TP_PROTO(struct btrfs_fs_info *fs_info, char *type, u64 val,
17961796 )
17971797 #endif
17981798
1799 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
1799 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
18001800
18011801 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
18021802
18241824 TP_ARGS(fs_info, start, len)
18251825 )
18261826
1827 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
1827 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
18281828
18291829 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
18301830
18841884 TP_ARGS(root, start, len)
18851885 )
18861886
1887 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
1887 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
18881888
18891889 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
18901890
19131913 TP_ARGS(root, start, len)
19141914 )
19151915
1916 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
1917
1918 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0) || \
1916 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
1917
1918 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0) || \
19191919 LTTNG_KERNEL_RANGE(5,9,5, 5,10,0) || \
1920 LTTNG_KERNEL_RANGE(5,4,78, 5,5,0))
1920 LTTNG_KERNEL_RANGE(5,4,78, 5,5,0) || \
1921 LTTNG_UBUNTU_KERNEL_RANGE(5,8,18,44, 5,9,0,0))
19211922 LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
19221923
19231924 btrfs_find_free_extent,
19361937 )
19371938 )
19381939
1939 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
1940 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
19401941
19411942 LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
19421943
19551956 )
19561957 )
19571958
1958 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0))
1959 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,18,0))
19591960
19601961 LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
19611962
19741975 )
19751976 )
19761977
1977 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
1978 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
19781979
19791980 LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
19801981
19931994 )
19941995 )
19951996
1996 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
1997 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
19971998
19981999 LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
19992000
20332034 ctf_integer(u64, data, data)
20342035 )
20352036 )
2036 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
2037 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
20372038
20382039 LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
20392040
20532054 )
20542055 #endif
20552056
2056 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
2057 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
20572058 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
20582059
20592060 TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
20862087 TP_ARGS(block_group, start, len)
20872088 )
20882089
2089 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0))
2090 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,18,0))
20902091
20912092 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
20922093
21202121 TP_ARGS(block_group, start, len)
21212122 )
21222123
2123 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
2124 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
21242125
21252126 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
21262127
21572158 TP_ARGS(fs_info, block_group, start, len)
21582159 )
21592160
2160 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
2161 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
21612162
21622163 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
21632164
22322233 TP_ARGS(root, block_group, start, len)
22332234 )
22342235
2235 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
2236 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
22362237
22372238 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
22382239
22692270 TP_ARGS(root, block_group, start, len)
22702271 )
22712272
2272 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
2273
2274 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
2273 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
2274
2275 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
22752276 LTTNG_TRACEPOINT_EVENT(btrfs_find_cluster,
22762277
22772278 TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
23162317 ctf_integer(int, bitmap, bitmap)
23172318 )
23182319 )
2319 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
2320 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
23202321 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
23212322 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
23222323 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
23652366 ctf_integer(int, bitmap, bitmap)
23662367 )
23672368 )
2368 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
2369 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
23692370 LTTNG_TRACEPOINT_EVENT(btrfs_find_cluster,
23702371
23712372 TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start,
24122413 )
24132414 #endif
24142415
2415 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
2416 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) || \
24162417 LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
24172418 LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
24182419 LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \
24452446 ctf_integer(unsigned long, ip, IP)
24462447 )
24472448 )
2448 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
2449 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
24492450 LTTNG_TRACEPOINT_EVENT_MAP(alloc_extent_state,
24502451
24512452 btrfs_alloc_extent_state,
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/types.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
11 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)
11 #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0)
1212
1313 LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template,
1414
5555 TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken)
5656 )
5757
58 #else /* #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) */
58 #else /* #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) */
5959
6060 LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template,
6161
9494 TP_ARGS(nr_scanned, nr_taken)
9595 )
9696
97 #endif /* #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) */
97 #endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) */
9898
9999 #if LTTNG_KERNEL_RANGE(3,12,30, 3,13,0) || \
100100 LTTNG_KERNEL_RANGE(3,14,25, 3,15,0) || \
101 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
101 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0))
102102 LTTNG_TRACEPOINT_EVENT_CODE_MAP(mm_compaction_migratepages,
103103
104104 compaction_migratepages,
134134
135135 TP_code_post()
136136 )
137 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
137 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */
138138 LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
139139
140140 compaction_migratepages,
149149 ctf_integer(unsigned long, nr_failed, nr_failed)
150150 )
151151 )
152 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
152 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */
153153
154154 #endif /* LTTNG_TRACE_COMPACTION_H */
155155
55 #define LTTNG_TRACE_EXT3_H
66
77 #include <probes/lttng-tracepoint-event.h>
8 #include <linux/version.h>
8 #include <lttng-kernel-version.h>
99
1010 LTTNG_TRACEPOINT_EVENT(ext3_free_inode,
1111 TP_PROTO(struct inode *inode),
1616 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1717 ctf_integer(ino_t, ino, inode->i_ino)
1818 ctf_integer(umode_t, mode, inode->i_mode)
19 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
19 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
2020 ctf_integer(uid_t, uid, i_uid_read(inode))
2121 ctf_integer(gid_t, gid, i_gid_read(inode))
2222 #else
189189 TP_ARGS(page)
190190 )
191191
192 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
192 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
193193
194194 LTTNG_TRACEPOINT_EVENT(ext3_invalidatepage,
195195 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/writeback.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 #ifndef _TRACE_EXT4_DEF_
1212 #define _TRACE_EXT4_DEF_
1616 struct ext4_inode_info;
1717 struct mpage_da_data;
1818 struct ext4_map_blocks;
19 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
19 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
2020 struct ext4_extent;
2121 #endif
2222 #endif
2323
2424 #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
25 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
25 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
2626 #define TP_MODE_T __u16
2727 #else
2828 #define TP_MODE_T umode_t
3636 TP_FIELDS(
3737 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
3838 ctf_integer(ino_t, ino, inode->i_ino)
39 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
39 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
4040 ctf_integer(uid_t, uid, i_uid_read(inode))
4141 ctf_integer(gid_t, gid, i_gid_read(inode))
4242 #else
219219 )
220220 )
221221
222 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
222 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
223223
224224 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
225225 TP_PROTO(struct inode *inode, pgoff_t first_page,
258258
259259 #endif
260260
261 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
261 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
262262
263263 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent,
264264 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map),
326326 TP_ARGS(page)
327327 )
328328
329 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
329 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
330330
331331 LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op,
332332 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
431431 )
432432 )
433433
434 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
434 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
435435 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
436436
437437 TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa),
459459 )
460460 #endif
461461
462 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
462 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0) || \
463463 LTTNG_KERNEL_RANGE(5,8,6, 5,9,0))
464464 LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
465465 TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
589589 )
590590 )
591591
592 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
592 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
593593 LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
594594 TP_PROTO(struct inode *inode),
595595
718718 )
719719 )
720720
721 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
721 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
722722 LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
723723 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
724724
735735 ctf_integer(TP_MODE_T, mode, inode->i_mode)
736736 )
737737 )
738 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
738 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
739739 LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
740740 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
741741
778778 )
779779 #endif
780780
781 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
781 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
782782 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
783783 TP_PROTO(struct inode *inode),
784784
793793 ctf_integer(TP_MODE_T, mode, inode->i_mode)
794794 )
795795 )
796 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
796 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0))
797797 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
798798 TP_PROTO(struct inode *inode),
799799
830830 )
831831 #endif
832832
833 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0))
833 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
834834 LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
835835 TP_PROTO(struct inode *inode, int freed_blocks),
836836
893893 TP_ARGS(sb, group)
894894 )
895895
896 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
896 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
897897 LTTNG_TRACEPOINT_EVENT(ext4_read_block_bitmap_load,
898898 TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch),
899899
966966 )
967967 )
968968
969 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
969 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0))
970970
971971 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode,
972972 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
10031003 TP_ARGS(inode, offset, len, mode)
10041004 )
10051005
1006 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
1006 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
10071007
10081008 LTTNG_TRACEPOINT_EVENT(ext4_fallocate_enter,
10091009 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
10191019 )
10201020 )
10211021
1022 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1022 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
10231023
10241024 LTTNG_TRACEPOINT_EVENT(ext4_punch_hole,
10251025 TP_PROTO(struct inode *inode, loff_t offset, loff_t len),
10341034 )
10351035 )
10361036
1037 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
1038
1039 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
1037 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0)) */
1038
1039 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
10401040
10411041 LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter,
10421042 TP_PROTO(struct inode *parent, struct dentry *dentry),
10891089 TP_ARGS(inode)
10901090 )
10911091
1092 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1092 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
10931093 /* 'ux' is the uninitialized extent. */
10941094 LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter,
10951095 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
11621162 TP_ARGS(inode, lblk, len, flags)
11631163 )
11641164
1165 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1165 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
11661166
11671167 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
11681168 TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map,
11961196 TP_ARGS(inode, flags, map, ret)
11971197 )
11981198
1199 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
1199 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
12001200
12011201 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
12021202 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
12261226 TP_ARGS(inode, map, ret)
12271227 )
12281228
1229 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1229 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
12301230
12311231 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
12321232 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
12581258 TP_ARGS(inode, lblk, pblk, len, ret)
12591259 )
12601260
1261 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1261 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
12621262
12631263 LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
12641264 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
12731273 )
12741274 )
12751275
1276 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
1276 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
12771277 LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
12781278 TP_PROTO(struct super_block *sb, unsigned long ino),
12791279
12971297 )
12981298 #endif
12991299
1300 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
1300 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
13011301
13021302 LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
13031303 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
13261326 )
13271327 )
13281328
1329 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1329 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
13301330
13311331 LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
13321332 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
13541354 )
13551355 )
13561356
1357 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
1357 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
13581358
13591359 LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
13601360 TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP),
14061406 )
14071407 #endif
14081408
1409 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1409 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
14101410
14111411 LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents,
1412 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
1412 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
14131413 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags,
14141414 unsigned int allocated, ext4_fsblk_t newblock),
14151415
14161416 TP_ARGS(inode, map, flags, allocated, newblock),
1417 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1417 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
14181418 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
14191419 unsigned int allocated, ext4_fsblk_t newblock),
14201420
14211421 TP_ARGS(inode, map, allocated, newblock),
1422 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1423
1424 TP_FIELDS(
1425 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1426 ctf_integer(ino_t, ino, inode->i_ino)
1427 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
1422 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
1423
1424 TP_FIELDS(
1425 ctf_integer(dev_t, dev, inode->i_sb->s_dev)
1426 ctf_integer(ino_t, ino, inode->i_ino)
1427 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
14281428 ctf_integer(int, flags, flags)
1429 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1429 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
14301430 ctf_integer(int, flags, map->m_flags)
1431 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
1431 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
14321432 ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
14331433 ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
14341434 ctf_integer(unsigned int, len, map->m_len)
15251525 )
15261526 )
15271527
1528 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
1528 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
15291529 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
15301530
15311531 LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
15491549 )
15501550 )
15511551
1552 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1552 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
15531553
15541554 LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
15551555 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
15931593
15941594 #endif
15951595
1596 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
1596 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
15971597 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
15981598
15991599 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
16161616 )
16171617 )
16181618
1619 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1619 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
16201620
16211621 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
16221622 TP_PROTO(struct inode *inode, ext4_lblk_t start,
16691669 )
16701670 )
16711671
1672 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1672 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
16731673
16741674 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
16751675 TP_PROTO(struct inode *inode, ext4_lblk_t start,
17031703
17041704 #endif
17051705
1706 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
1706 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
17071707 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
17081708
17091709 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
17251725 )
17261726 )
17271727
1728 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1728 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
17291729
17301730 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
17311731 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
17661766
17671767 #endif
17681768
1769 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
1769 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
17701770
17711771 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent,
17721772 TP_PROTO(struct inode *inode, struct extent_status *es),
17951795 TP_ARGS(inode, es)
17961796 )
17971797
1798 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1798 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
17991799
18001800 LTTNG_TRACEPOINT_EVENT(ext4_es_insert_extent,
18011801 TP_PROTO(struct inode *inode, struct extent_status *es),
19071907
19081908 #endif
19091909
1910 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
1910 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
19111911 LTTNG_TRACEPOINT_EVENT(ext4_fc_replay_scan,
19121912 TP_PROTO(struct super_block *sb, int error, int off),
19131913
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/jbd.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 LTTNG_TRACEPOINT_EVENT(jbd_checkpoint,
1212
2828
2929 TP_FIELDS(
3030 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
31 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
31 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
3232 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
3333 #endif
3434 ctf_integer(int, transaction, commit_transaction->t_tid)
7171
7272 TP_FIELDS(
7373 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
74 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
74 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
7575 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
7676 #endif
7777 ctf_integer(int, transaction, commit_transaction->t_tid)
8585
8686 TP_FIELDS(
8787 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
88 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
88 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
8989 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
9090 #endif
9191 ctf_integer(int, transaction, commit_transaction->t_tid)
100100
101101 TP_FIELDS(
102102 ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
103 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
103 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
104104 ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
105105 #endif
106106 ctf_integer(int, transaction, commit_transaction->t_tid)
123123 )
124124 )
125125
126 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
126 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
127127 LTTNG_TRACEPOINT_EVENT_MAP(journal_write_superblock,
128128
129129 jbd_journal_write_superblock,
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/jbd2.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 #ifndef _TRACE_JBD2_DEF
1212 #define _TRACE_JBD2_DEF
6767 TP_ARGS(journal, commit_transaction)
6868 )
6969
70 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
70 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
7171 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_drop_transaction,
7272
7373 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
136136 )
137137 )
138138
139 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
139 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
140140 LTTNG_TRACEPOINT_EVENT(jbd2_update_log_tail,
141141 #else
142142 LTTNG_TRACEPOINT_EVENT(jbd2_cleanup_journal_tail,
156156 )
157157 )
158158
159 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
159 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
160160 LTTNG_TRACEPOINT_EVENT(jbd2_write_superblock,
161161
162162 TP_PROTO(journal_t *journal, int write_op),
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/types.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc,
1212
114114 TP_ARGS(call_site, ptr)
115115 )
116116
117 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
117 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
118118 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free, kmem_mm_page_free,
119119 #else
120120 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_direct, kmem_mm_page_free_direct,
131131 )
132132 )
133133
134 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
134 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
135135 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_batched, kmem_mm_page_free_batched,
136136
137137 TP_PROTO(struct page *page),
143143 ctf_integer(unsigned long, pfn, page_to_pfn(page))
144144 )
145145 )
146 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
146 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
147147 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_batched, kmem_mm_page_free_batched,
148148
149149 TP_PROTO(struct page *page, int cold),
221221 TP_ARGS(page, order, migratetype)
222222 )
223223
224 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2) \
224 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,2) \
225225 || LTTNG_KERNEL_RANGE(3,14,36, 3,15,0) \
226226 || LTTNG_KERNEL_RANGE(3,16,35, 3,17,0) \
227227 || LTTNG_KERNEL_RANGE(3,18,10, 3,19,0) \
253253 )
254254 )
255255
256 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,30))
256 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,30))
257257
258258 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
259259
278278 )
279279 )
280280
281 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
281 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
282282
283283 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
284284
305305 )
306306 )
307307
308 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
308 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
309309
310310 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
311311
329329 )
330330 )
331331
332 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
332 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
333333
334334 #endif /* LTTNG_TRACE_KMEM_H */
335335
22 #define LTTNG_TRACE_KVM_MAIN_H
33
44 #include <probes/lttng-tracepoint-event.h>
5 #include <linux/version.h>
5 #include <lttng-kernel-version.h>
66
77 #undef TRACE_SYSTEM
88 #define TRACE_SYSTEM kvm
1717 )
1818 )
1919
20 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0))
20 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,6,0))
2121 #if defined(__KVM_HAVE_IOAPIC)
2222 #undef __KVM_HAVE_IRQ_LINE
2323 #define __KVM_HAVE_IRQ_LINE
9797 )
9898 )
9999
100 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0) \
100 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0) \
101101 || LTTNG_KERNEL_RANGE(4,14,14, 4,15,0) \
102102 || LTTNG_DEBIAN_KERNEL_RANGE(4,14,13,0,1,0, 4,15,0,0,0,0) \
103103 || LTTNG_KERNEL_RANGE(4,9,77, 4,10,0) \
151151 )
152152 )
153153
154 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) \
154 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,18,0) \
155155 || LTTNG_RHEL_KERNEL_RANGE(3,10,0,327,0,0, 3,11,0,0,0,0))
156156
157157 LTTNG_TRACEPOINT_EVENT(kvm_age_page,
235235 TP_ARGS(token, gva)
236236 )
237237
238 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0) \
238 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0) \
239239 || LTTNG_RHEL_KERNEL_RANGE(3,10,0,229,0,0, 3,11,0,0,0,0))
240240
241241 LTTNG_TRACEPOINT_EVENT(
249249 )
250250 )
251251
252 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) */
252 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0)) */
253253
254254 LTTNG_TRACEPOINT_EVENT(
255255 kvm_async_pf_completed,
263263 )
264264 )
265265
266 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) */
266 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0)) */
267267
268268 #endif
269269
1313 #include <linux/user_namespace.h>
1414 #include <linux/utsname.h>
1515 #include <linux/types.h>
16 #include <linux/version.h>
16 #include <lttng-kernel-version.h>
1717 #include <wrapper/namespace.h>
1818 #include <wrapper/user_namespace.h>
1919
6464 )
6565 )
6666
67 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0))
67 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0))
6868 LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_cgroup_ns,
6969 TP_PROTO(struct lttng_session *session,
7070 struct task_struct *p,
8484 TP_ARGS(session, p, ipc_ns),
8585 TP_FIELDS(
8686 ctf_integer(pid_t, tid, p->pid)
87 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
87 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
8888 ctf_integer(unsigned int, ns_inum, ipc_ns ? ipc_ns->lttng_ns_inum : 0)
8989 #endif
9090 )
9898 TP_ARGS(session, p, mnt_ns),
9999 TP_FIELDS(
100100 ctf_integer(pid_t, tid, p->pid)
101 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
101 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
102102 ctf_integer(unsigned int, ns_inum, mnt_ns ? mnt_ns->lttng_ns_inum : 0)
103103 #endif
104104 )
112112 TP_ARGS(session, p, net_ns),
113113 TP_FIELDS(
114114 ctf_integer(pid_t, tid, p->pid)
115 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
115 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
116116 ctf_integer(unsigned int, ns_inum, net_ns ? net_ns->lttng_ns_inum : 0)
117117 #endif
118118 )
141141 ret;
142142 }))
143143 ctf_integer(int, ns_level, pid_ns ? pid_ns->level : 0)
144 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
144 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
145145 ctf_integer(unsigned int, ns_inum, pid_ns ? pid_ns->lttng_ns_inum : 0)
146146 #endif
147147 )
156156 ctf_integer(pid_t, tid, p->pid)
157157 ctf_integer(uid_t, vuid, user_ns ? lttng_task_vuid(p, user_ns) : 0)
158158 ctf_integer(gid_t, vgid, user_ns ? lttng_task_vgid(p, user_ns) : 0)
159 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
159 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,11,0))
160160 ctf_integer(int, ns_level, user_ns ? user_ns->level : 0)
161161 #endif
162 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
162 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
163163 ctf_integer(unsigned int, ns_inum, user_ns ? user_ns->lttng_ns_inum : 0)
164164 #endif
165165 )
172172 TP_ARGS(session, p, uts_ns),
173173 TP_FIELDS(
174174 ctf_integer(pid_t, tid, p->pid)
175 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
175 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
176176 ctf_integer(unsigned int, ns_inum, uts_ns ? uts_ns->lttng_ns_inum : 0)
177177 #endif
178178 )
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/types.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 LTTNG_TRACEPOINT_ENUM(
1212 lttng_test_filter_event_enum,
88 #include <linux/types.h>
99 #include <linux/mm.h>
1010 #include <linux/memcontrol.h>
11 #include <linux/version.h>
11 #include <lttng-kernel-version.h>
1212
1313 #ifndef _TRACE_VMSCAN_DEF
1414 #define _TRACE_VMSCAN_DEF
1818 #define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */
1919 #define RECLAIM_WB_ASYNC 0x0008u
2020
21 #if ((LINUX_VERSION_CODE <= KERNEL_VERSION(3,0,38)) || \
21 #if ((LTTNG_LINUX_VERSION_CODE <= LTTNG_KERNEL_VERSION(3,0,38)) || \
2222 LTTNG_KERNEL_RANGE(3,1,0, 3,2,0))
2323 typedef int isolate_mode_t;
2424 #endif
2525
2626 #endif
2727
28 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
28 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
2929
3030 #include <linux/mm_inline.h>
3131
3434 (RECLAIM_WB_ASYNC) \
3535 )
3636
37 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
37 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,5,0))
3838
3939 #include <linux/mm_inline.h>
4040
6262 )
6363 )
6464
65 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
65 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
6666
6767 LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake,
6868
9393
9494 #endif
9595
96 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
96 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
9797 LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd,
9898
9999 TP_PROTO(int nid, int zid, int order, gfp_t gfp_flags),
122122 )
123123 #endif
124124
125 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
125 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
126126
127127 LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
128128
157157 TP_ARGS(order, gfp_flags)
158158 )
159159
160 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
160 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
161161
162162 LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
163163
264264 TP_ARGS(nr_reclaimed)
265265 )
266266
267 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0))
267 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0))
268268 LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start,
269269
270270 mm_vmscan_shrink_slab_start,
289289 ctf_integer(int, priority, priority)
290290 )
291291 )
292 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
292 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
293293 LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start,
294294
295295 mm_vmscan_shrink_slab_start,
304304
305305 TP_FIELDS(
306306 ctf_integer_hex(struct shrinker *, shr, shr)
307 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
307 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
308308 ctf_integer_hex(void *, shrink, shr->scan_objects)
309 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
309 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
310310 ctf_integer_hex(void *, shrink, shr->shrink)
311 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
311 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
312312 ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink)
313313 ctf_integer(gfp_t, gfp_flags, sc->gfp_mask)
314314 ctf_integer(unsigned long, pgs_scanned, pgs_scanned)
320320 )
321321 #endif
322322
323 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
323 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0))
324324 LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
325325
326326 mm_vmscan_shrink_slab_end,
341341 ctf_integer(long, total_scan, total_scan)
342342 )
343343 )
344 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
344 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
345345 LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
346346
347347 mm_vmscan_shrink_slab_end,
353353
354354 TP_FIELDS(
355355 ctf_integer_hex(struct shrinker *, shr, shr)
356 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
356 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
357357 ctf_integer_hex(void *, shrink, shr->scan_objects)
358 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
358 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
359359 ctf_integer_hex(void *, shrink, shr->shrink)
360 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
360 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
361361 ctf_integer(long, unused_scan, unused_scan_cnt)
362362 ctf_integer(long, new_scan, new_scan_cnt)
363363 ctf_integer(int, retval, shrinker_retval)
366366 )
367367 #endif
368368
369 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
369 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
370370 LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate,
371371
372372 TP_PROTO(int classzone_idx,
394394 ctf_integer(int, lru, lru)
395395 )
396396 )
397 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
397 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
398398 LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_lru_isolate_template,
399399
400400 TP_PROTO(int classzone_idx,
461461 unsigned long nr_requested,
462462 unsigned long nr_scanned,
463463 unsigned long nr_taken,
464 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
464 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
465465 unsigned long nr_lumpy_taken,
466466 unsigned long nr_lumpy_dirty,
467467 unsigned long nr_lumpy_failed,
468468 #endif
469 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
469 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
470470 isolate_mode_t isolate_mode
471471 #else
472472 isolate_mode_t isolate_mode,
475475 ),
476476
477477 TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
478 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
478 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
479479 nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
480480 #endif
481 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
481 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
482482 isolate_mode
483483 #else
484484 isolate_mode, file
491491 ctf_integer(unsigned long, nr_requested, nr_requested)
492492 ctf_integer(unsigned long, nr_scanned, nr_scanned)
493493 ctf_integer(unsigned long, nr_taken, nr_taken)
494 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
494 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
495495 ctf_integer(unsigned long, nr_lumpy_taken, nr_lumpy_taken)
496496 ctf_integer(unsigned long, nr_lumpy_dirty, nr_lumpy_dirty)
497497 ctf_integer(unsigned long, nr_lumpy_failed, nr_lumpy_failed)
498498 #endif
499499 ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
500 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
500 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
501501 ctf_integer(int, file, file)
502502 #endif
503503 )
509509 unsigned long nr_requested,
510510 unsigned long nr_scanned,
511511 unsigned long nr_taken,
512 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
512 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
513513 unsigned long nr_lumpy_taken,
514514 unsigned long nr_lumpy_dirty,
515515 unsigned long nr_lumpy_failed,
516516 #endif
517 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
517 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
518518 isolate_mode_t isolate_mode
519519 #else
520520 isolate_mode_t isolate_mode,
523523 ),
524524
525525 TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
526 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
526 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
527527 nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
528528 #endif
529 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
529 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
530530 isolate_mode
531531 #else
532532 isolate_mode, file
541541 unsigned long nr_requested,
542542 unsigned long nr_scanned,
543543 unsigned long nr_taken,
544 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
544 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
545545 unsigned long nr_lumpy_taken,
546546 unsigned long nr_lumpy_dirty,
547547 unsigned long nr_lumpy_failed,
548548 #endif
549 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
549 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
550550 isolate_mode_t isolate_mode
551551 #else
552552 isolate_mode_t isolate_mode,
555555 ),
556556
557557 TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
558 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
558 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
559559 nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
560560 #endif
561 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
561 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
562562 isolate_mode
563563 #else
564564 isolate_mode, file
567567 )
568568 #endif
569569
570 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
570 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
571571 LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
572572
573573 TP_PROTO(struct page *page),
580580 page_is_file_lru(page)))
581581 )
582582 )
583 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
583 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
584584 LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
585585
586586 TP_PROTO(struct page *page),
593593 page_is_file_cache(page)))
594594 )
595595 )
596 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
596 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,5,0))
597597 LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
598598
599599 TP_PROTO(struct page *page),
620620 )
621621 #endif
622622
623 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
623 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
624624 LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
625625
626626 TP_PROTO(int nid,
645645 ctf_integer(int, reclaim_flags, trace_reclaim_flags(file))
646646 )
647647 )
648 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
648 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
649649 LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
650650
651651 TP_PROTO(int nid,
669669 ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
670670 )
671671 )
672 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
672 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
673673 LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
674674
675675 TP_PROTO(int nid,
699699 ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
700700 )
701701 )
702 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
702 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
703703 LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
704704
705705 TP_PROTO(int nid,
716716 ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
717717 )
718718 )
719 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0))
719 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,5,0))
720720 LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
721721
722722 TP_PROTO(struct zone *zone,
754754 )
755755 #endif
756756
757 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
757 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
758758 LTTNG_TRACEPOINT_EVENT_MAP(replace_swap_token,
759759
760760 mm_vmscan_replace_swap_token,
1515 #define LTTNG_TRACE_MODULE_H
1616
1717 #include <probes/lttng-tracepoint-event.h>
18 #include <linux/version.h>
18 #include <lttng-kernel-version.h>
1919
2020 #ifdef CONFIG_MODULES
2121
5959
6060 TP_FIELDS(
6161 ctf_integer(unsigned long, ip, ip)
62 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
62 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0))
6363 ctf_integer(int, refcnt, atomic_read(&mod->refcnt))
6464 #else
6565 ctf_integer(int, refcnt, __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs))
1010
1111 #define NO_DEV "(no_device)"
1212
13 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
13 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
1414
1515 LTTNG_TRACEPOINT_EVENT(napi_poll,
1616
1010 #include <linux/ip.h>
1111 #include <linux/ipv6.h>
1212 #include <linux/tcp.h>
13 #include <linux/version.h>
13 #include <lttng-kernel-version.h>
1414 #include <lttng-endian.h>
1515 #include <net/sock.h>
1616
553553 TP_ARGS(skb)
554554 )
555555
556 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
556 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0))
557557
558558 /* Trace events for the receive entry points */
559559 LTTNG_TRACEPOINT_EVENT_CLASS(net_dev_receive_entry_template,
624624
625625 #endif /* kernel > 3.14 */
626626
627 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0))
627 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0))
628628
629629 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(net_dev_receive_entry_template,
630630
639639
640640 #endif /* kernel > 4.19 */
641641
642 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
642 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
643643
644644 /* Trace events for the receive exit points */
645645 LTTNG_TRACEPOINT_EVENT_CLASS(net_dev_receive_exit_template,
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/ktime.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu,
1212
5858 )
5959 )
6060
61 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
61 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
6262 LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source,
6363
6464 TP_PROTO(const char *name, unsigned int state),
159159 events get removed */
160160 static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {};
161161 static inline void trace_power_end(u64 cpuid) {};
162 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
162 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
163163 static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {};
164164 static inline void trace_power_end_rcuidle(u64 cpuid) {};
165165 #endif
3434 */
3535 #if defined(CONFIG_TRACE_IRQFLAGS)
3636 #define LTTNG_TRACE_IRQ
37 #elif (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0) && \
37 #elif (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,19,0) && \
3838 !defined(CONFIG_PROVE_LOCKING))
3939 #define LTTNG_TRACE_IRQ
4040 #endif
6666 */
6767 #if defined(CONFIG_TRACE_PREEMPT_TOGGLE)
6868 #define LTTNG_TRACE_PREEMPT
69 #elif (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0) && \
69 #elif (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,19,0) && \
7070 defined(CONFIG_DEBUG_PREEMPT))
7171 #define LTTNG_TRACE_PREEMPT
7272 #endif
55 #define LTTNG_TRACE_PRINTK_H
66
77 #include <probes/lttng-tracepoint-event.h>
8 #include <linux/version.h>
8 #include <lttng-kernel-version.h>
99
10 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
10 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,10,0))
1111
1212 LTTNG_TRACEPOINT_EVENT_MAP(console,
1313
2222 )
2323 )
2424
25 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
25 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
2626
2727 LTTNG_TRACEPOINT_EVENT_MAP(console,
2828
3939 )
4040 )
4141
42 #else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */
42 #else /* (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0)) */
4343
4444 LTTNG_TRACEPOINT_EVENT_MAP(console,
4545
3737 TP_ARGS(pool_name, bytes, IP)
3838 )
3939
40 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
40 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
4141 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
4242
4343 random_credit_entropy_bits,
55 #define LTTNG_TRACE_RCU_H
66
77 #include <probes/lttng-tracepoint-event.h>
8 #include <linux/version.h>
8 #include <lttng-kernel-version.h>
99
1010 /*
1111 * Tracepoint for start/end markers used for utilization calculations.
2020 */
2121 LTTNG_TRACEPOINT_EVENT(rcu_utilization,
2222
23 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
23 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
2424 TP_PROTO(const char *s),
25 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
25 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
2626 TP_PROTO(char *s),
27 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
27 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
2828
2929 TP_ARGS(s),
3030
3636 #ifdef CONFIG_RCU_TRACE
3737
3838 #if defined(CONFIG_TREE_RCU) \
39 || (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) \
39 || (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0) \
4040 && defined(CONFIG_PREEMPT_RCU)) \
4141 || defined(CONFIG_TREE_PREEMPT_RCU)
4242
4949 * and "cpuofl", respectively), and a CPU being kicked for being too
5050 * long in dyntick-idle mode ("kick").
5151 */
52 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
52 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0) || \
5353 LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
5454 LTTNG_TRACEPOINT_EVENT(rcu_grace_period,
5555
6363 ctf_string(gpevent, gpevent)
6464 )
6565 )
66 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
66 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
6767 LTTNG_TRACEPOINT_EVENT(rcu_grace_period,
6868
6969 TP_PROTO(const char *rcuname, unsigned long gpnum, const char *gpevent),
9898 * rcu_node structure, and the mask of CPUs that will be waited for.
9999 * All but the type of RCU are extracted from the rcu_node structure.
100100 */
101 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
101 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0) || \
102102 LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
103103 LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init,
104104
116116 ctf_integer(unsigned long, qsmask, qsmask)
117117 )
118118 )
119 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
119 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
120120 LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init,
121121
122122 TP_PROTO(const char *rcuname, unsigned long gpnum, u8 level,
158158 * include SRCU), the grace-period number that the task is blocking
159159 * (the current or the next), and the task's PID.
160160 */
161 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
161 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0) || \
162162 LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
163163 LTTNG_TRACEPOINT_EVENT(rcu_preempt_task,
164164
172172 ctf_integer(int, pid, pid)
173173 )
174174 )
175 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
175 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
176176 LTTNG_TRACEPOINT_EVENT(rcu_preempt_task,
177177
178178 TP_PROTO(const char *rcuname, int pid, unsigned long gpnum),
205205 * read-side critical section exiting that critical section. Track the
206206 * type of RCU (which one day might include SRCU) and the task's PID.
207207 */
208 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
208 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0) || \
209209 LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
210210 LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task,
211211
219219 ctf_integer(int, pid, pid)
220220 )
221221 )
222 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
222 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
223223 LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task,
224224
225225 TP_PROTO(const char *rcuname, unsigned long gpnum, int pid),
255255 * whether there are any blocked tasks blocking the current grace period.
256256 * All but the type of RCU are extracted from the rcu_node structure.
257257 */
258 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
258 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0) || \
259259 LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
260260 LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report,
261261
276276 ctf_integer(u8, gp_tasks, gp_tasks)
277277 )
278278 )
279 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
279 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
280280 LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report,
281281
282282 TP_PROTO(const char *rcuname, unsigned long gpnum,
326326 * or "kick" when kicking a CPU that has been in dyntick-idle mode for
327327 * too long.
328328 */
329 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
329 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0) || \
330330 LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
331331 LTTNG_TRACEPOINT_EVENT(rcu_fqs,
332332
341341 ctf_string(qsevent, qsevent)
342342 )
343343 )
344 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
344 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
345345 LTTNG_TRACEPOINT_EVENT(rcu_fqs,
346346
347347 TP_PROTO(const char *rcuname, unsigned long gpnum, int cpu, const char *qsevent),
373373
374374 #endif /*
375375 * #if defined(CONFIG_TREE_RCU)
376 * || (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
376 * || (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0)
377377 * && defined(CONFIG_PREEMPT_RCU))
378378 * || defined(CONFIG_TREE_PREEMPT_RCU)
379379 */
391391 * events use the upper bits of each number, while interrupt-related
392392 * events use the lower bits.
393393 */
394 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) \
394 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) \
395395 || LTTNG_KERNEL_RANGE(5,5,6, 5,6,0) \
396396 || LTTNG_KERNEL_RANGE(5,4,22, 5,5,0) \
397397 || LTTNG_UBUNTU_KERNEL_RANGE(5,0,21,46, 5,1,0,0)
409409 )
410410 )
411411
412 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0))
412 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0))
413413 LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
414414
415415 TP_PROTO(const char *polarity, long oldnesting, long newnesting, atomic_t dynticks),
424424 )
425425 )
426426
427 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
427 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
428428 LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
429429
430430 TP_PROTO(const char *polarity, long long oldnesting, long long newnesting),
437437 ctf_integer(long long, newnesting, newnesting)
438438 )
439439 )
440 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
440 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
441441 LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
442442
443443 TP_PROTO(char *polarity, long long oldnesting, long long newnesting),
464464 #endif
465465
466466
467 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
467 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
468468 /*
469469 * Tracepoint for RCU preparation for idle, the goal being to get RCU
470470 * processing done so that the current CPU can shut off its scheduling
489489 */
490490 LTTNG_TRACEPOINT_EVENT(rcu_prep_idle,
491491
492 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
492 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
493493 TP_PROTO(const char *reason),
494 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
494 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
495495 TP_PROTO(char *reason),
496 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
496 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
497497
498498 TP_ARGS(reason),
499499
510510 * number of lazy callbacks queued, and the fourth element is the
511511 * total number of callbacks queued.
512512 */
513 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
513 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
514514 LTTNG_TRACEPOINT_EVENT(rcu_callback,
515515
516516 TP_PROTO(const char *rcuname, struct rcu_head *rhp, long qlen),
524524 ctf_integer(long, qlen, qlen)
525525 )
526526 )
527 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
527 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
528528 LTTNG_TRACEPOINT_EVENT(rcu_callback,
529529
530530 TP_PROTO(const char *rcuname, struct rcu_head *rhp, long qlen_lazy,
540540 ctf_integer(long, qlen, qlen)
541541 )
542542 )
543 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
543 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
544544 LTTNG_TRACEPOINT_EVENT(rcu_callback,
545545
546546 TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy,
581581 * the fourth argument is the number of lazy callbacks queued, and the
582582 * fifth argument is the total number of callbacks queued.
583583 */
584 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
584 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
585585 LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
586586
587587 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset,
596596 ctf_integer(long, qlen, qlen)
597597 )
598598 )
599 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
599 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
600600 LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
601601
602602 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset,
612612 ctf_integer(long, qlen, qlen)
613613 )
614614 )
615 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
615 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
616616 LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
617617
618618 TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset,
652652 * the total number of callbacks queued, and the fourth argument is
653653 * the current RCU-callback batch limit.
654654 */
655 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
655 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
656656 LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
657657
658658 TP_PROTO(const char *rcuname, long qlen, long blimit),
665665 ctf_integer(long, blimit, blimit)
666666 )
667667 )
668 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
668 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
669669 LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
670670
671671 TP_PROTO(const char *rcuname, long qlen_lazy, long qlen, long blimit),
679679 ctf_integer(long, blimit, blimit)
680680 )
681681 )
682 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
682 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
683683 LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
684684
685685 TP_PROTO(char *rcuname, long qlen_lazy, long qlen, long blimit),
693693 ctf_integer(long, blimit, blimit)
694694 )
695695 )
696 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
696 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
697697 LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
698698
699699 TP_PROTO(char *rcuname, long qlen_lazy, long qlen, int blimit),
729729 */
730730 LTTNG_TRACEPOINT_EVENT(rcu_invoke_callback,
731731
732 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
732 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
733733 TP_PROTO(const char *rcuname, struct rcu_head *rhp),
734 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
734 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
735735 TP_PROTO(char *rcuname, struct rcu_head *rhp),
736 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
736 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
737737
738738 TP_ARGS(rcuname, rhp),
739739
753753 */
754754 LTTNG_TRACEPOINT_EVENT(rcu_invoke_kfree_callback,
755755
756 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
756 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
757757 TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset),
758 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
758 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
759759 TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset),
760 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
760 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
761761
762762 TP_ARGS(rcuname, rhp, offset),
763763
781781 */
782782 LTTNG_TRACEPOINT_EVENT(rcu_batch_end,
783783
784 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
784 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
785785 TP_PROTO(const char *rcuname, int callbacks_invoked,
786786 char cb, char nr, char iit, char risk),
787787
788788 TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk),
789 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
789 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
790790 TP_PROTO(const char *rcuname, int callbacks_invoked,
791791 bool cb, bool nr, bool iit, bool risk),
792792
793793 TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk),
794 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
794 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
795795 TP_PROTO(char *rcuname, int callbacks_invoked,
796796 bool cb, bool nr, bool iit, bool risk),
797797
805805 TP_FIELDS(
806806 ctf_string(rcuname, rcuname)
807807 ctf_integer(int, callbacks_invoked, callbacks_invoked)
808 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
808 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
809809 ctf_integer(char, cb, cb)
810810 ctf_integer(char, nr, nr)
811811 ctf_integer(char, iit, iit)
812812 ctf_integer(char, risk, risk)
813 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
813 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
814814 ctf_integer(bool, cb, cb)
815815 ctf_integer(bool, nr, nr)
816816 ctf_integer(bool, iit, iit)
819819 )
820820 )
821821
822 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
822 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
823823 /*
824824 * Tracepoint for rcutorture readers. The first argument is the name
825825 * of the RCU flavor from rcutorture's viewpoint and the second argument
827827 */
828828 LTTNG_TRACEPOINT_EVENT(rcu_torture_read,
829829
830 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
830 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
831831 TP_PROTO(const char *rcutorturename, struct rcu_head *rhp,
832832 unsigned long secs, unsigned long c_old, unsigned long c),
833833
834834 TP_ARGS(rcutorturename, rhp, secs, c_old, c),
835 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
835 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
836836 TP_PROTO(char *rcutorturename, struct rcu_head *rhp,
837837 unsigned long secs, unsigned long c_old, unsigned long c),
838838
846846 TP_FIELDS(
847847 ctf_string(rcutorturename, rcutorturename)
848848 ctf_integer_hex(struct rcu_head *, rhp, rhp)
849 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
849 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
850850 ctf_integer(unsigned long, secs, secs)
851851 ctf_integer(unsigned long, c_old, c_old)
852852 ctf_integer(unsigned long, c, c)
855855 )
856856 #endif
857857
858 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
858 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0))
859859 /*
860860 * Tracepoint for _rcu_barrier() execution. The string "s" describes
861861 * the _rcu_barrier phase:
875875 */
876876 LTTNG_TRACEPOINT_EVENT(rcu_barrier,
877877
878 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
878 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
879879 TP_PROTO(const char *rcuname, const char *s, int cpu, int cnt, unsigned long done),
880 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
880 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
881881 TP_PROTO(char *rcuname, char *s, int cpu, int cnt, unsigned long done),
882 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
882 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
883883
884884 TP_ARGS(rcuname, s, cpu, cnt, done),
885885
895895
896896 #else /* #ifdef CONFIG_RCU_TRACE */
897897
898 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) || \
898 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0) || \
899899 LTTNG_RHEL_KERNEL_RANGE(4,18,0,80,0,0, 4,19,0,0,0,0))
900900 #define trace_rcu_grace_period(rcuname, gp_seq, gpevent) do { } while (0)
901901 #define trace_rcu_grace_period_init(rcuname, gp_seq, level, grplo, grphi, \
918918 #define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0)
919919 #endif
920920
921 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0))
921 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0))
922922 #define trace_rcu_dyntick(polarity, oldnesting, newnesting, dyntick) do { } while (0)
923 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
923 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
924924 #define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0)
925925 #else
926926 #define trace_rcu_dyntick(polarity) do { } while (0)
927927 #endif
928 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
928 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
929929 #define trace_rcu_prep_idle(reason) do { } while (0)
930930 #endif
931 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
931 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
932932 #define trace_rcu_callback(rcuname, rhp, qlen_lazy, qlen) do { } while (0)
933933 #define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen_lazy, qlen) \
934934 do { } while (0)
941941 #endif
942942 #define trace_rcu_invoke_callback(rcuname, rhp) do { } while (0)
943943 #define trace_rcu_invoke_kfree_callback(rcuname, rhp, offset) do { } while (0)
944 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
944 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
945945 #define trace_rcu_batch_end(rcuname, callbacks_invoked, cb, nr, iit, risk) \
946946 do { } while (0)
947947 #else
948948 #define trace_rcu_batch_end(rcuname, callbacks_invoked) do { } while (0)
949949 #endif
950 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
950 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
951951 #define trace_rcu_torture_read(rcutorturename, rhp, secs, c_old, c) \
952952 do { } while (0)
953 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
953 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
954954 #define trace_rcu_torture_read(rcutorturename, rhp) do { } while (0)
955955 #endif
956 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
956 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0))
957957 #define trace_rcu_barrier(name, s, cpu, cnt, done) do { } while (0)
958958 #endif
959959 #endif /* #else #ifdef CONFIG_RCU_TRACE */
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/ktime.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 #ifndef _TRACE_REGMAP_DEF_
1212 #define _TRACE_REGMAP_DEF_
1111 #ifndef ONCE_LTTNG_RPC_H
1212 #define ONCE_LTTNG_RPC_H
1313
14 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
14 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
1515 static inline
1616 int lttng_get_clid(const struct rpc_task *task)
1717 {
2727 */
2828 return (int) tk_client->cl_clid;
2929 }
30 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
30 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
3131
3232 #endif /* ONCE_LTTNG_RPC_H */
3333
34 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
34 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
3535 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
3636
3737 TP_PROTO(const struct rpc_task *task),
5656
5757 TP_ARGS(task)
5858 )
59 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
59 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
6060 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
6161
6262 TP_PROTO(struct rpc_task *task),
108108 )
109109 #endif
110110
111 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
111 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
112112 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_connect_status,
113113 TP_PROTO(const struct rpc_task *task),
114114
115115 TP_ARGS(task)
116116 )
117 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
117 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
118118 LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
119119 TP_PROTO(const struct rpc_task *task),
120120
126126 ctf_integer(int, status, task->tk_status)
127127 )
128128 )
129 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
129 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
130130 LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
131131 TP_PROTO(struct rpc_task *task, int status),
132132
152152 )
153153 #endif
154154
155 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
155 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
156156 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
157157
158158 TP_PROTO(const struct rpc_task *task, const void *action),
221221 TP_ARGS(task, q)
222222 )
223223
224 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
224 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
225225 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
226226
227227 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
88 #include <linux/sched.h>
99 #include <linux/pid_namespace.h>
1010 #include <linux/binfmts.h>
11 #include <linux/version.h>
12 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
11 #include <lttng-kernel-version.h>
12 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
1313 #include <linux/sched/rt.h>
1414 #endif
1515 #include <wrapper/namespace.h>
1919 #ifndef _TRACE_SCHED_DEF_
2020 #define _TRACE_SCHED_DEF_
2121
22 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
22 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
2323
2424 static inline long __trace_sched_switch_state(bool preempt, struct task_struct *p)
2525 {
4747 return state ? (1 << (state - 1)) : state;
4848 }
4949
50 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
50 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
5151
5252 static inline long __trace_sched_switch_state(bool preempt, struct task_struct *p)
5353 {
7575 return state ? (1 << (state - 1)) : state;
7676 }
7777
78 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0))
78 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,4,0))
7979
8080 static inline long __trace_sched_switch_state(bool preempt, struct task_struct *p)
8181 {
8989 return preempt ? TASK_RUNNING | TASK_STATE_MAX : p->state;
9090 }
9191
92 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
92 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0))
9393
9494 static inline long __trace_sched_switch_state(struct task_struct *p)
9595 {
109109 return state;
110110 }
111111
112 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
112 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
113113
114114 static inline long __trace_sched_switch_state(struct task_struct *p)
115115 {
126126 return state;
127127 }
128128
129 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
129 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
130130
131131 static inline long __trace_sched_switch_state(struct task_struct *p)
132132 {
178178 ctf_enum_value("EXIT_DEAD", EXIT_DEAD)
179179 ctf_enum_value("EXIT_ZOMBIE", EXIT_ZOMBIE)
180180
181 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
181 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
182182 ctf_enum_value("TASK_PARKED", TASK_PARKED)
183 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) */
183 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) */
184184
185185 ctf_enum_value("TASK_DEAD", TASK_DEAD)
186186 ctf_enum_value("TASK_WAKEKILL", TASK_WAKEKILL)
187187 ctf_enum_value("TASK_WAKING", TASK_WAKING)
188188
189 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
189 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0))
190190 ctf_enum_value("TASK_NOLOAD", TASK_NOLOAD)
191 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
192
193 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
191 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
192
193 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
194194 ctf_enum_value("TASK_NEW", TASK_NEW)
195 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0)) */
195 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0)) */
196196
197197 ctf_enum_value("TASK_STATE_MAX", TASK_STATE_MAX)
198198 )
230230 /*
231231 * Tracepoint for waking up a task:
232232 */
233 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) || \
233 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0) || \
234234 LTTNG_RT_KERNEL_RANGE(4,1,10,11, 4,2,0,0) || \
235235 LTTNG_RT_KERNEL_RANGE(3,18,27,26, 3,19,0,0) || \
236236 LTTNG_RT_KERNEL_RANGE(3,14,61,63, 3,15,0,0) || \
251251 ctf_integer(int, target_cpu, task_cpu(p))
252252 )
253253 )
254 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
254 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
255255 LTTNG_TRACEPOINT_EVENT_CLASS(sched_wakeup_template,
256256
257257 TP_PROTO(struct task_struct *p, int success),
266266 ctf_integer(int, target_cpu, task_cpu(p))
267267 )
268268 )
269 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
270
271 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) || \
269 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
270
271 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0) || \
272272 LTTNG_RT_KERNEL_RANGE(4,1,10,11, 4,2,0,0) || \
273273 LTTNG_RT_KERNEL_RANGE(3,18,27,26, 3,19,0,0) || \
274274 LTTNG_RT_KERNEL_RANGE(3,14,61,63, 3,15,0,0) || \
313313 TP_PROTO(struct task_struct *p, int success),
314314 TP_ARGS(p, success))
315315
316 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
316 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
317317
318318 /*
319319 * Tracepoint for task switches, performed by the scheduler:
320320 */
321321 LTTNG_TRACEPOINT_EVENT(sched_switch,
322322
323 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0))
323 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,4,0))
324324 TP_PROTO(bool preempt,
325325 struct task_struct *prev,
326326 struct task_struct *next),
331331 struct task_struct *next),
332332
333333 TP_ARGS(prev, next),
334 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)) */
334 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,4,0)) */
335335
336336 TP_FIELDS(
337337 ctf_array_text(char, prev_comm, prev->comm, TASK_COMM_LEN)
338338 ctf_integer(pid_t, prev_tid, prev->pid)
339339 ctf_integer(int, prev_prio, prev->prio - MAX_RT_PRIO)
340 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0))
340 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,4,0))
341341 ctf_enum(task_state, long, prev_state, __trace_sched_switch_state(preempt, prev))
342342 #else
343343 ctf_enum(task_state, long, prev_state, __trace_sched_switch_state(prev))
454454 ctf_array_text(char, parent_comm, parent->comm, TASK_COMM_LEN)
455455 ctf_integer(pid_t, parent_tid, parent->pid)
456456 ctf_integer(pid_t, parent_pid, parent->tgid)
457 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
457 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
458458 ctf_integer(unsigned int, parent_ns_inum,
459459 ({
460460 unsigned int parent_ns_inum = 0;
474474 ctf_integer(pid_t, child_tid, child->pid)
475475 ctf_sequence(pid_t, vtids, tp_locvar->vtids, u8, tp_locvar->ns_level)
476476 ctf_integer(pid_t, child_pid, child->tgid)
477 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
477 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
478478 ctf_integer(unsigned int, child_ns_inum,
479479 ({
480480 unsigned int child_ns_inum = 0;
495495 TP_code_post()
496496 )
497497
498 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
498 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
499499 /*
500500 * Tracepoint for exec:
501501 */
556556 TP_PROTO(struct task_struct *tsk, u64 delay),
557557 TP_ARGS(tsk, delay))
558558
559 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
559 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
560560 /*
561561 * Tracepoint for accounting blocked time (time the task is in uninterruptible).
562562 */
583583 )
584584 )
585585
586 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) || \
586 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0) || \
587587 LTTNG_RT_KERNEL_RANGE(4,9,27,18, 4,10,0,0) || \
588588 LTTNG_RT_KERNEL_RANGE(4,11,5,1, 4,12,0,0))
589589 /*
88 #include <scsi/scsi_cmnd.h>
99 #include <scsi/scsi_host.h>
1010 #include <linux/trace_seq.h>
11 #include <linux/version.h>
11 #include <lttng-kernel-version.h>
1212
1313 #ifndef _TRACE_SCSI_DEF
1414 #define _TRACE_SCSI_DEF
1515
1616 #define scsi_opcode_name(opcode) { opcode, #opcode }
1717
18 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) \
18 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,7,0) \
1919 || LTTNG_SLE_KERNEL_RANGE(4,4,9,36,0,0, 4,5,0,0,0,0))
2020
2121 #define show_opcode_name(val) \
111111 scsi_opcode_name(ATA_16), \
112112 scsi_opcode_name(ATA_12))
113113
114 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) \
114 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0) \
115115 || LTTNG_RHEL_KERNEL_RANGE(3,10,0,327,0,0, 3,11,0,0,0,0))
116116
117117 #define show_opcode_name(val) \
209209 scsi_opcode_name(ATA_16), \
210210 scsi_opcode_name(ATA_12))
211211
212 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)) */
212 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0)) */
213213
214214 #define show_opcode_name(val) \
215215 __print_symbolic(val, \
306306 scsi_opcode_name(ATA_16), \
307307 scsi_opcode_name(ATA_12))
308308
309 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)) */
309 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0)) */
310310
311311 #define scsi_hostbyte_name(result) { result, #result }
312312 #define show_hostbyte_name(val) \
55 #define LTTNG_TRACE_SIGNAL_H
66
77 #include <probes/lttng-tracepoint-event.h>
8 #include <linux/version.h>
8 #include <lttng-kernel-version.h>
99
1010 #ifndef _TRACE_SIGNAL_DEF
1111 #define _TRACE_SIGNAL_DEF
1212 #include <linux/signal.h>
1313 #include <linux/sched.h>
1414 #undef LTTNG_FIELDS_SIGINFO
15 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
15 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
1616 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
1717 #define LTTNG_FIELDS_SIGINFO(info) \
1818 ctf_integer(int, errno, \
2323 (info == SEND_SIG_NOINFO) ? \
2424 SI_USER : \
2525 ((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
26 #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
26 #else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) */
2727 #define LTTNG_FIELDS_SIGINFO(info) \
2828 ctf_integer(int, errno, \
2929 (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED || info == SEND_SIG_PRIV) ? \
3333 (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED) ? \
3434 SI_USER : \
3535 ((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
36 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
36 #endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) */
3737 #endif /* _TRACE_SIGNAL_DEF */
3838
3939 /**
4848 * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV
4949 * means that si_code is SI_KERNEL.
5050 */
51 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
51 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
5252 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
5353 LTTNG_TRACEPOINT_EVENT(signal_generate,
5454
6666 ctf_integer(int, result, result)
6767 )
6868 )
69 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
69 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
7070 LTTNG_TRACEPOINT_EVENT(signal_generate,
7171
7272 TP_PROTO(int sig, struct siginfo *info, struct task_struct *task,
113113 * This means, this can show which signals are actually delivered, but
114114 * matching generated signals and delivered signals may not be correct.
115115 */
116 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
116 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0) || \
117117 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
118118 LTTNG_TRACEPOINT_EVENT(signal_deliver,
119119
144144 )
145145 #endif
146146
147 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
147 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,4,0))
148148 LTTNG_TRACEPOINT_EVENT_CLASS(signal_queue_overflow,
149149
150150 TP_PROTO(int sig, int group, struct siginfo *info),
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/skbuff.h>
99 #include <linux/netdevice.h>
10 #include <linux/version.h>
10 #include <lttng-kernel-version.h>
1111
1212 /*
1313 * Tracepoint for free an sk_buff:
55 #define LTTNG_TRACE_SOCK_H
66
77 #include <probes/lttng-tracepoint-event.h>
8 #include <linux/version.h>
8 #include <lttng-kernel-version.h>
99 #include <net/sock.h>
1010
1111 LTTNG_TRACEPOINT_EVENT(sock_rcvqueue_full,
2121 )
2222 )
2323
24 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0))
24 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0))
2525
2626 LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
2727
4242 )
4343 )
4444
45 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
45 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
4646
4747 LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
4848
5959 )
6060 )
6161
62 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */
62 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0)) */
6363
6464 LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
6565
7676 )
7777 )
7878
79 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */
79 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0)) */
8080
8181 #endif /* LTTNG_TRACE_SOCK_H */
8282
1010 #define _TRACE_TIMER_DEF_
1111 #include <linux/hrtimer.h>
1212 #include <linux/timer.h>
13 #include <linux/version.h>
13 #include <lttng-kernel-version.h>
1414
1515 struct timer_list;
1616
1717 #endif /* _TRACE_TIMER_DEF_ */
1818
19 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
19 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
2020 #define lttng_ktime_get_tv64(kt) (kt)
21 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
21 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
2222 #define lttng_ktime_get_tv64(kt) ((kt).tv64)
23 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
23 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
2424
2525 LTTNG_TRACEPOINT_EVENT_CLASS(timer_class,
2626
4444 TP_ARGS(timer)
4545 )
4646
47 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) || \
47 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0) || \
4848 LTTNG_RHEL_KERNEL_RANGE(3,10,0,957,0,0, 3,11,0,0,0,0))
4949 /**
5050 * timer_start - called when the timer is started
6767 ctf_integer(unsigned int, flags, flags)
6868 )
6969 )
70 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
70 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
7171 /**
7272 * timer_start - called when the timer is started
7373 * @timer: pointer to struct timer_list
8686 ctf_integer(unsigned long, now, jiffies)
8787 )
8888 )
89 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
90
91 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
89 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
90
91 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
9292 /**
9393 * timer_expire_entry - called immediately before the timer callback
9494 * @timer: pointer to struct timer_list
183183 * hrtimer_start - called when the hrtimer is started
184184 * @timer: pointer to struct hrtimer
185185 */
186 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0) || \
186 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0) || \
187187 LTTNG_RT_KERNEL_RANGE(4,14,0,0, 4,15,0,0))
188188 LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
189189
293293 * zero, otherwise it is started
294294 * @expires: the itimers expiry time
295295 */
296 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
296 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
297297 LTTNG_TRACEPOINT_EVENT_MAP(itimer_state,
298298
299299 timer_itimer_state,
312312 ctf_integer(long, interval_nsec, value->it_interval.tv_nsec)
313313 )
314314 )
315 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
315 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
316316 LTTNG_TRACEPOINT_EVENT_MAP(itimer_state,
317317
318318 timer_itimer_state,
331331 ctf_integer(long, interval_usec, value->it_interval.tv_usec)
332332 )
333333 )
334 #else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
334 #else /* if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
335335 LTTNG_TRACEPOINT_EVENT_MAP(itimer_state,
336336
337337 timer_itimer_state,
350350 ctf_integer(long, interval_usec, value->it_interval.tv_usec)
351351 )
352352 )
353 #endif /* #else (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
353 #endif /* #else (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
354354
355355 /**
356356 * itimer_expire - called when itimer expires
358358 * @pid: pid of the process which owns the timer
359359 * @now: current time, used to calculate the latency of itimer
360360 */
361 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
361 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
362362 LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire,
363363
364364 timer_itimer_expire,
373373 ctf_integer(unsigned long long, now, now)
374374 )
375375 )
376 #else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
376 #else /* if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
377377 LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire,
378378
379379 timer_itimer_expire,
388388 ctf_integer(cputime_t, now, now)
389389 )
390390 )
391 #endif /* #else (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
391 #endif /* #else (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
392392
393393 #endif /* LTTNG_TRACE_TIMER_H */
394394
66
77 #include <probes/lttng-tracepoint-event.h>
88
9 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
9 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
1010 LTTNG_TRACEPOINT_EVENT_CLASS(v4l2_class,
1111
1212 TP_PROTO(int minor, struct v4l2_buffer *buf),
66
77 #include <probes/lttng-tracepoint-event.h>
88 #include <linux/workqueue.h>
9 #include <linux/version.h>
9 #include <lttng-kernel-version.h>
1010
1111 #ifndef _TRACE_WORKQUEUE_DEF_
1212 #define _TRACE_WORKQUEUE_DEF_
3939 */
4040 LTTNG_TRACEPOINT_EVENT(workqueue_queue_work,
4141
42 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
42 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
4343 TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq,
4444 struct work_struct *work),
4545
9191 )
9292 )
9393
94 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
94 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
9595 /**
9696 * workqueue_execute_end - called immediately after the workqueue callback
9797 * @work: pointer to struct work_struct
88 #include <linux/tracepoint.h>
99 #include <linux/backing-dev.h>
1010 #include <linux/writeback.h>
11 #include <linux/version.h>
11 #include <lttng-kernel-version.h>
1212
1313 #ifndef _TRACE_WRITEBACK_DEF_
1414 #define _TRACE_WRITEBACK_DEF_
15
16 /*
17 * Use the GPL-exported bdi_dev_name introduced in kernel 5.7. Do not use
18 * static inline bdi_dev_name in prior kernels because it uses the bdi_unknown_name
19 * symbol which is not exported to GPL modules.
20 */
21 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
22 static inline const char *lttng_bdi_dev_name(struct backing_dev_info *bdi)
23 {
24 return bdi_dev_name(bdi);
25 }
26 #else
27 static inline const char *lttng_bdi_dev_name(struct backing_dev_info *bdi)
28 {
29 if (!bdi || !bdi->dev)
30 return "(unknown)";
31 return dev_name(bdi->dev);
32 }
33 #endif
1534
1635 /*
1736 * Vanilla kernels before 4.0 do not implement inode_to_bdi
2140 * commit a212b105b07d75b48b1a166378282e8a77fbf53d which inlines
2241 * inode_to_bdi but not sb_is_blkdev_sb making it unusable by modules.
2342 */
24 #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0))
43 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,0,0))
2544 static inline struct backing_dev_info *lttng_inode_to_bdi(struct inode *inode)
2645 {
2746 struct super_block *sb;
4160 {
4261 return inode_to_bdi(inode);
4362 }
44 #endif /* #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)) */
45
46 #endif
47
48 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
63 #endif /* #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,0,0)) */
64
65 #endif
66
67 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
4968 #define show_inode_state(state) \
5069 __print_flags(state, "|", \
5170 {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
5978 {I_DIRTY_TIME, "I_DIRTY_TIME"}, \
6079 {I_REFERENCED, "I_REFERENCED"} \
6180 )
62 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
81 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0))
6382 #define show_inode_state(state) \
6483 __print_flags(state, "|", \
6584 {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
7493 {I_DIRTY_TIME_EXPIRED, "I_DIRTY_TIME_EXPIRED"}, \
7594 {I_REFERENCED, "I_REFERENCED"} \
7695 )
77 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
96 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0)) */
7897 #define show_inode_state(state) \
7998 __print_flags(state, "|", \
8099 {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
87106 {I_SYNC, "I_SYNC"}, \
88107 {I_REFERENCED, "I_REFERENCED"} \
89108 )
90 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
91
92 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
109 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0)) */
110
111 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0))
93112
94113 LTTNG_TRACEPOINT_EVENT(writeback_dirty_page,
95114 TP_PROTO(struct page *page, struct address_space *mapping),
96115 TP_ARGS(page, mapping),
97116 TP_FIELDS(
98 ctf_array_text(char, name,
99 mapping ? dev_name(lttng_inode_to_bdi(mapping->host)->dev) : "(unknown)", 32)
117 ctf_string(name, lttng_bdi_dev_name(mapping ? lttng_inode_to_bdi(mapping->host) : NULL))
100118 ctf_integer(unsigned long, ino, mapping ? mapping->host->i_ino : 0)
101119 ctf_integer(pgoff_t, index, page->index)
102120 )
107125 TP_ARGS(inode, flags),
108126 TP_FIELDS(
109127 /* may be called for files on pseudo FSes w/ unregistered bdi */
110 ctf_array_text(char, name,
111 lttng_inode_to_bdi(inode)->dev ?
112 dev_name(lttng_inode_to_bdi(inode)->dev) : "(unknown)", 32)
128 ctf_string(name, lttng_bdi_dev_name(lttng_inode_to_bdi(inode)))
113129 ctf_integer(unsigned long, ino, inode->i_ino)
114130 ctf_integer(unsigned long, state, inode->i_state)
115131 ctf_integer(unsigned long, flags, flags)
127143 TP_PROTO(struct inode *inode, struct writeback_control *wbc),
128144 TP_ARGS(inode, wbc),
129145 TP_FIELDS(
130 ctf_array_text(char, name,
131 dev_name(lttng_inode_to_bdi(inode)->dev), 32)
146 ctf_string(name, lttng_bdi_dev_name(lttng_inode_to_bdi(inode)))
132147 ctf_integer(unsigned long, ino, inode->i_ino)
133148 ctf_integer(int, sync_mode, wbc->sync_mode)
134149 )
141156 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode_start)
142157 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode)
143158
144 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
159 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
145160
146161 LTTNG_TRACEPOINT_EVENT(writeback_dirty_page,
147162 TP_PROTO(struct page *page, struct address_space *mapping),
148163 TP_ARGS(page, mapping),
149164 TP_FIELDS(
150 ctf_array_text(char, name,
151 mapping ? dev_name(mapping->backing_dev_info->dev) : "(unknown)", 32)
165 ctf_string(name, lttng_bdi_dev_name(mapping ? mapping->backing_dev_info : NULL))
152166 ctf_integer(unsigned long, ino, mapping ? mapping->host->i_ino : 0)
153167 ctf_integer(pgoff_t, index, page->index)
154168 )
159173 TP_ARGS(inode, flags),
160174 TP_FIELDS(
161175 /* may be called for files on pseudo FSes w/ unregistered bdi */
162 ctf_array_text(char, name,
163 inode->i_mapping->backing_dev_info->dev ?
164 dev_name(inode->i_mapping->backing_dev_info->dev)
165 : "(unknown)", 32)
176 ctf_string(name, lttng_bdi_dev_name(inode->i_mapping->backing_dev_info))
166177 ctf_integer(unsigned long, ino, inode->i_ino)
167178 ctf_integer(unsigned long, flags, flags)
168179 )
178189 TP_PROTO(struct inode *inode, struct writeback_control *wbc),
179190 TP_ARGS(inode, wbc),
180191 TP_FIELDS(
181 ctf_array_text(char, name,
182 dev_name(inode->i_mapping->backing_dev_info->dev), 32)
192 ctf_string(name, lttng_bdi_dev_name(inode->i_mapping->backing_dev_info))
183193 ctf_integer(unsigned long, ino, inode->i_ino)
184194 ctf_integer(int, sync_mode, wbc->sync_mode)
185195 )
192202 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode_start)
193203 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode)
194204
195 #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) */
196
197 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
205 #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) */
206
207 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
198208
199209 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
200210 TP_PROTO(struct bdi_writeback *wb, struct wb_writeback_work *work),
201211 TP_ARGS(wb, work),
202212 TP_FIELDS(
203 ctf_array_text(char, name, wb->bdi->dev ? dev_name(wb->bdi->dev) :
204 "(unknown)", 32)
205 )
206 )
207
208 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
213 ctf_string(name, lttng_bdi_dev_name(wb->bdi))
214 )
215 )
216
217 #else
209218
210219 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
211220 TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work),
212221 TP_ARGS(bdi, work),
213222 TP_FIELDS(
214 ctf_array_text(char, name, bdi->dev ? dev_name(bdi->dev) :
215 "(unknown)", 32)
216 )
217 )
218
219 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
220
221 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
222 TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work),
223 TP_ARGS(bdi, work),
224 TP_FIELDS(
225 ctf_array_text(char, name,
226 dev_name(bdi->dev ? bdi->dev :
227 default_backing_dev_info.dev), 32)
228 )
229 )
230
231 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) */
232
233 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
223 ctf_string(name, lttng_bdi_dev_name(bdi))
224 )
225 )
226
227 #endif /* #else if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
228
229 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
234230
235231 #define LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(name) \
236232 LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_work_class, name, \
237233 TP_PROTO(struct bdi_writeback *wb, struct wb_writeback_work *work), \
238234 TP_ARGS(wb, work))
239235
240 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
236 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
241237
242238 #define LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(name) \
243239 LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_work_class, name, \
244240 TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), \
245241 TP_ARGS(bdi, work))
246242
247 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
243 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
248244
249245 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_nothread)
250246 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_queue)
251247 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_exec)
252 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
248 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
253249 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_start)
254250 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_written)
255251 LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_wait)
263259 )
264260 )
265261
266 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
262 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
267263
268264 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_class,
269265 TP_PROTO(struct bdi_writeback *wb),
270266 TP_ARGS(wb),
271267 TP_FIELDS(
272 ctf_array_text(char, name,
273 dev_name(wb->bdi->dev), 32)
268 ctf_string(name, lttng_bdi_dev_name(wb->bdi))
274269 )
275270 )
276271
289284 TP_PROTO(struct backing_dev_info *bdi),
290285 TP_ARGS(bdi),
291286 TP_FIELDS(
292 ctf_array_text(char, name,
293 dev_name(bdi->dev), 32)
294 )
295 )
296
297 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
287 ctf_string(name, lttng_bdi_dev_name(bdi))
288 )
289 )
290
291 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
298292
299293 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_class,
300294 TP_PROTO(struct backing_dev_info *bdi),
301295 TP_ARGS(bdi),
302296 TP_FIELDS(
303 ctf_array_text(char, name,
304 dev_name(bdi->dev), 32)
297 ctf_string(name, lttng_bdi_dev_name(bdi))
305298 )
306299 )
307300
318311
319312 DEFINE_WRITEBACK_EVENT(writeback_bdi_register)
320313
321 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
314 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
322315
323316 DEFINE_WRITEBACK_EVENT(writeback_nowork)
324317 DEFINE_WRITEBACK_EVENT(writeback_wake_background)
340333 TP_ARGS(bdi, written),
341334
342335 TP_FIELDS(
343 ctf_array_text(char, name, dev_name(bdi->dev), 32)
336 ctf_string(name, lttng_bdi_dev_name(bdi))
344337 ctf_integer(int, written, written)
345338 )
346339 )
350343 TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi),
351344 TP_ARGS(wbc, bdi),
352345 TP_FIELDS(
353 ctf_array_text(char, name, dev_name(bdi->dev), 32)
346 ctf_string(name, lttng_bdi_dev_name(bdi))
354347 ctf_integer(long, nr_to_write, wbc->nr_to_write)
355348 ctf_integer(long, pages_skipped, wbc->pages_skipped)
356349 ctf_integer(int, sync_mode, wbc->sync_mode)
358351 ctf_integer(int, for_background, wbc->for_background)
359352 ctf_integer(int, for_reclaim, wbc->for_reclaim)
360353 ctf_integer(int, range_cyclic, wbc->range_cyclic)
361 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
354 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,1,0))
362355 ctf_integer(int, more_io, wbc->more_io)
363356 ctf_integer(unsigned long, older_than_this,
364357 wbc->older_than_this ? *wbc->older_than_this : 0)
373366 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(writeback_wbc_class, name, map, \
374367 TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), \
375368 TP_ARGS(wbc, bdi))
376 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
369 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,1,0))
377370 LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writeback_start, writeback_wbc_writeback_start)
378371 LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writeback_written, writeback_wbc_writeback_written)
379372 LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writeback_wait, writeback_wbc_writeback_wait)
383376 #endif
384377 LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage)
385378
386 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
379 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0) || \
387380 LTTNG_KERNEL_RANGE(5,8,6, 5,9,0) || \
388381 LTTNG_KERNEL_RANGE(5,4,62, 5,5,0) || \
389382 LTTNG_KERNEL_RANGE(4,19,143, 4,20,0) || \
398391 int moved),
399392 TP_ARGS(wb, work, dirtied_before, moved),
400393 TP_FIELDS(
401 ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
394 ctf_string(name, lttng_bdi_dev_name(wb->bdi))
402395 ctf_integer(unsigned long, older, dirtied_before)
403396 ctf_integer(int, moved, moved)
404397 )
405398 )
406 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
399 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
407400 LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
408401 TP_PROTO(struct bdi_writeback *wb,
409402 struct wb_writeback_work *work,
410403 int moved),
411404 TP_ARGS(wb, work, moved),
412405 TP_FIELDS(
413 ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
406 ctf_string(name, lttng_bdi_dev_name(wb->bdi))
414407 ctf_integer(int, moved, moved)
415408 )
416409 )
417 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
410 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
418411 LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
419412 TP_PROTO(struct bdi_writeback *wb,
420413 unsigned long *older_than_this,
421414 int moved),
422415 TP_ARGS(wb, older_than_this, moved),
423416 TP_FIELDS(
424 ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
417 ctf_string(name, lttng_bdi_dev_name(wb->bdi))
425418 ctf_integer(unsigned long, older,
426419 older_than_this ? *older_than_this : 0)
427420 ctf_integer(long, age,
433426 )
434427 #endif
435428
436 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
429 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0))
437430 LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
438431
439432 writeback_global_dirty_state,
456449 ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
457450 )
458451 )
459 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
452 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
460453 LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
461454
462455 writeback_global_dirty_state,
480473 ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
481474 )
482475 )
483 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
476 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
484477 LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
485478
486479 writeback_global_dirty_state,
506499 )
507500 #endif
508501
509 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
502 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0))
510503
511504 #define KBps(x) ((x) << (PAGE_SHIFT - 10))
512505
513 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
506 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
514507
515508 LTTNG_TRACEPOINT_EVENT_MAP(bdi_dirty_ratelimit,
516509
523516 TP_ARGS(wb, dirty_rate, task_ratelimit),
524517
525518 TP_FIELDS(
526 ctf_array_text(char, bdi, dev_name(wb->bdi->dev), 32)
519 ctf_string(bdi, lttng_bdi_dev_name(wb->bdi))
527520 ctf_integer(unsigned long, write_bw, KBps(wb->bdi->wb.write_bandwidth))
528521 ctf_integer(unsigned long, avg_write_bw, KBps(wb->bdi->wb.avg_write_bandwidth))
529522 ctf_integer(unsigned long, dirty_rate, KBps(dirty_rate))
534527 )
535528 )
536529
537 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
530 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0))
538531
539532 LTTNG_TRACEPOINT_EVENT_MAP(bdi_dirty_ratelimit,
540533
547540 TP_ARGS(bdi, dirty_rate, task_ratelimit),
548541
549542 TP_FIELDS(
550 ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
543 ctf_string(bdi, lttng_bdi_dev_name(bdi))
551544 ctf_integer(unsigned long, write_bw, KBps(bdi->wb.write_bandwidth))
552545 ctf_integer(unsigned long, avg_write_bw, KBps(bdi->wb.avg_write_bandwidth))
553546 ctf_integer(unsigned long, dirty_rate, KBps(dirty_rate))
558551 )
559552 )
560553
561 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
554 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
562555
563556 LTTNG_TRACEPOINT_EVENT_MAP(bdi_dirty_ratelimit,
564557
571564 TP_ARGS(bdi, dirty_rate, task_ratelimit),
572565
573566 TP_FIELDS(
574 ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
567 ctf_string(bdi, lttng_bdi_dev_name(bdi))
575568 ctf_integer(unsigned long, write_bw, KBps(bdi->write_bandwidth))
576569 ctf_integer(unsigned long, avg_write_bw, KBps(bdi->avg_write_bandwidth))
577570 ctf_integer(unsigned long, dirty_rate, KBps(dirty_rate))
582575 )
583576 )
584577
585 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
586
587 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0))
578 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
579
580 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0))
588581
589582 LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_pages,
590583
609602 ),
610603
611604 TP_FIELDS(
612 ctf_array_text(char, bdi, dev_name(wb->bdi->dev), 32)
605 ctf_string(bdi, lttng_bdi_dev_name(wb->bdi))
613606 ctf_integer(unsigned long, limit, global_dirty_limit)
614607 ctf_integer(unsigned long, setpoint,
615608 (global_dirty_limit + (thresh + bg_thresh) / 2) / 2)
636629 )
637630 )
638631
639 #else /* #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
632 #else /* #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
640633
641634 LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_pages,
642635
651644 unsigned long dirty_ratelimit,
652645 unsigned long task_ratelimit,
653646 unsigned long dirtied,
654 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
647 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
655648 unsigned long period,
656649 #endif
657650 long pause,
659652
660653 TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty,
661654 dirty_ratelimit, task_ratelimit,
662 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
655 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
663656 dirtied, period, pause, start_time
664657 #else
665658 dirtied, pause, start_time
667660 ),
668661
669662 TP_FIELDS(
670 ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
663 ctf_string(bdi, lttng_bdi_dev_name(bdi))
671664 ctf_integer(unsigned long, limit, global_dirty_limit)
672665 ctf_integer(unsigned long, setpoint,
673666 (global_dirty_limit + (thresh + bg_thresh) / 2) / 2)
686679 ctf_integer(unsigned long, paused,
687680 (jiffies - start_time) * 1000 / HZ)
688681 ctf_integer(long, pause, pause * 1000 / HZ)
689 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
682 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
690683 ctf_integer(unsigned long, period,
691684 period * 1000 / HZ)
692685 ctf_integer(long, think,
695688 #endif
696689 )
697690 )
698 #endif /* #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)) */
699
700 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) */
701
702 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
691 #endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,3,0)) */
692
693 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,2,0)) */
694
695 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
703696 LTTNG_TRACEPOINT_EVENT(writeback_sb_inodes_requeue,
704697
705698 TP_PROTO(struct inode *inode),
706699 TP_ARGS(inode),
707700
708701 TP_FIELDS(
709 ctf_array_text(char, name,
710 dev_name(lttng_inode_to_bdi(inode)->dev), 32)
702 ctf_string(name, lttng_bdi_dev_name(lttng_inode_to_bdi(inode)))
711703 ctf_integer(unsigned long, ino, inode->i_ino)
712704 ctf_integer(unsigned long, state, inode->i_state)
713705 ctf_integer(unsigned long, dirtied_when, inode->dirtied_when)
741733 TP_ARGS(usec_timeout, usec_delayed)
742734 )
743735
744 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
736 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
745737 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_single_inode_template,
746738
747739 TP_PROTO(struct inode *inode,
752744 TP_ARGS(inode, wbc, nr_to_write),
753745
754746 TP_FIELDS(
755 ctf_array_text(char, name,
756 dev_name(lttng_inode_to_bdi(inode)->dev), 32)
747 ctf_string(name, lttng_bdi_dev_name(lttng_inode_to_bdi(inode)))
757748 ctf_integer(unsigned long, ino, inode->i_ino)
758749 ctf_integer(unsigned long, state, inode->i_state)
759750 ctf_integer(unsigned long, dirtied_when, inode->dirtied_when)
765756 )
766757 )
767758
768 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
759 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
769760 LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_single_inode_template, writeback_single_inode_requeue,
770761 TP_PROTO(struct inode *inode,
771762 struct writeback_control *wbc,
8585 void *priv; /* Client-specific information */
8686 void *priv_ops; /* Client-specific ops pointer */
8787 void (*release_priv_ops)(void *priv_ops);
88 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
88 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
8989 struct lttng_cpuhp_node cpuhp_prepare; /* CPU hotplug prepare */
9090 #else
9191 struct notifier_block cpu_hp_notifier; /* CPU hotplug notifier */
5252
5353 unsigned long switch_timer_interval; /* Buffer flush (jiffies) */
5454 unsigned long read_timer_interval; /* Reader wakeup (jiffies) */
55 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
55 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
5656 struct lttng_cpuhp_node cpuhp_prepare;
5757 struct lttng_cpuhp_node cpuhp_online;
5858 struct lttng_cpuhp_node cpuhp_iter_online;
258258 chanb->start_tsc = config->cb.ring_buffer_clock_read(chan);
259259 }
260260
261 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
261 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
262262
263263 /*
264264 * No need to implement a "dead" callback to do a buffer switch here,
290290 }
291291 EXPORT_SYMBOL_GPL(lttng_cpuhp_rb_backend_prepare);
292292
293 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
293 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
294294
295295 #ifdef CONFIG_HOTPLUG_CPU
296296
340340
341341 #endif
342342
343 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
343 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
344344
345345 /**
346346 * channel_backend_init - initialize a channel backend
418418 if (!chanb->buf)
419419 goto free_cpumask;
420420
421 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
421 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
422422 chanb->cpuhp_prepare.component = LTTNG_RING_BUFFER_BACKEND;
423423 ret = cpuhp_state_add_instance(lttng_rb_hp_prepare,
424424 &chanb->cpuhp_prepare.node);
425425 if (ret)
426426 goto free_bufs;
427 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
427 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
428428
429429 {
430430 /*
461461 }
462462 #endif
463463 }
464 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
464 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
465465 } else {
466466 chanb->buf = kzalloc(sizeof(struct lib_ring_buffer), GFP_KERNEL);
467467 if (!chanb->buf)
476476
477477 free_bufs:
478478 if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
479 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
479 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
480480 /*
481481 * Teardown of lttng_rb_hp_prepare instance
482482 * on "add" error is handled within cpu hotplug,
483483 * no teardown to do from the caller.
484484 */
485 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
485 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
486486 #ifdef CONFIG_HOTPLUG_CPU
487487 put_online_cpus();
488488 unregister_hotcpu_notifier(&chanb->cpu_hp_notifier);
489489 #endif
490 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
490 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
491491 for_each_possible_cpu(i) {
492492 struct lib_ring_buffer *buf =
493493 per_cpu_ptr(chanb->buf, i);
516516 const struct lib_ring_buffer_config *config = &chanb->config;
517517
518518 if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
519 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
519 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
520520 int ret;
521521
522522 ret = cpuhp_state_remove_instance(lttng_rb_hp_prepare,
523523 &chanb->cpuhp_prepare.node);
524524 WARN_ON(ret);
525 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
525 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
526526 unregister_hotcpu_notifier(&chanb->cpu_hp_notifier);
527 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
527 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
528528 }
529529 }
530530
452452 buf->read_timer_enabled = 0;
453453 }
454454
455 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
455 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
456456
457457 enum cpuhp_state lttng_rb_hp_prepare;
458458 enum cpuhp_state lttng_rb_hp_online;
523523 }
524524 EXPORT_SYMBOL_GPL(lttng_cpuhp_rb_frontend_offline);
525525
526 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
526 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
527527
528528 #ifdef CONFIG_HOTPLUG_CPU
529529
585585
586586 #endif
587587
588 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
588 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
589589
590590 #if defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER)
591591 /*
691691 * concurrency.
692692 */
693693 #endif /* CONFIG_NO_HZ */
694 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
694 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
695695 {
696696 int ret;
697697
702702 &chan->cpuhp_prepare.node);
703703 WARN_ON(ret);
704704 }
705 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
705 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
706706 {
707707 int cpu;
708708
726726 }
727727 #endif
728728 }
729 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
729 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
730730 } else {
731731 struct lib_ring_buffer *buf = chan->backend.buf;
732732
855855 init_waitqueue_head(&chan->hp_wait);
856856
857857 if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
858 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
858 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
859859 chan->cpuhp_prepare.component = LTTNG_RING_BUFFER_FRONTEND;
860860 ret = cpuhp_state_add_instance_nocalls(lttng_rb_hp_prepare,
861861 &chan->cpuhp_prepare.node);
867867 &chan->cpuhp_online.node);
868868 if (ret)
869869 goto cpuhp_online_error;
870 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
870 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
871871 {
872872 int cpu;
873873 /*
903903 }
904904 #endif
905905 }
906 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
906 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
907907
908908 #if defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER)
909909 /* Only benefit from NO_HZ idle with per-cpu buffers for now. */
923923
924924 return chan;
925925
926 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
926 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
927927 cpuhp_online_error:
928928 ret = cpuhp_state_remove_instance_nocalls(lttng_rb_hp_prepare,
929929 &chan->cpuhp_prepare.node);
930930 WARN_ON(ret);
931931 cpuhp_prepare_error:
932 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
932 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
933933 error_free_backend:
934934 channel_backend_free(&chan->backend);
935935 error:
334334 list_add(&buf->iter.empty_node, &chan->iter.empty_head);
335335 }
336336
337 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
337 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
338338
339339 int lttng_cpuhp_rb_iter_online(unsigned int cpu,
340340 struct lttng_cpuhp_node *node)
351351 }
352352 EXPORT_SYMBOL_GPL(lttng_cpuhp_rb_iter_online);
353353
354 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
354 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
355355
356356 #ifdef CONFIG_HOTPLUG_CPU
357357 static
383383 }
384384 #endif
385385
386 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
386 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
387387
388388 int channel_iterator_init(struct channel *chan)
389389 {
400400 if (ret)
401401 return ret;
402402
403 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
403 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
404404 chan->cpuhp_iter_online.component = LTTNG_RING_BUFFER_ITER;
405405 ret = cpuhp_state_add_instance(lttng_rb_hp_online,
406406 &chan->cpuhp_iter_online.node);
407407 if (ret)
408408 return ret;
409 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
409 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
410410 {
411411 int cpu;
412412
435435 }
436436 #endif
437437 }
438 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
438 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
439439 } else {
440440 buf = channel_get_ring_buffer(config, chan, 0);
441441 lib_ring_buffer_iterator_init(chan, buf);
448448 const struct lib_ring_buffer_config *config = &chan->backend.config;
449449
450450 if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
451 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
451 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
452452 {
453453 int ret;
454454
456456 &chan->cpuhp_iter_online.node);
457457 WARN_ON(ret);
458458 }
459 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
459 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
460460 chan->hp_iter_enable = 0;
461461 unregister_cpu_notifier(&chan->hp_iter_notifier);
462 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
462 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
463463 }
464464 }
465465
1919 /*
2020 * fault() vm_op implementation for ring buffer file mapping.
2121 */
22 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
22 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0))
2323 static vm_fault_t lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fault *vmf)
2424 #else
2525 static int lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fault *vmf)
5656 return 0;
5757 }
5858
59 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
59 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0))
6060 static vm_fault_t lib_ring_buffer_fault(struct vm_fault *vmf)
6161 {
6262 struct vm_area_struct *vma = vmf->vma;
6363 return lib_ring_buffer_fault_compat(vma, vmf);
6464 }
65 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
65 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
6666 static int lib_ring_buffer_fault(struct vm_fault *vmf)
6767 {
6868 struct vm_area_struct *vma = vmf->vma;
6969 return lib_ring_buffer_fault_compat(vma, vmf);
7070 }
71 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
71 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
7272 static int lib_ring_buffer_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
7373 {
7474 return lib_ring_buffer_fault_compat(vma, vmf);
7575 }
76 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
76 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
7777
7878 /*
7979 * vm_ops for ring buffer file mappings.
1111
1212 #include <linux/module.h>
1313 #include <linux/fs.h>
14 #include <linux/version.h>
14 #include <lttng-kernel-version.h>
1515
1616 #include <wrapper/splice.h>
1717 #include <wrapper/ringbuffer/backend.h>
4141 __free_page(pbuf->page);
4242 }
4343
44 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
44 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0))
4545 static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {
4646 .release = lib_ring_buffer_pipe_buf_release,
4747 .try_steal = generic_pipe_buf_try_steal,
4848 .get = generic_pipe_buf_get
4949 };
50 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
50 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0))
5151 static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {
5252 .confirm = generic_pipe_buf_confirm,
5353 .release = lib_ring_buffer_pipe_buf_release,
5454 .steal = generic_pipe_buf_steal,
5555 .get = generic_pipe_buf_get
5656 };
57 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
57 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0))
5858 static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {
5959 .can_merge = 0,
6060 .confirm = generic_pipe_buf_confirm,
102102 .pages = pages,
103103 .nr_pages = 0,
104104 .partial = partial,
105 #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0))
105 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,12,0))
106106 .flags = flags,
107107 #endif
108108 .ops = &ring_buffer_pipe_buf_ops,
5151
5252 static struct proc_dir_entry *lttng_proc_dentry;
5353
54 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
54 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
5555 static const struct proc_ops lttng_proc_ops;
5656 #else
5757 static const struct file_operations lttng_proc_ops;
397397 }
398398 }
399399
400 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
400 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
401401 static const struct proc_ops lttng_proc_ops = {
402402 .proc_ioctl = lttng_ioctl,
403403 #ifdef CONFIG_COMPAT
1919 #include <lttng-tracer.h>
2020
2121 #if defined(CONFIG_CGROUPS) && \
22 ((LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) || \
22 ((LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0)) || \
2323 LTTNG_UBUNTU_KERNEL_RANGE(4,4,0,0, 4,5,0,0))
2424
2525 static
1919 #include <lttng-tracer.h>
2020
2121 #if defined(CONFIG_IPC_NS) && \
22 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
22 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
2323
2424 static
2525 size_t ipc_ns_get_size(size_t offset)
1919 #include <lttng-tracer.h>
2020
2121 #if !defined(LTTNG_MNT_NS_MISSING_HEADER) && \
22 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
22 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
2323
2424 #include <../fs/mount.h>
2525
2020 #include <lttng-tracer.h>
2121
2222 #if defined(CONFIG_NET_NS) && \
23 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
23 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
2424
2525 static
2626 size_t net_ns_get_size(size_t offset)
5858 chan->ops->event_write(ctx, &value, sizeof(value));
5959 }
6060
61 #if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
61 #if defined(CONFIG_PERF_EVENTS) && (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
6262 static
6363 void overflow_callback(struct perf_event *event,
6464 struct perf_sample_data *data,
7979 {
8080 struct perf_event **events = field->u.perf_counter->e;
8181
82 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
82 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
8383 {
8484 int ret;
8585
9090 &field->u.perf_counter->cpuhp_prepare.node);
9191 WARN_ON(ret);
9292 }
93 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
93 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
9494 {
9595 int cpu;
9696
102102 unregister_cpu_notifier(&field->u.perf_counter->nb);
103103 #endif
104104 }
105 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
105 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
106106 kfree(field->event_field.name);
107107 kfree(field->u.perf_counter->attr);
108108 lttng_kvfree(events);
109109 kfree(field->u.perf_counter);
110110 }
111111
112 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
112 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
113113
114114 int lttng_cpuhp_perf_counter_online(unsigned int cpu,
115115 struct lttng_cpuhp_node *node)
150150 return 0;
151151 }
152152
153 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
153 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
154154
155155 #ifdef CONFIG_HOTPLUG_CPU
156156
209209
210210 #endif
211211
212 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
212 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
213213
214214 int lttng_add_perf_counter_to_ctx(uint32_t type,
215215 uint64_t config,
263263 goto find_error;
264264 }
265265
266 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
266 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
267267
268268 perf_field->cpuhp_prepare.component = LTTNG_CONTEXT_PERF_COUNTERS;
269269 ret = cpuhp_state_add_instance(lttng_hp_prepare,
277277 if (ret)
278278 goto cpuhp_online_error;
279279
280 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
280 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
281281 {
282282 int cpu;
283283
303303 put_online_cpus();
304304 perf_field->hp_enable = 1;
305305 }
306 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
306 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
307307
308308 field->destroy = lttng_destroy_perf_counter_field;
309309
323323 wrapper_vmalloc_sync_mappings();
324324 return 0;
325325
326 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
326 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
327327 cpuhp_online_error:
328328 {
329329 int remove_ret;
333333 WARN_ON(remove_ret);
334334 }
335335 cpuhp_prepare_error:
336 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
336 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
337337 counter_busy:
338338 counter_error:
339339 {
348348 unregister_cpu_notifier(&perf_field->nb);
349349 #endif
350350 }
351 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
351 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
352352 find_error:
353353 lttng_remove_context_field(ctx, field);
354354 append_context_error:
1919 #include <lttng-tracer.h>
2020
2121 #if defined(CONFIG_PID_NS) && \
22 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
22 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
2323
2424 static
2525 size_t pid_ns_get_size(size_t offset)
1919 #include <lttng-tracer.h>
2020
2121 #if defined(CONFIG_USER_NS) && \
22 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
22 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
2323
2424 static
2525 size_t user_ns_get_size(size_t offset)
1919 #include <lttng-tracer.h>
2020
2121 #if defined(CONFIG_UTS_NS) && \
22 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
22 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
2323
2424 static
2525 size_t uts_ns_get_size(size_t offset)
99
1010 struct lttng_cpuhp_node;
1111
12 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
12 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
1313
1414 #include <linux/cpuhotplug.h>
1515
7676
7777 void synchronize_trace(void)
7878 {
79 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
79 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0))
8080 synchronize_rcu();
8181 #else
8282 synchronize_sched();
8383 #endif
8484
85 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
85 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
8686 #ifdef CONFIG_PREEMPT_RT_FULL
8787 synchronize_rcu();
8888 #endif
89 #else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */
89 #else /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0)) */
9090 #ifdef CONFIG_PREEMPT_RT
9191 synchronize_rcu();
9292 #endif
93 #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */
93 #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0)) */
9494 }
9595
9696 void lttng_lock_sessions(void)
29072907 }
29082908 EXPORT_SYMBOL_GPL(lttng_transport_unregister);
29092909
2910 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
2910 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
29112911
29122912 enum cpuhp_state lttng_hp_prepare;
29132913 enum cpuhp_state lttng_hp_online;
30233023 cpuhp_remove_multi_state(lttng_hp_prepare);
30243024 }
30253025
3026 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
3026 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
30273027 static int lttng_init_cpu_hotplug(void)
30283028 {
30293029 return 0;
30313031 static void lttng_exit_cpu_hotplug(void)
30323032 {
30333033 }
3034 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */
3034 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
30353035
30363036
30373037 static int __init lttng_events_init(void)
99 #ifndef _LTTNG_EVENTS_H
1010 #define _LTTNG_EVENTS_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <linux/list.h>
1414 #include <linux/kprobes.h>
1515 #include <linux/kref.h>
175175 * lttng_ctx_field because cpu hotplug needs fixed-location addresses.
176176 */
177177 struct lttng_perf_counter_field {
178 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
178 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
179179 struct lttng_cpuhp_node cpuhp_prepare;
180180 struct lttng_cpuhp_node cpuhp_online;
181181 #else
764764 int lttng_add_callstack_to_ctx(struct lttng_ctx **ctx, int type);
765765
766766 #if defined(CONFIG_CGROUPS) && \
767 ((LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) || \
767 ((LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0)) || \
768768 LTTNG_UBUNTU_KERNEL_RANGE(4,4,0,0, 4,5,0,0))
769769 int lttng_add_cgroup_ns_to_ctx(struct lttng_ctx **ctx);
770770 #else
776776 #endif
777777
778778 #if defined(CONFIG_IPC_NS) && \
779 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
779 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
780780 int lttng_add_ipc_ns_to_ctx(struct lttng_ctx **ctx);
781781 #else
782782 static inline
787787 #endif
788788
789789 #if !defined(LTTNG_MNT_NS_MISSING_HEADER) && \
790 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
790 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
791791 int lttng_add_mnt_ns_to_ctx(struct lttng_ctx **ctx);
792792 #else
793793 static inline
798798 #endif
799799
800800 #if defined(CONFIG_NET_NS) && \
801 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
801 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
802802 int lttng_add_net_ns_to_ctx(struct lttng_ctx **ctx);
803803 #else
804804 static inline
809809 #endif
810810
811811 #if defined(CONFIG_PID_NS) && \
812 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
812 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
813813 int lttng_add_pid_ns_to_ctx(struct lttng_ctx **ctx);
814814 #else
815815 static inline
820820 #endif
821821
822822 #if defined(CONFIG_USER_NS) && \
823 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
823 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
824824 int lttng_add_user_ns_to_ctx(struct lttng_ctx **ctx);
825825 #else
826826 static inline
831831 #endif
832832
833833 #if defined(CONFIG_UTS_NS) && \
834 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
834 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
835835 int lttng_add_uts_ns_to_ctx(struct lttng_ctx **ctx);
836836 #else
837837 static inline
11 *
22 * lttng-kernel-version.h
33 *
4 * Contains helpers to check more complex kernel version conditions.
4 * Contains helpers to check kernel version conditions.
55 *
66 * Copyright (C) 2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
77 */
1313 #include <generated/utsrelease.h>
1414
1515 /*
16 * The following defines are extracted from the toplevel Linux Makefile and
17 * passed on the command line -with '-D'.
18 */
19
20 #ifndef LTTNG_LINUX_MAJOR
21 #define LTTNG_LINUX_MAJOR 0
22 #endif
23
24 #ifndef LTTNG_LINUX_MINOR
25 #define LTTNG_LINUX_MINOR 0
26 #endif
27
28 #ifndef LTTNG_LINUX_PATCH
29 #define LTTNG_LINUX_PATCH 0
30 #endif
31
32 /*
33 * Some stable releases have overflowed the 8bits allocated to the sublevel in
34 * the version code. To determine if the current kernel is affected, use the
35 * sublevel version from the Makefile. This is currently true for the 4.4.256
36 * and 4.9.256 stable releases.
37 *
38 * When the sublevel has overflowed, use the values from the Makefile instead
39 * of LINUX_VERSION_CODE from the kernel headers and allocate 16bits.
40 * Otherwise, keep using the version code from the headers to minimise the
41 * behavior change and avoid regressions.
42 *
43 * Cast the result to uint64_t to prevent overflowing when we append distro
44 * specific version information.
45 */
46 #if (LTTNG_LINUX_PATCH >= 256)
47
48 #define LTTNG_KERNEL_VERSION(a, b, c) \
49 ((((a) << 24) + ((b) << 16) + (c)) * 1ULL)
50
51 #define LTTNG_LINUX_VERSION_CODE \
52 LTTNG_KERNEL_VERSION(LTTNG_LINUX_MAJOR, LTTNG_LINUX_MINOR, LTTNG_LINUX_PATCH)
53
54 #else
55
56 #define LTTNG_KERNEL_VERSION(a, b, c) (KERNEL_VERSION(a, b, c) * 1ULL)
57 #define LTTNG_LINUX_VERSION_CODE (LINUX_VERSION_CODE * 1ULL)
58
59 #endif
60
61 /*
1662 * This macro checks if the kernel version is between the two specified
1763 * versions (lower limit inclusive, upper limit exclusive).
1864 */
1965 #define LTTNG_KERNEL_RANGE(a_low, b_low, c_low, a_high, b_high, c_high) \
20 (LINUX_VERSION_CODE >= KERNEL_VERSION(a_low, b_low, c_low) && \
21 LINUX_VERSION_CODE < KERNEL_VERSION(a_high, b_high, c_high))
66 (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(a_low, b_low, c_low) && \
67 LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(a_high, b_high, c_high))
2268
2369 /* Ubuntu */
2470
2571 #define LTTNG_UBUNTU_KERNEL_VERSION(a, b, c, d) \
26 (((a) << 24) + ((b) << 16) + ((c) << 8) + (d))
72 (((LTTNG_KERNEL_VERSION(a, b, c)) << 16) + (d))
2773
2874 #ifdef UTS_UBUNTU_RELEASE_ABI
2975 #define LTTNG_UBUNTU_VERSION_CODE \
30 ((LINUX_VERSION_CODE << 8) + UTS_UBUNTU_RELEASE_ABI)
76 ((LTTNG_LINUX_VERSION_CODE << 16) + UTS_UBUNTU_RELEASE_ABI)
3177 #else
3278 #define LTTNG_UBUNTU_VERSION_CODE 0
3379 #endif
4288 /* Debian */
4389
4490 #define LTTNG_DEBIAN_KERNEL_VERSION(a, b, c, d, e, f) \
45 (((((a) << 16) + ((b) << 8) + (c)) * 1000000ULL) + ((d) * 10000) + ((e) * 100) + (f))
91 (((LTTNG_KERNEL_VERSION(a, b, c)) * 1000000ULL) + ((d) * 10000) + ((e) * 100) + (f))
4692
4793 #ifdef DEBIAN_API_VERSION
4894 #define LTTNG_DEBIAN_VERSION_CODE \
49 ((LINUX_VERSION_CODE * 1000000ULL) + DEBIAN_API_VERSION)
95 ((LTTNG_LINUX_VERSION_CODE * 1000000ULL) + DEBIAN_API_VERSION)
5096 #else
5197 #define LTTNG_DEBIAN_VERSION_CODE 0
5298 #endif
59105 LTTNG_DEBIAN_KERNEL_VERSION(a_high, b_high, c_high, d_high, e_high, f_high))
60106
61107 #define LTTNG_RHEL_KERNEL_VERSION(a, b, c, d, e, f) \
62 (((((a) << 16) + ((b) << 8) + (c)) * 10000000ULL) + ((d) * 10000) + ((e) * 100) + (f))
108 (((LTTNG_KERNEL_VERSION(a, b, c)) * 100000000ULL) + ((d) * 10000) + ((e) * 100) + (f))
63109
64110 /* RHEL */
65111
66112 #ifdef RHEL_API_VERSION
67113 #define LTTNG_RHEL_VERSION_CODE \
68 ((LINUX_VERSION_CODE * 10000000ULL) + RHEL_API_VERSION)
114 ((LTTNG_LINUX_VERSION_CODE * 100000000ULL) + RHEL_API_VERSION)
69115 #else
70116 #define LTTNG_RHEL_VERSION_CODE 0
71117 #endif
80126 /* SUSE Linux enterprise */
81127
82128 #define LTTNG_SLE_KERNEL_VERSION(a, b, c, d, e, f) \
83 (((((a) << 16) + ((b) << 8) + (c)) * 10000000ULL) + ((d) * 10000) + ((e) * 100) + (f))
129 (((LTTNG_KERNEL_VERSION(a, b, c)) * 100000000ULL) + ((d) * 100000) + ((e) * 100) + (f))
84130
85131 #ifdef SLE_API_VERSION
86132 #define LTTNG_SLE_VERSION_CODE \
87 ((LINUX_VERSION_CODE * 10000000ULL) + SLE_API_VERSION)
133 ((LTTNG_LINUX_VERSION_CODE * 100000000ULL) + SLE_API_VERSION)
88134 #else
89135 #define LTTNG_SLE_VERSION_CODE 0
90136 #endif
99145 /* Fedora */
100146
101147 #define LTTNG_FEDORA_KERNEL_VERSION(a, b, c, d) \
102 (((((a) << 16) + ((b) << 8) + (c)) * 10000ULL) + (d))
148 (((LTTNG_KERNEL_VERSION(a, b, c)) * 10000ULL) + (d))
103149
104150 #ifdef FEDORA_REVISION_VERSION
105151 #define LTTNG_FEDORA_VERSION_CODE \
106 ((LINUX_VERSION_CODE * 10000ULL) + FEDORA_REVISION_VERSION)
152 ((LTTNG_LINUX_VERSION_CODE * 10000ULL) + FEDORA_REVISION_VERSION)
107153 #else
108154 #define LTTNG_FEDORA_VERSION_CODE 0
109155 #endif
118164 /* RT patch */
119165
120166 #define LTTNG_RT_KERNEL_VERSION(a, b, c, d) \
121 (((a) << 24) + ((b) << 16) + ((c) << 8) + (d))
167 (((LTTNG_KERNEL_VERSION(a, b, c)) << 16) + (d))
122168
123169 #ifdef RT_PATCH_VERSION
124170 #define LTTNG_RT_VERSION_CODE \
125 ((LINUX_VERSION_CODE << 8) + RT_PATCH_VERSION)
171 ((LTTNG_LINUX_VERSION_CODE << 16) + RT_PATCH_VERSION)
126172 #else
127173 #define LTTNG_RT_VERSION_CODE 0
128174 #endif
9393 struct pid_namespace *pid_ns),
9494 TP_ARGS(session, p, pid_ns));
9595
96 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0))
96 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0))
9797 LTTNG_DEFINE_TRACE(lttng_statedump_process_cgroup_ns,
9898 TP_PROTO(struct lttng_session *session,
9999 struct task_struct *p,
187187 LTTNG_DEAD = 7,
188188 };
189189
190
191 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
192
193 #define LTTNG_PART_STRUCT_TYPE struct block_device
194
195 static
196 int lttng_get_part_name(struct gendisk *disk, struct block_device *part, char *name_buf)
197 {
198 const char *p;
199
200 p = bdevname(part, name_buf);
201 if (!p)
202 return -ENOSYS;
203
204 return 0;
205 }
206
207 static
208 dev_t lttng_get_part_devt(struct block_device *part)
209 {
210 return part->bd_dev;
211 }
212
213 #else
214
215 #define LTTNG_PART_STRUCT_TYPE struct hd_struct
216
217 static
218 int lttng_get_part_name(struct gendisk *disk, struct hd_struct *part, char *name_buf)
219 {
220 const char *p;
221 struct block_device bdev;
222
223 /*
224 * Create a partial 'struct blockdevice' to use
225 * 'bdevname()' which is a simple wrapper over
226 * 'disk_name()' but has the honor to be EXPORT_SYMBOL.
227 */
228 bdev.bd_disk = disk;
229 bdev.bd_part = part;
230
231 p = bdevname(&bdev, name_buf);
232 if (!p)
233 return -ENOSYS;
234
235 return 0;
236 }
237
238 static
239 dev_t lttng_get_part_devt(struct hd_struct *part)
240 {
241 return part_devt(part);
242 }
243 #endif
244
190245 static
191246 int lttng_enumerate_block_devices(struct lttng_session *session)
192247 {
206261 while ((dev = class_dev_iter_next(&iter))) {
207262 struct disk_part_iter piter;
208263 struct gendisk *disk = dev_to_disk(dev);
209 struct hd_struct *part;
264 LTTNG_PART_STRUCT_TYPE *part;
210265
211266 /*
212267 * Don't show empty devices or things that have been
218273
219274 disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0);
220275 while ((part = disk_part_iter_next(&piter))) {
221 struct block_device bdev;
222276 char name_buf[BDEVNAME_SIZE];
223 const char *p;
224
225 /*
226 * Create a partial 'struct blockdevice' to use
227 * 'bdevname()' which is a simple wrapper over
228 * 'disk_name()' but has the honor to be EXPORT_SYMBOL.
229 */
230 bdev.bd_disk = disk;
231 bdev.bd_part = part;
232
233 p = bdevname(&bdev, name_buf);
234 if (!p) {
277
278 if (lttng_get_part_name(disk, part, name_buf) == -ENOSYS) {
235279 disk_part_iter_exit(&piter);
236280 class_dev_iter_exit(&iter);
237281 return -ENOSYS;
238282 }
239283 trace_lttng_statedump_block_device(session,
240 part_devt(part), name_buf);
284 lttng_get_part_devt(part), name_buf);
241285 }
242286 disk_part_iter_exit(&piter);
243287 }
501545 * "namespaces: Use task_lock and not rcu to protect nsproxy"
502546 * for details.
503547 */
504 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) || \
548 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0) || \
505549 LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,36, 3,14,0,0) || \
506550 LTTNG_UBUNTU_KERNEL_RANGE(3,16,1,11, 3,17,0,0) || \
507551 LTTNG_RHEL_KERNEL_RANGE(3,10,0,229,13,0, 3,11,0,0,0,0))
511555 proxy = task_nsproxy(p);
512556 #endif
513557 if (proxy) {
514 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0))
558 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0))
515559 trace_lttng_statedump_process_cgroup_ns(session, p, proxy->cgroup_ns);
516560 #endif
517561 trace_lttng_statedump_process_ipc_ns(session, p, proxy->ipc_ns);
521565 trace_lttng_statedump_process_net_ns(session, p, proxy->net_ns);
522566 trace_lttng_statedump_process_uts_ns(session, p, proxy->uts_ns);
523567 }
524 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) || \
568 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0) || \
525569 LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,36, 3,14,0,0) || \
526570 LTTNG_UBUNTU_KERNEL_RANGE(3,16,1,11, 3,17,0,0) || \
527571 LTTNG_RHEL_KERNEL_RANGE(3,10,0,229,13,0, 3,11,0,0,0,0))
8080 struct itimerval;
8181 struct itimerspec;
8282
83 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
83 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
8484 typedef __kernel_old_time_t time_t;
8585 #endif
8686
2828
2929 #define LTTNG_MODULES_MAJOR_VERSION 2
3030 #define LTTNG_MODULES_MINOR_VERSION 12
31 #define LTTNG_MODULES_PATCHLEVEL_VERSION 4
31 #define LTTNG_MODULES_PATCHLEVEL_VERSION 5
3232 #define LTTNG_MODULES_EXTRAVERSION ""
3333
3434 #define LTTNG_VERSION_NAME "(Ta) Meilleure"
77 */
88
99 #include <linux/module.h>
10 #include <linux/kprobes.h>
10 #include <wrapper/kprobes.h>
1111 #include <linux/slab.h>
1212 #include <linux/kref.h>
1313 #include <lttng-events.h>
3535 enum lttng_kretprobe_type type)
3636 {
3737 struct lttng_krp *lttng_krp =
38 container_of(krpi->rp, struct lttng_krp, krp);
38 container_of(lttng_get_kretprobe(krpi), struct lttng_krp, krp);
3939 struct lttng_event *event =
4040 lttng_krp->event[type];
4141 struct lttng_probe_ctx lttng_probe_ctx = {
5757 if (unlikely(!LTTNG_READ_ONCE(event->enabled)))
5858 return 0;
5959
60 payload.ip = (unsigned long) krpi->rp->kp.addr;
60 payload.ip = (unsigned long) lttng_get_kretprobe(krpi)->kp.addr;
6161 payload.parent_ip = (unsigned long) krpi->ret_addr;
6262
6363 lib_ring_buffer_ctx_init(&ctx, chan->chan, &lttng_probe_ctx, sizeof(payload),
99
1010 #include <linux/module.h>
1111 #include <linux/fs.h>
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <../fs/btrfs/ctree.h>
1414 #include <../fs/btrfs/transaction.h>
1515 #include <../fs/btrfs/volumes.h>
16 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,0))
16 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0))
1717 #include <../fs/btrfs/block-group.h>
1818 #endif
1919 #include <linux/dcache.h>
1010 #include <linux/module.h>
1111 #include <linux/fs.h>
1212 #include <linux/dcache.h>
13 #include <linux/version.h>
13 #include <lttng-kernel-version.h>
1414 #include <lttng-tracer.h>
1515
16 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
16 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
1717 #include <../fs/ext3/ext3.h>
1818 #else
1919 #include <linux/ext3_fs_i.h>
1111 #include <lttng-tracer.h>
1212 #include <lttng-kernel-version.h>
1313
14 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0))
14 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0))
1515 #include <kvm/iodev.h>
16 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)) */
16 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0)) */
1717 #include <../../virt/kvm/iodev.h>
18 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)) */
18 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0)) */
1919
2020 /*
2121 * Create the tracepoint static inlines from the kernel to validate that our
2323 */
2424 #include <wrapper/tracepoint.h>
2525
26 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
26 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
2727 #include <../../arch/x86/kvm/mmu/mmu_internal.h>
2828 #include <../../arch/x86/kvm/mmu/mmutrace.h>
2929 #else
3030 #include <../../arch/x86/kvm/mmutrace.h>
3131 #endif
3232
33 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
33 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
3434 #include <../arch/x86/kvm/mmu.h>
3535 #include <../arch/x86/kvm/mmu/spte.h>
3636 #endif
1111 #include <lttng-tracer.h>
1212 #include <lttng-kernel-version.h>
1313
14 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
14 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
1515 #include <kvm_emulate.h>
1616 #endif
1717
18 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0))
18 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0))
1919 #include <kvm/iodev.h>
20 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)) */
20 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0)) */
2121 #include <../../virt/kvm/iodev.h>
22 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)) */
22 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0)) */
2323
2424 /*
2525 * Create the tracepoint static inlines from the kernel to validate that our
88 */
99
1010 #include <linux/module.h>
11 #include <linux/version.h>
11 #include <lttng-kernel-version.h>
1212 #include <lttng-tracer.h>
1313
1414 /*
88 *
99 */
1010
11 #include <linux/fdtable.h>
11 #include <wrapper/fdtable.h>
1212 #include <linux/list.h>
1313 #include <linux/module.h>
1414 #include <linux/namei.h>
125125 * Returns the file backing the given fd. Needs to be done inside an RCU
126126 * critical section.
127127 */
128 file = fcheck(fd);
128 file = lttng_lookup_fd_rcu(fd);
129129 if (file == NULL) {
130130 printk(KERN_WARNING "Cannot access file backing the fd(%d)\n", fd);
131131 inode = NULL;
9999 * Linux 5.6 introduced a separate proc_ops struct for /proc operations
100100 * to decouple it from the vfs.
101101 */
102 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
102 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
103103 static const struct proc_ops lttng_logger_proc_ops = {
104104 .proc_write = lttng_logger_write,
105105 };
3737 fi
3838
3939 # Combine all update numbers into one
40 SLE_API_VERSION="$((SLE_RELEASE_MAJOR * 10000 + SLE_RELEASE_MINOR * 100 + SLE_RELEASE_PATCH))"
40 SLE_API_VERSION="$((SLE_RELEASE_MAJOR * 100000 + SLE_RELEASE_MINOR * 100 + SLE_RELEASE_PATCH))"
4141
4242 echo ${SLE_API_VERSION}
8585 return written;
8686 }
8787
88 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
88 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
8989 static const struct proc_ops lttng_test_filter_event_proc_ops = {
9090 .proc_write = lttng_test_filter_event_write,
9191 };
99 #ifndef _LTTNG_WRAPPER_ATOMIC_H
1010 #define _LTTNG_WRAPPER_ATOMIC_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <linux/atomic.h>
1414
15 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
15 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0))
1616 static inline void lttng_smp_mb__before_atomic(void)
1717 {
1818 smp_mb__before_atomic();
2222 {
2323 smp_mb__after_atomic();
2424 }
25 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
25 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */
2626 static inline void lttng_smp_mb__before_atomic(void)
2727 {
2828 smp_mb__before_atomic_inc();
3232 {
3333 smp_mb__after_atomic_inc();
3434 }
35 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
35 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */
3636
3737 #endif /* _LTTNG_WRAPPER_ATOMIC_H */
88 #define _LTTNG_WRAPPER_COMPILER_H
99
1010 #include <linux/compiler.h>
11 #include <linux/version.h>
11 #include <lttng-kernel-version.h>
1212
1313 /*
1414 * Don't allow compiling with buggy compiler.
2424 # error Your gcc version produces clobbered frame accesses
2525 # endif
2626 # endif
27
28 /*
29 * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63293
30 */
31 # ifdef __aarch64__
32 # if GCC_VERSION < 50100
33 # error Your gcc version performs unsafe access to deallocated stack
34 # endif
35 # endif
36
2737 #endif
2838
2939 /*
4555 * and remove calls to smp_read_barrier_depends which was dropped
4656 * in v5.9.
4757 */
48 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
58 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
4959 #define LTTNG_READ_ONCE(x) READ_ONCE(x)
5060 #else
5161 #define LTTNG_READ_ONCE(x) \
33 * Copyright (C) 2013 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
44 */
55
6 #include <linux/version.h>
6 #include <lttng-kernel-version.h>
77 #include <linux/spinlock.h>
88 #include <wrapper/fdtable.h>
99
10 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
10 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,7,0))
1111
1212 /*
1313 * Reimplementation of iterate_fd() for kernels between 2.6.32 and 3.6
77 #ifndef _LTTNG_WRAPPER_FDTABLE_H
88 #define _LTTNG_WRAPPER_FDTABLE_H
99
10 #include <linux/version.h>
10 #include <lttng-kernel-version.h>
1111 #include <linux/fdtable.h>
12 #include <linux/sched.h>
1213
13 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
14 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
15 static inline
16 struct file *lttng_lookup_fd_rcu(unsigned int fd)
17 {
18 return lookup_fd_rcu(fd);
19 }
20 #else
21 static inline
22 struct file *lttng_lookup_fd_rcu(unsigned int fd)
23 {
24 return fcheck(fd);
25 }
26 #endif
27
28 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,7,0))
1429
1530 int lttng_iterate_fd(struct files_struct *files,
1631 unsigned int first,
2843
2944 #endif
3045
31 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
46 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
3247
3348 static inline bool lttng_close_on_exec(int fd, const struct fdtable *fdt)
3449 {
99 #ifndef _LTTNG_WRAPPER_FILE_H
1010 #define _LTTNG_WRAPPER_FILE_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <linux/file.h>
1414
15 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
15 #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0)
1616
1717 static
1818 inline int lttng_get_unused_fd(void)
2222
2323 #define lttng_f_dentry f_path.dentry
2424
25 #else /* #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) */
25 #else /* #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0) */
2626
2727 static
2828 inline int lttng_get_unused_fd(void)
3232
3333 #define lttng_f_dentry f_dentry
3434
35 #endif /* #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) */
35 #endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0) */
3636
3737 #endif /* _LTTNG_WRAPPER_FILE_H */
1010 #include <linux/fs.h>
1111 #include <lttng-kernel-version.h>
1212
13 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
13 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
1414
1515 static inline
1616 ssize_t lttng_kernel_read(struct file *file, void *buf, size_t count, loff_t *pos)
1818 return kernel_read(file, buf, count, pos);
1919 }
2020
21 #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) */
21 #else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) */
2222
2323 static inline
2424 ssize_t lttng_kernel_read(struct file *file, void *buf, size_t count, loff_t *pos)
3737 return len;
3838 }
3939
40 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) */
40 #endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0) */
4141
4242 #endif /* _LTTNG_WRAPPER_FS_H */
99 #ifndef _LTTNG_WRAPPER_IRQ_H
1010 #define _LTTNG_WRAPPER_IRQ_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313
1414 /*
1515 * Starting from the 3.12 Linux kernel, all architectures use the
1616 * generic hard irqs system. More details can be seen at commit
1717 * 0244ad004a54e39308d495fee0a2e637f8b5c317 in the Linux kernel GIT.
1818 */
19 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0) \
19 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0) \
2020 || defined(CONFIG_GENERIC_HARDIRQS))
2121 # define CONFIG_LTTNG_HAS_LIST_IRQ
2222 #endif
33 *
44 * wrapper around irq_to_desc. Using KALLSYMS to get its address when
55 * available, else we need to have a kernel that exports this function to GPL
6 * modules. This export was added to the 3.4 kernels.
6 * modules. This export was added to the 3.4 kernels and removed in 5.11.
77 *
88 * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
99 */
1111 #include <lttng-kernel-version.h>
1212 #include <linux/module.h>
1313
14 #if (defined(CONFIG_KALLSYMS) \
15 && (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)))
14 #if (defined(CONFIG_KALLSYMS) && \
15 ((LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) || \
16 (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,4,0))))
1617
1718 #include <linux/kallsyms.h>
1819 #include <linux/interrupt.h>
99 #ifndef _LTTNG_WRAPPER_IRQFLAGS_H
1010 #define _LTTNG_WRAPPER_IRQFLAGS_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <linux/irqflags.h>
1414
1515 #ifdef CONFIG_X86
1313 #include <linux/module.h>
1414 #include <wrapper/kallsyms.h>
1515
16 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
16 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
1717
1818 #ifndef CONFIG_KPROBES
1919 # error "LTTng-modules requires CONFIG_KPROBES on kernels >= 5.7.0"
1313 #define _LTTNG_WRAPPER_KALLSYMS_H
1414
1515 #include <linux/kallsyms.h>
16 #include <linux/version.h>
16 #include <lttng-kernel-version.h>
1717
1818 /*
1919 * PowerPC ABIv1 needs KALLSYMS_ALL to get the function descriptor,
2525 # endif
2626 #endif
2727
28 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
28 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
2929
3030 unsigned long wrapper_kallsyms_lookup_name(const char *name);
3131
32 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
32 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0)) */
3333
3434 static inline
3535 unsigned long wrapper_kallsyms_lookup_name(const char *name)
3737 return kallsyms_lookup_name(name);
3838 }
3939
40 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
40 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0)) */
4141
4242 static inline
4343 unsigned long kallsyms_lookup_funcptr(const char *name)
0 /* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
1 *
2 * src/wrapper/kprobes.h
3 *
4 * Copyright (C) 2021 Michael Jeanson <mjeanson@efficios.com>
5 */
6
7 #ifndef _LTTNG_WRAPPER_KPROBES_H
8 #define _LTTNG_WRAPPER_KPROBES_H
9
10 #include <linux/kprobes.h>
11 #include <lttng-kernel-version.h>
12
13 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
14
15 static inline
16 struct kretprobe *lttng_get_kretprobe(struct kretprobe_instance *ri)
17 {
18 return get_kretprobe(ri);
19 }
20
21 #else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) */
22
23 static inline
24 struct kretprobe *lttng_get_kretprobe(struct kretprobe_instance *ri)
25 {
26 return ri->rp;
27 }
28
29 #endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) */
30
31 #endif /* _LTTNG_WRAPPER_KPROBES_H */
1515
1616 #include <linux/kref.h>
1717 #include <linux/rculist.h>
18 #include <linux/version.h>
18 #include <lttng-kernel-version.h>
1919
2020 /*
2121 * lttng_kref_get: get reference count, checking for overflow.
2222 *
2323 * Return 1 if reference is taken, 0 otherwise (overflow).
2424 */
25 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
25 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
2626 static inline int lttng_kref_get(struct kref *kref)
2727 {
2828 kref_get(kref);
2929 return 1;
3030 }
31 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
31 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
3232 static inline int lttng_kref_get(struct kref *kref)
3333 {
3434 return atomic_add_unless(&kref->refcount, 1, INT_MAX);
3535 }
36 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
36 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */
3737
3838 #endif /* _LTTNG_WRAPPER_KREF_H */
1212
1313 #include <lttng-kernel-version.h>
1414
15 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) \
15 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0) \
1616 || LTTNG_UBUNTU_KERNEL_RANGE(4,4,25,44, 4,5,0,0))
1717
1818 /*
3939 }
4040 #endif
4141
42 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
42 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
4343 static inline
4444 void wrapper_set_current_oom_origin(void)
4545 {
5252 return clear_current_oom_origin();
5353 }
5454
55 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
55 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
5656
5757 static inline
5858 void wrapper_set_current_oom_origin(void)
6565 {
6666 return;
6767 }
68 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
68 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0)) */
6969 #endif /* _LTTNG_WRAPPER_MM_H */
99 #ifndef _LTTNG_WRAPPER_NAMESPACE_H
1010 #define _LTTNG_WRAPPER_NAMESPACE_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313
14 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
14 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0))
1515 #define lttng_ns_inum ns.inum
1616 #else
1717 #define lttng_ns_inum proc_inum
1818 #endif
1919
20 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
20 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
2121 #define lttng_user_ns_parent parent
2222 #else
2323 #define lttng_user_ns_parent creator->user_ns
77 #ifndef _LTTNG_WRAPPER_OBJTOOL_H
88 #define _LTTNG_WRAPPER_OBJTOOL_H
99
10 #include <linux/version.h>
10 #include <lttng-kernel-version.h>
1111
12 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
12 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
1313 #include <linux/objtool.h>
14 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0))
14 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0))
1515 #include <linux/frame.h>
1616 #endif
1717
1818
19 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0))
19 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0))
2020
2121 #define LTTNG_STACK_FRAME_NON_STANDARD(func) \
2222 STACK_FRAME_NON_STANDARD(func)
1111 #include <lttng-kernel-version.h>
1212
1313 #if (defined(CONFIG_KALLSYMS) \
14 && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2) \
14 && (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,2) \
1515 || LTTNG_KERNEL_RANGE(3,14,36, 3,15,0) \
1616 || LTTNG_KERNEL_RANGE(3,18,10, 3,19,0) \
1717 || LTTNG_DEBIAN_KERNEL_RANGE(3,16,7,9,0,0, 3,17,0,0,0,0) \
1818 * the get_pageblock_migratetype() macro uses it.
1919 */
2020 #if (defined(CONFIG_KALLSYMS) \
21 && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2) \
21 && (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,2) \
2222 || LTTNG_KERNEL_RANGE(3,14,36, 3,15,0) \
2323 || LTTNG_KERNEL_RANGE(3,18,10, 3,19,0) \
2424 || LTTNG_DEBIAN_KERNEL_RANGE(3,16,7,9,0,0, 3,17,0,0,0,0) \
99 #ifndef _LTTNG_WRAPPER_PERCPU_DEFS_H
1010 #define _LTTNG_WRAPPER_PERCPU_DEFS_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313
14 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
14 #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0)
1515
1616 #include <linux/percpu-defs.h>
1717
1818 #define lttng_this_cpu_ptr(ptr) this_cpu_ptr(ptr)
1919
20 #else /* #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) */
20 #else /* #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0) */
2121
2222 #include <linux/percpu.h>
2323
2424 #define lttng_this_cpu_ptr(ptr) (&__get_cpu_var(*(ptr)))
2525
26 #endif /* #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) */
26 #endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,19,0) */
2727
2828 #endif /* _LTTNG_WRAPPER_PERCPU_DEFS_H */
1111
1212 #ifdef CONFIG_PERF_EVENTS
1313
14 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
14 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
1515 static inline struct perf_event *
1616 wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr,
1717 int cpu,
2020 {
2121 return perf_event_create_kernel_counter(attr, cpu, task, callback, NULL);
2222 }
23 #else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) */
23 #else /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)) */
2424 static inline struct perf_event *
2525 wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr,
2626 int cpu,
2929 {
3030 return perf_event_create_kernel_counter(attr, cpu, task, callback);
3131 }
32 #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) */
32 #endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)) */
3333
3434 #endif /* CONFIG_PERF_EVENTS */
3535
99 #ifndef _LTTNG_WRAPPER_RCU_H
1010 #define _LTTNG_WRAPPER_RCU_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <linux/rculist.h>
1414 #include <linux/rcupdate.h>
1515 #include <wrapper/list.h>
1111 #include <lttng-kernel-version.h>
1212
1313 #if (defined(CONFIG_KALLSYMS) \
14 && (LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)))
14 && (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,2,0)))
1515
1616 #include <linux/kallsyms.h>
1717 #include <linux/fs.h>
1414
1515 #define LTTNG_SYSCALL_NR_ARGS 6
1616
17 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
17 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0))
1818
1919 #define lttng_syscall_get_arguments(task, regs, args) \
2020 syscall_get_arguments(task, regs, args)
2121
22 #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) */
22 #else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0) */
2323
2424 static inline
2525 void lttng_syscall_get_arguments(struct task_struct *task,
2828 syscall_get_arguments(task, regs, 0, LTTNG_SYSCALL_NR_ARGS, args);
2929 }
3030
31 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) */
31 #endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0) */
3232
3333 #endif /* _LTTNG_WRAPPER_SYSCALL_H */
88 #ifndef _LTTNG_WRAPPER_TIME_H
99 #define _LTTNG_WRAPPER_TIME_H
1010
11 #include <linux/version.h>
11 #include <lttng-kernel-version.h>
1212
1313 /*
1414 * Use 64bit timespec on kernels that have it, this makes 32bit arch
1515 * y2038 compliant.
1616 */
17 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0))
17 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0))
1818 # define LTTNG_KERNEL_HAS_TIMESPEC64
1919 #endif
2020
99 #ifndef _LTTNG_WRAPPER_TIMER_H
1010 #define _LTTNG_WRAPPER_TIMER_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <linux/timer.h>
1414 #include <lttng-kernel-version.h>
1515
2525 */
2626
2727
28 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
28 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0))
2929
3030 #define LTTNG_TIMER_PINNED TIMER_PINNED
3131 #define LTTNG_TIMER_FUNC_ARG_TYPE struct timer_list *
4040 timer_setup(timer, callback, flags)
4141
4242
43 #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0) */
43 #else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0) */
4444
4545
4646 # if (LTTNG_RT_VERSION_CODE >= LTTNG_RT_KERNEL_VERSION(4,6,4,8) \
47 || LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
47 || LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
4848
4949 #define lttng_init_timer_pinned(timer) \
5050 init_timer_pinned(timer)
8383 timer->data = (unsigned long)data;
8484 }
8585
86 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0) */
86 #endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0) */
8787
8888 #endif /* _LTTNG_WRAPPER_TIMER_H */
1919 #include <linux/time.h>
2020 #include <linux/hrtimer.h>
2121 #include <linux/percpu.h>
22 #include <linux/version.h>
22 #include <lttng-kernel-version.h>
2323 #include <asm/local.h>
2424 #include <lttng-kernel-version.h>
2525 #include <lttng-clock.h>
5050 * this feature on 64-bit architectures.
5151 */
5252
53 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) \
53 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0) \
5454 && BITS_PER_LONG == 64 \
5555 && !defined(LTTNG_CLOCK_NMI_SAFE_BROKEN))
5656 #define LTTNG_USE_NMI_SAFE_CLOCK
99 #ifndef _LTTNG_WRAPPER_TRACEPOINT_H
1010 #define _LTTNG_WRAPPER_TRACEPOINT_H
1111
12 #include <linux/version.h>
12 #include <lttng-kernel-version.h>
1313 #include <linux/tracepoint.h>
1414 #include <linux/module.h>
1515
16 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
16 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0))
1717 #define LTTNG_DEFINE_TRACE(name, proto, args) \
1818 DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
1919 #else
2828
2929 #endif /* HAVE_KABI_2635_TRACEPOINT */
3030
31 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
31 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0))
3232
3333 #include <lttng-tracepoint.h>
3434
3535 #define lttng_wrapper_tracepoint_probe_register lttng_tracepoint_probe_register
3636 #define lttng_wrapper_tracepoint_probe_unregister lttng_tracepoint_probe_unregister
3737
38 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
38 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
3939
4040 #define lttng_wrapper_tracepoint_probe_register kabi_2635_tracepoint_probe_register
4141 #define lttng_wrapper_tracepoint_probe_unregister kabi_2635_tracepoint_probe_unregister
5151 {
5252 }
5353
54 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
54 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
5555
56 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG))
56 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG))
5757
5858 #include <linux/kallsyms.h>
5959 #include <wrapper/kallsyms.h>
8686 * }
8787 */
8888
89 #endif /* #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG)) */
89 #endif /* #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG)) */
9090
91 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE))
91 #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE))
9292
9393 static inline
9494 int wrapper_lttng_fixup_sig(struct module *mod)
109109 return ret;
110110 }
111111
112 #else /* #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE)) */
112 #else /* #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE)) */
113113
114114 static inline
115115 int wrapper_lttng_fixup_sig(struct module *mod)
117117 return 0;
118118 }
119119
120 #endif /* #else #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE)) */
120 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE)) */
121121
122 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0))
122 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0))
123123 static inline struct tracepoint *lttng_tracepoint_ptr_deref(tracepoint_ptr_t *p)
124124 {
125125 return tracepoint_ptr_deref(p);
126126 }
127 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) */
127 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0)) */
128128 static inline struct tracepoint *lttng_tracepoint_ptr_deref(struct tracepoint * const *p)
129129 {
130130 return *p;
131131 }
132 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) */
132 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0)) */
133133
134134 #endif /* _LTTNG_WRAPPER_TRACEPOINT_H */
1212 #include <linux/uaccess.h>
1313 #include <lttng-kernel-version.h>
1414
15 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0) || \
15 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0) || \
1616 LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
1717
1818 #define VERIFY_READ 0
1919 #define VERIFY_WRITE 1
2020 #define lttng_access_ok(type, addr, size) access_ok(addr, size)
2121
22 #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0) */
22 #else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0) */
2323
2424 #define lttng_access_ok(type, addr, size) access_ok(type, addr, size)
2525
26 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0) */
26 #endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0) */
2727
2828 #endif /* _LTTNG_WRAPPER_UACCESS_H */
1313 #ifndef _LTTNG_WRAPPER_UPROBES_H
1414 #define _LTTNG_WRAPPER_UPROBES_H
1515
16 #include <linux/version.h>
16 #include <lttng-kernel-version.h>
1717
18 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
18 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0))
1919 #include <linux/uprobes.h>
2020
2121 /* Use kallsym lookup for version before 3.9. */
22 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
22 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0))
2323
2424 static inline
2525 int wrapper_uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc)
88 #ifndef _LTTNG_WRAPPER_USER_NAMESPACE_H
99 #define _LTTNG_WRAPPER_USER_NAMESPACE_H
1010
11 #include <linux/version.h>
11 #include <lttng-kernel-version.h>
1212 #include <linux/user_namespace.h>
1313
1414
15 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
15 #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3, 5, 0)
1616
1717 #define lttng_current_xxuid(xxx) \
1818 (from_kuid_munged(&init_user_ns, current_##xxx()))
77 #ifndef _LTTNG_WRAPPER_UUID_H
88 #define _LTTNG_WRAPPER_UUID_H
99
10 #include <linux/version.h>
10 #include <lttng-kernel-version.h>
1111 #include <linux/uuid.h>
1212
13 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
13 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
1414 static inline
1515 void lttng_guid_gen(guid_t *u)
1616 {
1717 return guid_gen(u);
1818 }
19 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
19 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0)) */
2020
2121 typedef uuid_le guid_t;
2222
2525 {
2626 return uuid_le_gen(u);
2727 }
28 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
28 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0)) */
2929
3030 #endif /* _LTTNG_WRAPPER_UUID_H */
1111 #ifndef _LTTNG_WRAPPER_VMALLOC_H
1212 #define _LTTNG_WRAPPER_VMALLOC_H
1313
14 #include <linux/version.h>
14 #include <lttng-kernel-version.h>
1515 #include <linux/vmalloc.h>
1616 #include <linux/mm.h>
1717
2121 #include <wrapper/kallsyms.h>
2222 #include <lttng-kernel-version.h>
2323
24 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
24 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0))
2525
2626 /*
2727 * wrapper_vmalloc_sync_mappings was removed in v5.8, the vmalloc mappings
3131 void wrapper_vmalloc_sync_mappings(void)
3232 {}
3333
34 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \
34 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0) \
3535 || LTTNG_KERNEL_RANGE(5,5,12, 5,6,0) \
3636 || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0) \
3737 || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0) \
7676 vmalloc_sync_mappings();
7777 }
7878
79 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
79 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */
8080
8181 /*
8282 * Map vmalloc_sync_mappings to vmalloc_sync_all() on kernels before 5.6.
114114 vmalloc_sync_all();
115115 }
116116
117 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
117 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */
118118
119119 #else /* CONFIG_KALLSYMS */
120120
121 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
121 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0))
122122
123123 /*
124124 * wrapper_vmalloc_sync_mappings was removed in v5.8, the vmalloc mappings
128128 void wrapper_vmalloc_sync_mappings(void)
129129 {}
130130
131 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \
131 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0) \
132132 || LTTNG_KERNEL_RANGE(5,5,12, 5,6,0) \
133133 || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0) \
134134 || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0) \
146146 return vmalloc_sync_mappings();
147147 }
148148
149 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
149 #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */
150150
151151 static inline
152152 void wrapper_vmalloc_sync_mappings(void)
154154 return vmalloc_sync_all();
155155 }
156156
157 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
158
159 #endif
160
161 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
157 #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */
158
159 #endif
160
161 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0))
162162 static inline
163163 void *lttng_kvmalloc_node(unsigned long size, gfp_t flags, int node)
164164 {
211211 printk_once(KERN_WARNING "Please rebuild your kernel with CONFIG_KALLSYMS enabled.\n");
212212 }
213213
214 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
214 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0))
215215
216216 /*
217217 * kallsyms wrapper of __vmalloc_node with a fallback to kmalloc_node.
261261 vm_flags, node, caller);
262262 }
263263
264 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
264 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0))
265265
266266 /*
267267 * kallsyms wrapper of __vmalloc_node with a fallback to kmalloc_node.
309309 node, caller);
310310 }
311311
312 #else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
312 #else /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,6,0)) */
313313
314314 /*
315315 * kallsyms wrapper of __vmalloc_node with a fallback to kmalloc_node.
1919
2020
2121
22 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)
22 #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)
2323
2424 static struct wb_domain *global_wb_domain_sym;
2525
5050 return global_wb_domain.dirty_limit;
5151 }
5252
53 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
53 #elif LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)
5454
5555 static unsigned long *global_dirty_limit_sym;
5656
8787
8888 #include <linux/writeback.h>
8989
90 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
90 #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)
9191 static inline
9292 unsigned long wrapper_global_dirty_limit(void)
9393 {