Migrate tracepoint instrumentation to TP_FIELDS
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 11 Nov 2014 19:54:12 +0000 (14:54 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 10 Apr 2015 20:41:45 +0000 (16:41 -0400)
At this stage syscall instrumentation is disabled. Will come in a
following commit.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
66 files changed:
Makefile
filter-bytecode.h
instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
instrumentation/events/lttng-module/arch/x86/kvm/trace.h
instrumentation/events/lttng-module/asoc.h
instrumentation/events/lttng-module/block.h
instrumentation/events/lttng-module/btrfs.h
instrumentation/events/lttng-module/compaction.h
instrumentation/events/lttng-module/ext3.h
instrumentation/events/lttng-module/ext4.h
instrumentation/events/lttng-module/gpio.h
instrumentation/events/lttng-module/irq.h
instrumentation/events/lttng-module/jbd.h
instrumentation/events/lttng-module/jbd2.h
instrumentation/events/lttng-module/kmem.h
instrumentation/events/lttng-module/kvm.h
instrumentation/events/lttng-module/lock.h
instrumentation/events/lttng-module/lttng-statedump.h
instrumentation/events/lttng-module/lttng.h
instrumentation/events/lttng-module/mm_vmscan.h
instrumentation/events/lttng-module/module.h
instrumentation/events/lttng-module/napi.h
instrumentation/events/lttng-module/net.h
instrumentation/events/lttng-module/power.h
instrumentation/events/lttng-module/printk.h
instrumentation/events/lttng-module/random.h
instrumentation/events/lttng-module/rcu.h
instrumentation/events/lttng-module/regmap.h
instrumentation/events/lttng-module/regulator.h
instrumentation/events/lttng-module/rpc.h
instrumentation/events/lttng-module/rpm.h
instrumentation/events/lttng-module/sched.h
instrumentation/events/lttng-module/scsi.h
instrumentation/events/lttng-module/signal.h
instrumentation/events/lttng-module/skb.h
instrumentation/events/lttng-module/sock.h
instrumentation/events/lttng-module/timer.h
instrumentation/events/lttng-module/udp.h
instrumentation/events/lttng-module/v4l2.h
instrumentation/events/lttng-module/workqueue.h
instrumentation/events/lttng-module/writeback.h
lib/ringbuffer/backend.h
lttng-abi.c
lttng-abi.h
lttng-context-hostname.c
lttng-context-nice.c
lttng-context-pid.c
lttng-context-ppid.c
lttng-context-prio.c
lttng-context-procname.c
lttng-context-tid.c
lttng-context-vppid.c
lttng-context-vtid.c
lttng-context.c
lttng-events.c
lttng-events.h
lttng-filter-interpreter.c
lttng-filter-specialize.c
lttng-filter-validator.c
lttng-filter.c
lttng-filter.h
probes/define_trace.h
probes/lttng-events-reset.h
probes/lttng-events.h
probes/lttng-probe-user.c
probes/lttng-tracepoint-event.h

index 1234519a036d8c9f0a9baa1dc8dced92da6a9347..35d765e0229ba665f541be63afe91013a676c7d3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -39,15 +39,16 @@ lttng-tracer-objs :=  lttng-events.o lttng-abi.o \
                        lttng-tracker-pid.o \
                        lttng-filter.o lttng-filter-interpreter.o \
                        lttng-filter-specialize.o \
-                       lttng-filter-validator.o
+                       lttng-filter-validator.o \
+                       probes/lttng-probe-user.o
 
 obj-m += lttng-statedump.o
 lttng-statedump-objs := lttng-statedump-impl.o wrapper/irqdesc.o \
                        wrapper/fdtable.o
 
-ifneq ($(CONFIG_HAVE_SYSCALL_TRACEPOINTS),)
-lttng-tracer-objs += lttng-syscalls.o probes/lttng-probe-user.o
-endif # CONFIG_HAVE_SYSCALL_TRACEPOINTS
+#ifneq ($(CONFIG_HAVE_SYSCALL_TRACEPOINTS),)
+#lttng-tracer-objs += lttng-syscalls.o
+#endif # CONFIG_HAVE_SYSCALL_TRACEPOINTS
 
 ifneq ($(CONFIG_PERF_EVENTS),)
 lttng-tracer-objs += $(shell \
index eb0d549cbd169c93da07396a0d9ce371516c8e54..05bd0dca5636fbbc06ac4be7f3c5cecc94327a2e 100644 (file)
@@ -145,6 +145,10 @@ enum filter_op {
        FILTER_OP_GET_CONTEXT_REF_S64,
        FILTER_OP_GET_CONTEXT_REF_DOUBLE,
 
+       /* load userspace field ref */
+       FILTER_OP_LOAD_FIELD_REF_USER_STRING,
+       FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE,
+
        NR_FILTER_OPS,
 };
 
index a76f059ccdd50e4d8fd128b10b4a9e9203273ff4..a71b2a1ae9bc5bce96aa5e247953be3ce1d3a868 100644 (file)
@@ -7,47 +7,11 @@
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM kvm_mmu
 
-#define KVM_MMU_PAGE_FIELDS \
-       __field(__u64, gfn) \
-       __field(__u32, role) \
-       __field(__u32, root_count) \
-       __field(bool, unsync)
-
-#define KVM_MMU_PAGE_ASSIGN(sp)                             \
-       tp_assign(gfn, sp->gfn)                      \
-       tp_assign(role, sp->role.word)               \
-       tp_assign(root_count, sp->root_count)        \
-       tp_assign(unsync, sp->unsync)
-
-#define KVM_MMU_PAGE_PRINTK() ({                                       \
-       const char *ret = p->buffer + p->len;                           \
-       static const char *access_str[] = {                             \
-               "---", "--x", "w--", "w-x", "-u-", "-ux", "wu-", "wux"  \
-       };                                                              \
-       union kvm_mmu_page_role role;                                   \
-                                                                       \
-       role.word = __entry->role;                                      \
-                                                                       \
-       trace_seq_printf(p, "sp gfn %llx %u%s q%u%s %s%s"               \
-                        " %snxe root %u %s%c",                         \
-                        __entry->gfn, role.level,                      \
-                        role.cr4_pae ? " pae" : "",                    \
-                        role.quadrant,                                 \
-                        role.direct ? " direct" : "",                  \
-                        access_str[role.access],                       \
-                        role.invalid ? " invalid" : "",                \
-                        role.nxe ? "" : "!",                           \
-                        __entry->root_count,                           \
-                        __entry->unsync ? "unsync" : "sync", 0);       \
-       ret;                                                            \
-               })
-
-#define kvm_mmu_trace_pferr_flags       \
-       { PFERR_PRESENT_MASK, "P" },    \
-       { PFERR_WRITE_MASK, "W" },      \
-       { PFERR_USER_MASK, "U" },       \
-       { PFERR_RSVD_MASK, "RSVD" },    \
-       { PFERR_FETCH_MASK, "F" }
+#define LTTNG_KVM_MMU_PAGE_FIELDS \
+       ctf_integer(__u64, gfn, (sp)->gfn) \
+       ctf_integer(__u32, role, (sp)->role.word) \
+       ctf_integer(__u32, root_count, (sp)->root_count) \
+       ctf_integer(bool, unsync, (sp)->unsync)
 
 /*
  * A pagetable walk has started
@@ -57,18 +21,10 @@ LTTNG_TRACEPOINT_EVENT(
        TP_PROTO(u64 addr, u32 pferr),
        TP_ARGS(addr, pferr),
 
-       TP_STRUCT__entry(
-               __field(__u64, addr)
-               __field(__u32, pferr)
-       ),
-
-       TP_fast_assign(
-               tp_assign(addr, addr)
-               tp_assign(pferr, pferr)
-       ),
-
-       TP_printk("addr %llx pferr %x %s", __entry->addr, __entry->pferr,
-                 __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags))
+       TP_FIELDS(
+               ctf_integer(__u64, addr, addr)
+               ctf_integer(__u32, pferr, pferr)
+       )
 )
 
 
@@ -78,17 +34,10 @@ LTTNG_TRACEPOINT_EVENT(
        TP_PROTO(u64 pte, int level),
        TP_ARGS(pte, level),
 
-       TP_STRUCT__entry(
-               __field(__u64, pte)
-               __field(__u32, level)
-               ),
-
-       TP_fast_assign(
-               tp_assign(pte, pte)
-               tp_assign(level, level)
-               ),
-
-       TP_printk("pte %llx level %u", __entry->pte, __entry->level)
+       TP_FIELDS(
+               ctf_integer(__u64, pte, pte)
+               ctf_integer(__u32, level, level)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(kvm_mmu_set_bit_class,
@@ -97,16 +46,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kvm_mmu_set_bit_class,
 
        TP_ARGS(table_gfn, index, size),
 
-       TP_STRUCT__entry(
-               __field(__u64, gpa)
-       ),
-
-       TP_fast_assign(
-               tp_assign(gpa, ((u64)table_gfn << PAGE_SHIFT)
-                               + index * size)
-               ),
-
-       TP_printk("gpa %llx", __entry->gpa)
+       TP_FIELDS(
+               ctf_integer(__u64, gpa,
+                       ((u64)table_gfn << PAGE_SHIFT) + index * size)
+       )
 )
 
 /* We set a pte accessed bit */
@@ -130,16 +73,9 @@ LTTNG_TRACEPOINT_EVENT(
        TP_PROTO(u32 pferr),
        TP_ARGS(pferr),
 
-       TP_STRUCT__entry(
-               __field(__u32, pferr)
-               ),
-
-       TP_fast_assign(
-               tp_assign(pferr, pferr)
-               ),
-
-       TP_printk("pferr %x %s", __entry->pferr,
-                 __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags))
+       TP_FIELDS(
+               ctf_integer(__u32, pferr, pferr)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(
@@ -147,18 +83,10 @@ LTTNG_TRACEPOINT_EVENT(
        TP_PROTO(struct kvm_mmu_page *sp, bool created),
        TP_ARGS(sp, created),
 
-       TP_STRUCT__entry(
-               KVM_MMU_PAGE_FIELDS
-               __field(bool, created)
-               ),
-
-       TP_fast_assign(
-               KVM_MMU_PAGE_ASSIGN(sp)
-               tp_assign(created, created)
-               ),
-
-       TP_printk("%s %s", KVM_MMU_PAGE_PRINTK(),
-                 __entry->created ? "new" : "existing")
+       TP_FIELDS(
+               LTTNG_KVM_MMU_PAGE_FIELDS
+               ctf_integer(bool, created, created)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(kvm_mmu_page_class,
@@ -166,15 +94,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kvm_mmu_page_class,
        TP_PROTO(struct kvm_mmu_page *sp),
        TP_ARGS(sp),
 
-       TP_STRUCT__entry(
-               KVM_MMU_PAGE_FIELDS
-       ),
-
-       TP_fast_assign(
-               KVM_MMU_PAGE_ASSIGN(sp)
-       ),
-
-       TP_printk("%s", KVM_MMU_PAGE_PRINTK())
+       TP_FIELDS(
+               LTTNG_KVM_MMU_PAGE_FIELDS
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_mmu_page_class, kvm_mmu_sync_page,
@@ -203,20 +125,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(
        TP_PROTO(u64 *sptep, gfn_t gfn, unsigned access),
        TP_ARGS(sptep, gfn, access),
 
-       TP_STRUCT__entry(
-               __field(void *, sptep)
-               __field(gfn_t, gfn)
-               __field(unsigned, access)
-       ),
-
-       TP_fast_assign(
-               tp_assign(sptep, sptep)
-               tp_assign(gfn, gfn)
-               tp_assign(access, access)
-       ),
-
-       TP_printk("sptep:%p gfn %llx access %x", __entry->sptep, __entry->gfn,
-                 __entry->access)
+       TP_FIELDS(
+               ctf_integer(void *, sptep, sptep)
+               ctf_integer(gfn_t, gfn, gfn)
+               ctf_integer(unsigned, access, access)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_MAP(
@@ -227,25 +140,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(
        TP_PROTO(u64 addr, gfn_t gfn, unsigned access),
        TP_ARGS(addr, gfn, access),
 
-       TP_STRUCT__entry(
-               __field(u64, addr)
-               __field(gfn_t, gfn)
-               __field(unsigned, access)
-       ),
-
-       TP_fast_assign(
-               tp_assign(addr, addr)
-               tp_assign(gfn, gfn)
-               tp_assign(access, access)
-       ),
-
-       TP_printk("addr:%llx gfn %llx access %x", __entry->addr, __entry->gfn,
-                 __entry->access)
+       TP_FIELDS(
+               ctf_integer(u64, addr, addr)
+               ctf_integer(gfn_t, gfn, gfn)
+               ctf_integer(unsigned, access, access)
+       )
 )
 
-#define __spte_satisfied(__spte)                               \
-       (__entry->retry && is_writable_pte(__entry->__spte))
-
 LTTNG_TRACEPOINT_EVENT_MAP(
        fast_page_fault,
 
@@ -255,32 +156,14 @@ LTTNG_TRACEPOINT_EVENT_MAP(
                 u64 *sptep, u64 old_spte, bool retry),
        TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry),
 
-       TP_STRUCT__entry(
-               __field(int, vcpu_id)
-               __field(gva_t, gva)
-               __field(u32, error_code)
-               __field(u64 *, sptep)
-               __field(u64, old_spte)
-               __field(u64, new_spte)
-               __field(bool, retry)
-       ),
-
-       TP_fast_assign(
-               tp_assign(vcpu_id, vcpu->vcpu_id)
-               tp_assign(gva, gva)
-               tp_assign(error_code, error_code)
-               tp_assign(sptep, sptep)
-               tp_assign(old_spte, old_spte)
-               tp_assign(new_spte, *sptep)
-               tp_assign(retry, retry)
-       ),
-
-       TP_printk("vcpu %d gva %lx error_code %s sptep %p old %#llx"
-                 " new %llx spurious %d fixed %d", __entry->vcpu_id,
-                 __entry->gva, __print_flags(__entry->error_code, "|",
-                 kvm_mmu_trace_pferr_flags), __entry->sptep,
-                 __entry->old_spte, __entry->new_spte,
-                 __spte_satisfied(old_spte), __spte_satisfied(new_spte)
+       TP_FIELDS(
+               ctf_integer(int, vcpu_id, vcpu->vcpu_id)
+               ctf_integer(gva_t, gva, gva)
+               ctf_integer(u32, error_code, error_code)
+               ctf_integer(u64 *, sptep, sptep)
+               ctf_integer(u64, old_spte, old_spte)
+               ctf_integer(u64, new_spte, *sptep)
+               ctf_integer(bool, retry, retry)
        )
 )
 #endif /* LTTNG_TRACE_KVM_MMU_H */
index 56b2e0937e611e5b9b16069486b32648bf47e707..32c4743e7efae7a58ee60055b5cda3770bda2796 100644 (file)
@@ -21,15 +21,9 @@ LTTNG_TRACEPOINT_EVENT(kvm_entry,
        TP_PROTO(unsigned int vcpu_id),
        TP_ARGS(vcpu_id),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   vcpu_id         )
-       ),
-
-       TP_fast_assign(
-               tp_assign(vcpu_id, vcpu_id)
-       ),
-
-       TP_printk("vcpu %u", __entry->vcpu_id)
+       TP_FIELDS(
+               ctf_integer(unsigned int, vcpu_id, vcpu_id)
+       )
 )
 
 /*
@@ -40,25 +34,13 @@ LTTNG_TRACEPOINT_EVENT(kvm_hypercall,
                 unsigned long a2, unsigned long a3),
        TP_ARGS(nr, a0, a1, a2, a3),
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  nr              )
-               __field(        unsigned long,  a0              )
-               __field(        unsigned long,  a1              )
-               __field(        unsigned long,  a2              )
-               __field(        unsigned long,  a3              )
-       ),
-
-       TP_fast_assign(
-               tp_assign(nr, nr)
-               tp_assign(a0, a0)
-               tp_assign(a1, a1)
-               tp_assign(a2, a2)
-               tp_assign(a3, a3)
-       ),
-
-       TP_printk("nr 0x%lx a0 0x%lx a1 0x%lx a2 0x%lx a3 0x%lx",
-                __entry->nr, __entry->a0, __entry->a1,  __entry->a2,
-                __entry->a3)
+       TP_FIELDS(
+               ctf_integer(unsigned long, nr, nr)
+               ctf_integer(unsigned long, a0, a0)
+               ctf_integer(unsigned long, a1, a1)
+               ctf_integer(unsigned long, a2, a2)
+               ctf_integer(unsigned long, a3, a3)
+       )
 )
 
 /*
@@ -69,28 +51,14 @@ LTTNG_TRACEPOINT_EVENT(kvm_hv_hypercall,
                 __u64 ingpa, __u64 outgpa),
        TP_ARGS(code, fast, rep_cnt, rep_idx, ingpa, outgpa),
 
-       TP_STRUCT__entry(
-               __field(        __u16,          rep_cnt         )
-               __field(        __u16,          rep_idx         )
-               __field(        __u64,          ingpa           )
-               __field(        __u64,          outgpa          )
-               __field(        __u16,          code            )
-               __field(        bool,           fast            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rep_cnt, rep_cnt)
-               tp_assign(rep_idx, rep_idx)
-               tp_assign(ingpa, ingpa)
-               tp_assign(outgpa, outgpa)
-               tp_assign(code, code)
-               tp_assign(fast, fast)
-       ),
-
-       TP_printk("code 0x%x %s cnt 0x%x idx 0x%x in 0x%llx out 0x%llx",
-                 __entry->code, __entry->fast ? "fast" : "slow",
-                 __entry->rep_cnt, __entry->rep_idx,  __entry->ingpa,
-                 __entry->outgpa)
+       TP_FIELDS(
+               ctf_integer(__u16, rep_cnt, rep_cnt)
+               ctf_integer(__u16, rep_idx, rep_idx)
+               ctf_integer(__u64, ingpa, ingpa)
+               ctf_integer(__u64, outgpa, outgpa)
+               ctf_integer(__u16, code, code)
+               ctf_integer(bool, fast, fast)
+       )
 )
 
 /*
@@ -101,23 +69,12 @@ LTTNG_TRACEPOINT_EVENT(kvm_pio,
                 unsigned int count),
        TP_ARGS(rw, port, size, count),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   rw              )
-               __field(        unsigned int,   port            )
-               __field(        unsigned int,   size            )
-               __field(        unsigned int,   count           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rw, rw)
-               tp_assign(port, port)
-               tp_assign(size, size)
-               tp_assign(count, count)
-       ),
-
-       TP_printk("pio_%s at 0x%x size %d count %d",
-                 __entry->rw ? "write" : "read",
-                 __entry->port, __entry->size, __entry->count)
+       TP_FIELDS(
+               ctf_integer(unsigned int, rw, rw)
+               ctf_integer(unsigned int, port, port)
+               ctf_integer(unsigned int, size, size)
+               ctf_integer(unsigned int, count, count)
+       )
 )
 
 /*
@@ -128,36 +85,15 @@ LTTNG_TRACEPOINT_EVENT(kvm_cpuid,
                 unsigned long rcx, unsigned long rdx),
        TP_ARGS(function, rax, rbx, rcx, rdx),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   function        )
-               __field(        unsigned long,  rax             )
-               __field(        unsigned long,  rbx             )
-               __field(        unsigned long,  rcx             )
-               __field(        unsigned long,  rdx             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(function, function)
-               tp_assign(rax, rax)
-               tp_assign(rbx, rbx)
-               tp_assign(rcx, rcx)
-               tp_assign(rdx, rdx)
-       ),
-
-       TP_printk("func %x rax %lx rbx %lx rcx %lx rdx %lx",
-                 __entry->function, __entry->rax,
-                 __entry->rbx, __entry->rcx, __entry->rdx)
+       TP_FIELDS(
+               ctf_integer(unsigned int, function, function)
+               ctf_integer(unsigned long, rax, rax)
+               ctf_integer(unsigned long, rbx, rbx)
+               ctf_integer(unsigned long, rcx, rcx)
+               ctf_integer(unsigned long, rdx, rdx)
+       )
 )
 
-#define AREG(x) { APIC_##x, "APIC_" #x }
-
-#define kvm_trace_symbol_apic                                              \
-       AREG(ID), AREG(LVR), AREG(TASKPRI), AREG(ARBPRI), AREG(PROCPRI),    \
-       AREG(EOI), AREG(RRR), AREG(LDR), AREG(DFR), AREG(SPIV), AREG(ISR),  \
-       AREG(TMR), AREG(IRR), AREG(ESR), AREG(ICR), AREG(ICR2), AREG(LVTT), \
-       AREG(LVTTHMR), AREG(LVTPC), AREG(LVT0), AREG(LVT1), AREG(LVTERR),   \
-       AREG(TMICT), AREG(TMCCT), AREG(TDCR), AREG(SELF_IPI), AREG(EFEAT),  \
-       AREG(ECTRL)
 /*
  * Tracepoint for apic access.
  */
@@ -165,60 +101,39 @@ LTTNG_TRACEPOINT_EVENT(kvm_apic,
        TP_PROTO(unsigned int rw, unsigned int reg, unsigned int val),
        TP_ARGS(rw, reg, val),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   rw              )
-               __field(        unsigned int,   reg             )
-               __field(        unsigned int,   val             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rw, rw)
-               tp_assign(reg, reg)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("apic_%s %s = 0x%x",
-                 __entry->rw ? "write" : "read",
-                 __print_symbolic(__entry->reg, kvm_trace_symbol_apic),
-                 __entry->val)
+       TP_FIELDS(
+               ctf_integer(unsigned int, rw, rw)
+               ctf_integer(unsigned int, reg, reg)
+               ctf_integer(unsigned int, val, val)
+       )
 )
 
 #define trace_kvm_apic_read(reg, val)          trace_kvm_apic(0, reg, val)
 #define trace_kvm_apic_write(reg, val)         trace_kvm_apic(1, reg, val)
 
-#define KVM_ISA_VMX   1
-#define KVM_ISA_SVM   2
-
 /*
  * Tracepoint for kvm guest exit:
  */
-LTTNG_TRACEPOINT_EVENT(kvm_exit,
-       TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa, u64 info1, u64 info2),
-       TP_ARGS(exit_reason, vcpu, isa, info1, info2),
-
-       TP_STRUCT__entry(
-               __field(        unsigned int,   exit_reason     )
-               __field(        unsigned long,  guest_rip       )
-               __field(        u32,            isa             )
-               __field(        u64,            info1           )
-               __field(        u64,            info2           )
+LTTNG_TRACEPOINT_EVENT_CODE(kvm_exit,
+       TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa),
+       TP_ARGS(exit_reason, vcpu, isa),
+
+       TP_locvar(
+               u64 info1, info2;
        ),
 
-       TP_fast_assign(
-               tp_assign(exit_reason, exit_reason)
-               tp_assign(guest_rip, kvm_rip_read(vcpu))
-               tp_assign(isa, isa)
-    kvm_x86_ops->get_exit_info(vcpu, &info1,
-              &info2);
-    tp_assign(info1, info1)
-    tp_assign(info2, info2)
+       TP_code(
+               kvm_x86_ops->get_exit_info(vcpu, &tp_locvar->info1,
+                               &tp_locvar->info2);
        ),
 
-       TP_printk("reason %s rip  info %llx %llx",
-                (__entry->isa == KVM_ISA_VMX) ?
-                __print_symbolic(__entry->exit_reason, VMX_EXIT_REASONS) :
-                __print_symbolic(__entry->exit_reason, SVM_EXIT_REASONS),
-               /* __entry->guest_rip,*/ __entry->info1, __entry->info2)
+       TP_FIELDS(
+               ctf_integer(unsigned int, exit_reason, exit_reason)
+               ctf_integer(unsigned long, guest_rip, kvm_rip_read(vcpu))
+               ctf_integer(u32, isa, isa)
+               ctf_integer(u64, info1, tp_locvar->info1)
+               ctf_integer(u64, info2, tp_locvar->info2)
+       )
 )
 
 /*
@@ -228,24 +143,11 @@ LTTNG_TRACEPOINT_EVENT(kvm_inj_virq,
        TP_PROTO(unsigned int irq),
        TP_ARGS(irq),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   irq             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(irq, irq)
-       ),
-
-       TP_printk("irq %u", __entry->irq)
+       TP_FIELDS(
+               ctf_integer(unsigned int, irq, irq)
+       )
 )
 
-#define EXS(x) { x##_VECTOR, "#" #x }
-
-#define kvm_trace_sym_exc                                              \
-       EXS(DE), EXS(DB), EXS(BP), EXS(OF), EXS(BR), EXS(UD), EXS(NM),  \
-       EXS(DF), EXS(TS), EXS(NP), EXS(SS), EXS(GP), EXS(PF),           \
-       EXS(MF), EXS(MC)
-
 /*
  * Tracepoint for kvm interrupt injection:
  */
@@ -253,22 +155,11 @@ LTTNG_TRACEPOINT_EVENT(kvm_inj_exception,
        TP_PROTO(unsigned exception, bool has_error, unsigned error_code),
        TP_ARGS(exception, has_error, error_code),
 
-       TP_STRUCT__entry(
-               __field(        u8,     exception       )
-               __field(        u8,     has_error       )
-               __field(        u32,    error_code      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(exception, exception)
-               tp_assign(has_error, has_error)
-               tp_assign(error_code, error_code)
-       ),
-
-       TP_printk("%s (0x%x)",
-                 __print_symbolic(__entry->exception, kvm_trace_sym_exc),
-                 /* FIXME: don't print error_code if not present */
-                 __entry->has_error ? __entry->error_code : 0)
+       TP_FIELDS(
+               ctf_integer(u8, exception, exception)
+               ctf_integer(u8, has_error, has_error)
+               ctf_integer(u32, error_code, error_code)
+       )
 )
 
 /*
@@ -278,18 +169,10 @@ LTTNG_TRACEPOINT_EVENT(kvm_page_fault,
        TP_PROTO(unsigned long fault_address, unsigned int error_code),
        TP_ARGS(fault_address, error_code),
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  fault_address   )
-               __field(        unsigned int,   error_code      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(fault_address, fault_address)
-               tp_assign(error_code, error_code)
-       ),
-
-       TP_printk("address %lx error_code %x",
-                 __entry->fault_address, __entry->error_code)
+       TP_FIELDS(
+               ctf_integer(unsigned long, fault_address, fault_address)
+               ctf_integer(unsigned int, error_code, error_code)
+       )
 )
 
 /*
@@ -299,24 +182,12 @@ LTTNG_TRACEPOINT_EVENT(kvm_msr,
        TP_PROTO(unsigned write, u32 ecx, u64 data, bool exception),
        TP_ARGS(write, ecx, data, exception),
 
-       TP_STRUCT__entry(
-               __field(        unsigned,       write           )
-               __field(        u32,            ecx             )
-               __field(        u64,            data            )
-               __field(        u8,             exception       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(write, write)
-               tp_assign(ecx, ecx)
-               tp_assign(data, data)
-               tp_assign(exception, exception)
-       ),
-
-       TP_printk("msr_%s %x = 0x%llx%s",
-                 __entry->write ? "write" : "read",
-                 __entry->ecx, __entry->data,
-                 __entry->exception ? " (#GP)" : "")
+       TP_FIELDS(
+               ctf_integer(unsigned, write, write)
+               ctf_integer(u32, ecx, ecx)
+               ctf_integer(u64, data, data)
+               ctf_integer(u8, exception, exception)
+       )
 )
 
 #define trace_kvm_msr_read(ecx, data)      trace_kvm_msr(0, ecx, data, false)
@@ -331,21 +202,11 @@ LTTNG_TRACEPOINT_EVENT(kvm_cr,
        TP_PROTO(unsigned int rw, unsigned int cr, unsigned long val),
        TP_ARGS(rw, cr, val),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   rw              )
-               __field(        unsigned int,   cr              )
-               __field(        unsigned long,  val             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rw, rw)
-               tp_assign(cr, cr)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("cr_%s %x = 0x%lx",
-                 __entry->rw ? "write" : "read",
-                 __entry->cr, __entry->val)
+       TP_FIELDS(
+               ctf_integer(unsigned int, rw, rw)
+               ctf_integer(unsigned int, cr, cr)
+               ctf_integer(unsigned long, val, val)
+       )
 )
 
 #define trace_kvm_cr_read(cr, val)             trace_kvm_cr(0, cr, val)
@@ -355,119 +216,56 @@ LTTNG_TRACEPOINT_EVENT(kvm_pic_set_irq,
            TP_PROTO(__u8 chip, __u8 pin, __u8 elcr, __u8 imr, bool coalesced),
            TP_ARGS(chip, pin, elcr, imr, coalesced),
 
-       TP_STRUCT__entry(
-               __field(        __u8,           chip            )
-               __field(        __u8,           pin             )
-               __field(        __u8,           elcr            )
-               __field(        __u8,           imr             )
-               __field(        bool,           coalesced       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(chip, chip)
-               tp_assign(pin, pin)
-               tp_assign(elcr, elcr)
-               tp_assign(imr, imr)
-               tp_assign(coalesced, coalesced)
-       ),
-
-       TP_printk("chip %u pin %u (%s%s)%s",
-                 __entry->chip, __entry->pin,
-                 (__entry->elcr & (1 << __entry->pin)) ? "level":"edge",
-                 (__entry->imr & (1 << __entry->pin)) ? "|masked":"",
-                 __entry->coalesced ? " (coalesced)" : "")
+       TP_FIELDS(
+               ctf_integer(__u8, chip, chip)
+               ctf_integer(__u8, pin, pin)
+               ctf_integer(__u8, elcr, elcr)
+               ctf_integer(__u8, imr, imr)
+               ctf_integer(bool, coalesced, coalesced)
+       )
 )
 
-#define kvm_apic_dst_shorthand         \
-       {0x0, "dst"},                   \
-       {0x1, "self"},                  \
-       {0x2, "all"},                   \
-       {0x3, "all-but-self"}
-
 LTTNG_TRACEPOINT_EVENT(kvm_apic_ipi,
            TP_PROTO(__u32 icr_low, __u32 dest_id),
            TP_ARGS(icr_low, dest_id),
 
-       TP_STRUCT__entry(
-               __field(        __u32,          icr_low         )
-               __field(        __u32,          dest_id         )
-       ),
-
-       TP_fast_assign(
-               tp_assign(icr_low, icr_low)
-               tp_assign(dest_id, dest_id)
-       ),
-
-       TP_printk("dst %x vec %u (%s|%s|%s|%s|%s)",
-                 __entry->dest_id, (u8)__entry->icr_low,
-                 __print_symbolic((__entry->icr_low >> 8 & 0x7),
-                                  kvm_deliver_mode),
-                 (__entry->icr_low & (1<<11)) ? "logical" : "physical",
-                 (__entry->icr_low & (1<<14)) ? "assert" : "de-assert",
-                 (__entry->icr_low & (1<<15)) ? "level" : "edge",
-                 __print_symbolic((__entry->icr_low >> 18 & 0x3),
-                                  kvm_apic_dst_shorthand))
+       TP_FIELDS(
+               ctf_integer(__u32, icr_low, icr_low)
+               ctf_integer(__u32, dest_id, dest_id)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(kvm_apic_accept_irq,
            TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec, bool coalesced),
            TP_ARGS(apicid, dm, tm, vec, coalesced),
 
-       TP_STRUCT__entry(
-               __field(        __u32,          apicid          )
-               __field(        __u16,          dm              )
-               __field(        __u8,           tm              )
-               __field(        __u8,           vec             )
-               __field(        bool,           coalesced       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(apicid, apicid)
-               tp_assign(dm, dm)
-               tp_assign(tm, tm)
-               tp_assign(vec, vec)
-               tp_assign(coalesced, coalesced)
-       ),
-
-       TP_printk("apicid %x vec %u (%s|%s)%s",
-                 __entry->apicid, __entry->vec,
-                 __print_symbolic((__entry->dm >> 8 & 0x7), kvm_deliver_mode),
-                 __entry->tm ? "level" : "edge",
-                 __entry->coalesced ? " (coalesced)" : "")
+       TP_FIELDS(
+               ctf_integer(__u32, apicid, apicid)
+               ctf_integer(__u16, dm, dm)
+               ctf_integer(__u8, tm, tm)
+               ctf_integer(__u8, vec, vec)
+               ctf_integer(bool, coalesced, coalesced)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(kvm_eoi,
            TP_PROTO(struct kvm_lapic *apic, int vector),
            TP_ARGS(apic, vector),
 
-       TP_STRUCT__entry(
-               __field(        __u32,          apicid          )
-               __field(        int,            vector          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(apicid, apic->vcpu->vcpu_id)
-               tp_assign(vector, vector)
-       ),
-
-       TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector)
+       TP_FIELDS(
+               ctf_integer(__u32, apicid, apic->vcpu->vcpu_id)
+               ctf_integer(int, vector, vector)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(kvm_pv_eoi,
            TP_PROTO(struct kvm_lapic *apic, int vector),
            TP_ARGS(apic, vector),
 
-       TP_STRUCT__entry(
-               __field(        __u32,          apicid          )
-               __field(        int,            vector          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(apicid, apic->vcpu->vcpu_id)
-               tp_assign(vector, vector)
-       ),
-
-       TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector)
+       TP_FIELDS(
+               ctf_integer(__u32, apicid, apic->vcpu->vcpu_id)
+               ctf_integer(int, vector, vector)
+       )
 )
 
 /*
@@ -478,52 +276,26 @@ LTTNG_TRACEPOINT_EVENT(kvm_nested_vmrun,
                     __u32 event_inj, bool npt),
            TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt),
 
-       TP_STRUCT__entry(
-               __field(        __u64,          rip             )
-               __field(        __u64,          vmcb            )
-               __field(        __u64,          nested_rip      )
-               __field(        __u32,          int_ctl         )
-               __field(        __u32,          event_inj       )
-               __field(        bool,           npt             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rip, rip)
-               tp_assign(vmcb, vmcb)
-               tp_assign(nested_rip, nested_rip)
-               tp_assign(int_ctl, int_ctl)
-               tp_assign(event_inj, event_inj)
-               tp_assign(npt, npt)
-       ),
-
-       TP_printk("rip: 0x%016llx vmcb: 0x%016llx nrip: 0x%016llx int_ctl: 0x%08x "
-                 "event_inj: 0x%08x npt: %s",
-               __entry->rip, __entry->vmcb, __entry->nested_rip,
-               __entry->int_ctl, __entry->event_inj,
-               __entry->npt ? "on" : "off")
+       TP_FIELDS(
+               ctf_integer(__u64, rip, rip)
+               ctf_integer(__u64, vmcb, vmcb)
+               ctf_integer(__u64, nested_rip, nested_rip)
+               ctf_integer(__u32, int_ctl, int_ctl)
+               ctf_integer(__u32, event_inj, event_inj)
+               ctf_integer(bool, npt, npt)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(kvm_nested_intercepts,
            TP_PROTO(__u16 cr_read, __u16 cr_write, __u32 exceptions, __u64 intercept),
            TP_ARGS(cr_read, cr_write, exceptions, intercept),
 
-       TP_STRUCT__entry(
-               __field(        __u16,          cr_read         )
-               __field(        __u16,          cr_write        )
-               __field(        __u32,          exceptions      )
-               __field(        __u64,          intercept       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(cr_read, cr_read)
-               tp_assign(cr_write, cr_write)
-               tp_assign(exceptions, exceptions)
-               tp_assign(intercept, intercept)
-       ),
-
-       TP_printk("cr_read: %04x cr_write: %04x excp: %08x intercept: %016llx",
-               __entry->cr_read, __entry->cr_write, __entry->exceptions,
-               __entry->intercept)
+       TP_FIELDS(
+               ctf_integer(__u16, cr_read, cr_read)
+               ctf_integer(__u16, cr_write, cr_write)
+               ctf_integer(__u32, exceptions, exceptions)
+               ctf_integer(__u64, intercept, intercept)
+       )
 )
 /*
  * Tracepoint for #VMEXIT while nested
@@ -535,33 +307,15 @@ LTTNG_TRACEPOINT_EVENT(kvm_nested_vmexit,
            TP_ARGS(rip, exit_code, exit_info1, exit_info2,
                    exit_int_info, exit_int_info_err, isa),
 
-       TP_STRUCT__entry(
-               __field(        __u64,          rip                     )
-               __field(        __u32,          exit_code               )
-               __field(        __u64,          exit_info1              )
-               __field(        __u64,          exit_info2              )
-               __field(        __u32,          exit_int_info           )
-               __field(        __u32,          exit_int_info_err       )
-               __field(        __u32,          isa                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rip, rip)
-               tp_assign(exit_code, exit_code)
-               tp_assign(exit_info1, exit_info1)
-               tp_assign(exit_info2, exit_info2)
-               tp_assign(exit_int_info, exit_int_info)
-               tp_assign(exit_int_info_err, exit_int_info_err)
-               tp_assign(isa, isa)
-       ),
-       TP_printk("rip: 0x%016llx reason: %s ext_inf1: 0x%016llx "
-                 "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x",
-                 __entry->rip,
-                (__entry->isa == KVM_ISA_VMX) ?
-                __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) :
-                __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS),
-                 __entry->exit_info1, __entry->exit_info2,
-                 __entry->exit_int_info, __entry->exit_int_info_err)
+       TP_FIELDS(
+               ctf_integer(__u64, rip, rip)
+               ctf_integer(__u32, exit_code, exit_code)
+               ctf_integer(__u64, exit_info1, exit_info1)
+               ctf_integer(__u64, exit_info2, exit_info2)
+               ctf_integer(__u32, exit_int_info, exit_int_info)
+               ctf_integer(__u32, exit_int_info_err, exit_int_info_err)
+               ctf_integer(__u32, isa, isa)
+       )
 )
 
 /*
@@ -574,31 +328,14 @@ LTTNG_TRACEPOINT_EVENT(kvm_nested_vmexit_inject,
            TP_ARGS(exit_code, exit_info1, exit_info2,
                    exit_int_info, exit_int_info_err, isa),
 
-       TP_STRUCT__entry(
-               __field(        __u32,          exit_code               )
-               __field(        __u64,          exit_info1              )
-               __field(        __u64,          exit_info2              )
-               __field(        __u32,          exit_int_info           )
-               __field(        __u32,          exit_int_info_err       )
-               __field(        __u32,          isa                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(exit_code, exit_code)
-               tp_assign(exit_info1, exit_info1)
-               tp_assign(exit_info2, exit_info2)
-               tp_assign(exit_int_info, exit_int_info)
-               tp_assign(exit_int_info_err, exit_int_info_err)
-               tp_assign(isa, isa)
-       ),
-
-       TP_printk("reason: %s ext_inf1: 0x%016llx "
-                 "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x",
-                (__entry->isa == KVM_ISA_VMX) ?
-                __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) :
-                __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS),
-               __entry->exit_info1, __entry->exit_info2,
-               __entry->exit_int_info, __entry->exit_int_info_err)
+       TP_FIELDS(
+               ctf_integer(__u32, exit_code, exit_code)
+               ctf_integer(__u64, exit_info1, exit_info1)
+               ctf_integer(__u64, exit_info2, exit_info2)
+               ctf_integer(__u32, exit_int_info, exit_int_info)
+               ctf_integer(__u32, exit_int_info_err, exit_int_info_err)
+               ctf_integer(__u32, isa, isa)
+       )
 )
 
 /*
@@ -608,15 +345,9 @@ LTTNG_TRACEPOINT_EVENT(kvm_nested_intr_vmexit,
            TP_PROTO(__u64 rip),
            TP_ARGS(rip),
 
-       TP_STRUCT__entry(
-               __field(        __u64,  rip     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rip,  rip)
-       ),
-
-       TP_printk("rip: 0x%016llx", __entry->rip)
+       TP_FIELDS(
+               ctf_integer(__u64, rip, rip)
+       )
 )
 
 /*
@@ -626,20 +357,11 @@ LTTNG_TRACEPOINT_EVENT(kvm_invlpga,
            TP_PROTO(__u64 rip, int asid, u64 address),
            TP_ARGS(rip, asid, address),
 
-       TP_STRUCT__entry(
-               __field(        __u64,  rip     )
-               __field(        int,    asid    )
-               __field(        __u64,  address )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rip,  rip)
-               tp_assign(asid, asid)
-               tp_assign(address,      address)
-       ),
-
-       TP_printk("rip: 0x%016llx asid: %d address: 0x%016llx",
-                 __entry->rip, __entry->asid, __entry->address)
+       TP_FIELDS(
+               ctf_integer(__u64, rip, rip)
+               ctf_integer(int, asid, asid)
+               ctf_integer(__u64, address, address)
+       )
 )
 
 /*
@@ -649,18 +371,10 @@ LTTNG_TRACEPOINT_EVENT(kvm_skinit,
            TP_PROTO(__u64 rip, __u32 slb),
            TP_ARGS(rip, slb),
 
-       TP_STRUCT__entry(
-               __field(        __u64,  rip     )
-               __field(        __u32,  slb     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(rip,  rip)
-               tp_assign(slb,  slb)
-       ),
-
-       TP_printk("rip: 0x%016llx slb: 0x%08x",
-                 __entry->rip, __entry->slb)
+       TP_FIELDS(
+               ctf_integer(__u64, rip, rip)
+               ctf_integer(__u32, slb, slb)
+       )
 )
 
 #define KVM_EMUL_INSN_F_CR0_PE (1 << 0)
@@ -706,55 +420,32 @@ LTTNG_TRACEPOINT_EVENT(kvm_emulate_insn,
        TP_PROTO(struct kvm_vcpu *vcpu, __u8 failed),
        TP_ARGS(vcpu, failed),
 
-       TP_STRUCT__entry(
-               __field(    __u64, rip                       )
-               __field(    __u32, csbase                    )
-               __field(    __u8,  len                       )
-               __array(    __u8,  insn,    15               )
-               __field(    __u8,  flags                     )
-               __field(    __u8,  failed                    )
-               ),
-
-       TP_fast_assign(
+       TP_FIELDS(
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               tp_assign(rip, vcpu->arch.emulate_ctxt.decode.fetch.start)
-               tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
-               tp_assign(len, vcpu->arch.emulate_ctxt.decode.eip
-                              - vcpu->arch.emulate_ctxt.decode.fetch.start)
-               tp_memcpy(insn,
-                      vcpu->arch.emulate_ctxt.decode.fetch.data,
-                      15)
+               ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt.decode.fetch.start)
+               ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
+               ctf_integer(__u8, len, vcpu->arch.emulate_ctxt.decode.eip
+                               - vcpu->arch.emulate_ctxt.decode.fetch.start)
+               ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.decode.fetch.data, 15)
 #elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0))
-               tp_assign(rip, vcpu->arch.emulate_ctxt.fetch.start)
-               tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
-               tp_assign(len, vcpu->arch.emulate_ctxt._eip
-                              - vcpu->arch.emulate_ctxt.fetch.start)
-               tp_memcpy(insn,
-                      vcpu->arch.emulate_ctxt.fetch.data,
-                      15)
+               ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt.fetch.start)
+               ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
+               ctf_integer(__u8, len, vcpu->arch.emulate_ctxt._eip
+                               - vcpu->arch.emulate_ctxt.fetch.start)
+               ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.fetch.data, 15)
 #else
-               tp_assign(rip, vcpu->arch.emulate_ctxt._eip -
-                       (vcpu->arch.emulate_ctxt.fetch.ptr -
-                               vcpu->arch.emulate_ctxt.fetch.data))
-               tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
-               tp_assign(len, vcpu->arch.emulate_ctxt.fetch.ptr -
-                       vcpu->arch.emulate_ctxt.fetch.data)
-               tp_memcpy(insn,
-                      vcpu->arch.emulate_ctxt.fetch.data,
-                      15)
+               ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt._eip -
+                               (vcpu->arch.emulate_ctxt.fetch.ptr -
+                                       vcpu->arch.emulate_ctxt.fetch.data))
+               ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
+               ctf_integer(__u8, len, vcpu->arch.emulate_ctxt.fetch.ptr -
+                               vcpu->arch.emulate_ctxt.fetch.data)
+               ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.fetch.data, 15)
 #endif
-               tp_assign(flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
-               tp_assign(failed, failed)
-               ),
-
-       TP_printk("%x:%llx:%s (%s)%s",
-                 __entry->csbase, __entry->rip,
-                 __print_hex(__entry->insn, __entry->len),
-                 __print_symbolic(__entry->flags,
-                                  kvm_trace_symbol_emul_flags),
-                 __entry->failed ? " failed" : ""
-               )
+               ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
+               ctf_integer(__u8, failed, failed)
        )
+)
 
 #define trace_kvm_emulate_insn_start(vcpu) trace_kvm_emulate_insn(vcpu, 0)
 #define trace_kvm_emulate_insn_failed(vcpu) trace_kvm_emulate_insn(vcpu, 1)
@@ -764,23 +455,12 @@ LTTNG_TRACEPOINT_EVENT(
        TP_PROTO(gva_t gva, gpa_t gpa, bool write, bool gpa_match),
        TP_ARGS(gva, gpa, write, gpa_match),
 
-       TP_STRUCT__entry(
-               __field(gva_t, gva)
-               __field(gpa_t, gpa)
-               __field(bool, write)
-               __field(bool, gpa_match)
-               ),
-
-       TP_fast_assign(
-               tp_assign(gva, gva)
-               tp_assign(gpa, gpa)
-               tp_assign(write, write)
-               tp_assign(gpa_match, gpa_match)
-               ),
-
-       TP_printk("gva %#lx gpa %#llx %s %s", __entry->gva, __entry->gpa,
-                 __entry->write ? "Write" : "Read",
-                 __entry->gpa_match ? "GPA" : "GVA")
+       TP_FIELDS(
+               ctf_integer(gva_t, gva, gva)
+               ctf_integer(gpa_t, gpa, gpa)
+               ctf_integer(bool, write, write)
+               ctf_integer(bool, gpa_match, gpa_match)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
@@ -789,51 +469,26 @@ LTTNG_TRACEPOINT_EVENT(kvm_write_tsc_offset,
                 __u64 next_tsc_offset),
        TP_ARGS(vcpu_id, previous_tsc_offset, next_tsc_offset),
 
-       TP_STRUCT__entry(
-               __field( unsigned int,  vcpu_id                         )
-               __field(        __u64,  previous_tsc_offset             )
-               __field(        __u64,  next_tsc_offset                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(vcpu_id, vcpu_id)
-               tp_assign(previous_tsc_offset, previous_tsc_offset)
-               tp_assign(next_tsc_offset, next_tsc_offset)
-       ),
-
-       TP_printk("vcpu=%u prev=%llu next=%llu", __entry->vcpu_id,
-                 __entry->previous_tsc_offset, __entry->next_tsc_offset)
+       TP_FIELDS(
+               ctf_integer(unsigned int, vcpu_id, vcpu_id)
+               ctf_integer(__u64, previous_tsc_offset, previous_tsc_offset)
+               ctf_integer(__u64, next_tsc_offset, next_tsc_offset)
+       )
 )
 #endif
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
 #ifdef CONFIG_X86_64
 
-#define host_clocks                                    \
-       {VCLOCK_NONE, "none"},                          \
-       {VCLOCK_TSC,  "tsc"},                           \
-       {VCLOCK_HPET, "hpet"}                           \
-
 LTTNG_TRACEPOINT_EVENT(kvm_update_master_clock,
        TP_PROTO(bool use_master_clock, unsigned int host_clock, bool offset_matched),
        TP_ARGS(use_master_clock, host_clock, offset_matched),
 
-       TP_STRUCT__entry(
-               __field(                bool,   use_master_clock        )
-               __field(        unsigned int,   host_clock              )
-               __field(                bool,   offset_matched          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(use_master_clock, use_master_clock)
-               tp_assign(host_clock, host_clock)
-               tp_assign(offset_matched, offset_matched)
-       ),
-
-       TP_printk("masterclock %d hostclock %s offsetmatched %u",
-                 __entry->use_master_clock,
-                 __print_symbolic(__entry->host_clock, host_clocks),
-                 __entry->offset_matched)
+       TP_FIELDS(
+               ctf_integer(bool, use_master_clock, use_master_clock)
+               ctf_integer(unsigned int, host_clock, host_clock)
+               ctf_integer(bool, offset_matched, offset_matched)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(kvm_track_tsc,
@@ -843,27 +498,13 @@ LTTNG_TRACEPOINT_EVENT(kvm_track_tsc,
        TP_ARGS(vcpu_id, nr_matched, online_vcpus, use_master_clock,
                host_clock),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   vcpu_id                 )
-               __field(        unsigned int,   nr_vcpus_matched_tsc    )
-               __field(        unsigned int,   online_vcpus            )
-               __field(        bool,           use_master_clock        )
-               __field(        unsigned int,   host_clock              )
-       ),
-
-       TP_fast_assign(
-               tp_assign(vcpu_id, vcpu_id)
-               tp_assign(nr_vcpus_matched_tsc, nr_matched)
-               tp_assign(online_vcpus, online_vcpus)
-               tp_assign(use_master_clock, use_master_clock)
-               tp_assign(host_clock, host_clock)
-       ),
-
-       TP_printk("vcpu_id %u masterclock %u offsetmatched %u nr_online %u"
-                 " hostclock %s",
-                 __entry->vcpu_id, __entry->use_master_clock,
-                 __entry->nr_vcpus_matched_tsc, __entry->online_vcpus,
-                 __print_symbolic(__entry->host_clock, host_clocks))
+       TP_FIELDS(
+               ctf_integer(unsigned int, vcpu_id, vcpu_id)
+               ctf_integer(unsigned int, nr_vcpus_matched_tsc, nr_matched)
+               ctf_integer(unsigned int, online_vcpus, online_vcpus)
+               ctf_integer(bool, use_master_clock, use_master_clock)
+               ctf_integer(unsigned int, host_clock, host_clock)
+       )
 )
 
 #endif /* CONFIG_X86_64 */
index 4aca115cb960e1532c2b1dcd635847b78346f985..acbb1a12ea39f61346100a7d41a83ef81c3d7a80 100644 (file)
@@ -39,23 +39,12 @@ LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_reg,
 
        TP_ARGS(codec, reg, val),
 
-       TP_STRUCT__entry(
-               __string(       name,           codec->CODEC_NAME_FIELD )
-               __field(        int,            id              )
-               __field(        unsigned int,   reg             )
-               __field(        unsigned int,   val             )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, codec->CODEC_NAME_FIELD)
-               tp_assign(id, codec->CODEC_ID_FIELD)
-               tp_assign(reg, reg)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name),
-                 (int)__entry->id, (unsigned int)__entry->reg,
-                 (unsigned int)__entry->val)
+       TP_FIELDS(
+               ctf_string(name, codec->CODEC_NAME_FIELD)
+               ctf_integer(int, id, codec->CODEC_ID_FIELD)
+               ctf_integer(unsigned int, reg, reg)
+               ctf_integer(unsigned int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_reg, snd_soc_reg_write,
@@ -84,23 +73,12 @@ LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_preg,
 
        TP_ARGS(platform, reg, val),
 
-       TP_STRUCT__entry(
-               __string(       name,           platform->CODEC_NAME_FIELD      )
-               __field(        int,            id              )
-               __field(        unsigned int,   reg             )
-               __field(        unsigned int,   val             )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, platform->CODEC_NAME_FIELD)
-               tp_assign(id, platform->CODEC_ID_FIELD)
-               tp_assign(reg, reg)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name),
-                 (int)__entry->id, (unsigned int)__entry->reg,
-                 (unsigned int)__entry->val)
+       TP_FIELDS(
+               ctf_string(name, platform->CODEC_NAME_FIELD)
+               ctf_integer(int, id, platform->CODEC_ID_FIELD)
+               ctf_integer(unsigned int, reg, reg)
+               ctf_integer(unsigned int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_preg, snd_soc_preg_write,
@@ -128,17 +106,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_card,
 
        TP_ARGS(card, val),
 
-       TP_STRUCT__entry(
-               __string(       name,           card->name      )
-               __field(        int,            val             )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, card->name)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
+       TP_FIELDS(
+               ctf_string(name, card->name)
+               ctf_integer(int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_card, snd_soc_bias_level_start,
@@ -163,15 +134,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_dapm_basic,
 
        TP_ARGS(card),
 
-       TP_STRUCT__entry(
-               __string(       name,   card->name      )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, card->name)
-       ),
-
-       TP_printk("card=%s", __get_str(name))
+       TP_FIELDS(
+               ctf_string(name, card->name)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_basic, snd_soc_dapm_start,
@@ -196,18 +161,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_dapm_widget,
 
        TP_ARGS(w, val),
 
-       TP_STRUCT__entry(
-               __string(       name,   w->name         )
-               __field(        int,    val             )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, w->name)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("widget=%s val=%d", __get_str(name),
-                 (int)__entry->val)
+       TP_FIELDS(
+               ctf_string(name, w->name)
+               ctf_integer(int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
@@ -241,23 +198,12 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_walk_done,
 
        TP_ARGS(card),
 
-       TP_STRUCT__entry(
-               __string(       name,   card->name              )
-               __field(        int,    power_checks            )
-               __field(        int,    path_checks             )
-               __field(        int,    neighbour_checks        )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, card->name)
-               tp_assign(power_checks, card->dapm_stats.power_checks)
-               tp_assign(path_checks, card->dapm_stats.path_checks)
-               tp_assign(neighbour_checks, card->dapm_stats.neighbour_checks)
-       ),
-
-       TP_printk("%s: checks %d power, %d path, %d neighbour",
-                 __get_str(name), (int)__entry->power_checks,
-                 (int)__entry->path_checks, (int)__entry->neighbour_checks)
+       TP_FIELDS(
+               ctf_string(name, card->name)
+               ctf_integer(int, power_checks, card->dapm_stats.power_checks)
+               ctf_integer(int, path_checks, card->dapm_stats.path_checks)
+               ctf_integer(int, neighbour_checks, card->dapm_stats.neighbour_checks)
+       )
 )
 #endif
 
@@ -269,26 +215,13 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_output_path,
 
        TP_ARGS(widget, path),
 
-       TP_STRUCT__entry(
-               __string(       wname,  widget->name            )
-               __string(       pname,  path->name ? path->name : DAPM_DIRECT)
-               __string(       psname, path->sink->name        )
-               __field(        int,    path_sink               )
-               __field(        int,    path_connect            )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(wname, widget->name)
-               tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT)
-               tp_strcpy(psname, path->sink->name)
-               tp_assign(path_connect, path->connect)
-               tp_assign(path_sink, (long)path->sink)
-       ),
-
-       TP_printk("%c%s -> %s -> %s\n",
-               (int) __entry->path_sink &&
-               (int) __entry->path_connect ? '*' : ' ',
-               __get_str(wname), __get_str(pname), __get_str(psname))
+       TP_FIELDS(
+               ctf_string(wname, widget->name)
+               ctf_string(pname, path->name ? path->name : DAPM_DIRECT)
+               ctf_string(psname, path->sink->name)
+               ctf_integer(int, path_sink, (long) path->sink)
+               ctf_integer(int, path_connect, path->connect)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_input_path,
@@ -298,26 +231,13 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_input_path,
 
        TP_ARGS(widget, path),
 
-       TP_STRUCT__entry(
-               __string(       wname,  widget->name            )
-               __string(       pname,  path->name ? path->name : DAPM_DIRECT)
-               __string(       psname, path->source->name      )
-               __field(        int,    path_source             )
-               __field(        int,    path_connect            )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(wname, widget->name)
-               tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT)
-               tp_strcpy(psname, path->source->name)
-               tp_assign(path_connect, path->connect)
-               tp_assign(path_source, (long)path->source)
-       ),
-
-       TP_printk("%c%s <- %s <- %s\n",
-               (int) __entry->path_source &&
-               (int) __entry->path_connect ? '*' : ' ',
-               __get_str(wname), __get_str(pname), __get_str(psname))
+       TP_FIELDS(
+               ctf_string(wname, widget->name)
+               ctf_string(pname,path->name ? path->name : DAPM_DIRECT)
+               ctf_string(psname, path->source->name)
+               ctf_integer(int, path_source, (long) path->source)
+               ctf_integer(int, path_connect, path->connect)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_connected,
@@ -326,18 +246,10 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_connected,
 
        TP_ARGS(paths, stream),
 
-       TP_STRUCT__entry(
-               __field(        int,    paths           )
-               __field(        int,    stream          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(paths, paths)
-               tp_assign(stream, stream)
-       ),
-
-       TP_printk("%s: found %d paths\n",
-               __entry->stream ? "capture" : "playback", __entry->paths)
+       TP_FIELDS(
+               ctf_integer(int, paths, paths)
+               ctf_integer(int, stream, stream)
+       )
 )
 #endif
 
@@ -347,15 +259,9 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_jack_irq,
 
        TP_ARGS(name),
 
-       TP_STRUCT__entry(
-               __string(       name,   name            )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, name)
-       ),
-
-       TP_printk("%s", __get_str(name))
+       TP_FIELDS(
+               ctf_string(name, name)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(snd_soc_jack_report,
@@ -364,20 +270,11 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_jack_report,
 
        TP_ARGS(jack, mask, val),
 
-       TP_STRUCT__entry(
-               __string(       name,           jack->jack->name        )
-               __field(        int,            mask                    )
-               __field(        int,            val                     )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, jack->jack->name)
-               tp_assign(mask, mask)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val,
-                 (int)__entry->mask)
+       TP_FIELDS(
+               ctf_string(name, jack->jack->name)
+               ctf_integer(int, mask, mask)
+               ctf_integer(int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(snd_soc_jack_notify,
@@ -386,17 +283,10 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_jack_notify,
 
        TP_ARGS(jack, val),
 
-       TP_STRUCT__entry(
-               __string(       name,           jack->jack->name        )
-               __field(        int,            val                     )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, jack->jack->name)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
+       TP_FIELDS(
+               ctf_string(name, jack->jack->name)
+               ctf_integer(int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(snd_soc_cache_sync,
@@ -406,22 +296,12 @@ LTTNG_TRACEPOINT_EVENT(snd_soc_cache_sync,
 
        TP_ARGS(codec, type, status),
 
-       TP_STRUCT__entry(
-               __string(       name,           codec->CODEC_NAME_FIELD )
-               __string(       status,         status          )
-               __string(       type,           type            )
-               __field(        int,            id              )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, codec->CODEC_NAME_FIELD)
-               tp_strcpy(status, status)
-               tp_strcpy(type, type)
-               tp_assign(id, codec->CODEC_ID_FIELD)
-       ),
-
-       TP_printk("codec=%s.%d type=%s status=%s", __get_str(name),
-                 (int)__entry->id, __get_str(type), __get_str(status))
+       TP_FIELDS(
+               ctf_string(name, codec->CODEC_NAME_FIELD)
+               ctf_string(status, status)
+               ctf_string(type, type)
+               ctf_integer(int, id, codec->CODEC_ID_FIELD)
+       )
 )
 
 #endif /* LTTNG_TRACE_ASOC_H */
index 0aff54694535b81e2b994f6ce5635fb22a0990e3..445406e0738419e8a57b5ba44881ec87b6f0e6bd 100644 (file)
 #include <linux/trace_seq.h>
 #include <linux/version.h>
 
-#define RWBS_LEN       8
-
 #ifndef _TRACE_BLOCK_DEF_
 #define _TRACE_BLOCK_DEF_
 
-#define __blk_dump_cmd(cmd, len)       "<unknown>"
-
 enum {
        RWBS_FLAG_WRITE         = (1 << 0),
        RWBS_FLAG_DISCARD       = (1 << 1),
@@ -32,23 +28,10 @@ enum {
 
 #endif /* _TRACE_BLOCK_DEF_ */
 
-#define __print_rwbs_flags(rwbs)               \
-       __print_flags(rwbs, "",                 \
-               { RWBS_FLAG_FLUSH, "F" },       \
-               { RWBS_FLAG_WRITE, "W" },       \
-               { RWBS_FLAG_DISCARD, "D" },     \
-               { RWBS_FLAG_READ, "R" },        \
-               { RWBS_FLAG_FUA, "F" },         \
-               { RWBS_FLAG_RAHEAD, "A" },      \
-               { RWBS_FLAG_BARRIER, "B" },     \
-               { RWBS_FLAG_SYNC, "S" },        \
-               { RWBS_FLAG_META, "M" },        \
-               { RWBS_FLAG_SECURE, "E" })
-
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
 
-#define blk_fill_rwbs(rwbs, rw, bytes)                                       \
-               tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :             \
+#define blk_rwbs_ctf_integer(type, rwbs, rw, bytes)                          \
+               ctf_integer(type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :     \
                        ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD :            \
                        ( (bytes) ? RWBS_FLAG_READ :                          \
                        ( 0 ))))                                              \
@@ -61,8 +44,8 @@ enum {
 
 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
 
-#define blk_fill_rwbs(rwbs, rw, bytes)                                       \
-               tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :             \
+#define blk_rwbs_ctf_integer(type, rwbs, rw, bytes)                          \
+               ctf_integer(type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :     \
                        ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD :            \
                        ( (bytes) ? RWBS_FLAG_READ :                          \
                        ( 0 ))))                                              \
@@ -73,8 +56,8 @@ enum {
 
 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
 
-#define blk_fill_rwbs(rwbs, rw, bytes)                                       \
-               tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :             \
+#define blk_rwbs_ctf_integer(type, rwbs, rw, bytes)                          \
+               ctf_integer(type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :     \
                        ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD :            \
                        ( (bytes) ? RWBS_FLAG_READ :                          \
                        ( 0 ))))                                              \
@@ -86,8 +69,8 @@ enum {
 
 #else
 
-#define blk_fill_rwbs(rwbs, rw, bytes)                                       \
-               tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :             \
+#define blk_rwbs_ctf_integer(type, rwbs, rw, bytes)                          \
+               ctf_integer(type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE :     \
                        ( (rw) & (1 << BIO_RW_DISCARD) ? RWBS_FLAG_DISCARD :  \
                        ( (bytes) ? RWBS_FLAG_READ :                          \
                        ( 0 ))))                                              \
@@ -105,21 +88,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_buffer,
 
        TP_ARGS(bh),
 
-       TP_STRUCT__entry (
-               __field(  dev_t,        dev                     )
-               __field(  sector_t,     sector                  )
-               __field(  size_t,       size                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, bh->b_bdev->bd_dev)
-               tp_assign(sector, bh->b_blocknr)
-               tp_assign(size, bh->b_size)
-       ),
-
-       TP_printk("%d,%d sector=%llu size=%zu",
-               MAJOR(__entry->dev), MINOR(__entry->dev),
-               (unsigned long long)__entry->sector, __entry->size
+       TP_FIELDS (
+               ctf_integer(dev_t, dev, bh->b_bdev->bd_dev)
+               ctf_integer(sector_t, sector, bh->b_blocknr)
+               ctf_integer(size_t, size, bh->b_size)
        )
 )
 
@@ -150,42 +122,44 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_buffer, block_dirty_buffer,
 )
 #endif
 
-LTTNG_TRACEPOINT_EVENT_CLASS(block_rq_with_error,
+LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq_with_error,
 
        TP_PROTO(struct request_queue *q, struct request *rq),
 
        TP_ARGS(q, rq),
 
-       TP_STRUCT__entry(
-               __field(  dev_t,        dev                     )
-               __field(  sector_t,     sector                  )
-               __field(  unsigned int, nr_sector               )
-               __field(  int,          errors                  )
-               __field(  unsigned int, rwbs                    )
-               __dynamic_array_hex( unsigned char,     cmd,
-                       (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                               rq->cmd_len : 0)
+       TP_locvar(
+               sector_t sector;
+               unsigned int nr_sector;
+               unsigned char *cmd;
+               size_t cmd_len;
        ),
 
-       TP_fast_assign(
-               tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
-               tp_assign(sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       0 : blk_rq_pos(rq))
-               tp_assign(nr_sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       0 : blk_rq_sectors(rq))
-               tp_assign(errors, rq->errors)
-               blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq))
-               tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       rq->cmd : NULL)
+       TP_code(
+               if (rq->cmd_type == REQ_TYPE_BLOCK_PC) {
+                       tp_locvar->sector = 0;
+                       tp_locvar->nr_sector = 0;
+                       tp_locvar->cmd = rq->cmd;
+                       tp_locvar->cmd_len = rq->cmd_len;
+               } else {
+                       tp_locvar->sector = blk_rq_pos(rq);
+                       tp_locvar->nr_sector = blk_rq_sectors(rq);
+                       tp_locvar->cmd = NULL;
+                       tp_locvar->cmd_len = 0;
+               }
        ),
 
-       TP_printk("%d,%d %s (%s) %llu + %u [%d]",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 __blk_dump_cmd(__get_dynamic_array(cmd),
-                                __get_dynamic_array_len(cmd)),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->errors)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev,
+                       rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
+               ctf_integer(sector_t, sector, tp_locvar->sector)
+               ctf_integer(unsigned int, nr_sector, tp_locvar->nr_sector)
+               ctf_integer(int, errors, rq->errors)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       rq->cmd_flags, blk_rq_bytes(rq))
+               ctf_sequence_hex(unsigned char, cmd,
+                       tp_locvar->cmd, size_t, tp_locvar->cmd_len)
+       )
 )
 
 /**
@@ -240,39 +214,39 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_requeue,
  * do for the request. If @rq->bio is non-NULL then there is
  * additional work required to complete the request.
  */
-LTTNG_TRACEPOINT_EVENT(block_rq_complete,
+LTTNG_TRACEPOINT_EVENT_CODE(block_rq_complete,
 
        TP_PROTO(struct request_queue *q, struct request *rq,
                 unsigned int nr_bytes),
 
        TP_ARGS(q, rq, nr_bytes),
 
-       TP_STRUCT__entry(
-               __field(  dev_t,        dev                     )
-               __field(  sector_t,     sector                  )
-               __field(  unsigned int, nr_sector               )
-               __field(  int,          errors                  )
-               __field(  unsigned int, rwbs                    )
-               __dynamic_array_hex( unsigned char,     cmd,
-                       (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                               rq->cmd_len : 0)
+       TP_locvar(
+               unsigned char *cmd;
+               size_t cmd_len;
        ),
 
-       TP_fast_assign(
-               tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
-               tp_assign(sector, blk_rq_pos(rq))
-               tp_assign(nr_sector, nr_bytes >> 9)
-               tp_assign(errors, rq->errors)
-               blk_fill_rwbs(rwbs, rq->cmd_flags, nr_bytes)
-               tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       rq->cmd : NULL)
+       TP_code(
+               if (rq->cmd_type == REQ_TYPE_BLOCK_PC) {
+                       tp_locvar->cmd = rq->cmd;
+                       tp_locvar->cmd_len = rq->cmd_len;
+               } else {
+                       tp_locvar->cmd = NULL;
+                       tp_locvar->cmd_len = 0;
+               }
        ),
 
-       TP_printk("%d,%d %s (%s) %llu + %u [%d]",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->rwbs, __get_str(cmd),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->errors)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev,
+                       rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
+               ctf_integer(sector_t, sector, blk_rq_pos(rq))
+               ctf_integer(unsigned int, nr_sector, nr_bytes >> 9)
+               ctf_integer(int, errors, rq->errors)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       rq->cmd_flags, nr_bytes)
+               ctf_sequence_hex(unsigned char, cmd,
+                       tp_locvar->cmd, size_t, tp_locvar->cmd_len)
+       )
 )
 
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
@@ -297,48 +271,49 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_complete,
 
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
 
-LTTNG_TRACEPOINT_EVENT_CLASS(block_rq,
+LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq,
 
        TP_PROTO(struct request_queue *q, struct request *rq),
 
        TP_ARGS(q, rq),
 
-       TP_STRUCT__entry(
-               __field(  dev_t,        dev                     )
-               __field(  sector_t,     sector                  )
-               __field(  unsigned int, nr_sector               )
-               __field(  unsigned int, bytes                   )
-               __field(  unsigned int, rwbs                    )
-               __field(  pid_t,        tid                     )
-               __array_text(  char,         comm,   TASK_COMM_LEN   )
-               __dynamic_array_hex( unsigned char,     cmd,
-                       (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                               rq->cmd_len : 0)
+       TP_locvar(
+               sector_t sector;
+               unsigned int nr_sector;
+               unsigned int bytes;
+               unsigned char *cmd;
+               size_t cmd_len;
        ),
 
-       TP_fast_assign(
-               tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
-               tp_assign(sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       0 : blk_rq_pos(rq))
-               tp_assign(nr_sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       0 : blk_rq_sectors(rq))
-               tp_assign(bytes, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       blk_rq_bytes(rq) : 0)
-               blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq))
-               tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
-                                       rq->cmd : NULL)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+       TP_code(
+               if (rq->cmd_type == REQ_TYPE_BLOCK_PC) {
+                       tp_locvar->sector = 0;
+                       tp_locvar->nr_sector = 0;
+                       tp_locvar->bytes = blk_rq_bytes(rq);
+                       tp_locvar->cmd = rq->cmd;
+                       tp_locvar->cmd_len = rq->cmd_len;
+               } else {
+                       tp_locvar->sector = blk_rq_pos(rq);
+                       tp_locvar->nr_sector = blk_rq_sectors(rq);
+                       tp_locvar->bytes = 0;
+                       tp_locvar->cmd = NULL;
+                       tp_locvar->cmd_len = 0;
+               }
        ),
 
-       TP_printk("%d,%d %s %u (%s) %llu + %u [%s] %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 __entry->bytes,
-                 __blk_dump_cmd(__get_dynamic_array(cmd),
-                                __get_dynamic_array_len(cmd)),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->comm, __entry->tid)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev,
+                       rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
+               ctf_integer(sector_t, sector, tp_locvar->sector)
+               ctf_integer(unsigned int, nr_sector, tp_locvar->nr_sector)
+               ctf_integer(unsigned int, bytes, tp_locvar->bytes)
+               ctf_integer(pid_t, tid, current->pid)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       rq->cmd_flags, blk_rq_bytes(rq))
+               ctf_sequence_hex(unsigned char, cmd,
+                       tp_locvar->cmd, size_t, tp_locvar->cmd_len)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
 
 /**
@@ -390,40 +365,22 @@ LTTNG_TRACEPOINT_EVENT(block_bio_bounce,
 
        TP_ARGS(q, bio),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev                     )
-               __field( sector_t,      sector                  )
-               __field( unsigned int,  nr_sector               )
-               __field( unsigned int,  rwbs                    )
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,   TASK_COMM_LEN   )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-               tp_assign(dev, bio->bi_bdev ?
-                                         bio->bi_bdev->bd_dev : 0)
-               tp_assign(sector, bio->bi_iter.bi_sector)
-               tp_assign(nr_sector, bio_sectors(bio))
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_iter.bi_size)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-               tp_assign(dev, bio->bi_bdev ?
-                                         bio->bi_bdev->bd_dev : 0)
-               tp_assign(sector, bio->bi_sector)
-               tp_assign(nr_sector, bio->bi_size >> 9)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_size)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-       ),
-
-       TP_printk("%d,%d %s %llu + %u [%s] %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->comm, __entry->tid)
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
 
 /**
@@ -447,39 +404,26 @@ LTTNG_TRACEPOINT_EVENT(block_bio_complete,
        TP_ARGS(q, bio),
 #endif
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev             )
-               __field( sector_t,      sector          )
-               __field( unsigned,      nr_sector       )
-               __field( int,           error           )
-               __field( unsigned int,  rwbs            )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_iter.bi_sector)
-               tp_assign(nr_sector, bio_sectors(bio))
-               tp_assign(error, error)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size)
+               ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
+               ctf_integer(int, error, error)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_iter.bi_size)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_sector)
-               tp_assign(nr_sector, bio->bi_size >> 9)
+               ctf_integer(sector_t, sector, bio->bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
-               tp_assign(error, error)
+               ctf_integer(int, error, error)
 #else
-               tp_assign(error, 0)
+               ctf_integer(int, error, 0)
 #endif
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_size)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-       ),
-
-       TP_printk("%d,%d %s %llu + %u [%d]",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->error)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
@@ -489,38 +433,22 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge,
 
        TP_ARGS(q, rq, bio),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev                     )
-               __field( sector_t,      sector                  )
-               __field( unsigned int,  nr_sector               )
-               __field( unsigned int,  rwbs                    )
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,   TASK_COMM_LEN   )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_iter.bi_sector)
-               tp_assign(nr_sector, bio_sectors(bio))
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_iter.bi_size)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_sector)
-               tp_assign(nr_sector, bio->bi_size >> 9)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_size)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-       ),
-
-       TP_printk("%d,%d %s %llu + %u [%s] %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->comm, __entry->tid)
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
 
 /**
@@ -566,68 +494,39 @@ LTTNG_TRACEPOINT_EVENT(block_bio_queue,
 
        TP_ARGS(q, bio),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev                     )
-               __field( sector_t,      sector                  )
-               __field( unsigned int,  nr_sector               )
-               __field( unsigned int,  rwbs                    )
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,   TASK_COMM_LEN   )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_iter.bi_sector)
-               tp_assign(nr_sector, bio_sectors(bio))
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_iter.bi_size)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_sector)
-               tp_assign(nr_sector, bio->bi_size >> 9)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_size)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-       ),
-
-       TP_printk("%d,%d %s %llu + %u [%s] %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->comm, __entry->tid)
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
-#else
+#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) */
 LTTNG_TRACEPOINT_EVENT_CLASS(block_bio,
 
        TP_PROTO(struct request_queue *q, struct bio *bio),
 
        TP_ARGS(q, bio),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev                     )
-               __field( sector_t,      sector                  )
-               __field( unsigned int,  nr_sector               )
-               __field( unsigned int,  rwbs                    )
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,   TASK_COMM_LEN   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
-               tp_assign(sector, bio->bi_sector)
-               tp_assign(nr_sector, bio->bi_size >> 9)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
-       ),
-
-       TP_printk("%d,%d %s %llu + %u [%s] %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->comm, __entry->tid)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0)
+               ctf_integer(sector_t, sector, bio->bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_size)
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
 
 /**
@@ -673,7 +572,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_queue,
 
        TP_ARGS(q, bio)
 )
-#endif
+#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) */
 
 LTTNG_TRACEPOINT_EVENT_CLASS(block_get_rq,
 
@@ -681,40 +580,26 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_get_rq,
 
        TP_ARGS(q, bio, rw),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev                     )
-               __field( sector_t,      sector                  )
-               __field( unsigned int,  nr_sector               )
-               __field( unsigned int,  rwbs                    )
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,   TASK_COMM_LEN   )
-        ),
-
-       TP_fast_assign(
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio ? bio->bi_bdev->bd_dev : 0)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-               tp_assign(dev, bio ? bio->bi_bdev->bd_dev : 0)
-               tp_assign(sector, bio ? bio->bi_iter.bi_sector : 0)
-               tp_assign(nr_sector, bio ? bio_sectors(bio) : 0)
-               blk_fill_rwbs(rwbs, bio ? bio->bi_rw : 0,
-                             bio ? bio_sectors(bio) : 0)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio ? bio->bi_iter.bi_sector : 0)
+               ctf_integer(unsigned int, nr_sector,
+                       bio ? bio_sectors(bio) : 0)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio ? bio->bi_rw : 0,
+                       bio ? bio->bi_iter.bi_size : 0)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-               tp_assign(dev, bio ? bio->bi_bdev->bd_dev : 0)
-               tp_assign(sector, bio ? bio->bi_sector : 0)
-               tp_assign(nr_sector, bio ? bio->bi_size >> 9 : 0)
-               blk_fill_rwbs(rwbs, bio ? bio->bi_rw : 0,
-                             bio ? bio->bi_size >> 9 : 0)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio ? bio->bi_sector : 0)
+               ctf_integer(unsigned int, nr_sector,
+                       bio ? bio->bi_size >> 9 : 0)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio ? bio->bi_rw : 0,
+                       bio ? bio->bi_size : 0)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-        ),
-
-       TP_printk("%d,%d %s %llu + %u [%s] %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector, __entry->comm, __entry->tid)
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+        )
 )
 
 /**
@@ -765,17 +650,10 @@ LTTNG_TRACEPOINT_EVENT(block_plug,
 
        TP_ARGS(q),
 
-       TP_STRUCT__entry(
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,   TASK_COMM_LEN   )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
-       ),
-
-       TP_printk("[%s] %d", __entry->comm, __entry->tid)
+       TP_FIELDS(
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(block_unplug,
@@ -790,24 +668,15 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_unplug,
        TP_ARGS(q),
 #endif
 
-       TP_STRUCT__entry(
-               __field( int,           nr_rq                   )
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,   TASK_COMM_LEN   )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               tp_assign(nr_rq, depth)
+               ctf_integer(int, nr_rq, depth)
 #else
-               tp_assign(nr_rq, q->rq.count[READ] + q->rq.count[WRITE])
+               ctf_integer(int, nr_rq, q->rq.count[READ] + q->rq.count[WRITE])
 #endif
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
-       ),
-
-       TP_printk("[%s] %d %d", __entry->comm, , __entry->tid,
-                       __entry->nr_rq)
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
@@ -870,39 +739,21 @@ LTTNG_TRACEPOINT_EVENT(block_split,
 
        TP_ARGS(q, bio, new_sector),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev                             )
-               __field( sector_t,      sector                          )
-               __field( sector_t,      new_sector                      )
-               __field( unsigned int,  rwbs            )
-               __field( pid_t,         tid                     )
-               __array_text( char,             comm,           TASK_COMM_LEN   )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_iter.bi_sector)
-               tp_assign(new_sector, new_sector)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_iter.bi_size)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_sector)
-               tp_assign(new_sector, new_sector)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size)
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, current->pid)
+               ctf_integer(sector_t, sector, bio->bi_sector)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_size)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-       ),
-
-       TP_printk("%d,%d %s %llu / %llu [%s] %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 (unsigned long long)__entry->new_sector,
-                 __entry->comm, __entry->tid)
+               ctf_integer(sector_t, new_sector, new_sector)
+               ctf_integer(pid_t, tid, current->pid)
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+       )
 )
 
 /**
@@ -926,40 +777,22 @@ LTTNG_TRACEPOINT_EVENT(block_remap,
 
        TP_ARGS(q, bio, dev, from),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev             )
-               __field( sector_t,      sector          )
-               __field( unsigned int,  nr_sector       )
-               __field( dev_t,         old_dev         )
-               __field( sector_t,      old_sector      )
-               __field( unsigned int,  rwbs            )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_iter.bi_sector)
-               tp_assign(nr_sector, bio_sectors(bio))
-               tp_assign(old_dev, dev)
-               tp_assign(old_sector, from)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size)
+               ctf_integer(sector_t, sector, bio->bi_iter.bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio_sectors(bio))
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_iter.bi_size)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-               tp_assign(dev, bio->bi_bdev->bd_dev)
-               tp_assign(sector, bio->bi_sector)
-               tp_assign(nr_sector, bio->bi_size >> 9)
-               tp_assign(old_dev, dev)
-               tp_assign(old_sector, from)
-               blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size)
+               ctf_integer(sector_t, sector, bio->bi_sector)
+               ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       bio->bi_rw, bio->bi_size)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */
-       ),
-
-       TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector,
-                 MAJOR(__entry->old_dev), MINOR(__entry->old_dev),
-                 (unsigned long long)__entry->old_sector)
+               ctf_integer(dev_t, old_dev, dev)
+               ctf_integer(sector_t, old_sector, from)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
@@ -981,31 +814,15 @@ LTTNG_TRACEPOINT_EVENT(block_rq_remap,
 
        TP_ARGS(q, rq, dev, from),
 
-       TP_STRUCT__entry(
-               __field( dev_t,         dev             )
-               __field( sector_t,      sector          )
-               __field( unsigned int,  nr_sector       )
-               __field( dev_t,         old_dev         )
-               __field( sector_t,      old_sector      )
-               __field( unsigned int,  rwbs            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, disk_devt(rq->rq_disk))
-               tp_assign(sector, blk_rq_pos(rq))
-               tp_assign(nr_sector, blk_rq_sectors(rq))
-               tp_assign(old_dev, dev)
-               tp_assign(old_sector, from)
-               blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq))
-       ),
-
-       TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __print_rwbs_flags(__entry->rwbs),
-                 (unsigned long long)__entry->sector,
-                 __entry->nr_sector,
-                 MAJOR(__entry->old_dev), MINOR(__entry->old_dev),
-                 (unsigned long long)__entry->old_sector)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, disk_devt(rq->rq_disk))
+               ctf_integer(sector_t, sector, blk_rq_pos(rq))
+               ctf_integer(unsigned int, nr_sector, blk_rq_sectors(rq))
+               ctf_integer(dev_t, old_dev, dev)
+               ctf_integer(sector_t, old_sector, from)
+               blk_rwbs_ctf_integer(unsigned int, rwbs,
+                       rq->cmd_flags, blk_rq_bytes(rq))
+       )
 )
 #endif
 
index 3aee30be8e51de247c77fbea4cc2dd3229a412f2..11b501a28751e1f404d507f8a6fa25ba0c3506c1 100644 (file)
@@ -31,135 +31,18 @@ struct extent_state;
 #endif
 #endif
 
-#define show_ref_type(type)                                            \
-       __print_symbolic(type,                                          \
-               { BTRFS_TREE_BLOCK_REF_KEY,     "TREE_BLOCK_REF" },     \
-               { BTRFS_EXTENT_DATA_REF_KEY,    "EXTENT_DATA_REF" },    \
-               { BTRFS_EXTENT_REF_V0_KEY,      "EXTENT_REF_V0" },      \
-               { BTRFS_SHARED_BLOCK_REF_KEY,   "SHARED_BLOCK_REF" },   \
-               { BTRFS_SHARED_DATA_REF_KEY,    "SHARED_DATA_REF" })
-
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
-#define __show_root_type(obj)                                          \
-       __print_symbolic_u64(obj,                                       \
-               { BTRFS_ROOT_TREE_OBJECTID,     "ROOT_TREE"     },      \
-               { BTRFS_EXTENT_TREE_OBJECTID,   "EXTENT_TREE"   },      \
-               { BTRFS_CHUNK_TREE_OBJECTID,    "CHUNK_TREE"    },      \
-               { BTRFS_DEV_TREE_OBJECTID,      "DEV_TREE"      },      \
-               { BTRFS_FS_TREE_OBJECTID,       "FS_TREE"       },      \
-               { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" },      \
-               { BTRFS_CSUM_TREE_OBJECTID,     "CSUM_TREE"     },      \
-               { BTRFS_TREE_LOG_OBJECTID,      "TREE_LOG"      },      \
-               { BTRFS_QUOTA_TREE_OBJECTID,    "QUOTA_TREE"    },      \
-               { BTRFS_TREE_RELOC_OBJECTID,    "TREE_RELOC"    },      \
-               { BTRFS_UUID_TREE_OBJECTID,     "UUID_RELOC"    },      \
-               { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" })
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
-#define __show_root_type(obj)                                          \
-       __print_symbolic_u64(obj,                                       \
-               { BTRFS_ROOT_TREE_OBJECTID,     "ROOT_TREE"     },      \
-               { BTRFS_EXTENT_TREE_OBJECTID,   "EXTENT_TREE"   },      \
-               { BTRFS_CHUNK_TREE_OBJECTID,    "CHUNK_TREE"    },      \
-               { BTRFS_DEV_TREE_OBJECTID,      "DEV_TREE"      },      \
-               { BTRFS_FS_TREE_OBJECTID,       "FS_TREE"       },      \
-               { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" },      \
-               { BTRFS_CSUM_TREE_OBJECTID,     "CSUM_TREE"     },      \
-               { BTRFS_TREE_LOG_OBJECTID,      "TREE_LOG"      },      \
-               { BTRFS_QUOTA_TREE_OBJECTID,    "QUOTA_TREE"    },      \
-               { BTRFS_TREE_RELOC_OBJECTID,    "TREE_RELOC"    },      \
-               { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" })
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
-#define __show_root_type(obj)                                          \
-       __print_symbolic_u64(obj,                                       \
-               { BTRFS_ROOT_TREE_OBJECTID,     "ROOT_TREE"     },      \
-               { BTRFS_EXTENT_TREE_OBJECTID,   "EXTENT_TREE"   },      \
-               { BTRFS_CHUNK_TREE_OBJECTID,    "CHUNK_TREE"    },      \
-               { BTRFS_DEV_TREE_OBJECTID,      "DEV_TREE"      },      \
-               { BTRFS_FS_TREE_OBJECTID,       "FS_TREE"       },      \
-               { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" },      \
-               { BTRFS_CSUM_TREE_OBJECTID,     "CSUM_TREE"     },      \
-               { BTRFS_TREE_LOG_OBJECTID,      "TREE_LOG"      },      \
-               { BTRFS_TREE_RELOC_OBJECTID,    "TREE_RELOC"    },      \
-               { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" })
-#else
-#define __show_root_type(obj)                                          \
-       __print_symbolic(obj,                                   \
-               { BTRFS_ROOT_TREE_OBJECTID,     "ROOT_TREE"     },      \
-               { BTRFS_EXTENT_TREE_OBJECTID,   "EXTENT_TREE"   },      \
-               { BTRFS_CHUNK_TREE_OBJECTID,    "CHUNK_TREE"    },      \
-               { BTRFS_DEV_TREE_OBJECTID,      "DEV_TREE"      },      \
-               { BTRFS_FS_TREE_OBJECTID,       "FS_TREE"       },      \
-               { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" },      \
-               { BTRFS_CSUM_TREE_OBJECTID,     "CSUM_TREE"     },      \
-               { BTRFS_TREE_LOG_OBJECTID,      "TREE_LOG"      },      \
-               { BTRFS_TREE_RELOC_OBJECTID,    "TREE_RELOC"    },      \
-               { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" })
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
-#define show_root_type(obj)                                            \
-       obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) ||                \
-             (obj >= BTRFS_ROOT_TREE_OBJECTID &&                       \
-              obj <= BTRFS_QUOTA_TREE_OBJECTID)) ? __show_root_type(obj) : "-"
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
-#define show_root_type(obj)                                            \
-       obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) ||                \
-             (obj >= BTRFS_ROOT_TREE_OBJECTID &&                       \
-              obj <= BTRFS_CSUM_TREE_OBJECTID)) ? __show_root_type(obj) : "-"
-#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
-#define show_root_type(obj)                                            \
-       obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) ||                \
-             (obj <= BTRFS_CSUM_TREE_OBJECTID )) ? __show_root_type(obj) : "-"
-#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
-
-#define BTRFS_GROUP_FLAGS      \
-       { BTRFS_BLOCK_GROUP_DATA,       "DATA"},        \
-       { BTRFS_BLOCK_GROUP_SYSTEM,     "SYSTEM"},      \
-       { BTRFS_BLOCK_GROUP_METADATA,   "METADATA"},    \
-       { BTRFS_BLOCK_GROUP_RAID0,      "RAID0"},       \
-       { BTRFS_BLOCK_GROUP_RAID1,      "RAID1"},       \
-       { BTRFS_BLOCK_GROUP_DUP,        "DUP"},         \
-       { BTRFS_BLOCK_GROUP_RAID10,     "RAID10"},      \
-       { BTRFS_BLOCK_GROUP_RAID5,      "RAID5"},       \
-       { BTRFS_BLOCK_GROUP_RAID6,      "RAID6"}
-
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-
-#define BTRFS_GROUP_FLAGS      \
-       { BTRFS_BLOCK_GROUP_DATA,       "DATA"}, \
-       { BTRFS_BLOCK_GROUP_SYSTEM,     "SYSTEM"}, \
-       { BTRFS_BLOCK_GROUP_METADATA,   "METADATA"}, \
-       { BTRFS_BLOCK_GROUP_RAID0,      "RAID0"}, \
-       { BTRFS_BLOCK_GROUP_RAID1,      "RAID1"}, \
-       { BTRFS_BLOCK_GROUP_DUP,        "DUP"}, \
-       { BTRFS_BLOCK_GROUP_RAID10,     "RAID10"}
-
 #define BTRFS_UUID_SIZE 16
 
-#endif
-
 LTTNG_TRACEPOINT_EVENT(btrfs_transaction_commit,
 
        TP_PROTO(struct btrfs_root *root),
 
        TP_ARGS(root),
 
-       TP_STRUCT__entry(
-               __field(        u64,  generation                )
-               __field(        u64,  root_objectid             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(generation, root->fs_info->generation)
-               tp_assign(root_objectid, root->root_key.objectid)
-       ),
-
-       TP_printk("root = %llu(%s), gen = %llu",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long long)__entry->generation)
+       TP_FIELDS(
+               ctf_integer(u64, generation, root->fs_info->generation)
+               ctf_integer(u64, root_objectid, root->root_key.objectid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__inode,
@@ -168,36 +51,16 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__inode,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino                     )
-               __field(        blkcnt_t,  blocks               )
-               __field(        u64,  disk_i_size               )
-               __field(        u64,  generation                )
-               __field(        u64,  last_trans                )
-               __field(        u64,  logged_trans              )
-               __field(        u64,  root_objectid             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(blocks, inode->i_blocks)
-               tp_assign(disk_i_size, BTRFS_I(inode)->disk_i_size)
-               tp_assign(generation, BTRFS_I(inode)->generation)
-               tp_assign(last_trans, BTRFS_I(inode)->last_trans)
-               tp_assign(logged_trans, BTRFS_I(inode)->logged_trans)
-               tp_assign(root_objectid,
+       TP_FIELDS(
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(blkcnt_t, blocks, inode->i_blocks)
+               ctf_integer(u64, disk_i_size, BTRFS_I(inode)->disk_i_size)
+               ctf_integer(u64, generation, BTRFS_I(inode)->generation)
+               ctf_integer(u64, last_trans, BTRFS_I(inode)->last_trans)
+               ctf_integer(u64, logged_trans, BTRFS_I(inode)->logged_trans)
+               ctf_integer(u64, root_objectid,
                                BTRFS_I(inode)->root->root_key.objectid)
-       ),
-
-       TP_printk("root = %llu(%s), gen = %llu, ino = %lu, blocks = %llu, "
-                 "disk_i_size = %llu, last_trans = %llu, logged_trans = %llu",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long long)__entry->generation,
-                 (unsigned long)__entry->ino,
-                 (unsigned long long)__entry->blocks,
-                 (unsigned long long)__entry->disk_i_size,
-                 (unsigned long long)__entry->last_trans,
-                 (unsigned long long)__entry->logged_trans)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__inode, btrfs_inode_new,
@@ -221,191 +84,44 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__inode, btrfs_inode_evict,
        TP_ARGS(inode)
 )
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
-#define __show_map_type(type)                                          \
-       __print_symbolic_u64(type,                                      \
-               { EXTENT_MAP_LAST_BYTE, "LAST_BYTE"     },              \
-               { EXTENT_MAP_HOLE,      "HOLE"          },              \
-               { EXTENT_MAP_INLINE,    "INLINE"        },              \
-               { EXTENT_MAP_DELALLOC,  "DELALLOC"      })
-#else
-#define __show_map_type(type)                                          \
-       __print_symbolic(type,                                  \
-               { EXTENT_MAP_LAST_BYTE, "LAST_BYTE"     },              \
-               { EXTENT_MAP_HOLE,      "HOLE"          },              \
-               { EXTENT_MAP_INLINE,    "INLINE"        },              \
-               { EXTENT_MAP_DELALLOC,  "DELALLOC"      })
-#endif
-
-#define show_map_type(type)                    \
-       type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" :  __show_map_type(type)
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
-
-#define show_map_flags(flag)                                           \
-       __print_flags(flag, "|",                                        \
-               { (1 << EXTENT_FLAG_PINNED),            "PINNED"        },\
-               { (1 << EXTENT_FLAG_COMPRESSED),        "COMPRESSED"    },\
-               { (1 << EXTENT_FLAG_VACANCY),           "VACANCY"       },\
-               { (1 << EXTENT_FLAG_PREALLOC),          "PREALLOC"      },\
-               { (1 << EXTENT_FLAG_LOGGING),           "LOGGING"       },\
-               { (1 << EXTENT_FLAG_FILLING),           "FILLING"       },\
-               { (1 << EXTENT_FLAG_FS_MAPPING),        "FS_MAPPING"    })
-
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
-
-#define show_map_flags(flag)                                           \
-       __print_flags(flag, "|",                                        \
-               { EXTENT_FLAG_PINNED,           "PINNED"        },      \
-               { EXTENT_FLAG_COMPRESSED,       "COMPRESSED"    },      \
-               { EXTENT_FLAG_VACANCY,          "VACANCY"       },      \
-               { EXTENT_FLAG_PREALLOC,         "PREALLOC"      },      \
-               { EXTENT_FLAG_LOGGING,          "LOGGING"       },      \
-               { EXTENT_FLAG_FILLING,          "FILLING"       })
-
-#else
-
-#define show_map_flags(flag)                                           \
-       __print_flags(flag, "|",                                        \
-               { EXTENT_FLAG_PINNED,           "PINNED"        },      \
-               { EXTENT_FLAG_COMPRESSED,       "COMPRESSED"    },      \
-               { EXTENT_FLAG_VACANCY,          "VACANCY"       },      \
-               { EXTENT_FLAG_PREALLOC,         "PREALLOC"      })
-
-#endif
-
 LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
 
        TP_PROTO(struct btrfs_root *root, struct extent_map *map),
 
        TP_ARGS(root, map),
 
-       TP_STRUCT__entry(
-               __field(        u64,  root_objectid     )
-               __field(        u64,  start             )
-               __field(        u64,  len               )
-               __field(        u64,  orig_start        )
-               __field(        u64,  block_start       )
-               __field(        u64,  block_len         )
-               __field(        unsigned long,  flags   )
-               __field(        int,  refs              )
-               __field(        unsigned int,  compress_type    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(root_objectid, root->root_key.objectid)
-               tp_assign(start, map->start)
-               tp_assign(len, map->len)
-               tp_assign(orig_start, map->orig_start)
-               tp_assign(block_start, map->block_start)
-               tp_assign(block_len, map->block_len)
-               tp_assign(flags, map->flags)
-               tp_assign(refs, atomic_read(&map->refs))
-               tp_assign(compress_type, map->compress_type)
-       ),
-
-       TP_printk("root = %llu(%s), start = %llu, len = %llu, "
-                 "orig_start = %llu, block_start = %llu(%s), "
-                 "block_len = %llu, flags = %s, refs = %u, "
-                 "compress_type = %u",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long long)__entry->start,
-                 (unsigned long long)__entry->len,
-                 (unsigned long long)__entry->orig_start,
-                 show_map_type(__entry->block_start),
-                 (unsigned long long)__entry->block_len,
-                 show_map_flags(__entry->flags),
-                 __entry->refs, __entry->compress_type)
+       TP_FIELDS(
+               ctf_integer(u64, root_objectid, root->root_key.objectid)
+               ctf_integer(u64, start, map->start)
+               ctf_integer(u64, len, map->len)
+               ctf_integer(u64, orig_start, map->orig_start)
+               ctf_integer(u64, block_start, map->block_start)
+               ctf_integer(u64, block_len, map->block_len)
+               ctf_integer(unsigned long, flags, map->flags)
+               ctf_integer(int, refs, atomic_read(&map->refs))
+               ctf_integer(unsigned int, compress_type, map->compress_type)
+       )
 )
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))
-
-#define show_ordered_flags(flags)                                         \
-       __print_flags(flags, "|",                                          \
-               { (1 << BTRFS_ORDERED_IO_DONE),         "IO_DONE"       }, \
-               { (1 << BTRFS_ORDERED_COMPLETE),        "COMPLETE"      }, \
-               { (1 << BTRFS_ORDERED_NOCOW),           "NOCOW"         }, \
-               { (1 << BTRFS_ORDERED_COMPRESSED),      "COMPRESSED"    }, \
-               { (1 << BTRFS_ORDERED_PREALLOC),        "PREALLOC"      }, \
-               { (1 << BTRFS_ORDERED_DIRECT),          "DIRECT"        }, \
-               { (1 << BTRFS_ORDERED_IOERR),           "IOERR"         }, \
-               { (1 << BTRFS_ORDERED_UPDATED_ISIZE),   "UPDATED_ISIZE" }, \
-               { (1 << BTRFS_ORDERED_LOGGED_CSUM),     "LOGGED_CSUM"   }, \
-               { (1 << BTRFS_ORDERED_TRUNCATED),       "TRUNCATED"     })
-
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
-
-#define show_ordered_flags(flags)                                      \
-       __print_symbolic(flags,                                         \
-               { BTRFS_ORDERED_IO_DONE,        "IO_DONE"       },      \
-               { BTRFS_ORDERED_COMPLETE,       "COMPLETE"      },      \
-               { BTRFS_ORDERED_NOCOW,          "NOCOW"         },      \
-               { BTRFS_ORDERED_COMPRESSED,     "COMPRESSED"    },      \
-               { BTRFS_ORDERED_PREALLOC,       "PREALLOC"      },      \
-               { BTRFS_ORDERED_DIRECT,         "DIRECT"        },      \
-               { BTRFS_ORDERED_IOERR,          "IOERR"         },      \
-               { BTRFS_ORDERED_UPDATED_ISIZE,  "UPDATED_ISIZE" },      \
-               { BTRFS_ORDERED_LOGGED_CSUM,    "LOGGED_CSUM"   })
-
-#else
-
-#define show_ordered_flags(flags)                                      \
-       __print_symbolic(flags,                                 \
-               { BTRFS_ORDERED_IO_DONE,        "IO_DONE"       },      \
-               { BTRFS_ORDERED_COMPLETE,       "COMPLETE"      },      \
-               { BTRFS_ORDERED_NOCOW,          "NOCOW"         },      \
-               { BTRFS_ORDERED_COMPRESSED,     "COMPRESSED"    },      \
-               { BTRFS_ORDERED_PREALLOC,       "PREALLOC"      },      \
-               { BTRFS_ORDERED_DIRECT,         "DIRECT"        })
-
-#endif
-
 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent,
 
        TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
 
        TP_ARGS(inode, ordered),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino             )
-               __field(        u64,  file_offset       )
-               __field(        u64,  start             )
-               __field(        u64,  len               )
-               __field(        u64,  disk_len          )
-               __field(        u64,  bytes_left        )
-               __field(        unsigned long,  flags   )
-               __field(        int,  compress_type     )
-               __field(        int,  refs              )
-               __field(        u64,  root_objectid     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(file_offset, ordered->file_offset)
-               tp_assign(start, ordered->start)
-               tp_assign(len, ordered->len)
-               tp_assign(disk_len, ordered->disk_len)
-               tp_assign(bytes_left, ordered->bytes_left)
-               tp_assign(flags, ordered->flags)
-               tp_assign(compress_type, ordered->compress_type)
-               tp_assign(refs, atomic_read(&ordered->refs))
-               tp_assign(root_objectid,
+       TP_FIELDS(
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(u64, file_offset, ordered->file_offset)
+               ctf_integer(u64, start, ordered->start)
+               ctf_integer(u64, len, ordered->len)
+               ctf_integer(u64, disk_len, ordered->disk_len)
+               ctf_integer(u64, bytes_left, ordered->bytes_left)
+               ctf_integer(unsigned long, flags, ordered->flags)
+               ctf_integer(int, compress_type, ordered->compress_type)
+               ctf_integer(int, refs, atomic_read(&ordered->refs))
+               ctf_integer(u64, root_objectid,
                                BTRFS_I(inode)->root->root_key.objectid)
-       ),
-
-       TP_printk("root = %llu(%s), ino = %llu, file_offset = %llu, "
-                 "start = %llu, len = %llu, disk_len = %llu, "
-                 "bytes_left = %llu, flags = %s, compress_type = %d, "
-                 "refs = %d",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long long)__entry->ino,
-                 (unsigned long long)__entry->file_offset,
-                 (unsigned long long)__entry->start,
-                 (unsigned long long)__entry->len,
-                 (unsigned long long)__entry->disk_len,
-                 (unsigned long long)__entry->bytes_left,
-                 show_ordered_flags(__entry->flags),
-                 __entry->compress_type, __entry->refs)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_add,
@@ -443,66 +159,24 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__writepage,
 
        TP_ARGS(page, inode, wbc),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino                     )
-               __field(        pgoff_t,  index                 )
-               __field(        long,   nr_to_write             )
-               __field(        long,   pages_skipped           )
-               __field(        loff_t, range_start             )
-               __field(        loff_t, range_end               )
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               __field(        char,   nonblocking             )
-#endif
-               __field(        char,   for_kupdate             )
-               __field(        char,   for_reclaim             )
-               __field(        char,   range_cyclic            )
-               __field(        pgoff_t,  writeback_index       )
-               __field(        u64,    root_objectid           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(index, page->index)
-               tp_assign(nr_to_write, wbc->nr_to_write)
-               tp_assign(pages_skipped, wbc->pages_skipped)
-               tp_assign(range_start, wbc->range_start)
-               tp_assign(range_end, wbc->range_end)
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               tp_assign(nonblocking, wbc->nonblocking)
-#endif
-               tp_assign(for_kupdate, wbc->for_kupdate)
-               tp_assign(for_reclaim, wbc->for_reclaim)
-               tp_assign(range_cyclic, wbc->range_cyclic)
-               tp_assign(writeback_index, inode->i_mapping->writeback_index)
-               tp_assign(root_objectid,
-                                BTRFS_I(inode)->root->root_key.objectid)
-       ),
-
+       TP_FIELDS(
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(pgoff_t, index, page->index)
+               ctf_integer(long, nr_to_write, wbc->nr_to_write)
+               ctf_integer(long, pages_skipped, wbc->pages_skipped)
+               ctf_integer(loff_t, range_start, wbc->range_start)
+               ctf_integer(loff_t, range_end, wbc->range_end)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-       TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, "
-                 "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, "
-                 "range_end = %llu, nonblocking = %d, for_kupdate = %d, "
-                 "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long)__entry->ino, __entry->index,
-                 __entry->nr_to_write, __entry->pages_skipped,
-                 __entry->range_start, __entry->range_end,
-                 __entry->nonblocking, __entry->for_kupdate,
-                 __entry->for_reclaim, __entry->range_cyclic,
-                 (unsigned long)__entry->writeback_index)
-#else
-       TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, "
-                 "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, "
-                 "range_end = %llu, for_kupdate = %d, "
-                 "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long)__entry->ino, __entry->index,
-                 __entry->nr_to_write, __entry->pages_skipped,
-                 __entry->range_start, __entry->range_end,
-                 __entry->for_kupdate,
-                 __entry->for_reclaim, __entry->range_cyclic,
-                 (unsigned long)__entry->writeback_index)
+               ctf_integer(char, nonblocking, wbc->nonblocking)
 #endif
+               ctf_integer(char, for_kupdate, wbc->for_kupdate)
+               ctf_integer(char, for_reclaim, wbc->for_reclaim)
+               ctf_integer(char, range_cyclic, wbc->range_cyclic)
+               ctf_integer(pgoff_t, writeback_index,
+                               inode->i_mapping->writeback_index)
+               ctf_integer(u64, root_objectid,
+                               BTRFS_I(inode)->root->root_key.objectid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs__writepage,
@@ -523,31 +197,15 @@ LTTNG_TRACEPOINT_EVENT(btrfs_writepage_end_io_hook,
 
        TP_ARGS(page, start, end, uptodate),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,   ino            )
-               __field(        pgoff_t, index          )
-               __field(        u64,     start          )
-               __field(        u64,     end            )
-               __field(        int,     uptodate       )
-               __field(        u64,    root_objectid   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, page->mapping->host->i_ino)
-               tp_assign(index, page->index)
-               tp_assign(start, start)
-               tp_assign(end, end)
-               tp_assign(uptodate, uptodate)
-               tp_assign(root_objectid,
-                        BTRFS_I(page->mapping->host)->root->root_key.objectid)
-       ),
-
-       TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, start = %llu, "
-                 "end = %llu, uptodate = %d",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long)__entry->ino, (unsigned long)__entry->index,
-                 (unsigned long long)__entry->start,
-                 (unsigned long long)__entry->end, __entry->uptodate)
+       TP_FIELDS(
+               ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+               ctf_integer(pgoff_t, index, page->index)
+               ctf_integer(u64, start, start)
+               ctf_integer(u64, end, end)
+               ctf_integer(int, uptodate, uptodate)
+               ctf_integer(u64, root_objectid,
+                       BTRFS_I(page->mapping->host)->root->root_key.objectid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(btrfs_sync_file,
@@ -556,25 +214,13 @@ LTTNG_TRACEPOINT_EVENT(btrfs_sync_file,
 
        TP_ARGS(file, datasync),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino             )
-               __field(        ino_t,  parent          )
-               __field(        int,    datasync        )
-               __field(        u64,    root_objectid   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, file->f_path.dentry->d_inode->i_ino)
-               tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino)
-               tp_assign(datasync, datasync)
-               tp_assign(root_objectid,
+       TP_FIELDS(
+               ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
+               ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
+               ctf_integer(int, datasync, datasync)
+               ctf_integer(u64, root_objectid,
                        BTRFS_I(file->f_path.dentry->d_inode)->root->root_key.objectid)
-       ),
-
-       TP_printk("root = %llu(%s), ino = %ld, parent = %ld, datasync = %d",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long)__entry->ino, (unsigned long)__entry->parent,
-                 __entry->datasync)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(btrfs_sync_fs,
@@ -583,25 +229,11 @@ LTTNG_TRACEPOINT_EVENT(btrfs_sync_fs,
 
        TP_ARGS(wait),
 
-       TP_STRUCT__entry(
-               __field(        int,  wait              )
-       ),
-
-       TP_fast_assign(
-               tp_assign(wait, wait)
-       ),
-
-       TP_printk("wait = %d", __entry->wait)
+       TP_FIELDS(
+               ctf_integer(int, wait, wait)
+       )
 )
 
-#define show_ref_action(action)                                                \
-       __print_symbolic(action,                                        \
-               { BTRFS_ADD_DELAYED_REF,    "ADD_DELAYED_REF" },        \
-               { BTRFS_DROP_DELAYED_REF,   "DROP_DELAYED_REF" },       \
-               { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" },     \
-               { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" })
-                       
-
 LTTNG_TRACEPOINT_EVENT(btrfs_delayed_tree_ref,
 
        TP_PROTO(struct btrfs_delayed_ref_node *ref,
@@ -610,52 +242,18 @@ LTTNG_TRACEPOINT_EVENT(btrfs_delayed_tree_ref,
 
        TP_ARGS(ref, full_ref, action),
 
-       TP_STRUCT__entry(
-               __field(        u64,  bytenr            )
-               __field(        u64,  num_bytes         )
-               __field(        int,  action            ) 
-               __field(        u64,  parent            )
-               __field(        u64,  ref_root          )
-               __field(        int,  level             )
-               __field(        int,  type              )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-               __field(        u64,  seq               )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(bytenr, ref->bytenr)
-               tp_assign(num_bytes, ref->num_bytes)
-               tp_assign(action, action)
-               tp_assign(parent, full_ref->parent)
-               tp_assign(ref_root, full_ref->root)
-               tp_assign(level, full_ref->level)
-               tp_assign(type, ref->type)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-               tp_assign(seq, ref->seq)
-#endif
-       ),
-
+       TP_FIELDS(
+               ctf_integer(u64, bytenr, ref->bytenr)
+               ctf_integer(u64, num_bytes, ref->num_bytes)
+               ctf_integer(int, action, action)
+               ctf_integer(u64, parent, full_ref->parent)
+               ctf_integer(u64, ref_root, full_ref->root)
+               ctf_integer(int, level, full_ref->level)
+               ctf_integer(int, type, ref->type)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-       TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
-                 "parent = %llu(%s), ref_root = %llu(%s), level = %d, "
-                 "type = %s, seq = %llu",
-#else
-       TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
-                 "parent = %llu(%s), ref_root = %llu(%s), level = %d, "
-                 "type = %s",
-#endif
-                 (unsigned long long)__entry->bytenr,
-                 (unsigned long long)__entry->num_bytes,
-                 show_ref_action(__entry->action),
-                 show_root_type(__entry->parent),
-                 show_root_type(__entry->ref_root),
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-                 __entry->level, show_ref_type(__entry->type),
-                 (unsigned long long)__entry->seq)
-#else
-                 __entry->level, show_ref_type(__entry->type))
+               ctf_integer(u64, seq, ref->seq)
 #endif
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(btrfs_delayed_data_ref,
@@ -666,56 +264,19 @@ LTTNG_TRACEPOINT_EVENT(btrfs_delayed_data_ref,
 
        TP_ARGS(ref, full_ref, action),
 
-       TP_STRUCT__entry(
-               __field(        u64,  bytenr            )
-               __field(        u64,  num_bytes         )
-               __field(        int,  action            ) 
-               __field(        u64,  parent            )
-               __field(        u64,  ref_root          )
-               __field(        u64,  owner             )
-               __field(        u64,  offset            )
-               __field(        int,  type              )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-               __field(        u64,  seq               )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(bytenr, ref->bytenr)
-               tp_assign(num_bytes, ref->num_bytes)
-               tp_assign(action, action)
-               tp_assign(parent, full_ref->parent)
-               tp_assign(ref_root, full_ref->root)
-               tp_assign(owner, full_ref->objectid)
-               tp_assign(offset, full_ref->offset)
-               tp_assign(type, ref->type)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-               tp_assign(seq, ref->seq)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-       TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
-                 "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, "
-                 "offset = %llu, type = %s, seq = %llu",
-#else
-       TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
-                 "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, "
-                 "offset = %llu, type = %s",
-#endif
-                 (unsigned long long)__entry->bytenr,
-                 (unsigned long long)__entry->num_bytes,
-                 show_ref_action(__entry->action),
-                 show_root_type(__entry->parent),
-                 show_root_type(__entry->ref_root),
-                 (unsigned long long)__entry->owner,
-                 (unsigned long long)__entry->offset,
+       TP_FIELDS(
+               ctf_integer(u64, bytenr, ref->bytenr)
+               ctf_integer(u64, num_bytes, ref->num_bytes)
+               ctf_integer(int, action, action)
+               ctf_integer(u64, parent, full_ref->parent)
+               ctf_integer(u64, ref_root, full_ref->root)
+               ctf_integer(u64, owner, full_ref->objectid)
+               ctf_integer(u64, offset, full_ref->offset)
+               ctf_integer(int, type, ref->type)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-                 show_ref_type(__entry->type),
-                 (unsigned long long)__entry->seq)
-#else
-                 show_ref_type(__entry->type))
+               ctf_integer(u64, seq, ref->seq)
 #endif
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(btrfs_delayed_ref_head,
@@ -726,55 +287,14 @@ LTTNG_TRACEPOINT_EVENT(btrfs_delayed_ref_head,
 
        TP_ARGS(ref, head_ref, action),
 
-       TP_STRUCT__entry(
-               __field(        u64,  bytenr            )
-               __field(        u64,  num_bytes         )
-               __field(        int,  action            ) 
-               __field(        int,  is_data           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(bytenr, ref->bytenr)
-               tp_assign(num_bytes, ref->num_bytes)
-               tp_assign(action, action)
-               tp_assign(is_data, head_ref->is_data)
-       ),
-
-       TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, is_data = %d",
-                 (unsigned long long)__entry->bytenr,
-                 (unsigned long long)__entry->num_bytes,
-                 show_ref_action(__entry->action),
-                 __entry->is_data)
+       TP_FIELDS(
+               ctf_integer(u64, bytenr, ref->bytenr)
+               ctf_integer(u64, num_bytes, ref->num_bytes)
+               ctf_integer(int, action, action)
+               ctf_integer(int, is_data, head_ref->is_data)
+       )
 )
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
-
-#define show_chunk_type(type)                                  \
-       __print_flags(type, "|",                                \
-               { BTRFS_BLOCK_GROUP_DATA,       "DATA"  },      \
-               { BTRFS_BLOCK_GROUP_SYSTEM,     "SYSTEM"},      \
-               { BTRFS_BLOCK_GROUP_METADATA,   "METADATA"},    \
-               { BTRFS_BLOCK_GROUP_RAID0,      "RAID0" },      \
-               { BTRFS_BLOCK_GROUP_RAID1,      "RAID1" },      \
-               { BTRFS_BLOCK_GROUP_DUP,        "DUP"   },      \
-               { BTRFS_BLOCK_GROUP_RAID10,     "RAID10"},      \
-               { BTRFS_BLOCK_GROUP_RAID5,      "RAID5" },      \
-               { BTRFS_BLOCK_GROUP_RAID6,      "RAID6" })
-
-#else
-
-#define show_chunk_type(type)                                  \
-       __print_flags(type, "|",                                \
-               { BTRFS_BLOCK_GROUP_DATA,       "DATA"  },      \
-               { BTRFS_BLOCK_GROUP_SYSTEM,     "SYSTEM"},      \
-               { BTRFS_BLOCK_GROUP_METADATA,   "METADATA"},    \
-               { BTRFS_BLOCK_GROUP_RAID0,      "RAID0" },      \
-               { BTRFS_BLOCK_GROUP_RAID1,      "RAID1" },      \
-               { BTRFS_BLOCK_GROUP_DUP,        "DUP"   },      \
-               { BTRFS_BLOCK_GROUP_RAID10,     "RAID10"})
-
-#endif
-
 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
 
        TP_PROTO(struct btrfs_root *root, struct map_lookup *map,
@@ -782,31 +302,14 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
 
        TP_ARGS(root, map, offset, size),
 
-       TP_STRUCT__entry(
-               __field(        int,  num_stripes               )
-               __field(        u64,  type                      )
-               __field(        int,  sub_stripes               )
-               __field(        u64,  offset                    )
-               __field(        u64,  size                      )
-               __field(        u64,  root_objectid             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(num_stripes, map->num_stripes)
-               tp_assign(type, map->type)
-               tp_assign(sub_stripes, map->sub_stripes)
-               tp_assign(offset, offset)
-               tp_assign(size, size)
-               tp_assign(root_objectid, root->root_key.objectid)
-       ),
-
-       TP_printk("root = %llu(%s), offset = %llu, size = %llu, "
-                 "num_stripes = %d, sub_stripes = %d, type = %s",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long long)__entry->offset,
-                 (unsigned long long)__entry->size,
-                 __entry->num_stripes, __entry->sub_stripes,
-                 show_chunk_type(__entry->type))
+       TP_FIELDS(
+               ctf_integer(int, num_stripes, map->num_stripes)
+               ctf_integer(u64, type, map->type)
+               ctf_integer(int, sub_stripes, map->sub_stripes)
+               ctf_integer(u64, offset, offset)
+               ctf_integer(u64, size, size)
+               ctf_integer(u64, root_objectid, root->root_key.objectid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_alloc,
@@ -832,32 +335,14 @@ LTTNG_TRACEPOINT_EVENT(btrfs_cow_block,
 
        TP_ARGS(root, buf, cow),
 
-       TP_STRUCT__entry(
-               __field(        u64,  root_objectid             )
-               __field(        u64,  buf_start                 )
-               __field(        int,  refs                      )
-               __field(        u64,  cow_start                 )
-               __field(        int,  buf_level                 )
-               __field(        int,  cow_level                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(root_objectid, root->root_key.objectid)
-               tp_assign(buf_start, buf->start)
-               tp_assign(refs, atomic_read(&buf->refs))
-               tp_assign(cow_start, cow->start)
-               tp_assign(buf_level, btrfs_header_level(buf))
-               tp_assign(cow_level, btrfs_header_level(cow))
-       ),
-
-       TP_printk("root = %llu(%s), refs = %d, orig_buf = %llu "
-                 "(orig_level = %d), cow_buf = %llu (cow_level = %d)",
-                 show_root_type(__entry->root_objectid),
-                 __entry->refs,
-                 (unsigned long long)__entry->buf_start,
-                 __entry->buf_level,
-                 (unsigned long long)__entry->cow_start,
-                 __entry->cow_level)
+       TP_FIELDS(
+               ctf_integer(u64, root_objectid, root->root_key.objectid)
+               ctf_integer(u64, buf_start, buf->start)
+               ctf_integer(int, refs, atomic_read(&buf->refs))
+               ctf_integer(u64, cow_start, cow->start)
+               ctf_integer(int, buf_level, btrfs_header_level(buf))
+               ctf_integer(int, cow_level, btrfs_header_level(cow))
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
@@ -868,25 +353,13 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
 
        TP_ARGS(fs_info, type, val, bytes, reserve),
 
-       TP_STRUCT__entry(
-               __array(        u8,     fsid,   BTRFS_UUID_SIZE )
-               __string(       type,   type                    )
-               __field(        u64,    val                     )
-               __field(        u64,    bytes                   )
-               __field(        int,    reserve                 )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(fsid, fs_info->fsid, BTRFS_UUID_SIZE)
-               tp_strcpy(type, type)
-               tp_assign(val, val)
-               tp_assign(bytes, bytes)
-               tp_assign(reserve, reserve)
-       ),
-
-       TP_printk("%pU: %s: %Lu %s %Lu", __entry->fsid, __get_str(type),
-                 __entry->val, __entry->reserve ? "reserve" : "release",
-                 __entry->bytes)
+       TP_FIELDS(
+               ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
+               ctf_string(type, type)
+               ctf_integer(u64, val, val)
+               ctf_integer(u64, bytes, bytes)
+               ctf_integer(int, reserve, reserve)
+       )
 )
 #endif
 
@@ -896,22 +369,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
 
        TP_ARGS(root, start, len),
 
-       TP_STRUCT__entry(
-               __field(        u64,  root_objectid             )
-               __field(        u64,  start                     )
-               __field(        u64,  len                       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(root_objectid, root->root_key.objectid)
-               tp_assign(start, start)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("root = %llu(%s), start = %llu, len = %llu",
-                 show_root_type(__entry->root_objectid),
-                 (unsigned long long)__entry->start,
-                 (unsigned long long)__entry->len)
+       TP_FIELDS(
+               ctf_integer(u64, root_objectid, root->root_key.objectid)
+               ctf_integer(u64, start, start)
+               ctf_integer(u64, len, len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent,  btrfs_reserved_extent_alloc,
@@ -938,25 +400,12 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
 
        TP_ARGS(root, num_bytes, empty_size, data),
 
-       TP_STRUCT__entry(
-               __field(        u64,    root_objectid           )
-               __field(        u64,    num_bytes               )
-               __field(        u64,    empty_size              )
-               __field(        u64,    data                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(root_objectid, root->root_key.objectid)
-               tp_assign(num_bytes, num_bytes)
-               tp_assign(empty_size, empty_size)
-               tp_assign(data, data)
-       ),
-
-       TP_printk("root = %Lu(%s), len = %Lu, empty_size = %Lu, "
-                 "flags = %Lu(%s)", show_root_type(__entry->root_objectid),
-                 __entry->num_bytes, __entry->empty_size, __entry->data,
-                 __print_flags((unsigned long)__entry->data, "|",
-                                BTRFS_GROUP_FLAGS))
+       TP_FIELDS(
+               ctf_integer(u64, root_objectid, root->root_key.objectid)
+               ctf_integer(u64, num_bytes, num_bytes)
+               ctf_integer(u64, empty_size, empty_size)
+               ctf_integer(u64, data, data)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
@@ -967,28 +416,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
 
        TP_ARGS(root, block_group, start, len),
 
-       TP_STRUCT__entry(
-               __field(        u64,    root_objectid           )
-               __field(        u64,    bg_objectid             )
-               __field(        u64,    flags                   )
-               __field(        u64,    start                   )
-               __field(        u64,    len                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(root_objectid, root->root_key.objectid)
-               tp_assign(bg_objectid, block_group->key.objectid)
-               tp_assign(flags, block_group->flags)
-               tp_assign(start, start)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), "
-                 "start = %Lu, len = %Lu",
-                 show_root_type(__entry->root_objectid), __entry->bg_objectid,
-                 __entry->flags, __print_flags((unsigned long)__entry->flags,
-                                               "|", BTRFS_GROUP_FLAGS),
-                 __entry->start, __entry->len)
+       TP_FIELDS(
+               ctf_integer(u64, root_objectid, root->root_key.objectid)
+               ctf_integer(u64, bg_objectid, block_group->key.objectid)
+               ctf_integer(u64, flags, block_group->flags)
+               ctf_integer(u64, start, start)
+               ctf_integer(u64, len, len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent,
@@ -1016,30 +450,14 @@ LTTNG_TRACEPOINT_EVENT(btrfs_find_cluster,
 
        TP_ARGS(block_group, start, bytes, empty_size, min_bytes),
 
-       TP_STRUCT__entry(
-               __field(        u64,    bg_objectid             )
-               __field(        u64,    flags                   )
-               __field(        u64,    start                   )
-               __field(        u64,    bytes                   )
-               __field(        u64,    empty_size              )
-               __field(        u64,    min_bytes               )
-       ),
-
-       TP_fast_assign(
-               tp_assign(bg_objectid, block_group->key.objectid)
-               tp_assign(flags, block_group->flags)
-               tp_assign(start, start)
-               tp_assign(bytes, bytes)
-               tp_assign(empty_size, empty_size)
-               tp_assign(min_bytes, min_bytes)
-       ),
-
-       TP_printk("block_group = %Lu, flags = %Lu(%s), start = %Lu, len = %Lu,"
-                 " empty_size = %Lu, min_bytes = %Lu", __entry->bg_objectid,
-                 __entry->flags,
-                 __print_flags((unsigned long)__entry->flags, "|",
-                               BTRFS_GROUP_FLAGS), __entry->start,
-                 __entry->bytes, __entry->empty_size,  __entry->min_bytes)
+       TP_FIELDS(
+               ctf_integer(u64, bg_objectid, block_group->key.objectid)
+               ctf_integer(u64, flags, block_group->flags)
+               ctf_integer(u64, start, start)
+               ctf_integer(u64, bytes, bytes)
+               ctf_integer(u64, empty_size, empty_size)
+               ctf_integer(u64, min_bytes, min_bytes)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(btrfs_failed_cluster_setup,
@@ -1048,15 +466,9 @@ LTTNG_TRACEPOINT_EVENT(btrfs_failed_cluster_setup,
 
        TP_ARGS(block_group),
 
-       TP_STRUCT__entry(
-               __field(        u64,    bg_objectid             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(bg_objectid, block_group->key.objectid)
-       ),
-
-       TP_printk("block_group = %Lu", __entry->bg_objectid)
+       TP_FIELDS(
+               ctf_integer(u64, bg_objectid, block_group->key.objectid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(btrfs_setup_cluster,
@@ -1066,31 +478,14 @@ LTTNG_TRACEPOINT_EVENT(btrfs_setup_cluster,
 
        TP_ARGS(block_group, cluster, size, bitmap),
 
-       TP_STRUCT__entry(
-               __field(        u64,    bg_objectid             )
-               __field(        u64,    flags                   )
-               __field(        u64,    start                   )
-               __field(        u64,    max_size                )
-               __field(        u64,    size                    )
-               __field(        int,    bitmap                  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(bg_objectid, block_group->key.objectid)
-               tp_assign(flags, block_group->flags)
-               tp_assign(start, cluster->window_start)
-               tp_assign(max_size, cluster->max_size)
-               tp_assign(size, size)
-               tp_assign(bitmap, bitmap)
-       ),
-
-       TP_printk("block_group = %Lu, flags = %Lu(%s), window_start = %Lu, "
-                 "size = %Lu, max_size = %Lu, bitmap = %d",
-                 __entry->bg_objectid,
-                 __entry->flags,
-                 __print_flags((unsigned long)__entry->flags, "|",
-                               BTRFS_GROUP_FLAGS), __entry->start,
-                 __entry->size, __entry->max_size, __entry->bitmap)
+       TP_FIELDS(
+               ctf_integer(u64, bg_objectid, block_group->key.objectid)
+               ctf_integer(u64, flags, block_group->flags)
+               ctf_integer(u64, start, cluster->window_start)
+               ctf_integer(u64, max_size, cluster->max_size)
+               ctf_integer(u64, size, size)
+               ctf_integer(int, bitmap, bitmap)
+       )
 )
 #endif
 
@@ -1103,20 +498,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(alloc_extent_state,
 
        TP_ARGS(state, mask, IP),
 
-       TP_STRUCT__entry(
-               __field(struct extent_state *, state)
-               __field(gfp_t, mask)
-               __field(unsigned long, ip)
-       ),
-
-       TP_fast_assign(
-               tp_assign(state, state)
-               tp_assign(mask, mask)
-               tp_assign(ip, IP)
-       ),
-
-       TP_printk("state=%p; mask = %s; caller = %pF", __entry->state,
-                 show_gfp_flags(__entry->mask), (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(struct extent_state *, state, state)
+               ctf_integer(gfp_t, mask, mask)
+               ctf_integer(unsigned long, ip, IP)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_MAP(free_extent_state,
@@ -1127,18 +513,10 @@ LTTNG_TRACEPOINT_EVENT_MAP(free_extent_state,
 
        TP_ARGS(state, IP),
 
-       TP_STRUCT__entry(
-               __field(struct extent_state *, state)
-               __field(unsigned long, ip)
-       ),
-
-       TP_fast_assign(
-               tp_assign(state, state)
-               tp_assign(ip, IP)
-       ),
-
-       TP_printk(" state=%p; caller = %pF", __entry->state,
-                 (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(struct extent_state *, state, state)
+               ctf_integer(unsigned long, ip, IP)
+       )
 )
 #endif
 
index 992b5be500e3ce1f94cc2d5745d46530168d9500..10edec41425ff3d0c06c839609f8cbb3fad04ace 100644 (file)
@@ -20,25 +20,12 @@ LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template,
 
        TP_ARGS(start_pfn, end_pfn, nr_scanned, nr_taken),
 
-       TP_STRUCT__entry(
-               __field(unsigned long, start_pfn)
-               __field(unsigned long, end_pfn)
-               __field(unsigned long, nr_scanned)
-               __field(unsigned long, nr_taken)
-       ),
-
-       TP_fast_assign(
-               tp_assign(start_pfn, start_pfn)
-               tp_assign(end_pfn, end_pfn)
-               tp_assign(nr_scanned, nr_scanned)
-               tp_assign(nr_taken, nr_taken)
-       ),
-
-       TP_printk("range=(0x%lx ~ 0x%lx) nr_scanned=%lu nr_taken=%lu",
-               __entry->start_pfn,
-               __entry->end_pfn,
-               __entry->nr_scanned,
-               __entry->nr_taken)
+       TP_FIELDS(
+               ctf_integer(unsigned long, start_pfn, start_pfn)
+               ctf_integer(unsigned long, end_pfn, end_pfn)
+               ctf_integer(unsigned long, nr_scanned, nr_scanned)
+               ctf_integer(unsigned long, nr_taken, nr_taken)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(compaction_isolate_template, mm_compaction_isolate_migratepages,
@@ -70,19 +57,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template,
 
        TP_ARGS(nr_scanned, nr_taken),
 
-       TP_STRUCT__entry(
-               __field(unsigned long, nr_scanned)
-               __field(unsigned long, nr_taken)
-       ),
-
-       TP_fast_assign(
-               tp_assign(nr_scanned, nr_scanned)
-               tp_assign(nr_taken, nr_taken)
-       ),
-
-       TP_printk("nr_scanned=%lu nr_taken=%lu",
-               __entry->nr_scanned,
-               __entry->nr_taken)
+       TP_FIELDS(
+               ctf_integer(unsigned long, nr_scanned, nr_scanned)
+               ctf_integer(unsigned long, nr_taken, nr_taken)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template,
@@ -114,7 +92,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template,
 #if LTTNG_KERNEL_RANGE(3,12,30, 3,13,0) || \
        LTTNG_KERNEL_RANGE(3,14,25, 3,15,0) || \
        (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
-LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
+LTTNG_TRACEPOINT_EVENT_CODE_MAP(mm_compaction_migratepages,
 
        compaction_migratepages,
 
@@ -124,37 +102,28 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
 
        TP_ARGS(nr_all, migrate_rc, migratepages),
 
-       TP_STRUCT__entry(
-               __field(unsigned long, nr_migrated)
-               __field(unsigned long, nr_failed)
+       TP_locvar(
+               unsigned long nr_failed;
        ),
 
-       TP_fast_assign(
-               tp_assign(nr_migrated,
-                       nr_all -
-                       (migrate_rc >= 0 ? migrate_rc :
-                               ({
-                                       unsigned long nr_failed = 0;
-                                       struct list_head *page_lru;
-
-                                       list_for_each(page_lru, migratepages)
-                                               nr_failed++;
-                                       nr_failed;
-                               })))
-               tp_assign(nr_failed,
-                               ({
-                                       unsigned long nr_failed = 0;
-                                       struct list_head *page_lru;
-
-                                       list_for_each(page_lru, migratepages)
-                                               nr_failed++;
-                                       nr_failed;
-                               }))
+       TP_code(
+               tp_locvar->nr_failed = 0;
+
+               {
+                       struct list_head *page_lru;
+
+                       if (migrate_rc >= 0)
+                               tp_locvar->nr_failed = migrate_rc;
+                       else
+                               list_for_each(page_lru, migratepages)
+                                       tp_locvar->nr_failed++;
+               }
        ),
 
-       TP_printk("nr_migrated=%lu nr_failed=%lu",
-               __entry->nr_migrated,
-               __entry->nr_failed)
+       TP_FIELDS(
+               ctf_integer(unsigned long, nr_migrated, nr_all - tp_locvar->nr_failed)
+               ctf_integer(unsigned long, nr_failed, tp_locvar->nr_failed)
+       )
 )
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
 LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
@@ -166,19 +135,10 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
 
        TP_ARGS(nr_migrated, nr_failed),
 
-       TP_STRUCT__entry(
-               __field(unsigned long, nr_migrated)
-               __field(unsigned long, nr_failed)
-       ),
-
-       TP_fast_assign(
-               tp_assign(nr_migrated, nr_migrated)
-               tp_assign(nr_failed, nr_failed)
-       ),
-
-       TP_printk("nr_migrated=%lu nr_failed=%lu",
-               __entry->nr_migrated,
-               __entry->nr_failed)
+       TP_FIELDS(
+               ctf_integer(unsigned long, nr_migrated, nr_migrated)
+               ctf_integer(unsigned long, nr_failed, nr_failed)
+       )
 )
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
 
index 0c6cc98dd9726550670d948e0457159c753c778d..9c7813ee1b952e61faf9579e11523611114e5454 100644 (file)
@@ -12,34 +12,19 @@ LTTNG_TRACEPOINT_EVENT(ext3_free_inode,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        umode_t, mode                   )
-               __field(        uid_t,  uid                     )
-               __field(        gid_t,  gid                     )
-               __field(        blkcnt_t, blocks                )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(mode, inode->i_mode)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(umode_t, mode, inode->i_mode)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
-               tp_assign(uid, i_uid_read(inode))
-               tp_assign(gid, i_gid_read(inode))
+               ctf_integer(uid_t, uid, i_uid_read(inode))
+               ctf_integer(gid_t, gid, i_gid_read(inode))
 #else
-               tp_assign(uid, inode->i_uid)
-               tp_assign(gid, inode->i_gid)
+               ctf_integer(uid_t, uid, inode->i_uid)
+               ctf_integer(gid_t, gid, inode->i_gid)
 #endif
-               tp_assign(blocks, inode->i_blocks)
-       ),
-
-       TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->uid, __entry->gid,
-                 (unsigned long) __entry->blocks)
+               ctf_integer(blkcnt_t, blocks, inode->i_blocks)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_request_inode,
@@ -47,21 +32,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_request_inode,
 
        TP_ARGS(dir, mode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  dir                     )
-               __field(        umode_t, mode                   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, dir->i_sb->s_dev)
-               tp_assign(dir, dir->i_ino)
-               tp_assign(mode, mode)
-       ),
-
-       TP_printk("dev %d,%d dir %lu mode 0%o",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->dir, __entry->mode)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dir->i_sb->s_dev)
+               ctf_integer(ino_t, dir, dir->i_ino)
+               ctf_integer(umode_t, mode, mode)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_allocate_inode,
@@ -69,24 +44,12 @@ LTTNG_TRACEPOINT_EVENT(ext3_allocate_inode,
 
        TP_ARGS(inode, dir, mode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        ino_t,  dir                     )
-               __field(        umode_t, mode                   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dir, dir->i_ino)
-               tp_assign(mode, mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long) __entry->dir, __entry->mode)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ino_t, dir, dir->i_ino)
+               ctf_integer(umode_t, mode, mode)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_evict_inode,
@@ -94,21 +57,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_evict_inode,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        int,    nlink                   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(nlink, inode->i_nlink)
-       ),
-
-       TP_printk("dev %d,%d ino %lu nlink %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->nlink)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(int, nlink, inode->i_nlink)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_drop_inode,
@@ -116,21 +69,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_drop_inode,
 
        TP_ARGS(inode, drop),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        int,    drop                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(drop, drop)
-       ),
-
-       TP_printk("dev %d,%d ino %lu drop %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->drop)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(int, drop, drop)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_mark_inode_dirty,
@@ -138,21 +81,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_mark_inode_dirty,
 
        TP_ARGS(inode, IP),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(unsigned long,  ip                      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(ip, IP)
-       ),
-
-       TP_printk("dev %d,%d ino %lu caller %pF",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned long, ip, IP)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_write_begin,
@@ -161,27 +94,13 @@ LTTNG_TRACEPOINT_EVENT(ext3_write_begin,
 
        TP_ARGS(inode, pos, len, flags),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned int, len               )
-               __field(        unsigned int, flags             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, pos)
-               tp_assign(len, len)
-               tp_assign(flags, flags)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long long) __entry->pos, __entry->len,
-                 __entry->flags)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, pos)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(unsigned int, flags, flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(ext3__write_end,
@@ -190,27 +109,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext3__write_end,
 
        TP_ARGS(inode, pos, len, copied),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned int, len               )
-               __field(        unsigned int, copied            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, pos)
-               tp_assign(len, len)
-               tp_assign(copied, copied)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long long) __entry->pos, __entry->len,
-                 __entry->copied)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, pos)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(unsigned int, copied, copied)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__write_end, ext3_ordered_write_end,
@@ -242,22 +147,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext3__page_op,
 
        TP_ARGS(page),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        pgoff_t, index                  )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(index, page->index)
-               tp_assign(ino, page->mapping->host->i_ino)
-               tp_assign(dev, page->mapping->host->i_sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d ino %lu page_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->index)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
+               ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+               ctf_integer(pgoff_t, index, page->index)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__page_op, ext3_ordered_writepage,
@@ -302,27 +196,13 @@ LTTNG_TRACEPOINT_EVENT(ext3_invalidatepage,
 
        TP_ARGS(page, offset, length),
 
-       TP_STRUCT__entry(
-               __field(        pgoff_t, index                  )
-               __field(        unsigned int, offset            )
-               __field(        unsigned int, length            )
-               __field(        ino_t,  ino                     )
-               __field(        dev_t,  dev                     )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(index, page->index)
-               tp_assign(offset, offset)
-               tp_assign(length, length)
-               tp_assign(ino, page->mapping->host->i_ino)
-               tp_assign(dev, page->mapping->host->i_sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->index, __entry->offset, __entry->length)
+       TP_FIELDS(
+               ctf_integer(pgoff_t, index, page->index)
+               ctf_integer(unsigned int, offset, offset)
+               ctf_integer(unsigned int, length, length)
+               ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+               ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
+       )
 )
 
 #else
@@ -332,25 +212,12 @@ LTTNG_TRACEPOINT_EVENT(ext3_invalidatepage,
 
        TP_ARGS(page, offset),
 
-       TP_STRUCT__entry(
-               __field(        pgoff_t, index                  )
-               __field(        unsigned long, offset           )
-               __field(        ino_t,  ino                     )
-               __field(        dev_t,  dev                     )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(index, page->index)
-               tp_assign(offset, offset)
-               tp_assign(ino, page->mapping->host->i_ino)
-               tp_assign(dev, page->mapping->host->i_sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->index, __entry->offset)
+       TP_FIELDS(
+               ctf_integer(pgoff_t, index, page->index)
+               ctf_integer(unsigned long, offset, offset)
+               ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+               ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
+       )
 )
 
 #endif
@@ -361,22 +228,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_discard_blocks,
 
        TP_ARGS(sb, blk, count),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        unsigned long,  blk             )
-               __field(        unsigned long,  count           )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(blk, blk)
-               tp_assign(count, count)
-       ),
-
-       TP_printk("dev %d,%d blk %lu count %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->blk, __entry->count)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned long, blk, blk)
+               ctf_integer(unsigned long, count, count)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_request_blocks,
@@ -385,24 +241,12 @@ LTTNG_TRACEPOINT_EVENT(ext3_request_blocks,
 
        TP_ARGS(inode, goal, count),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        unsigned long, count            )
-               __field(        unsigned long,  goal            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(count, count)
-               tp_assign(goal, goal)
-       ),
-
-       TP_printk("dev %d,%d ino %lu count %lu goal %lu ",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->count, __entry->goal)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned long, count, count)
+               ctf_integer(unsigned long, goal, goal)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_allocate_blocks,
@@ -411,27 +255,13 @@ LTTNG_TRACEPOINT_EVENT(ext3_allocate_blocks,
 
        TP_ARGS(inode, goal, count, block),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        unsigned long,  block           )
-               __field(        unsigned long, count            )
-               __field(        unsigned long,  goal            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(block, block)
-               tp_assign(count, count)
-               tp_assign(goal, goal)
-       ),
-
-       TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                  __entry->count, __entry->block,
-                 __entry->goal)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned long, block, block)
+               ctf_integer(unsigned long, count, count)
+               ctf_integer(unsigned long, goal, goal)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_free_blocks,
@@ -440,26 +270,13 @@ LTTNG_TRACEPOINT_EVENT(ext3_free_blocks,
 
        TP_ARGS(inode, block, count),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        umode_t, mode                   )
-               __field(        unsigned long,  block           )
-               __field(        unsigned long,  count           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(mode, inode->i_mode)
-               tp_assign(block, block)
-               tp_assign(count, count)
-       ),
-
-       TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->block, __entry->count)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(umode_t, mode, inode->i_mode)
+               ctf_integer(unsigned long, block, block)
+               ctf_integer(unsigned long, count, count)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_sync_file_enter,
@@ -467,24 +284,12 @@ LTTNG_TRACEPOINT_EVENT(ext3_sync_file_enter,
 
        TP_ARGS(file, datasync),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        ino_t,  parent                  )
-               __field(        int,    datasync                )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev)
-               tp_assign(ino, file->f_path.dentry->d_inode->i_ino)
-               tp_assign(datasync, datasync)
-               tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino)
-       ),
-
-       TP_printk("dev %d,%d ino %lu parent %ld datasync %d ",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long) __entry->parent, __entry->datasync)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, file->f_path.dentry->d_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
+               ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
+               ctf_integer(int, datasync, datasync)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_sync_file_exit,
@@ -492,22 +297,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_sync_file_exit,
 
        TP_ARGS(inode, ret),
 
-       TP_STRUCT__entry(
-               __field(        int,    ret                     )
-               __field(        ino_t,  ino                     )
-               __field(        dev_t,  dev                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ret, ret)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d ino %lu ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_sync_fs,
@@ -515,20 +309,10 @@ LTTNG_TRACEPOINT_EVENT(ext3_sync_fs,
 
        TP_ARGS(sb, wait),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    wait                    )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(wait, wait)
-       ),
-
-       TP_printk("dev %d,%d wait %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->wait)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(int, wait, wait)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_rsv_window_add,
@@ -537,21 +321,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_rsv_window_add,
 
        TP_ARGS(sb, rsv_node),
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  start           )
-               __field(        unsigned long,  end             )
-               __field(        dev_t,  dev                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(start, rsv_node->rsv_window._rsv_start)
-               tp_assign(end, rsv_node->rsv_window._rsv_end)
-       ),
-
-       TP_printk("dev %d,%d start %lu end %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->start, __entry->end)
+       TP_FIELDS(
+               ctf_integer(unsigned long, start, rsv_node->rsv_window._rsv_start)
+               ctf_integer(unsigned long, end, rsv_node->rsv_window._rsv_end)
+               ctf_integer(dev_t, dev, sb->s_dev)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_discard_reservation,
@@ -560,24 +334,12 @@ LTTNG_TRACEPOINT_EVENT(ext3_discard_reservation,
 
        TP_ARGS(inode, rsv_node),
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  start           )
-               __field(        unsigned long,  end             )
-               __field(        ino_t,  ino                     )
-               __field(        dev_t,  dev                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(start, rsv_node->rsv_window._rsv_start)
-               tp_assign(end, rsv_node->rsv_window._rsv_end)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d ino %lu start %lu end %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long)__entry->ino, __entry->start,
-                 __entry->end)
+       TP_FIELDS(
+               ctf_integer(unsigned long, start, rsv_node->rsv_window._rsv_start)
+               ctf_integer(unsigned long, end, rsv_node->rsv_window._rsv_end)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_alloc_new_reservation,
@@ -585,19 +347,10 @@ LTTNG_TRACEPOINT_EVENT(ext3_alloc_new_reservation,
 
        TP_ARGS(sb, goal),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        unsigned long,  goal            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(goal, goal)
-       ),
-
-       TP_printk("dev %d,%d goal %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->goal)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned long, goal, goal)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_reserved,
@@ -606,23 +359,12 @@ LTTNG_TRACEPOINT_EVENT(ext3_reserved,
 
        TP_ARGS(sb, block, rsv_node),
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  block           )
-               __field(        unsigned long,  start           )
-               __field(        unsigned long,  end             )
-               __field(        dev_t,  dev                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(block, block)
-               tp_assign(start, rsv_node->rsv_window._rsv_start)
-               tp_assign(end, rsv_node->rsv_window._rsv_end)
-               tp_assign(dev, sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d block %lu, start %lu end %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->block, __entry->start, __entry->end)
+       TP_FIELDS(
+               ctf_integer(unsigned long, block, block)
+               ctf_integer(unsigned long, start, rsv_node->rsv_window._rsv_start)
+               ctf_integer(unsigned long, end, rsv_node->rsv_window._rsv_end)
+               ctf_integer(dev_t, dev, sb->s_dev)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_forget,
@@ -630,26 +372,13 @@ LTTNG_TRACEPOINT_EVENT(ext3_forget,
 
        TP_ARGS(inode, is_metadata, block),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        umode_t, mode                   )
-               __field(        int,    is_metadata             )
-               __field(        unsigned long,  block           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(mode, inode->i_mode)
-               tp_assign(is_metadata, is_metadata)
-               tp_assign(block, block)
-       ),
-
-       TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->is_metadata, __entry->block)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(umode_t, mode, inode->i_mode)
+               ctf_integer(int, is_metadata, is_metadata)
+               ctf_integer(unsigned long, block, block)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_read_block_bitmap,
@@ -657,20 +386,10 @@ LTTNG_TRACEPOINT_EVENT(ext3_read_block_bitmap,
 
        TP_ARGS(sb, group),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        __u32,  group                   )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(group, group)
-       ),
-
-       TP_printk("dev %d,%d group %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->group)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(__u32, group, group)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_direct_IO_enter,
@@ -678,27 +397,13 @@ LTTNG_TRACEPOINT_EVENT(ext3_direct_IO_enter,
 
        TP_ARGS(inode, offset, len, rw),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino                     )
-               __field(        dev_t,  dev                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned long,  len             )
-               __field(        int,    rw                      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(pos, offset)
-               tp_assign(len, len)
-               tp_assign(rw, rw)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long long) __entry->pos, __entry->len,
-                 __entry->rw)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(unsigned long, len, len)
+               ctf_integer(int, rw, rw)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_direct_IO_exit,
@@ -707,29 +412,14 @@ LTTNG_TRACEPOINT_EVENT(ext3_direct_IO_exit,
 
        TP_ARGS(inode, offset, len, rw, ret),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino                     )
-               __field(        dev_t,  dev                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned long,  len             )
-               __field(        int,    rw                      )
-               __field(        int,    ret                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(pos, offset)
-               tp_assign(len, len)
-               tp_assign(rw, rw)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long long) __entry->pos, __entry->len,
-                 __entry->rw, __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(unsigned long, len, len)
+               ctf_integer(int, rw, rw)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_unlink_enter,
@@ -737,25 +427,12 @@ LTTNG_TRACEPOINT_EVENT(ext3_unlink_enter,
 
        TP_ARGS(parent, dentry),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  parent                  )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, size                    )
-               __field(        dev_t,  dev                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(parent, parent->i_ino)
-               tp_assign(ino, dentry->d_inode->i_ino)
-               tp_assign(size, dentry->d_inode->i_size)
-               tp_assign(dev, dentry->d_inode->i_sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d ino %lu size %lld parent %ld",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long long)__entry->size,
-                 (unsigned long) __entry->parent)
+       TP_FIELDS(
+               ctf_integer(ino_t, parent, parent->i_ino)
+               ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
+               ctf_integer(loff_t, size, dentry->d_inode->i_size)
+               ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_unlink_exit,
@@ -763,22 +440,11 @@ LTTNG_TRACEPOINT_EVENT(ext3_unlink_exit,
 
        TP_ARGS(dentry, ret),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino                     )
-               __field(        dev_t,  dev                     )
-               __field(        int,    ret                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, dentry->d_inode->i_ino)
-               tp_assign(dev, dentry->d_inode->i_sb->s_dev)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(ext3__truncate,
@@ -786,21 +452,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext3__truncate,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,          ino             )
-               __field(        dev_t,          dev             )
-               __field(        blkcnt_t,       blocks          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(blocks, inode->i_blocks)
-       ),
-
-       TP_printk("dev %d,%d ino %lu blocks %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, (unsigned long) __entry->blocks)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(blkcnt_t, blocks, inode->i_blocks)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext3__truncate, ext3_truncate_enter,
@@ -823,26 +479,13 @@ LTTNG_TRACEPOINT_EVENT(ext3_get_blocks_enter,
 
        TP_ARGS(inode, lblk, len, create),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,          ino             )
-               __field(        dev_t,          dev             )
-               __field(        unsigned long,  lblk            )
-               __field(        unsigned long,  len             )
-               __field(        int,            create          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(lblk, lblk)
-               tp_assign(len, len)
-               tp_assign(create, create)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->len, __entry->create)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned long, lblk, lblk)
+               ctf_integer(unsigned long, len, len)
+               ctf_integer(int, create, create)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_get_blocks_exit,
@@ -851,29 +494,14 @@ LTTNG_TRACEPOINT_EVENT(ext3_get_blocks_exit,
 
        TP_ARGS(inode, lblk, pblk, len, ret),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,          ino             )
-               __field(        dev_t,          dev             )
-               __field(        unsigned long,  lblk            )
-               __field(        unsigned long,  pblk            )
-               __field(        unsigned long,  len             )
-               __field(        int,            ret             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(lblk, lblk)
-               tp_assign(pblk, pblk)
-               tp_assign(len, len)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                  __entry->lblk, __entry->pblk,
-                 __entry->len, __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned long, lblk, lblk)
+               ctf_integer(unsigned long, pblk, pblk)
+               ctf_integer(unsigned long, len, len)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext3_load_inode,
@@ -881,19 +509,10 @@ LTTNG_TRACEPOINT_EVENT(ext3_load_inode,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        ino_t,  ino             )
-               __field(        dev_t,  dev             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dev, inode->i_sb->s_dev)
-       ),
-
-       TP_printk("dev %d,%d ino %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+       )
 )
 
 #endif /* LTTNG_TRACE_EXT3_H */
index 6169fefcea1d5f104dbc69f7c7cfb05dc126cbe7..41c89fd3bb65cc6c5887c04e76b0e06f0c9cac81 100644 (file)
@@ -33,33 +33,19 @@ LTTNG_TRACEPOINT_EVENT(ext4_free_inode,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        uid_t,  uid                     )
-               __field(        gid_t,  gid                     )
-               __field(        __u64, blocks                   )
-               __field(        TP_MODE_T, mode                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
-               tp_assign(uid, i_uid_read(inode))
-               tp_assign(gid, i_gid_read(inode))
+               ctf_integer(uid_t, uid, i_uid_read(inode))
+               ctf_integer(gid_t, gid, i_gid_read(inode))
 #else
-               tp_assign(uid, inode->i_uid)
-               tp_assign(gid, inode->i_gid)
+               ctf_integer(uid_t, uid, inode->i_uid)
+               ctf_integer(gid_t, gid, inode->i_gid)
 #endif
-               tp_assign(blocks, inode->i_blocks)
-               tp_assign(mode, inode->i_mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->mode,
-                 __entry->uid, __entry->gid, __entry->blocks)
+               ctf_integer(__u64, blocks, inode->i_blocks)
+               ctf_integer(TP_MODE_T, mode, inode->i_mode)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_request_inode,
@@ -67,21 +53,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_request_inode,
 
        TP_ARGS(dir, mode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  dir                     )
-               __field(        TP_MODE_T, mode                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, dir->i_sb->s_dev)
-               tp_assign(dir, dir->i_ino)
-               tp_assign(mode, mode)
-       ),
-
-       TP_printk("dev %d,%d dir %lu mode 0%o",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->dir, __entry->mode)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dir->i_sb->s_dev)
+               ctf_integer(ino_t, dir, dir->i_ino)
+               ctf_integer(TP_MODE_T, mode, mode)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode,
@@ -89,24 +65,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode,
 
        TP_ARGS(inode, dir, mode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        ino_t,  dir                     )
-               __field(        TP_MODE_T, mode                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(dir, dir->i_ino)
-               tp_assign(mode, mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long) __entry->dir, __entry->mode)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ino_t, dir, dir->i_ino)
+               ctf_integer(TP_MODE_T, mode, mode)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
@@ -115,21 +79,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_evict_inode,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        int,    nlink                   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(nlink, inode->i_nlink)
-       ),
-
-       TP_printk("dev %d,%d ino %lu nlink %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->nlink)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(int, nlink, inode->i_nlink)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_drop_inode,
@@ -137,21 +91,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_drop_inode,
 
        TP_ARGS(inode, drop),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        int,    drop                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(drop, drop)
-       ),
-
-       TP_printk("dev %d,%d ino %lu drop %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->drop)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(int, drop, drop)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty,
@@ -159,21 +103,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty,
 
        TP_ARGS(inode, IP),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(unsigned long,  ip                      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(ip, IP)
-       ),
-
-       TP_printk("dev %d,%d ino %lu caller %pF",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned long, ip, IP)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate,
@@ -181,22 +115,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate,
 
        TP_ARGS(inode, new_size),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, new_size                )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(new_size, new_size)
-       ),
-
-       TP_printk("dev %d,%d ino %lu new_size %lld",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->new_size)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, new_size, new_size)
+       )
 )
 #endif
 
@@ -207,26 +130,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin,
 
        TP_ARGS(inode, pos, len, flags),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned int, len               )
-               __field(        unsigned int, flags             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, pos)
-               tp_assign(len, len)
-               tp_assign(flags, flags)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->pos, __entry->len, __entry->flags)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, pos)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(unsigned int, flags, flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_write_begin,
@@ -251,26 +161,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end,
 
        TP_ARGS(inode, pos, len, copied),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned int, len               )
-               __field(        unsigned int, copied            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, pos)
-               tp_assign(len, len)
-               tp_assign(copied, copied)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->pos, __entry->len, __entry->copied)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, pos)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(unsigned int, copied, copied)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_ordered_write_end,
@@ -311,22 +208,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_writepage,
 
        TP_ARGS(inode, page),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        pgoff_t, index                  )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(index, page->index)
-       ),
-
-       TP_printk("dev %d,%d ino %lu page_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->index)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(pgoff_t, index, page->index)
+       )
 )
 #endif
 
@@ -335,79 +221,26 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_writepages,
 
        TP_ARGS(inode, wbc),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        long,   nr_to_write             )
-               __field(        long,   pages_skipped           )
-               __field(        loff_t, range_start             )
-               __field(        loff_t, range_end               )
-               __field(       pgoff_t, writeback_index         )
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(long, nr_to_write, wbc->nr_to_write)
+               ctf_integer(long, pages_skipped, wbc->pages_skipped)
+               ctf_integer(loff_t, range_start, wbc->range_start)
+               ctf_integer(loff_t, range_end, wbc->range_end)
+               ctf_integer(pgoff_t, writeback_index, inode->i_mapping->writeback_index)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               __field(        int,    sync_mode               )
+               ctf_integer(int, sync_mode, wbc->sync_mode)
 #endif
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
-               __field(        char,   nonblocking             )
+               ctf_integer(char, nonblocking, wbc->nonblocking)
 #endif
-               __field(        char,   for_kupdate             )
+               ctf_integer(char, for_kupdate, wbc->for_kupdate)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
-               __field(        char,   for_reclaim             )
-#endif
-               __field(        char,   range_cyclic            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(nr_to_write, wbc->nr_to_write)
-               tp_assign(pages_skipped, wbc->pages_skipped)
-               tp_assign(range_start, wbc->range_start)
-               tp_assign(range_end, wbc->range_end)
-               tp_assign(writeback_index, inode->i_mapping->writeback_index)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               tp_assign(sync_mode, wbc->sync_mode)
+               ctf_integer(char, for_reclaim, wbc->for_reclaim)
 #endif
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
-               tp_assign(nonblocking, wbc->nonblocking)
-#endif
-               tp_assign(for_kupdate, wbc->for_kupdate)
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
-               tp_assign(for_reclaim, wbc->for_reclaim)
-#endif
-               tp_assign(range_cyclic, wbc->range_cyclic)
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-       TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
-                 "range_start %lld range_end %lld sync_mode %d "
-                 "for_kupdate %d range_cyclic %d writeback_index %lu",
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-       TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
-                 "range_start %llu range_end %llu "
-                 "for_kupdate %d for_reclaim %d "
-                 "range_cyclic %d writeback_index %lu",
-#else
-       TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
-                 "range_start %llu range_end %llu "
-                 "nonblocking %d for_kupdate %d for_reclaim %d "
-                 "range_cyclic %d writeback_index %lu",
-#endif
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->nr_to_write,
-                 __entry->pages_skipped, __entry->range_start,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-                 __entry->range_end, __entry->sync_mode,
-                 __entry->for_kupdate, __entry->range_cyclic,
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-                 __entry->range_end,
-                 __entry->for_kupdate, __entry->for_reclaim,
-                 __entry->range_cyclic,
-#else
-                 __entry->range_end, __entry->nonblocking,
-                 __entry->for_kupdate, __entry->for_reclaim,
-                 __entry->range_cyclic,
-#endif
-                 (unsigned long) __entry->writeback_index)
+               ctf_integer(char, range_cyclic, wbc->range_cyclic)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
@@ -418,27 +251,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
 
        TP_ARGS(inode, first_page, wbc),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(      pgoff_t,  first_page              )
-               __field(         long,  nr_to_write             )
-               __field(          int,  sync_mode               )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(first_page, first_page)
-               tp_assign(nr_to_write, wbc->nr_to_write)
-               tp_assign(sync_mode, wbc->sync_mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu first_page %lu nr_to_write %ld "
-                 "sync_mode %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->first_page,
-                 __entry->nr_to_write, __entry->sync_mode)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(pgoff_t, first_page, first_page)
+               ctf_integer(long, nr_to_write, wbc->nr_to_write)
+               ctf_integer(int, sync_mode, wbc->sync_mode)
+       )
 )
 
 #else
@@ -448,52 +267,19 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
 
        TP_ARGS(inode, mpd),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  b_blocknr               )
-               __field(        __u32,  b_size                  )
-               __field(        __u32,  b_state                 )
-               __field(        unsigned long,  first_page      )
-               __field(        int,    io_done                 )
-               __field(        int,    pages_written           )
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(__u64, b_blocknr, mpd->b_blocknr)
+               ctf_integer(__u32, b_size, mpd->b_size)
+               ctf_integer(__u32, b_state, mpd->b_state)
+               ctf_integer(unsigned long, first_page, mpd->first_page)
+               ctf_integer(int, io_done, mpd->io_done)
+               ctf_integer(int, pages_written, mpd->pages_written)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               __field(        int,    sync_mode               )
+               ctf_integer(int, sync_mode, mpd->sync_mode)
 #endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(b_blocknr, mpd->b_blocknr)
-               tp_assign(b_size, mpd->b_size)
-               tp_assign(b_state, mpd->b_state)
-               tp_assign(first_page, mpd->first_page)
-               tp_assign(io_done, mpd->io_done)
-               tp_assign(pages_written, mpd->pages_written)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               tp_assign(sync_mode, mpd->wbc->sync_mode)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-       TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
-                 "first_page %lu io_done %d pages_written %d sync_mode %d",
-#else
-       TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
-                 "first_page %lu io_done %d pages_written %d",
-#endif
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->b_blocknr, __entry->b_size,
-                 __entry->b_state, __entry->first_page,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-                 __entry->io_done, __entry->pages_written,
-                 __entry->sync_mode
-#else
-                 __entry->io_done, __entry->pages_written
-#endif
-                  )
+       )
 )
 
 #endif
@@ -505,26 +291,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent,
 
        TP_ARGS(inode, map),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  lblk                    )
-               __field(        __u32,  len                     )
-               __field(        __u32,  flags                   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, map->m_lblk)
-               tp_assign(len, map->m_len)
-               tp_assign(flags, map->m_flags)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %llu len %u flags %s",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->lblk, __entry->len,
-                 show_mflags(__entry->flags))
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(__u64, lblk, map->m_lblk)
+               ctf_integer(__u32, len, map->m_len)
+               ctf_integer(__u32, flags, map->m_flags)
+       )
 )
 
 #endif
@@ -535,91 +308,26 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result,
 
        TP_ARGS(inode, wbc, ret, pages_written),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        int,    ret                     )
-               __field(        int,    pages_written           )
-               __field(        long,   pages_skipped           )
-               __field(       pgoff_t, writeback_index         )
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(int, ret, ret)
+               ctf_integer(int, pages_written, pages_written)
+               ctf_integer(long, pages_skipped, wbc->pages_skipped)
+               ctf_integer(pgoff_t, writeback_index, inode->i_mapping->writeback_index)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               __field(        int,    sync_mode               )
+               ctf_integer(int, sync_mode, wbc->sync_mode)
 #endif
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
-               __field(        char,   encountered_congestion  )
+               ctf_integer(char, encountered_congestion, wbc->encountered_congestion)
 #endif
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               __field(        char,   more_io                 )
+               ctf_integer(char, more_io, wbc->more_io)
 #endif
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
-               __field(        char,   no_nrwrite_index_update )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(ret, ret)
-               tp_assign(pages_written, pages_written)
-               tp_assign(pages_skipped, wbc->pages_skipped)
-               tp_assign(writeback_index, inode->i_mapping->writeback_index)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               tp_assign(sync_mode, wbc->sync_mode)
-#endif
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
-               tp_assign(encountered_congestion, wbc->encountered_congestion)
-#endif
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               tp_assign(more_io, wbc->more_io)
-#endif
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
-               tp_assign(no_nrwrite_index_update, wbc->no_nrwrite_index_update)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
-       TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
-                 "sync_mode %d writeback_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->ret,
-                 __entry->pages_written, __entry->pages_skipped,
-                 __entry->sync_mode,
-                 (unsigned long) __entry->writeback_index)
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-       TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
-                 " more_io %d sync_mode %d writeback_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->ret,
-                 __entry->pages_written, __entry->pages_skipped,
-                 __entry->more_io, __entry->sync_mode,
-                 (unsigned long) __entry->writeback_index)
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
-       TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
-                 " more_io %d writeback_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->ret,
-                 __entry->pages_written, __entry->pages_skipped,
-                 __entry->more_io,
-                 (unsigned long) __entry->writeback_index)
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-       TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
-                 " more_io %d no_nrwrite_index_update %d writeback_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->ret,
-                 __entry->pages_written, __entry->pages_skipped,
-                 __entry->more_io, __entry->no_nrwrite_index_update,
-                 (unsigned long) __entry->writeback_index)
-#else
-       TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
-                 " congestion %d"
-                 " more_io %d no_nrwrite_index_update %d writeback_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->ret,
-                 __entry->pages_written, __entry->pages_skipped,
-                 __entry->encountered_congestion,
-                 __entry->more_io, __entry->no_nrwrite_index_update,
-                 (unsigned long) __entry->writeback_index)
+               ctf_integer(char, no_nrwrite_index_update, wbc->no_nrwrite_index_update)
 #endif
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
@@ -628,23 +336,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op,
 
        TP_ARGS(page),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        pgoff_t, index                  )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, page->mapping->host->i_sb->s_dev)
-               tp_assign(ino, page->mapping->host->i_ino)
-               tp_assign(index, page->index)
-       ),
-
-       TP_printk("dev %d,%d ino %lu page_index %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long) __entry->index)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
+               ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+               ctf_integer(pgoff_t, index, page->index)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
@@ -677,27 +373,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op,
 
        TP_ARGS(page, offset, length),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        pgoff_t, index                  )
-               __field(        unsigned int, offset            )
-               __field(        unsigned int, length            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, page->mapping->host->i_sb->s_dev)
-               tp_assign(ino, page->mapping->host->i_ino)
-               tp_assign(index, page->index)
-               tp_assign(offset, offset)
-               tp_assign(length, length)
-       ),
-
-       TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long) __entry->index,
-                 __entry->offset, __entry->length)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
+               ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+               ctf_integer(pgoff_t, index, page->index)
+               ctf_integer(unsigned int, offset, offset)
+               ctf_integer(unsigned int, length, length)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_invalidatepage,
@@ -719,25 +401,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_invalidatepage,
 
        TP_ARGS(page, offset),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        pgoff_t, index                  )
-               __field(        unsigned long, offset           )
-
-       ),
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, page->mapping->host->i_sb->s_dev)
+               ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+               ctf_integer(pgoff_t, index, page->index)
+               ctf_integer(unsigned long, offset, offset)
 
-       TP_fast_assign(
-               tp_assign(dev, page->mapping->host->i_sb->s_dev)
-               tp_assign(ino, page->mapping->host->i_ino)
-               tp_assign(index, page->index)
-               tp_assign(offset, offset)
-       ),
-
-       TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long) __entry->index, __entry->offset)
+       )
 )
 
 #endif
@@ -750,22 +420,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks,
 
        TP_ARGS(sb, blk, count),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        __u64,  blk                     )
-               __field(        __u64,  count                   )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(blk, blk)
-               tp_assign(count, count)
-       ),
-
-       TP_printk("dev %d,%d blk %llu count %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->blk, __entry->count)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(__u64, blk, blk)
+               ctf_integer(__u64, count, count)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa,
@@ -774,27 +433,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa,
 
        TP_ARGS(ac, pa),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  pa_pstart               )
-               __field(        __u64,  pa_lstart               )
-               __field(        __u32,  pa_len                  )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, ac->ac_sb->s_dev)
-               tp_assign(ino, ac->ac_inode->i_ino)
-               tp_assign(pa_pstart, pa->pa_pstart)
-               tp_assign(pa_lstart, pa->pa_lstart)
-               tp_assign(pa_len, pa->pa_len)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, ac->ac_sb->s_dev)
+               ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
+               ctf_integer(__u64, pa_pstart, pa->pa_pstart)
+               ctf_integer(__u64, pa_lstart, pa->pa_lstart)
+               ctf_integer(__u32, pa_len, pa->pa_len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_inode_pa,
@@ -839,38 +484,26 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa,
        TP_ARGS(ac, pa, block, count),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  block                   )
-               __field(        __u32,  count                   )
-
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
-               tp_assign(dev, pa->pa_inode->i_sb->s_dev)
-               tp_assign(ino, pa->pa_inode->i_ino)
+               ctf_integer(dev_t, dev, pa->pa_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, pa->pa_inode->i_ino)
 #else
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-               tp_assign(dev, sb->s_dev)
+               ctf_integer(dev_t, dev, sb->s_dev)
 #else
-               tp_assign(dev, ac->ac_sb->s_dev)
+               ctf_integer(dev_t, dev, ac->ac_sb->s_dev)
 #endif
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-               tp_assign(ino, inode->i_ino)
+               ctf_integer(ino_t, ino, inode->i_ino)
 #else
-               tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
+               ctf_integer(ino_t, ino,
+                       (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
 #endif
 #endif
-               tp_assign(block, block)
-               tp_assign(count, count)
-       ),
-
-       TP_printk("dev %d,%d ino %lu block %llu count %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->block, __entry->count)
+               ctf_integer(__u64, block, block)
+               ctf_integer(__u32, count, count)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
@@ -896,34 +529,21 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
        TP_ARGS(ac, pa),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
-               __field(        ino_t,  ino                     )
-#endif
-               __field(        __u64,  pa_pstart               )
-               __field(        __u32,  pa_len                  )
-
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
 #if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0))
-               tp_assign(dev, pa->pa_inode->i_sb->s_dev)
+               ctf_integer(dev_t, dev, pa->pa_inode->i_sb->s_dev)
 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-               tp_assign(dev, sb->s_dev)
+               ctf_integer(dev_t, dev, sb->s_dev)
 #else
-               tp_assign(dev, ac->ac_sb->s_dev)
+               ctf_integer(dev_t, dev, ac->ac_sb->s_dev)
 #endif
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
-               tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
+               ctf_integer(ino_t, ino,
+                       (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
 #endif
-               tp_assign(pa_pstart, pa->pa_pstart)
-               tp_assign(pa_len, pa->pa_len)
-       ),
-
-       TP_printk("dev %d,%d pstart %llu len %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->pa_pstart, __entry->pa_len)
+               ctf_integer(__u64, pa_pstart, pa->pa_pstart)
+               ctf_integer(__u32, pa_len, pa->pa_len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
@@ -931,20 +551,10 @@ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-       ),
-
-       TP_printk("dev %d,%d ino %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
@@ -952,20 +562,10 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
 
        TP_ARGS(sb, needed),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    needed                  )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(needed, needed)
-       ),
-
-       TP_printk("dev %d,%d needed %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->needed)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(int, needed, needed)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_request_blocks,
@@ -973,39 +573,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_request_blocks,
 
        TP_ARGS(ar),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        unsigned int, len               )
-               __field(        __u32,  logical                 )
-               __field(        __u32,  lleft                   )
-               __field(        __u32,  lright                  )
-               __field(        __u64,  goal                    )
-               __field(        __u64,  pleft                   )
-               __field(        __u64,  pright                  )
-               __field(        unsigned int, flags             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, ar->inode->i_sb->s_dev)
-               tp_assign(ino, ar->inode->i_ino)
-               tp_assign(len, ar->len)
-               tp_assign(logical, ar->logical)
-               tp_assign(goal, ar->goal)
-               tp_assign(lleft, ar->lleft)
-               tp_assign(lright, ar->lright)
-               tp_assign(pleft, ar->pleft)
-               tp_assign(pright, ar->pright)
-               tp_assign(flags, ar->flags)
-       ),
-
-       TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu "
-                 "lleft %u lright %u pleft %llu pright %llu ",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->flags,
-                 __entry->len, __entry->logical, __entry->goal,
-                 __entry->lleft, __entry->lright, __entry->pleft,
-                 __entry->pright)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, ar->inode->i_ino)
+               ctf_integer(unsigned int, len, ar->len)
+               ctf_integer(__u32, logical, ar->logical)
+               ctf_integer(__u32, lleft, ar->lleft)
+               ctf_integer(__u32, lright, ar->lright)
+               ctf_integer(__u64, goal, ar->goal)
+               ctf_integer(__u64, pleft, ar->pleft)
+               ctf_integer(__u64, pright, ar->pright)
+               ctf_integer(unsigned int, flags, ar->flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks,
@@ -1013,41 +592,19 @@ LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks,
 
        TP_ARGS(ar, block),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  block                   )
-               __field(        unsigned int, len               )
-               __field(        __u32,  logical                 )
-               __field(        __u32,  lleft                   )
-               __field(        __u32,  lright                  )
-               __field(        __u64,  goal                    )
-               __field(        __u64,  pleft                   )
-               __field(        __u64,  pright                  )
-               __field(        unsigned int, flags             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, ar->inode->i_sb->s_dev)
-               tp_assign(ino, ar->inode->i_ino)
-               tp_assign(block, block)
-               tp_assign(len, ar->len)
-               tp_assign(logical, ar->logical)
-               tp_assign(goal, ar->goal)
-               tp_assign(lleft, ar->lleft)
-               tp_assign(lright, ar->lright)
-               tp_assign(pleft, ar->pleft)
-               tp_assign(pright, ar->pright)
-               tp_assign(flags, ar->flags)
-       ),
-
-       TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u "
-                 "goal %llu lleft %u lright %u pleft %llu pright %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->flags,
-                 __entry->len, __entry->block, __entry->logical,
-                 __entry->goal,  __entry->lleft, __entry->lright,
-                 __entry->pleft, __entry->pright)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, ar->inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, ar->inode->i_ino)
+               ctf_integer(__u64, block, block)
+               ctf_integer(unsigned int, len, ar->len)
+               ctf_integer(__u32, logical, ar->logical)
+               ctf_integer(__u32, lleft, ar->lleft)
+               ctf_integer(__u32, lright, ar->lright)
+               ctf_integer(__u64, goal, ar->goal)
+               ctf_integer(__u64, pleft, ar->pleft)
+               ctf_integer(__u64, pright, ar->pright)
+               ctf_integer(unsigned int, flags, ar->flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_free_blocks,
@@ -1063,45 +620,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_free_blocks,
        TP_ARGS(inode, block, count, metadata),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  block                   )
-               __field(        unsigned long,  count           )
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(__u64, block, block)
+               ctf_integer(unsigned long, count, count)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-               __field(        int,    flags                   )
-               __field(        TP_MODE_T, mode                 )
+               ctf_integer(int, flags, flags)
+               ctf_integer(TP_MODE_T, mode, inode->i_mode)
 #else
-               __field(        int,    metadata                )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(block, block)
-               tp_assign(count, count)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-               tp_assign(flags, flags)
-               tp_assign(mode, inode->i_mode)
-#else
-               tp_assign(metadata, metadata)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-       TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d",
-#else
-       TP_printk("dev %d,%d ino %lu block %llu count %lu metadata %d",
-#endif
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
-                 __entry->mode, __entry->block, __entry->count,
-                 __entry->flags)
-#else
-                 __entry->block, __entry->count, __entry->metadata)
+               ctf_integer(int, metadata, metadata)
 #endif
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
@@ -1119,31 +649,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_sync_file,
        TP_ARGS(file, dentry, datasync),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        ino_t,  parent                  )
-               __field(        int,    datasync                )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
-               tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev)
-               tp_assign(ino, file->f_path.dentry->d_inode->i_ino)
-               tp_assign(datasync, datasync)
-               tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino)
+               ctf_integer(dev_t, dev, file->f_path.dentry->d_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
+               ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
 #else
-               tp_assign(dev, dentry->d_inode->i_sb->s_dev)
-               tp_assign(ino, dentry->d_inode->i_ino)
-               tp_assign(datasync, datasync)
-               tp_assign(parent, dentry->d_parent->d_inode->i_ino)
+               ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
+               ctf_integer(ino_t, parent, dentry->d_parent->d_inode->i_ino)
 #endif
-       ),
-
-       TP_printk("dev %d,%d ino %lu parent %lu datasync %d ",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long) __entry->parent, __entry->datasync)
+               ctf_integer(int, datasync, datasync)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
@@ -1152,22 +669,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit,
 
        TP_ARGS(inode, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        int,    ret                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(int, ret, ret)
+       )
 )
 #endif
 
@@ -1176,20 +682,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_sync_fs,
 
        TP_ARGS(sb, wait),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    wait                    )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(wait, wait)
-       ),
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(int, wait, wait)
 
-       TP_printk("dev %d,%d wait %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->wait)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
@@ -1197,24 +694,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field( unsigned int,  data_blocks     )
-               __field( unsigned int,  meta_blocks     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
-               tp_assign(meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks)
-       ),
-
-       TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->data_blocks, __entry->meta_blocks)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
+               ctf_integer(unsigned int, meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc,
@@ -1222,66 +707,28 @@ LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc,
 
        TP_ARGS(ac),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u32,  orig_logical            )
-               __field(          int,  orig_start              )
-               __field(        __u32,  orig_group              )
-               __field(          int,  orig_len                )
-               __field(        __u32,  goal_logical            )
-               __field(          int,  goal_start              )
-               __field(        __u32,  goal_group              )
-               __field(          int,  goal_len                )
-               __field(        __u32,  result_logical          )
-               __field(          int,  result_start            )
-               __field(        __u32,  result_group            )
-               __field(          int,  result_len              )
-               __field(        __u16,  found                   )
-               __field(        __u16,  groups                  )
-               __field(        __u16,  buddy                   )
-               __field(        __u16,  flags                   )
-               __field(        __u16,  tail                    )
-               __field(        __u8,   cr                      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, ac->ac_inode->i_sb->s_dev)
-               tp_assign(ino, ac->ac_inode->i_ino)
-               tp_assign(orig_logical, ac->ac_o_ex.fe_logical)
-               tp_assign(orig_start, ac->ac_o_ex.fe_start)
-               tp_assign(orig_group, ac->ac_o_ex.fe_group)
-               tp_assign(orig_len, ac->ac_o_ex.fe_len)
-               tp_assign(goal_logical, ac->ac_g_ex.fe_logical)
-               tp_assign(goal_start, ac->ac_g_ex.fe_start)
-               tp_assign(goal_group, ac->ac_g_ex.fe_group)
-               tp_assign(goal_len, ac->ac_g_ex.fe_len)
-               tp_assign(result_logical, ac->ac_f_ex.fe_logical)
-               tp_assign(result_start, ac->ac_f_ex.fe_start)
-               tp_assign(result_group, ac->ac_f_ex.fe_group)
-               tp_assign(result_len, ac->ac_f_ex.fe_len)
-               tp_assign(found, ac->ac_found)
-               tp_assign(flags, ac->ac_flags)
-               tp_assign(groups, ac->ac_groups_scanned)
-               tp_assign(buddy, ac->ac_buddy)
-               tp_assign(tail, ac->ac_tail)
-               tp_assign(cr, ac->ac_criteria)
-       ),
-
-       TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u "
-                 "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x "
-                 "tail %u broken %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->orig_group, __entry->orig_start,
-                 __entry->orig_len, __entry->orig_logical,
-                 __entry->goal_group, __entry->goal_start,
-                 __entry->goal_len, __entry->goal_logical,
-                 __entry->result_group, __entry->result_start,
-                 __entry->result_len, __entry->result_logical,
-                 __entry->found, __entry->groups, __entry->cr,
-                 __entry->flags, __entry->tail,
-                 __entry->buddy ? 1 << __entry->buddy : 0)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
+               ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
+               ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
+               ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
+               ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
+               ctf_integer(__u32, goal_logical, ac->ac_g_ex.fe_logical)
+               ctf_integer(int, goal_start, ac->ac_g_ex.fe_start)
+               ctf_integer(__u32, goal_group, ac->ac_g_ex.fe_group)
+               ctf_integer(int, goal_len, ac->ac_g_ex.fe_len)
+               ctf_integer(__u32, result_logical, ac->ac_f_ex.fe_logical)
+               ctf_integer(int, result_start, ac->ac_f_ex.fe_start)
+               ctf_integer(__u32, result_group, ac->ac_f_ex.fe_group)
+               ctf_integer(int, result_len, ac->ac_f_ex.fe_len)
+               ctf_integer(__u16, found, ac->ac_found)
+               ctf_integer(__u16, groups, ac->ac_groups_scanned)
+               ctf_integer(__u16, buddy, ac->ac_buddy)
+               ctf_integer(__u16, flags, ac->ac_flags)
+               ctf_integer(__u16, tail, ac->ac_tail)
+               ctf_integer(__u8, cr, ac->ac_criteria)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc,
@@ -1289,39 +736,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc,
 
        TP_ARGS(ac),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u32,  orig_logical            )
-               __field(          int,  orig_start              )
-               __field(        __u32,  orig_group              )
-               __field(          int,  orig_len                )
-               __field(        __u32,  result_logical          )
-               __field(          int,  result_start            )
-               __field(        __u32,  result_group            )
-               __field(          int,  result_len              )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, ac->ac_inode->i_sb->s_dev)
-               tp_assign(ino, ac->ac_inode->i_ino)
-               tp_assign(orig_logical, ac->ac_o_ex.fe_logical)
-               tp_assign(orig_start, ac->ac_o_ex.fe_start)
-               tp_assign(orig_group, ac->ac_o_ex.fe_group)
-               tp_assign(orig_len, ac->ac_o_ex.fe_len)
-               tp_assign(result_logical, ac->ac_b_ex.fe_logical)
-               tp_assign(result_start, ac->ac_b_ex.fe_start)
-               tp_assign(result_group, ac->ac_b_ex.fe_group)
-               tp_assign(result_len, ac->ac_b_ex.fe_len)
-       ),
-
-       TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->orig_group, __entry->orig_start,
-                 __entry->orig_len, __entry->orig_logical,
-                 __entry->result_group, __entry->result_start,
-                 __entry->result_len, __entry->result_logical)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, ac->ac_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, ac->ac_inode->i_ino)
+               ctf_integer(__u32, orig_logical, ac->ac_o_ex.fe_logical)
+               ctf_integer(int, orig_start, ac->ac_o_ex.fe_start)
+               ctf_integer(__u32, orig_group, ac->ac_o_ex.fe_group)
+               ctf_integer(int, orig_len, ac->ac_o_ex.fe_len)
+               ctf_integer(__u32, result_logical, ac->ac_b_ex.fe_logical)
+               ctf_integer(int, result_start, ac->ac_b_ex.fe_start)
+               ctf_integer(__u32, result_group, ac->ac_b_ex.fe_group)
+               ctf_integer(int, result_len, ac->ac_b_ex.fe_len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc,
@@ -1339,46 +765,20 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc,
        TP_ARGS(ac),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
-               __field(        __u32,  result_logical          )
-#endif
-               __field(          int,  result_start            )
-               __field(        __u32,  result_group            )
-               __field(          int,  result_len              )
-       ),
-
-       TP_fast_assign(
+       TP_FIELDS(
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-               tp_assign(dev, sb->s_dev)
-               tp_assign(ino, inode ? inode->i_ino : 0)
-               tp_assign(result_start, start)
-               tp_assign(result_group, group)
-               tp_assign(result_len, len)
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(ino_t, ino, inode ? inode->i_ino : 0)
+               ctf_integer(int, result_start, start)
+               ctf_integer(__u32, result_group, group)
+               ctf_integer(int, result_len, len)
 #else
-               tp_assign(dev, ac->ac_sb->s_dev)
-               tp_assign(ino, ac->ac_inode ? ac->ac_inode->i_ino : 0)
-               tp_assign(result_logical, ac->ac_b_ex.fe_logical)
-               tp_assign(result_start, ac->ac_b_ex.fe_start)
-               tp_assign(result_group, ac->ac_b_ex.fe_group)
-               tp_assign(result_len, ac->ac_b_ex.fe_len)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-       TP_printk("dev %d,%d inode %lu extent %u/%d/%d ",
-#else
-       TP_printk("dev %d,%d inode %lu extent %u/%d/%u@%u ",
-#endif
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->result_group, __entry->result_start,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-                 __entry->result_len
-#else
-                 __entry->result_len, __entry->result_logical
+               ctf_integer(dev_t, dev, ac->ac_sb->s_dev)
+               ctf_integer(ino_t, ino, ac->ac_inode ? ac->ac_inode->i_ino : 0)
+               ctf_integer(__u32, result_logical, ac->ac_b_ex.fe_logical)
+               ctf_integer(int, result_start, ac->ac_b_ex.fe_start)
+               ctf_integer(__u32, result_group, ac->ac_b_ex.fe_group)
+               ctf_integer(int, result_len, ac->ac_b_ex.fe_len)
 #endif
        )
 )
@@ -1423,26 +823,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_forget,
 
        TP_ARGS(inode, is_metadata, block),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  block                   )
-               __field(        int,    is_metadata             )
-               __field(        TP_MODE_T, mode                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(block, block)
-               tp_assign(is_metadata, is_metadata)
-               tp_assign(mode, inode->i_mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->is_metadata, __entry->block)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(__u64, block, block)
+               ctf_integer(int, is_metadata, is_metadata)
+               ctf_integer(TP_MODE_T, mode, inode->i_mode)
+       )
 )
 #endif
 
@@ -1458,57 +845,22 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
        TP_ARGS(inode, used_blocks),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  i_blocks                )
-               __field(        int,    used_blocks             )
-               __field(        int,    reserved_data_blocks    )
-               __field(        int,    reserved_meta_blocks    )
-               __field(        int,    allocated_meta_blocks   )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-               __field(        int,    quota_claim             )
-#endif
-               __field(        TP_MODE_T, mode                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(i_blocks, inode->i_blocks)
-               tp_assign(used_blocks, used_blocks)
-               tp_assign(reserved_data_blocks,
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(__u64, i_blocks, inode->i_blocks)
+               ctf_integer(int, used_blocks, used_blocks)
+               ctf_integer(int, reserved_data_blocks,
                                EXT4_I(inode)->i_reserved_data_blocks)
-               tp_assign(reserved_meta_blocks,
+               ctf_integer(int, reserved_meta_blocks,
                                EXT4_I(inode)->i_reserved_meta_blocks)
-               tp_assign(allocated_meta_blocks,
+               ctf_integer(int, allocated_meta_blocks,
                                EXT4_I(inode)->i_allocated_meta_blocks)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-               tp_assign(quota_claim, quota_claim)
-#endif
-               tp_assign(mode, inode->i_mode)
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-       TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
-                 "reserved_data_blocks %d reserved_meta_blocks %d "
-                 "allocated_meta_blocks %d quota_claim %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->i_blocks,
-                 __entry->used_blocks, __entry->reserved_data_blocks,
-                 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks,
-                 __entry->quota_claim)
-#else
-       TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
-                 "reserved_data_blocks %d reserved_meta_blocks %d "
-                 "allocated_meta_blocks %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->i_blocks,
-                 __entry->used_blocks, __entry->reserved_data_blocks,
-                 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
+               ctf_integer(int, quota_claim, quota_claim)
 #endif
+               ctf_integer(TP_MODE_T, mode, inode->i_mode)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
@@ -1516,35 +868,17 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
 
        TP_ARGS(inode, md_needed),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  i_blocks                )
-               __field(        int,    md_needed               )
-               __field(        int,    reserved_data_blocks    )
-               __field(        int,    reserved_meta_blocks    )
-               __field(        TP_MODE_T, mode                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(i_blocks, inode->i_blocks)
-               tp_assign(md_needed, md_needed)
-               tp_assign(reserved_data_blocks,
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(__u64, i_blocks, inode->i_blocks)
+               ctf_integer(int, md_needed, md_needed)
+               ctf_integer(int, reserved_data_blocks,
                                EXT4_I(inode)->i_reserved_data_blocks)
-               tp_assign(reserved_meta_blocks,
+               ctf_integer(int, reserved_meta_blocks,
                                EXT4_I(inode)->i_reserved_meta_blocks)
-               tp_assign(mode, inode->i_mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d "
-                 "reserved_data_blocks %d reserved_meta_blocks %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->i_blocks,
-                 __entry->md_needed, __entry->reserved_data_blocks,
-                 __entry->reserved_meta_blocks)
+               ctf_integer(TP_MODE_T, mode, inode->i_mode)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
@@ -1552,39 +886,19 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
 
        TP_ARGS(inode, freed_blocks),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        __u64,  i_blocks                )
-               __field(        int,    freed_blocks            )
-               __field(        int,    reserved_data_blocks    )
-               __field(        int,    reserved_meta_blocks    )
-               __field(        int,    allocated_meta_blocks   )
-               __field(        TP_MODE_T, mode                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(i_blocks, inode->i_blocks)
-               tp_assign(freed_blocks, freed_blocks)
-               tp_assign(reserved_data_blocks,
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(__u64, i_blocks, inode->i_blocks)
+               ctf_integer(int, freed_blocks, freed_blocks)
+               ctf_integer(int, reserved_data_blocks,
                                EXT4_I(inode)->i_reserved_data_blocks)
-               tp_assign(reserved_meta_blocks,
+               ctf_integer(int, reserved_meta_blocks,
                                EXT4_I(inode)->i_reserved_meta_blocks)
-               tp_assign(allocated_meta_blocks,
+               ctf_integer(int, allocated_meta_blocks,
                                EXT4_I(inode)->i_allocated_meta_blocks)
-               tp_assign(mode, inode->i_mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d "
-                 "reserved_data_blocks %d reserved_meta_blocks %d "
-                 "allocated_meta_blocks %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->mode, __entry->i_blocks,
-                 __entry->freed_blocks, __entry->reserved_data_blocks,
-                 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
+               ctf_integer(TP_MODE_T, mode, inode->i_mode)
+       )
 )
 #endif
 
@@ -1594,20 +908,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load,
 
        TP_ARGS(sb, group),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        __u32,  group                   )
-
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(group, group)
-       ),
-
-       TP_printk("dev %d,%d group %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->group)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(__u32, group, group)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_bitmap_load,
@@ -1645,26 +949,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter,
 
        TP_ARGS(inode, offset, len, rw),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned long,  len             )
-               __field(        int,    rw                      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, offset)
-               tp_assign(len, len)
-               tp_assign(rw, rw)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->pos, __entry->len, __entry->rw)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(unsigned long, len, len)
+               ctf_integer(int, rw, rw)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit,
@@ -1673,29 +964,14 @@ LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit,
 
        TP_ARGS(inode, offset, len, rw, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned long,  len             )
-               __field(        int,    rw                      )
-               __field(        int,    ret                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, offset)
-               tp_assign(len, len)
-               tp_assign(rw, rw)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->pos, __entry->len,
-                 __entry->rw, __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(unsigned long, len, len)
+               ctf_integer(int, rw, rw)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit,
@@ -1704,27 +980,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit,
 
        TP_ARGS(inode, offset, max_blocks, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        unsigned int,   blocks          )
-               __field(        int,    ret                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, offset)
-               tp_assign(blocks, max_blocks)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->pos, __entry->blocks,
-                 __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(unsigned int, blocks, max_blocks)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
@@ -1734,27 +996,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode,
 
        TP_ARGS(inode, offset, len, mode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, offset                  )
-               __field(        loff_t, len                     )
-               __field(        int,    mode                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(offset, offset)
-               tp_assign(len, len)
-               tp_assign(mode, mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu offset %lld len %lld mode %s",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->offset, __entry->len,
-                 show_falloc_mode(__entry->mode))
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(loff_t, len, len)
+               ctf_integer(int, mode, mode)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_fallocate_enter,
@@ -1785,26 +1033,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_fallocate_enter,
 
        TP_ARGS(inode, offset, len, mode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, pos                     )
-               __field(        loff_t, len                     )
-               __field(        int,    mode                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pos, offset)
-               tp_assign(len, len)
-               tp_assign(mode, mode)
-       ),
-
-       TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->pos,
-                 __entry->len, __entry->mode)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(loff_t, len, len)
+               ctf_integer(int, mode, mode)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
@@ -1814,24 +1049,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_punch_hole,
 
        TP_ARGS(inode, offset, len),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, offset                  )
-               __field(        loff_t, len                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(offset, offset)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("dev %d,%d ino %lu offset %lld len %lld",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->offset, __entry->len)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, pos, offset)
+               ctf_integer(loff_t, len, len)
+       )
 )
 
 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
@@ -1843,24 +1066,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter,
 
        TP_ARGS(parent, dentry),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        ino_t,  parent                  )
-               __field(        loff_t, size                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, dentry->d_inode->i_sb->s_dev)
-               tp_assign(ino, dentry->d_inode->i_ino)
-               tp_assign(parent, parent->i_ino)
-               tp_assign(size, dentry->d_inode->i_size)
-       ),
-
-       TP_printk("dev %d,%d ino %lu size %lld parent %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->size,
-                 (unsigned long) __entry->parent)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
+               ctf_integer(ino_t, parent, parent->i_ino)
+               ctf_integer(loff_t, size, dentry->d_inode->i_size)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit,
@@ -1868,22 +1079,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit,
 
        TP_ARGS(dentry, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        int,    ret                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, dentry->d_inode->i_sb->s_dev)
-               tp_assign(ino, dentry->d_inode->i_ino)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dentry->d_inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, dentry->d_inode->i_ino)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate,
@@ -1891,21 +1091,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        __u64,          blocks          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(blocks, inode->i_blocks)
-       ),
-
-       TP_printk("dev %d,%d ino %lu blocks %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->blocks)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned int, blocks, inode->i_blocks)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter,
@@ -1930,32 +1120,15 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter,
 
        TP_ARGS(inode, map, ux),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    m_lblk  )
-               __field(        unsigned,       m_len   )
-               __field(        ext4_lblk_t,    u_lblk  )
-               __field(        unsigned,       u_len   )
-               __field(        ext4_fsblk_t,   u_pblk  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(m_lblk, map->m_lblk)
-               tp_assign(m_len, map->m_len)
-               tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
-               tp_assign(u_len, ext4_ext_get_actual_len(ux))
-               tp_assign(u_pblk, ext4_ext_pblock(ux))
-       ),
-
-       TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u "
-                 "u_pblk %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->m_lblk, __entry->m_len,
-                 __entry->u_lblk, __entry->u_len, __entry->u_pblk)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
+               ctf_integer(unsigned, m_len, map->m_len)
+               ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
+               ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
+               ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
+       )
 )
 
 /*
@@ -1968,40 +1141,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath,
 
        TP_ARGS(inode, map, ux, ix),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    m_lblk  )
-               __field(        unsigned,       m_len   )
-               __field(        ext4_lblk_t,    u_lblk  )
-               __field(        unsigned,       u_len   )
-               __field(        ext4_fsblk_t,   u_pblk  )
-               __field(        ext4_lblk_t,    i_lblk  )
-               __field(        unsigned,       i_len   )
-               __field(        ext4_fsblk_t,   i_pblk  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(m_lblk, map->m_lblk)
-               tp_assign(m_len, map->m_len)
-               tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
-               tp_assign(u_len, ext4_ext_get_actual_len(ux))
-               tp_assign(u_pblk, ext4_ext_pblock(ux))
-               tp_assign(i_lblk, le32_to_cpu(ix->ee_block))
-               tp_assign(i_len, ext4_ext_get_actual_len(ix))
-               tp_assign(i_pblk, ext4_ext_pblock(ix))
-       ),
-
-       TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u "
-                 "u_lblk %u u_len %u u_pblk %llu "
-                 "i_lblk %u i_len %u i_pblk %llu ",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->m_lblk, __entry->m_len,
-                 __entry->u_lblk, __entry->u_len, __entry->u_pblk,
-                 __entry->i_lblk, __entry->i_len, __entry->i_pblk)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, m_lblk, map->m_lblk)
+               ctf_integer(unsigned, m_len, map->m_len)
+               ctf_integer(ext4_lblk_t, u_lblk, le32_to_cpu(ux->ee_block))
+               ctf_integer(unsigned, u_len, ext4_ext_get_actual_len(ux))
+               ctf_integer(ext4_fsblk_t, u_pblk, ext4_ext_pblock(ux))
+               ctf_integer(ext4_lblk_t, i_lblk, le32_to_cpu(ix->ee_block))
+               ctf_integer(unsigned, i_len, ext4_ext_get_actual_len(ix))
+               ctf_integer(ext4_fsblk_t, i_pblk, ext4_ext_pblock(ix))
+       )
 )
 #endif
 
@@ -2011,26 +1162,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter,
 
        TP_ARGS(inode, lblk, len, flags),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        unsigned int,   len             )
-               __field(        unsigned int,   flags           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, lblk)
-               tp_assign(len, len)
-               tp_assign(flags, flags)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->len, __entry->flags)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(unsigned int, flags, flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
@@ -2055,34 +1193,16 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
 
        TP_ARGS(inode, flags, map, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        unsigned int,   flags           )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        unsigned int,   len             )
-               __field(        unsigned int,   mflags          )
-               __field(        int,            ret             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(flags, flags)
-               tp_assign(pblk, map->m_pblk)
-               tp_assign(lblk, map->m_lblk)
-               tp_assign(len, map->m_len)
-               tp_assign(mflags, map->m_flags)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu flags %s lblk %u pblk %llu len %u "
-                 "mflags %s ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 show_map_flags(__entry->flags), __entry->lblk, __entry->pblk,
-                 __entry->len, show_mflags(__entry->mflags), __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned int, flags, flags)
+               ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
+               ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
+               ctf_integer(unsigned int, len, map->m_len)
+               ctf_integer(unsigned int, mflags, map->m_flags)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
@@ -2106,31 +1226,16 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
 
        TP_ARGS(inode, map, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        unsigned int,   len             )
-               __field(        unsigned int,   flags           )
-               __field(        int,            ret             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pblk, map->m_pblk)
-               tp_assign(lblk, map->m_lblk)
-               tp_assign(len, map->m_len)
-               tp_assign(flags, map->m_flags)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->pblk,
-                 __entry->len, __entry->flags, __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned int, flags, flags)
+               ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
+               ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
+               ctf_integer(unsigned int, len, map->m_len)
+               ctf_integer(unsigned int, mflags, map->m_flags)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
@@ -2153,29 +1258,14 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
 
        TP_ARGS(inode, lblk, pblk, len, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        unsigned int,   len             )
-               __field(        int,            ret             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pblk, pblk)
-               tp_assign(lblk, lblk)
-               tp_assign(len, len)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->pblk,
-                 __entry->len, __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_fsblk_t, pblk, pblk)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
@@ -2199,24 +1289,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
 
        TP_ARGS(inode, lblk, pblk),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        ext4_lblk_t,    lblk            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pblk, pblk)
-               tp_assign(lblk, lblk)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u pblk %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->pblk)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_fsblk_t, pblk, pblk)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
@@ -2224,19 +1302,10 @@ LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev             )
-               __field(        ino_t,  ino             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-       ),
-
-       TP_printk("dev %d,%d ino %ld",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+       )
 )
 #endif
 
@@ -2248,23 +1317,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
 
        TP_ARGS(sb, blocks, rsv_blocks, IP),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(unsigned long,  ip                      )
-               __field(          int,  blocks                  )
-               __field(          int,  rsv_blocks              )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(ip, IP)
-               tp_assign(blocks, blocks)
-               tp_assign(rsv_blocks, rsv_blocks)
-       ),
-
-       TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pF",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->blocks, __entry->rsv_blocks, (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned long, ip, IP)
+               ctf_integer(int, blocks, blocks)
+               ctf_integer(int, rsv_blocks, rsv_blocks)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
@@ -2272,21 +1330,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
 
        TP_ARGS(sb, blocks, IP),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(unsigned long,  ip                      )
-               __field(          int,  blocks                  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(ip, IP)
-               tp_assign(blocks, blocks)
-       ),
-
-       TP_printk("dev %d,%d blocks, %d caller %pF",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->blocks, (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned long, ip, IP)
+               ctf_integer(int, blocks, blocks)
+       )
 )
 
 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
@@ -2296,21 +1344,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
 
        TP_ARGS(sb, nblocks, IP),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(unsigned long,  ip                      )
-               __field(          int,  nblocks                 )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(ip, IP)
-               tp_assign(nblocks, nblocks)
-       ),
-
-       TP_printk("dev %d,%d nblocks %d caller %pF",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->nblocks, (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned long, ip, IP)
+               ctf_integer(int, nblocks, nblocks)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__trim,
@@ -2321,25 +1359,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__trim,
 
        TP_ARGS(sb, group, start, len),
 
-       TP_STRUCT__entry(
-               __field(        int,    dev_major               )
-               __field(        int,    dev_minor               )
-               __field(        __u32,  group                   )
-               __field(        int,    start                   )
-               __field(        int,    len                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev_major, MAJOR(sb->s_dev))
-               tp_assign(dev_minor, MINOR(sb->s_dev))
-               tp_assign(group, group)
-               tp_assign(start, start)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("dev %d,%d group %u, start %d, len %d",
-                 __entry->dev_major, __entry->dev_minor,
-                 __entry->group, __entry->start, __entry->len)
+       TP_FIELDS(
+               ctf_integer(int, dev_major, MAJOR(sb->s_dev))
+               ctf_integer(int, dev_minor, MINOR(sb->s_dev))
+               ctf_integer(__u32, group, group)
+               ctf_integer(int, start, start)
+               ctf_integer(int, len, len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_extent,
@@ -2378,40 +1404,20 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents,
        TP_ARGS(inode, map, allocated, newblock),
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        int,            flags           )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        unsigned int,   len             )
-               __field(        unsigned int,   allocated       )
-               __field(        ext4_fsblk_t,   newblk          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
-               tp_assign(flags, flags)
+               ctf_integer(int, flags, flags)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
-               tp_assign(flags, map->m_flags)
+               ctf_integer(int, flags, map->m_flags)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
-               tp_assign(lblk, map->m_lblk)
-               tp_assign(pblk, map->m_pblk)
-               tp_assign(len, map->m_len)
-               tp_assign(allocated, allocated)
-               tp_assign(newblk, newblock)
-       ),
-
-       TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d"
-                 "allocated %d newblock %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->lblk, (unsigned long long) __entry->pblk,
-                 __entry->len, __entry->flags,
-                 (unsigned int) __entry->allocated,
-                 (unsigned long long) __entry->newblk)
+               ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
+               ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
+               ctf_integer(unsigned int, len, map->m_len)
+               ctf_integer(unsigned int, allocated, allocated)
+               ctf_integer(ext4_fsblk_t, newblk, newblock)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit,
@@ -2419,28 +1425,14 @@ LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit,
 
        TP_ARGS(sb, map, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        unsigned int,   flags   )
-               __field(        ext4_lblk_t,    lblk    )
-               __field(        ext4_fsblk_t,   pblk    )
-               __field(        unsigned int,   len     )
-               __field(        int,            ret     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(flags, map->m_flags)
-               tp_assign(lblk, map->m_lblk)
-               tp_assign(pblk, map->m_pblk)
-               tp_assign(len, map->m_len)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->lblk, (unsigned long long) __entry->pblk,
-                 __entry->len, __entry->flags, __entry->ret)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned int, flags, map->m_flags)
+               ctf_integer(ext4_lblk_t, lblk, map->m_lblk)
+               ctf_integer(ext4_fsblk_t, pblk, map->m_pblk)
+               ctf_integer(unsigned int, len, map->m_len)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache,
@@ -2449,28 +1441,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache,
 
        TP_ARGS(inode, lblk, len, start),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    lblk    )
-               __field(        unsigned int,   len     )
-               __field(        ext4_fsblk_t,   start   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, lblk)
-               tp_assign(len, len)
-               tp_assign(start, start)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->lblk,
-                 __entry->len,
-                 (unsigned long long) __entry->start)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(ext4_fsblk_t, start, start)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache,
@@ -2478,26 +1455,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache,
 
        TP_ARGS(inode, lblk, ret),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    lblk    )
-               __field(        int,            ret     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, lblk)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u ret %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->lblk,
-                 __entry->ret)
-
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range,
@@ -2506,33 +1469,15 @@ LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range,
 
        TP_ARGS(inode, from, to, reverse, found, found_blk),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    from            )
-               __field(        ext4_lblk_t,    to              )
-               __field(        int,            reverse         )
-               __field(        int,            found           )
-               __field(        ext4_lblk_t,    found_blk       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(from, from)
-               tp_assign(to, to)
-               tp_assign(reverse, reverse)
-               tp_assign(found, found)
-               tp_assign(found_blk, found_blk)
-       ),
-
-       TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d "
-                 "(blk = %u)",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->from, (unsigned) __entry->to,
-                 __entry->reverse, __entry->found,
-                 (unsigned) __entry->found_blk)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, from, from)
+               ctf_integer(ext4_lblk_t, to, to)
+               ctf_integer(int, reverse, reverse)
+               ctf_integer(int, found, found)
+               ctf_integer(ext4_lblk_t, found_blk, found_blk)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc,
@@ -2540,25 +1485,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc,
 
        TP_ARGS(inode, lblk, len),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    lblk    )
-               __field(        unsigned int,   len     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, lblk)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u len %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->lblk,
-                 __entry->len)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+               ctf_integer(unsigned int, len, len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
@@ -2567,28 +1499,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
 
        TP_ARGS(inode, lblk, pblk, len),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_fsblk_t,   pblk    )
-               __field(        ext4_lblk_t,    lblk    )
-               __field(        unsigned short, len     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pblk, pblk)
-               tp_assign(lblk, lblk)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->lblk,
-                 (unsigned long long) __entry->pblk,
-                 (unsigned short) __entry->len)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_fsblk_t, pblk, pblk)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+               ctf_integer(unsigned short, len, len)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
@@ -2600,38 +1517,16 @@ LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
 
        TP_ARGS(inode, ex, from, to, partial_cluster),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    from    )
-               __field(        ext4_lblk_t,    to      )
-               __field(        long long,      partial )
-               __field(        ext4_fsblk_t,   ee_pblk )
-               __field(        ext4_lblk_t,    ee_lblk )
-               __field(        unsigned short, ee_len  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(from, from)
-               tp_assign(to, to)
-               tp_assign(partial, partial_cluster)
-               tp_assign(ee_pblk, ext4_ext_pblock(ex))
-               tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
-               tp_assign(ee_len, ext4_ext_get_actual_len(ex))
-       ),
-
-       TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
-                 "from %u to %u partial_cluster %lld",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->ee_lblk,
-                 (unsigned long long) __entry->ee_pblk,
-                 (unsigned short) __entry->ee_len,
-                 (unsigned) __entry->from,
-                 (unsigned) __entry->to,
-                 (long long) __entry->partial)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, from, from)
+               ctf_integer(ext4_lblk_t, to, to)
+               ctf_integer(long long, partial, partial_cluster)
+               ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
+               ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
+               ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
+       )
 )
 
 #else
@@ -2643,38 +1538,16 @@ LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
 
        TP_ARGS(inode, ex, from, to, partial_cluster),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    from    )
-               __field(        ext4_lblk_t,    to      )
-               __field(        ext4_fsblk_t,   partial )
-               __field(        ext4_fsblk_t,   ee_pblk )
-               __field(        ext4_lblk_t,    ee_lblk )
-               __field(        unsigned short, ee_len  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(from, from)
-               tp_assign(to, to)
-               tp_assign(partial, partial_cluster)
-               tp_assign(ee_pblk, ext4_ext_pblock(ex))
-               tp_assign(ee_lblk, cpu_to_le32(ex->ee_block))
-               tp_assign(ee_len, ext4_ext_get_actual_len(ex))
-       ),
-
-       TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
-                 "from %u to %u partial_cluster %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->ee_lblk,
-                 (unsigned long long) __entry->ee_pblk,
-                 (unsigned short) __entry->ee_len,
-                 (unsigned) __entry->from,
-                 (unsigned) __entry->to,
-                 (unsigned) __entry->partial)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, from, from)
+               ctf_integer(ext4_lblk_t, to, to)
+               ctf_integer(ext4_fsblk_t, partial, partial_cluster)
+               ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
+               ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
+               ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
+       )
 )
 
 #endif
@@ -2688,35 +1561,15 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
 
        TP_ARGS(inode, start, ex, partial_cluster),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        long long,      partial )
-               __field(        ext4_lblk_t,    start   )
-               __field(        ext4_lblk_t,    ee_lblk )
-               __field(        ext4_fsblk_t,   ee_pblk )
-               __field(        short,          ee_len  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(partial, partial_cluster)
-               tp_assign(start, start)
-               tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
-               tp_assign(ee_pblk, ext4_ext_pblock(ex))
-               tp_assign(ee_len, ext4_ext_get_actual_len(ex))
-       ),
-
-       TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
-                 "partial_cluster %lld",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->start,
-                 (unsigned) __entry->ee_lblk,
-                 (unsigned long long) __entry->ee_pblk,
-                 (unsigned short) __entry->ee_len,
-                 (long long) __entry->partial)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(long long, partial, partial_cluster)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
+               ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
+               ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
+       )
 )
 
 #else
@@ -2727,35 +1580,15 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
 
        TP_ARGS(inode, start, ex, partial_cluster),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_fsblk_t,   partial )
-               __field(        ext4_lblk_t,    start   )
-               __field(        ext4_lblk_t,    ee_lblk )
-               __field(        ext4_fsblk_t,   ee_pblk )
-               __field(        short,          ee_len  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(partial, partial_cluster)
-               tp_assign(start, start)
-               tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
-               tp_assign(ee_pblk, ext4_ext_pblock(ex))
-               tp_assign(ee_len, ext4_ext_get_actual_len(ex))
-       ),
-
-       TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
-                 "partial_cluster %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->start,
-                 (unsigned) __entry->ee_lblk,
-                 (unsigned long long) __entry->ee_pblk,
-                 (unsigned short) __entry->ee_len,
-                 (unsigned) __entry->partial)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(long long, partial, partial_cluster)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
+               ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
+               ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
+       )
 )
 
 #endif
@@ -2765,22 +1598,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx,
 
        TP_ARGS(inode, pblk),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_fsblk_t,   pblk    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(pblk, pblk)
-       ),
-
-       TP_printk("dev %d,%d ino %lu index_pblk %llu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned long long) __entry->pblk)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_fsblk_t, pblk, pblk)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
@@ -2791,28 +1613,13 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
 
        TP_ARGS(inode, start, end, depth),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    start   )
-               __field(        ext4_lblk_t,    end     )
-               __field(        int,            depth   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(start, start)
-               tp_assign(end, end)
-               tp_assign(depth, depth)
-       ),
-
-       TP_printk("dev %d,%d ino %lu since %u end %u depth %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->start,
-                 (unsigned) __entry->end,
-                 __entry->depth)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(ext4_lblk_t, end, end)
+               ctf_integer(int, depth, depth)
+       )
 )
 
 #else
@@ -2822,25 +1629,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
 
        TP_ARGS(inode, start, depth),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev     )
-               __field(        ino_t,          ino     )
-               __field(        ext4_lblk_t,    start   )
-               __field(        int,            depth   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(start, start)
-               tp_assign(depth, depth)
-       ),
-
-       TP_printk("dev %d,%d ino %lu since %u depth %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->start,
-                 __entry->depth)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(int, depth, depth)
+       )
 )
 
 #endif
@@ -2853,35 +1647,15 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
 
        TP_ARGS(inode, start, end, depth, partial, eh_entries),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    start           )
-               __field(        ext4_lblk_t,    end             )
-               __field(        int,            depth           )
-               __field(        long long,      partial         )
-               __field(        unsigned short, eh_entries      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(start, start)
-               tp_assign(end, end)
-               tp_assign(depth, depth)
-               tp_assign(partial, partial)
-               tp_assign(eh_entries, le16_to_cpu(eh_entries))
-       ),
-
-       TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld "
-                 "remaining_entries %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->start,
-                 (unsigned) __entry->end,
-                 __entry->depth,
-                 (long long) __entry->partial,
-                 (unsigned short) __entry->eh_entries)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(ext4_lblk_t, end, end)
+               ctf_integer(int, depth, depth)
+               ctf_integer(long long, partial, partial)
+               ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
+       )
 )
 
 #else
@@ -2892,32 +1666,14 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
 
        TP_ARGS(inode, start, depth, partial, eh_entries),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    start           )
-               __field(        int,            depth           )
-               __field(        ext4_lblk_t,    partial         )
-               __field(        unsigned short, eh_entries      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(start, start)
-               tp_assign(depth, depth)
-               tp_assign(partial, partial)
-               tp_assign(eh_entries, eh_entries)
-       ),
-
-       TP_printk("dev %d,%d ino %lu since %u depth %d partial %u "
-                 "remaining_entries %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 (unsigned) __entry->start,
-                 __entry->depth,
-                 (unsigned) __entry->partial,
-                 (unsigned short) __entry->eh_entries)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(int, depth, depth)
+               ctf_integer(ext4_lblk_t, partial, partial)
+               ctf_integer(unsigned short, eh_entries, eh_entries)
+       )
 )
 
 #endif
@@ -2931,29 +1687,14 @@ LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent,
 
        TP_ARGS(inode, es),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        ext4_lblk_t,    len             )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        char, status    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, es->es_lblk)
-               tp_assign(len, es->es_len)
-               tp_assign(pblk, ext4_es_pblock(es))
-               tp_assign(status, ext4_es_status(es))
-       ),
-
-       TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->len,
-                 __entry->pblk, show_extent_status(__entry->status))
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
+               ctf_integer(ext4_lblk_t, len, es->es_len)
+               ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
+               ctf_integer(char, status, ext4_es_status(es))
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_insert_extent,
@@ -2975,29 +1716,14 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_insert_extent,
 
        TP_ARGS(inode, es),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        ext4_lblk_t,    len             )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        char, status    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, es->es_lblk)
-               tp_assign(len, es->es_len)
-               tp_assign(pblk, ext4_es_pblock(es))
-               tp_assign(status, ext4_es_status(es) >> 60)
-       ),
-
-       TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->len,
-                 __entry->pblk, show_extent_status(__entry->status))
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
+               ctf_integer(ext4_lblk_t, len, es->es_len)
+               ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
+               ctf_integer(char, status, ext4_es_status(es) >> 60)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_es_remove_extent,
@@ -3005,24 +1731,12 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_remove_extent,
 
        TP_ARGS(inode, lblk, len),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-               __field(        loff_t, lblk                    )
-               __field(        loff_t, len                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, lblk)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("dev %d,%d ino %lu es [%lld/%lld)",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->len)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(loff_t, lblk, lblk)
+               ctf_integer(loff_t, len, len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_enter,
@@ -3030,21 +1744,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_enter,
 
        TP_ARGS(inode, lblk),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    lblk            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, lblk)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->lblk)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_exit,
@@ -3052,29 +1756,14 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_exit,
 
        TP_ARGS(inode, es),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        ext4_lblk_t,    len             )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        char, status    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, es->es_lblk)
-               tp_assign(len, es->es_len)
-               tp_assign(pblk, ext4_es_pblock(es))
-               tp_assign(status, ext4_es_status(es) >> 60)
-       ),
-
-       TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino,
-                 __entry->lblk, __entry->len,
-                 __entry->pblk, show_extent_status(__entry->status))
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
+               ctf_integer(ext4_lblk_t, len, es->es_len)
+               ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
+               ctf_integer(char, status, ext4_es_status(es) >> 60)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_enter,
@@ -3082,21 +1771,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_enter,
 
        TP_ARGS(inode, lblk),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    lblk            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, lblk)
-       ),
-
-       TP_printk("dev %d,%d ino %lu lblk %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->lblk)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, lblk)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_exit,
@@ -3105,32 +1784,15 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_exit,
 
        TP_ARGS(inode, es, found),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,          dev             )
-               __field(        ino_t,          ino             )
-               __field(        ext4_lblk_t,    lblk            )
-               __field(        ext4_lblk_t,    len             )
-               __field(        ext4_fsblk_t,   pblk            )
-               __field(        char,           status          )
-               __field(        int,            found           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(lblk, es->es_lblk)
-               tp_assign(len, es->es_len)
-               tp_assign(pblk, ext4_es_pblock(es))
-               tp_assign(status, ext4_es_status(es) >> 60)
-               tp_assign(found, found)
-       ),
-
-       TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %s",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino, __entry->found,
-                 __entry->lblk, __entry->len,
-                 __entry->found ? __entry->pblk : 0,
-                 show_extent_status(__entry->found ? __entry->status : 0))
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, lblk, es->es_lblk)
+               ctf_integer(ext4_lblk_t, len, es->es_len)
+               ctf_integer(ext4_fsblk_t, pblk, ext4_es_pblock(es))
+               ctf_integer(char, status, ext4_es_status(es) >> 60)
+               ctf_integer(int, found, found)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_enter,
@@ -3138,21 +1800,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_enter,
 
        TP_ARGS(sb, nr_to_scan, cache_cnt),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    nr_to_scan              )
-               __field(        int,    cache_cnt               )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(nr_to_scan, nr_to_scan)
-               tp_assign(cache_cnt, cache_cnt)
-       ),
-
-       TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->nr_to_scan, __entry->cache_cnt)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(int, nr_to_scan, nr_to_scan)
+               ctf_integer(int, cache_cnt, cache_cnt)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
@@ -3160,21 +1812,11 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
 
        TP_ARGS(sb, shrunk_nr, cache_cnt),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    shrunk_nr               )
-               __field(        int,    cache_cnt               )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, sb->s_dev)
-               tp_assign(shrunk_nr, shrunk_nr)
-               tp_assign(cache_cnt, cache_cnt)
-       ),
-
-       TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->shrunk_nr, __entry->cache_cnt)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(int, shrunk_nr, shrunk_nr)
+               ctf_integer(int, cache_cnt, cache_cnt)
+       )
 )
 
 #endif
index 6d93d4febf86222f48b94dae0f78d1f606675627..6e328d4a36dc760a33aa524e034a0627fd905e17 100644 (file)
@@ -12,20 +12,11 @@ LTTNG_TRACEPOINT_EVENT(gpio_direction,
 
        TP_ARGS(gpio, in, err),
 
-       TP_STRUCT__entry(
-               __field(unsigned, gpio)
-               __field(int, in)
-               __field(int, err)
-       ),
-
-       TP_fast_assign(
-               tp_assign(gpio, gpio)
-               tp_assign(in, in)
-               tp_assign(err, err)
-       ),
-
-       TP_printk("%u %3s (%d)", __entry->gpio,
-               __entry->in ? "in" : "out", __entry->err)
+       TP_FIELDS(
+               ctf_integer(unsigned, gpio, gpio)
+               ctf_integer(int, in, in)
+               ctf_integer(int, err, err)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(gpio_value,
@@ -34,20 +25,11 @@ LTTNG_TRACEPOINT_EVENT(gpio_value,
 
        TP_ARGS(gpio, get, value),
 
-       TP_STRUCT__entry(
-               __field(unsigned, gpio)
-               __field(int, get)
-               __field(int, value)
-       ),
-
-       TP_fast_assign(
-               tp_assign(gpio, gpio)
-               tp_assign(get, get)
-               tp_assign(value, value)
-       ),
-
-       TP_printk("%u %3s %d", __entry->gpio,
-               __entry->get ? "get" : "set", __entry->value)
+       TP_FIELDS(
+               ctf_integer(unsigned, gpio, gpio)
+               ctf_integer(int, get, get)
+               ctf_integer(int, value, value)
+       )
 )
 
 #endif /* if !defined(LTTNG_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */
index 3b3a8ce75fa13489c15deb59cb609363eab5eb37..e20e91fd47b3e5541947a7db5a66e1518ed4c393 100644 (file)
 struct irqaction;
 struct softirq_action;
 
-#define softirq_name(sirq) { sirq##_SOFTIRQ, #sirq }
-#define show_softirq_name(val)                         \
-       __print_symbolic(val,                           \
-                        softirq_name(HI),              \
-                        softirq_name(TIMER),           \
-                        softirq_name(NET_TX),          \
-                        softirq_name(NET_RX),          \
-                        softirq_name(BLOCK),           \
-                        softirq_name(BLOCK_IOPOLL),    \
-                        softirq_name(TASKLET),         \
-                        softirq_name(SCHED),           \
-                        softirq_name(HRTIMER),         \
-                        softirq_name(RCU))
-
 #endif /* _TRACE_IRQ_DEF_ */
 
 /**
@@ -45,17 +31,10 @@ LTTNG_TRACEPOINT_EVENT(irq_handler_entry,
 
        TP_ARGS(irq, action),
 
-       TP_STRUCT__entry(
-               __field(        int,    irq             )
-               __string(       name,   action->name    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(irq, irq)
-               tp_strcpy(name, action->name)
-       ),
-
-       TP_printk("irq=%d name=%s", __entry->irq, __get_str(name))
+       TP_FIELDS(
+               ctf_integer(int, irq, irq)
+               ctf_string(name, action->name)
+       )
 )
 
 /**
@@ -75,18 +54,10 @@ LTTNG_TRACEPOINT_EVENT(irq_handler_exit,
 
        TP_ARGS(irq, action, ret),
 
-       TP_STRUCT__entry(
-               __field(        int,    irq     )
-               __field(        int,    ret     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(irq, irq)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("irq=%d ret=%s",
-                 __entry->irq, __entry->ret ? "handled" : "unhandled")
+       TP_FIELDS(
+               ctf_integer(int, irq, irq)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
@@ -96,16 +67,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(irq_softirq,
 
        TP_ARGS(vec_nr),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   vec     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(vec, vec_nr)
-       ),
-
-       TP_printk("vec=%u [action=%s]", __entry->vec,
-                 show_softirq_name(__entry->vec))
+       TP_FIELDS(
+               ctf_integer(unsigned int, vec, vec_nr)
+       )
 )
 
 /**
@@ -162,16 +126,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(irq_softirq,
 
        TP_ARGS(h, vec),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   vec     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(vec, (int)(h - vec))
-       ),
-
-       TP_printk("vec=%u [action=%s]", __entry->vec,
-                 show_softirq_name(__entry->vec))
+       TP_FIELDS(
+               ctf_integer(unsigned int, vec, (int)(h - vec))
+       )
 )
 
 /**
index d1da49a09733deef55adb7361b430a5d4d317ccd..335be5cb6e74888059e7e7d8efd965740498a3f7 100644 (file)
@@ -14,19 +14,10 @@ LTTNG_TRACEPOINT_EVENT(jbd_checkpoint,
 
        TP_ARGS(journal, result),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    result                  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(result, result)
-       ),
-
-       TP_printk("dev %d,%d result %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->result)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(int, result, result)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(jbd_commit,
@@ -35,31 +26,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(jbd_commit,
 
        TP_ARGS(journal, commit_transaction),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               __field(        char,   sync_commit             )
-#endif
-               __field(        int,    transaction             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
-#endif
-               tp_assign(transaction, commit_transaction->t_tid)
-       ),
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-       TP_printk("dev %d,%d transaction %d sync %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction, __entry->sync_commit)
-#else
-       TP_printk("dev %d,%d transaction %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction)
+               ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
 #endif
+               ctf_integer(int, transaction, commit_transaction->t_tid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd_commit, jbd_start_commit,
@@ -96,31 +69,13 @@ LTTNG_TRACEPOINT_EVENT(jbd_drop_transaction,
 
        TP_ARGS(journal, commit_transaction),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               __field(        char,   sync_commit             )
-#endif
-               __field(        int,    transaction             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
-#endif
-               tp_assign(transaction, commit_transaction->t_tid)
-       ),
-
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-       TP_printk("dev %d,%d transaction %d sync %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction, __entry->sync_commit)
-#else
-       TP_printk("dev %d,%d transaction %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction)
+               ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
 #endif
+               ctf_integer(int, transaction, commit_transaction->t_tid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(jbd_end_commit,
@@ -128,33 +83,14 @@ LTTNG_TRACEPOINT_EVENT(jbd_end_commit,
 
        TP_ARGS(journal, commit_transaction),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               __field(        char,   sync_commit             )
-#endif
-               __field(        int,    transaction             )
-               __field(        int,    head                    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
-#endif
-               tp_assign(transaction, commit_transaction->t_tid)
-               tp_assign(head, journal->j_tail_sequence)
-       ),
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-       TP_printk("dev %d,%d transaction %d sync %d head %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction, __entry->sync_commit, __entry->head)
-#else
-       TP_printk("dev %d,%d transaction %d head %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction, __entry->head)
+               ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
 #endif
+               ctf_integer(int, transaction, commit_transaction->t_tid)
+               ctf_integer(int, head, journal->j_tail_sequence)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(jbd_do_submit_data,
@@ -162,31 +98,13 @@ LTTNG_TRACEPOINT_EVENT(jbd_do_submit_data,
 
        TP_ARGS(journal, commit_transaction),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               __field(        char,   sync_commit             )
-#endif
-               __field(        int,    transaction             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
-#endif
-               tp_assign(transaction, commit_transaction->t_tid)
-       ),
-
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-       TP_printk("dev %d,%d transaction %d sync %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                  __entry->transaction, __entry->sync_commit)
-#else
-       TP_printk("dev %d,%d transaction %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                  __entry->transaction)
+               ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
 #endif
+               ctf_integer(int, transaction, commit_transaction->t_tid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(jbd_cleanup_journal_tail,
@@ -196,26 +114,13 @@ LTTNG_TRACEPOINT_EVENT(jbd_cleanup_journal_tail,
 
        TP_ARGS(journal, first_tid, block_nr, freed),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        tid_t,  tail_sequence           )
-               __field(        tid_t,  first_tid               )
-               __field(unsigned long,  block_nr                )
-               __field(unsigned long,  freed                   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(tail_sequence, journal->j_tail_sequence)
-               tp_assign(first_tid, first_tid)
-               tp_assign(block_nr, block_nr)
-               tp_assign(freed, freed)
-       ),
-
-       TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->tail_sequence, __entry->first_tid,
-                 __entry->block_nr, __entry->freed)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(tid_t, tail_sequence, journal->j_tail_sequence)
+               ctf_integer(tid_t, first_tid, first_tid)
+               ctf_integer(unsigned long, block_nr, block_nr)
+               ctf_integer(unsigned long, freed, freed)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
@@ -227,18 +132,10 @@ LTTNG_TRACEPOINT_EVENT_MAP(journal_write_superblock,
 
        TP_ARGS(journal, write_op),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    write_op                )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(write_op, write_op)
-       ),
-
-       TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev),
-                 MINOR(__entry->dev), __entry->write_op)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(int, write_op, write_op)
+       )
 )
 #else
 LTTNG_TRACEPOINT_EVENT(jbd_update_superblock_end,
@@ -246,9 +143,9 @@ LTTNG_TRACEPOINT_EVENT(jbd_update_superblock_end,
 
        TP_ARGS(journal, wait),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    wait                    )
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(int, wait, wait)
        ),
 
        TP_fast_assign(
index 491a15a97d70683635c8cc1e2f4b4b4008ea687a..2aa0a006adbcbe10ff04a3b54c5255282fd5dfb2 100644 (file)
@@ -22,18 +22,10 @@ LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint,
 
        TP_ARGS(journal, result),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        int,    result                  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(result, result)
-       ),
-
-       TP_printk("dev %d,%d result %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(int, result, result)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(jbd2_commit,
@@ -42,21 +34,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(jbd2_commit,
 
        TP_ARGS(journal, commit_transaction),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        char,   sync_commit               )
-               __field(        int,    transaction               )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
-               tp_assign(transaction, commit_transaction->t_tid)
-       ),
-
-       TP_printk("dev %d,%d transaction %d sync %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction, __entry->sync_commit)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
+               ctf_integer(int, transaction, commit_transaction->t_tid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(jbd2_commit, jbd2_start_commit,
@@ -101,23 +83,12 @@ LTTNG_TRACEPOINT_EVENT(jbd2_end_commit,
 
        TP_ARGS(journal, commit_transaction),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        char,   sync_commit               )
-               __field(        int,    transaction               )
-               __field(        int,    head                      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
-               tp_assign(transaction, commit_transaction->t_tid)
-               tp_assign(head, journal->j_tail_sequence)
-       ),
-
-       TP_printk("dev %d,%d transaction %d sync %d head %d",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->transaction, __entry->sync_commit, __entry->head)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(char, sync_commit, commit_transaction->t_synchronous_commit)
+               ctf_integer(int, transaction, commit_transaction->t_tid)
+               ctf_integer(int, head, journal->j_tail_sequence)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(jbd2_submit_inode_data,
@@ -125,19 +96,10 @@ LTTNG_TRACEPOINT_EVENT(jbd2_submit_inode_data,
 
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        ino_t,  ino                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, inode->i_sb->s_dev)
-               tp_assign(ino, inode->i_ino)
-       ),
-
-       TP_printk("dev %d,%d ino %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 (unsigned long) __entry->ino)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
@@ -147,42 +109,18 @@ LTTNG_TRACEPOINT_EVENT(jbd2_run_stats,
 
        TP_ARGS(dev, tid, stats),
 
-       TP_STRUCT__entry(
-               __field(                dev_t,  dev             )
-               __field(        unsigned long,  tid             )
-               __field(        unsigned long,  wait            )
-               __field(        unsigned long,  running         )
-               __field(        unsigned long,  locked          )
-               __field(        unsigned long,  flushing        )
-               __field(        unsigned long,  logging         )
-               __field(                __u32,  handle_count    )
-               __field(                __u32,  blocks          )
-               __field(                __u32,  blocks_logged   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, dev)
-               tp_assign(tid, tid)
-               tp_assign(wait, stats->rs_wait)
-               tp_assign(running, stats->rs_running)
-               tp_assign(locked, stats->rs_locked)
-               tp_assign(flushing, stats->rs_flushing)
-               tp_assign(logging, stats->rs_logging)
-               tp_assign(handle_count, stats->rs_handle_count)
-               tp_assign(blocks, stats->rs_blocks)
-               tp_assign(blocks_logged, stats->rs_blocks_logged)
-       ),
-
-       TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u "
-                 "logging %u handle_count %u blocks %u blocks_logged %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
-                 jiffies_to_msecs(__entry->wait),
-                 jiffies_to_msecs(__entry->running),
-                 jiffies_to_msecs(__entry->locked),
-                 jiffies_to_msecs(__entry->flushing),
-                 jiffies_to_msecs(__entry->logging),
-                 __entry->handle_count, __entry->blocks,
-                 __entry->blocks_logged)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dev)
+               ctf_integer(unsigned long, tid, tid)
+               ctf_integer(unsigned long, wait, stats->rs_wait)
+               ctf_integer(unsigned long, running, stats->rs_running)
+               ctf_integer(unsigned long, locked, stats->rs_locked)
+               ctf_integer(unsigned long, flushing, stats->rs_flushing)
+               ctf_integer(unsigned long, logging, stats->rs_logging)
+               ctf_integer(__u32, handle_count, stats->rs_handle_count)
+               ctf_integer(__u32, blocks, stats->rs_blocks)
+               ctf_integer(__u32, blocks_logged, stats->rs_blocks_logged)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats,
@@ -191,29 +129,14 @@ LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats,
 
        TP_ARGS(dev, tid, stats),
 
-       TP_STRUCT__entry(
-               __field(                dev_t,  dev             )
-               __field(        unsigned long,  tid             )
-               __field(        unsigned long,  chp_time        )
-               __field(                __u32,  forced_to_close )
-               __field(                __u32,  written         )
-               __field(                __u32,  dropped         )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, dev)
-               tp_assign(tid, tid)
-               tp_assign(chp_time, stats->cs_chp_time)
-               tp_assign(forced_to_close, stats->cs_forced_to_close)
-               tp_assign(written, stats->cs_written)
-               tp_assign(dropped, stats->cs_dropped)
-       ),
-
-       TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
-                 "written %u dropped %u",
-                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
-                 jiffies_to_msecs(__entry->chp_time),
-                 __entry->forced_to_close, __entry->written, __entry->dropped)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dev)
+               ctf_integer(unsigned long, tid, tid)
+               ctf_integer(unsigned long, chp_time, stats->cs_chp_time)
+               ctf_integer(__u32, forced_to_close, stats->cs_forced_to_close)
+               ctf_integer(__u32, written, stats->cs_written)
+               ctf_integer(__u32, dropped, stats->cs_dropped)
+       )
 )
 #endif
 
@@ -229,26 +152,13 @@ LTTNG_TRACEPOINT_EVENT(jbd2_cleanup_journal_tail,
 
        TP_ARGS(journal, first_tid, block_nr, freed),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(        tid_t,  tail_sequence           )
-               __field(        tid_t,  first_tid               )
-               __field(unsigned long,  block_nr                )
-               __field(unsigned long,  freed                   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(tail_sequence, journal->j_tail_sequence)
-               tp_assign(first_tid, first_tid)
-               tp_assign(block_nr, block_nr)
-               tp_assign(freed, freed)
-       ),
-
-       TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
-                 MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->tail_sequence, __entry->first_tid,
-                 __entry->block_nr, __entry->freed)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(tid_t, tail_sequence, journal->j_tail_sequence)
+               ctf_integer(tid_t, first_tid, first_tid)
+               ctf_integer(unsigned long, block_nr, block_nr)
+               ctf_integer(unsigned long, freed, freed)
+       )
 )
 #endif
 
@@ -259,18 +169,10 @@ LTTNG_TRACEPOINT_EVENT(jbd2_write_superblock,
 
        TP_ARGS(journal, write_op),
 
-       TP_STRUCT__entry(
-               __field(        dev_t,  dev                     )
-               __field(          int,  write_op                )
-       ),
-
-       TP_fast_assign(
-               tp_assign(dev, journal->j_fs_dev->bd_dev)
-               tp_assign(write_op, write_op)
-       ),
-
-       TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev),
-                 MINOR(__entry->dev), __entry->write_op)
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, journal->j_fs_dev->bd_dev)
+               ctf_integer(int, write_op, write_op)
+       )
 )
 #endif
 
index c7869f12745d3949d5393252998c04facee93351..c94f8af9f345819dd7dcc342662ed69de9a613b0 100644 (file)
@@ -21,28 +21,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc,
 
        TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
 
-       TP_STRUCT__entry(
-               __field_hex(    unsigned long,  call_site       )
-               __field_hex(    const void *,   ptr             )
-               __field(        size_t,         bytes_req       )
-               __field(        size_t,         bytes_alloc     )
-               __field(        gfp_t,          gfp_flags       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(call_site, call_site)
-               tp_assign(ptr, ptr)
-               tp_assign(bytes_req, bytes_req)
-               tp_assign(bytes_alloc, bytes_alloc)
-               tp_assign(gfp_flags, gfp_flags)
-       ),
-
-       TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s",
-               __entry->call_site,
-               __entry->ptr,
-               __entry->bytes_req,
-               __entry->bytes_alloc,
-               show_gfp_flags(__entry->gfp_flags))
+       TP_FIELDS(
+               ctf_integer_hex(unsigned long, call_site, call_site)
+               ctf_integer_hex(const void *, ptr, ptr)
+               ctf_integer(size_t, bytes_req, bytes_req)
+               ctf_integer(size_t, bytes_alloc, bytes_alloc)
+               ctf_integer(gfp_t, gfp_flags, gfp_flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc, kmalloc,
@@ -74,31 +59,14 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc_node,
 
        TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node),
 
-       TP_STRUCT__entry(
-               __field_hex(    unsigned long,  call_site       )
-               __field_hex(    const void *,   ptr             )
-               __field(        size_t,         bytes_req       )
-               __field(        size_t,         bytes_alloc     )
-               __field(        gfp_t,          gfp_flags       )
-               __field(        int,            node            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(call_site, call_site)
-               tp_assign(ptr, ptr)
-               tp_assign(bytes_req, bytes_req)
-               tp_assign(bytes_alloc, bytes_alloc)
-               tp_assign(gfp_flags, gfp_flags)
-               tp_assign(node, node)
-       ),
-
-       TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d",
-               __entry->call_site,
-               __entry->ptr,
-               __entry->bytes_req,
-               __entry->bytes_alloc,
-               show_gfp_flags(__entry->gfp_flags),
-               __entry->node)
+       TP_FIELDS(
+               ctf_integer_hex(unsigned long, call_site, call_site)
+               ctf_integer_hex(const void *, ptr, ptr)
+               ctf_integer(size_t, bytes_req, bytes_req)
+               ctf_integer(size_t, bytes_alloc, bytes_alloc)
+               ctf_integer(gfp_t, gfp_flags, gfp_flags)
+               ctf_integer(int, node, node)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc_node, kmalloc_node,
@@ -127,17 +95,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kmem_free,
 
        TP_ARGS(call_site, ptr),
 
-       TP_STRUCT__entry(
-               __field_hex(    unsigned long,  call_site       )
-               __field_hex(    const void *,   ptr             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(call_site, call_site)
-               tp_assign(ptr, ptr)
-       ),
-
-       TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr)
+       TP_FIELDS(
+               ctf_integer_hex(unsigned long, call_site, call_site)
+               ctf_integer_hex(const void *, ptr, ptr)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_free, kfree,
@@ -167,20 +128,10 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_direct, kmem_mm_page_free_direct,
 
        TP_ARGS(page, order),
 
-       TP_STRUCT__entry(
-               __field_hex(    struct page *,  page            )
-               __field(        unsigned int,   order           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(page, page)
-               tp_assign(order, order)
-       ),
-
-       TP_printk("page=%p pfn=%lu order=%d",
-                       __entry->page,
-                       page_to_pfn(__entry->page),
-                       __entry->order)
+       TP_FIELDS(
+               ctf_integer_hex(struct page *, page, page)
+               ctf_integer(unsigned int, order, order)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
@@ -193,20 +144,10 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_pagevec_free, kmem_pagevec_free,
 
        TP_ARGS(page, cold),
 
-       TP_STRUCT__entry(
-               __field_hex(    struct page *,  page            )
-               __field(        int,            cold            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(page, page)
-               tp_assign(cold, cold)
-       ),
-
-       TP_printk("page=%p pfn=%lu order=0 cold=%d",
-                       __entry->page,
-                       page_to_pfn(__entry->page),
-                       __entry->cold)
+       TP_FIELDS(
+               ctf_integer_hex(struct page *, page, page)
+               ctf_integer(int, cold, cold)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc, kmem_mm_page_alloc,
@@ -216,26 +157,12 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc, kmem_mm_page_alloc,
 
        TP_ARGS(page, order, gfp_flags, migratetype),
 
-       TP_STRUCT__entry(
-               __field_hex(    struct page *,  page            )
-               __field(        unsigned int,   order           )
-               __field(        gfp_t,          gfp_flags       )
-               __field(        int,            migratetype     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(page, page)
-               tp_assign(order, order)
-               tp_assign(gfp_flags, gfp_flags)
-               tp_assign(migratetype, migratetype)
-       ),
-
-       TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s",
-               __entry->page,
-               __entry->page ? page_to_pfn(__entry->page) : 0,
-               __entry->order,
-               __entry->migratetype,
-               show_gfp_flags(__entry->gfp_flags))
+       TP_FIELDS(
+               ctf_integer_hex(struct page *, page, page)
+               ctf_integer(unsigned int, order, order)
+               ctf_integer(gfp_t, gfp_flags, gfp_flags)
+               ctf_integer(int, migratetype, migratetype)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(kmem_mm_page,
@@ -244,24 +171,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kmem_mm_page,
 
        TP_ARGS(page, order, migratetype),
 
-       TP_STRUCT__entry(
-               __field_hex(    struct page *,  page            )
-               __field(        unsigned int,   order           )
-               __field(        int,            migratetype     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(page, page)
-               tp_assign(order, order)
-               tp_assign(migratetype, migratetype)
-       ),
-
-       TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d",
-               __entry->page,
-               __entry->page ? page_to_pfn(__entry->page) : 0,
-               __entry->order,
-               __entry->migratetype,
-               __entry->order == 0)
+       TP_FIELDS(
+               ctf_integer_hex(struct page *, page, page)
+               ctf_integer(unsigned int, order, order)
+               ctf_integer(int, migratetype, migratetype)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_mm_page, mm_page_alloc_zone_locked,
@@ -273,7 +187,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_mm_page, mm_page_alloc_zone_locked,
        TP_ARGS(page, order, migratetype)
 )
 
-LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP(kmem_mm_page, mm_page_pcpu_drain,
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_mm_page, mm_page_pcpu_drain,
 
        kmem_mm_page_pcpu_drain,
 
@@ -283,11 +197,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP(kmem_mm_page, mm_page_pcpu_drain,
        TP_PROTO(struct page *page, int order, int migratetype),
 #endif
 
-       TP_ARGS(page, order, migratetype),
-
-       TP_printk("page=%p pfn=%lu order=%d migratetype=%d",
-               __entry->page, page_to_pfn(__entry->page),
-               __entry->order, __entry->migratetype)
+       TP_ARGS(page, order, migratetype)
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2)      \
@@ -392,34 +302,14 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
                alloc_migratetype, fallback_migratetype,
                change_ownership),
 
-       TP_STRUCT__entry(
-               __field_hex(    struct page *,  page                    )
-               __field(        int,            alloc_order             )
-               __field(        int,            fallback_order          )
-               __field(        int,            alloc_migratetype       )
-               __field(        int,            fallback_migratetype    )
-               __field(        int,            change_ownership        )
-       ),
-
-       TP_fast_assign(
-               tp_assign(page, page)
-               tp_assign(alloc_order, alloc_order)
-               tp_assign(fallback_order, fallback_order)
-               tp_assign(alloc_migratetype, alloc_migratetype)
-               tp_assign(fallback_migratetype, fallback_migratetype)
-               tp_assign(change_ownership, change_ownership)
-       ),
-
-       TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d",
-               __entry->page,
-               page_to_pfn(__entry->page),
-               __entry->alloc_order,
-               __entry->fallback_order,
-               pageblock_order,
-               __entry->alloc_migratetype,
-               __entry->fallback_migratetype,
-               __entry->fallback_order < pageblock_order,
-               __entry->change_ownership)
+       TP_FIELDS(
+               ctf_integer_hex(struct page *, page, page)
+               ctf_integer(int, alloc_order, alloc_order)
+               ctf_integer(int, fallback_order, fallback_order)
+               ctf_integer(int, alloc_migratetype, alloc_migratetype)
+               ctf_integer(int, fallback_migratetype, fallback_migratetype)
+               ctf_integer(int, change_ownership, change_ownership)
+       )
 )
 
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
@@ -436,32 +326,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_page_alloc_extfrag,
                alloc_order, fallback_order,
                alloc_migratetype, fallback_migratetype),
 
-       TP_STRUCT__entry(
-               __field_hex(    struct page *,  page                    )
-               __field(        int,            alloc_order             )
-               __field(        int,            fallback_order          )
-               __field(        int,            alloc_migratetype       )
-               __field(        int,            fallback_migratetype    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(page, page)
-               tp_assign(alloc_order, alloc_order)
-               tp_assign(fallback_order, fallback_order)
-               tp_assign(alloc_migratetype, alloc_migratetype)
-               tp_assign(fallback_migratetype, fallback_migratetype)
-       ),
-
-       TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d",
-               __entry->page,
-               page_to_pfn(__entry->page),
-               __entry->alloc_order,
-               __entry->fallback_order,
-               pageblock_order,
-               __entry->alloc_migratetype,
-               __entry->fallback_migratetype,
-               __entry->fallback_order < pageblock_order,
-               __entry->alloc_migratetype == __entry->fallback_migratetype)
+       TP_FIELDS(
+               ctf_integer_hex(struct page *, page, page)
+               ctf_integer(int, alloc_order, alloc_order)
+               ctf_integer(int, fallback_order, fallback_order)
+               ctf_integer(int, alloc_migratetype, alloc_migratetype)
+               ctf_integer(int, fallback_migratetype, fallback_migratetype)
+       )
 )
 
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
index 4f9509585ece2d2a6ff90230794adfb1962306c0..3a6585fbab90f6158421b5471a1d4dbd2b004375 100755 (executable)
@@ -9,58 +9,14 @@
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
 
-#define ERSN(x) { KVM_EXIT_##x, "KVM_EXIT_" #x }
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
-
-#define kvm_trace_exit_reason                                          \
-       ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL),      \
-       ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN),      \
-       ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR),    \
-       ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\
-       ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI), ERSN(PAPR_HCALL),   \
-       ERSN(S390_UCONTROL), ERSN(WATCHDOG), ERSN(S390_TSCH)
-
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
-
-#define kvm_trace_exit_reason                                          \
-       ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL),      \
-       ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN),      \
-       ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR),    \
-       ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\
-       ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI), ERSN(PAPR_HCALL),   \
-       ERSN(S390_UCONTROL)
-
-#else
-
-#define kvm_trace_exit_reason                                          \
-       ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL),      \
-       ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN),      \
-       ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR),    \
-       ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\
-       ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI)
-
-#endif
-
 LTTNG_TRACEPOINT_EVENT(kvm_userspace_exit,
            TP_PROTO(__u32 reason, int errno),
            TP_ARGS(reason, errno),
 
-       TP_STRUCT__entry(
-               __field(        __u32,          reason          )
-               __field(        int,            errno           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(reason, reason)
-               tp_assign(errno, errno)
-       ),
-
-       TP_printk("reason %s (%d)",
-                 __entry->errno < 0 ?
-                 (__entry->errno == -EINTR ? "restart" : "error") :
-                 __print_symbolic(__entry->reason, kvm_trace_exit_reason),
-                 __entry->errno < 0 ? -__entry->errno : __entry->reason)
+       TP_FIELDS(
+               ctf_integer(__u32, reason, reason)
+               ctf_integer(int, errno, errno)
+       )
 )
 #endif
 
@@ -76,107 +32,47 @@ LTTNG_TRACEPOINT_EVENT(kvm_set_irq,
        TP_PROTO(unsigned int gsi, int level, int irq_source_id),
        TP_ARGS(gsi, level, irq_source_id),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   gsi             )
-               __field(        int,            level           )
-               __field(        int,            irq_source_id   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(gsi, gsi)
-               tp_assign(level, level)
-               tp_assign(irq_source_id, irq_source_id)
-       ),
-
-       TP_printk("gsi %u level %d source %d",
-                 __entry->gsi, __entry->level, __entry->irq_source_id)
+       TP_FIELDS(
+               ctf_integer(unsigned int, gsi, gsi)
+               ctf_integer(int, level, level)
+               ctf_integer(int, irq_source_id, irq_source_id)
+       )
 )
 #endif
 
 #if defined(__KVM_HAVE_IOAPIC)
-#define kvm_deliver_mode               \
-       {0x0, "Fixed"},                 \
-       {0x1, "LowPrio"},               \
-       {0x2, "SMI"},                   \
-       {0x3, "Res3"},                  \
-       {0x4, "NMI"},                   \
-       {0x5, "INIT"},                  \
-       {0x6, "SIPI"},                  \
-       {0x7, "ExtINT"}
 
 LTTNG_TRACEPOINT_EVENT(kvm_ioapic_set_irq,
            TP_PROTO(__u64 e, int pin, bool coalesced),
            TP_ARGS(e, pin, coalesced),
 
-       TP_STRUCT__entry(
-               __field(        __u64,          e               )
-               __field(        int,            pin             )
-               __field(        bool,           coalesced       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(e, e)
-               tp_assign(pin, pin)
-               tp_assign(coalesced, coalesced)
-       ),
-
-       TP_printk("pin %u dst %x vec=%u (%s|%s|%s%s)%s",
-                 __entry->pin, (u8)(__entry->e >> 56), (u8)__entry->e,
-                 __print_symbolic((__entry->e >> 8 & 0x7), kvm_deliver_mode),
-                 (__entry->e & (1<<11)) ? "logical" : "physical",
-                 (__entry->e & (1<<15)) ? "level" : "edge",
-                 (__entry->e & (1<<16)) ? "|masked" : "",
-                 __entry->coalesced ? " (coalesced)" : "")
+       TP_FIELDS(
+               ctf_integer(__u64, e, e)
+               ctf_integer(int, pin, pin)
+               ctf_integer(bool, coalesced, coalesced)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(kvm_msi_set_irq,
            TP_PROTO(__u64 address, __u64 data),
            TP_ARGS(address, data),
 
-       TP_STRUCT__entry(
-               __field(        __u64,          address         )
-               __field(        __u64,          data            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(address, address)
-               tp_assign(data, data)
-       ),
-
-       TP_printk("dst %u vec %x (%s|%s|%s%s)",
-                 (u8)(__entry->address >> 12), (u8)__entry->data,
-                 __print_symbolic((__entry->data >> 8 & 0x7), kvm_deliver_mode),
-                 (__entry->address & (1<<2)) ? "logical" : "physical",
-                 (__entry->data & (1<<15)) ? "level" : "edge",
-                 (__entry->address & (1<<3)) ? "|rh" : "")
+       TP_FIELDS(
+               ctf_integer(__u64, address, address)
+               ctf_integer(__u64, data, data)
+       )
 )
 
-#define kvm_irqchips                                           \
-       {KVM_IRQCHIP_PIC_MASTER,        "PIC master"},          \
-       {KVM_IRQCHIP_PIC_SLAVE,         "PIC slave"},           \
-       {KVM_IRQCHIP_IOAPIC,            "IOAPIC"}
-
 LTTNG_TRACEPOINT_EVENT(kvm_ack_irq,
        TP_PROTO(unsigned int irqchip, unsigned int pin),
        TP_ARGS(irqchip, pin),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   irqchip         )
-               __field(        unsigned int,   pin             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(irqchip, irqchip)
-               tp_assign(pin, pin)
-       ),
-
-       TP_printk("irqchip %s pin %u",
-                 __print_symbolic(__entry->irqchip, kvm_irqchips),
-                __entry->pin)
+       TP_FIELDS(
+               ctf_integer(unsigned int, irqchip, irqchip)
+               ctf_integer(unsigned int, pin, pin)
+       )
 )
 
-
-
 #endif /* defined(__KVM_HAVE_IOAPIC) */
 
 #define KVM_TRACE_MMIO_READ_UNSATISFIED 0
@@ -192,23 +88,12 @@ LTTNG_TRACEPOINT_EVENT(kvm_mmio,
        TP_PROTO(int type, int len, u64 gpa, u64 val),
        TP_ARGS(type, len, gpa, val),
 
-       TP_STRUCT__entry(
-               __field(        u32,    type            )
-               __field(        u32,    len             )
-               __field(        u64,    gpa             )
-               __field(        u64,    val             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(type, type)
-               tp_assign(len, len)
-               tp_assign(gpa, gpa)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx",
-                 __print_symbolic(__entry->type, kvm_trace_symbol_mmio),
-                 __entry->len, __entry->gpa, __entry->val)
+       TP_FIELDS(
+               ctf_integer(u32, type, type)
+               ctf_integer(u32, len, len)
+               ctf_integer(u64, gpa, gpa)
+               ctf_integer(u64, val, val)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
@@ -221,15 +106,9 @@ LTTNG_TRACEPOINT_EVENT(kvm_fpu,
        TP_PROTO(int load),
        TP_ARGS(load),
 
-       TP_STRUCT__entry(
-               __field(        u32,            load            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(load, load)
-       ),
-
-       TP_printk("%s", __print_symbolic(__entry->load, kvm_fpu_load_symbol))
+       TP_FIELDS(
+               ctf_integer(u32, load, load)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
@@ -264,22 +143,12 @@ LTTNG_TRACEPOINT_EVENT(kvm_age_page,
        TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref),
        TP_ARGS(hva, slot, ref),
 
-       TP_STRUCT__entry(
-               __field(        u64,    hva             )
-               __field(        u64,    gfn             )
-               __field(        u8,     referenced      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(hva, hva)
-               tp_assign(gfn,
-                 slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT))
-               tp_assign(referenced, ref)
-       ),
-
-       TP_printk("hva %llx gfn %llx %s",
-                 __entry->hva, __entry->gfn,
-                 __entry->referenced ? "YOUNG" : "OLD")
+       TP_FIELDS(
+               ctf_integer(u64, hva, hva)
+               ctf_integer(u64, gfn,
+                       slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT))
+               ctf_integer(u8, referenced, ref)
+       )
 )
 #endif
 #endif
@@ -293,17 +162,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kvm_async_get_page_class,
 
        TP_ARGS(gva, gfn),
 
-       TP_STRUCT__entry(
-               __field(__u64, gva)
-               __field(u64, gfn)
-       ),
-
-       TP_fast_assign(
-               tp_assign(gva, gva)
-               tp_assign(gfn, gfn)
-       ),
-
-       TP_printk("gva = %#llx, gfn = %#llx", __entry->gva, __entry->gfn)
+       TP_FIELDS(
+               ctf_integer(__u64, gva, gva)
+               ctf_integer(u64, gfn, gfn)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_async_get_page_class, kvm_try_async_get_page,
@@ -326,18 +188,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kvm_async_pf_nopresent_ready,
 
        TP_ARGS(token, gva),
 
-       TP_STRUCT__entry(
-               __field(__u64, token)
-               __field(__u64, gva)
-       ),
-
-       TP_fast_assign(
-               tp_assign(token, token)
-               tp_assign(gva, gva)
-       ),
-
-       TP_printk("token %#llx gva %#llx", __entry->token, __entry->gva)
-
+       TP_FIELDS(
+               ctf_integer(__u64, token, token)
+               ctf_integer(__u64, gva, gva)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(kvm_async_pf_nopresent_ready, kvm_async_pf_not_present,
@@ -361,18 +215,10 @@ LTTNG_TRACEPOINT_EVENT(
        TP_PROTO(unsigned long address, u64 gva),
        TP_ARGS(address, gva),
 
-       TP_STRUCT__entry(
-               __field(unsigned long, address)
-               __field(u64, gva)
-               ),
-
-       TP_fast_assign(
-               tp_assign(address, address)
-               tp_assign(gva, gva)
-               ),
-
-       TP_printk("gva %#llx address %#lx",  __entry->gva,
-                 __entry->address)
+       TP_FIELDS(
+               ctf_integer(unsigned long, address, address)
+               ctf_integer(u64, gva, gva)
+       )
 )
 
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) */
@@ -382,20 +228,11 @@ LTTNG_TRACEPOINT_EVENT(
        TP_PROTO(unsigned long address, struct page *page, u64 gva),
        TP_ARGS(address, page, gva),
 
-       TP_STRUCT__entry(
-               __field(unsigned long, address)
-               __field(pfn_t, pfn)
-               __field(u64, gva)
-               ),
-
-       TP_fast_assign(
-               tp_assign(address, address)
-               tp_assign(pfn, page ? page_to_pfn(page) : 0)
-               tp_assign(gva, gva)
-               ),
-
-       TP_printk("gva %#llx address %#lx pfn %#llx",  __entry->gva,
-                 __entry->address, __entry->pfn)
+       TP_FIELDS(
+               ctf_integer(unsigned long, address, address)
+               ctf_integer(pfn_t, pfn, page ? page_to_pfn(page) : 0)
+               ctf_integer(u64, gva, gva)
+       )
 )
 
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) */
index a77e9a8d53b2ab012b5336835e86c406e34f29b0..3e5d68a56f1c4cd55b48c7071de903ba99c09a62 100644 (file)
@@ -27,30 +27,13 @@ LTTNG_TRACEPOINT_EVENT(lock_acquire,
 
        TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip),
 
-       TP_STRUCT__entry(
-               __field(unsigned int, flags)
-               __string(name, lock->name)
+       TP_FIELDS(
+               ctf_integer(unsigned int, flags, (trylock ? 1 : 0) | (read ? 2 : 0))
+               ctf_string(name, lock->name)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               __field(void *, lockdep_addr)
+               ctf_integer(void *, lockdep_addr, lock)
 #endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(flags, (trylock ? 1 : 0) | (read ? 2 : 0))
-               tp_strcpy(name, lock->name)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               tp_assign(lockdep_addr, lock)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-       TP_printk("%p %s%s%s", __entry->lockdep_addr,
-#else
-       TP_printk("%s%s%s",
-#endif
-                 (__entry->flags & 1) ? "try " : "",
-                 (__entry->flags & 2) ? "read " : "",
-                 __get_str(name))
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
@@ -61,17 +44,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(lock,
 
        TP_ARGS(lock, ip),
 
-       TP_STRUCT__entry(
-               __string(       name,   lock->name      )
-               __field(        void *, lockdep_addr    )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, lock->name)
-               tp_assign(lockdep_addr, lock)
-       ),
-
-       TP_printk("%p %s",  __entry->lockdep_addr, __get_str(name))
+       TP_FIELDS(
+               ctf_string(name, lock->name)
+               ctf_integer(void *, lockdep_addr, lock)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(lock, lock_release,
@@ -107,25 +83,12 @@ LTTNG_TRACEPOINT_EVENT(lock_release,
 
        TP_ARGS(lock, nested, ip),
 
-       TP_STRUCT__entry(
-               __string(       name,   lock->name      )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               __field(        void *, lockdep_addr    )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, lock->name)
+       TP_FIELDS(
+               ctf_string(name, lock->name)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               tp_assign(lockdep_addr, lock)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-       TP_printk("%p %s",  __entry->lockdep_addr, __get_str(name))
-#else
-       TP_printk("%s",  __get_str(name))
+               ctf_integer(void *, lockdep_addr, lock)
 #endif
+       )
 )
 
 #ifdef CONFIG_LOCK_STAT
@@ -136,25 +99,12 @@ LTTNG_TRACEPOINT_EVENT(lock_contended,
 
        TP_ARGS(lock, ip),
 
-       TP_STRUCT__entry(
-               __string(       name,   lock->name      )
+       TP_FIELDS(
+               ctf_string(name, lock->name)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               __field(        void *, lockdep_addr    )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, lock->name)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               tp_assign(lockdep_addr, lock)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-       TP_printk("%p %s",  __entry->lockdep_addr, __get_str(name))
-#else
-       TP_printk("%s",  __get_str(name))
+               ctf_integer(void *, lockdep_addr, lock)
 #endif
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(lock_acquired,
@@ -163,36 +113,16 @@ LTTNG_TRACEPOINT_EVENT(lock_acquired,
 
        TP_ARGS(lock, ip, waittime),
 
-       TP_STRUCT__entry(
-               __string(       name,   lock->name      )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               __field(        s64,    wait_nsec       )
-               __field(        void *, lockdep_addr    )
-#else
-               __field(unsigned long, wait_usec)
-               __field(unsigned long, wait_nsec_rem)
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, lock->name)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-               tp_assign(wait_nsec, waittime)
-               tp_assign(lockdep_addr, lock)
-#else
-               tp_assign(wait_usec, (unsigned long)waittime)
-               tp_assign(wait_nsec_rem, do_div(waittime, NSEC_PER_USEC))
-#endif
-       ),
-
+       TP_FIELDS(
+               ctf_string(name, lock->name)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
-       TP_printk("%p %s (%llu ns)",  __entry->lockdep_addr,
-                 __get_str(name), __entry->wait_nsec)
+               ctf_integer(s64, wait_nsec, wait_nsec)
+               ctf_integer(void *, lockdep_addr, lock)
 #else
-       TP_printk("%s (%lu.%03lu us)",
-                 __get_str(name),
-                 __entry->wait_usec, __entry->wait_nsec_rem)
+               ctf_integer(unsigned long, wait_usec, (unsigned long) waittime)
+               ctf_integer(unsigned long, wait_nsec_rem, do_div(waittime, NSEC_PER_USEC))
 #endif
+       )
 )
 
 #endif
index 985b71cf3cdba2fb440d0963bce9d2a6058334d3..23690370774aaf4120b08a1a030b71ee4f4761a0 100644 (file)
 LTTNG_TRACEPOINT_EVENT(lttng_statedump_start,
        TP_PROTO(struct lttng_session *session),
        TP_ARGS(session),
-       TP_STRUCT__entry(
-       ),
-       TP_fast_assign(
-       ),
-       TP_printk("")
+       TP_FIELDS()
 )
 
 LTTNG_TRACEPOINT_EVENT(lttng_statedump_end,
        TP_PROTO(struct lttng_session *session),
        TP_ARGS(session),
-       TP_STRUCT__entry(
-       ),
-       TP_fast_assign(
-       ),
-       TP_printk("")
+       TP_FIELDS()
 )
 
 LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state,
@@ -35,26 +27,12 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state,
                int type, int mode, int submode, int status,
                struct pid_namespace *pid_ns),
        TP_ARGS(session, p, type, mode, submode, status, pid_ns),
-       TP_STRUCT__entry(
-               __field(pid_t, tid)
-               __field(pid_t, vtid)
-               __field(pid_t, pid)
-               __field(pid_t, vpid)
-               __field(pid_t, ppid)
-               __field(pid_t, vppid)
-               __array_text(char, name, TASK_COMM_LEN)
-               __field(int, type)
-               __field(int, mode)
-               __field(int, submode)
-               __field(int, status)
-               __field(int, ns_level)
-       ),
-       TP_fast_assign(
-               tp_assign(tid, p->pid)
-               tp_assign(vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0)
-               tp_assign(pid, p->tgid)
-               tp_assign(vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0)
-               tp_assign(ppid,
+       TP_FIELDS(
+               ctf_integer(pid_t, tid, p->pid)
+               ctf_integer(pid_t, vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0)
+               ctf_integer(pid_t, pid, p->tgid)
+               ctf_integer(pid_t, vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0)
+               ctf_integer(pid_t, ppid,
                        ({
                                pid_t ret;
 
@@ -63,7 +41,7 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state,
                                rcu_read_unlock();
                                ret;
                        }))
-               tp_assign(vppid,
+               ctf_integer(pid_t, vppid,
                        ({
                                struct task_struct *parent;
                                pid_t ret = 0;
@@ -76,14 +54,13 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state,
                                }
                                ret;
                        }))
-               tp_memcpy(name, p->comm, TASK_COMM_LEN)
-               tp_assign(type, type)
-               tp_assign(mode, mode)
-               tp_assign(submode, submode)
-               tp_assign(status, status)
-               tp_assign(ns_level, pid_ns ? pid_ns->level : 0)
-       ),
-       TP_printk("")
+               ctf_array_text(char, name, p->comm, TASK_COMM_LEN)
+               ctf_integer(int, type, type)
+               ctf_integer(int, mode, mode)
+               ctf_integer(int, submode, submode)
+               ctf_integer(int, status, status)
+               ctf_integer(int, ns_level, pid_ns ? pid_ns->level : 0)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(lttng_statedump_file_descriptor,
@@ -91,21 +68,13 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_file_descriptor,
                struct task_struct *p, int fd, const char *filename,
                unsigned int flags, fmode_t fmode),
        TP_ARGS(session, p, fd, filename, flags, fmode),
-       TP_STRUCT__entry(
-               __field(pid_t, pid)
-               __field(int, fd)
-               __field_oct(unsigned int, flags)
-               __field_hex(fmode_t, fmode)
-               __string(filename, filename)
-       ),
-       TP_fast_assign(
-               tp_assign(pid, p->tgid)
-               tp_assign(fd, fd)
-               tp_assign(flags, flags)
-               tp_assign(fmode, fmode)
-               tp_strcpy(filename, filename)
-       ),
-       TP_printk("")
+       TP_FIELDS(
+               ctf_integer(pid_t, pid, p->tgid)
+               ctf_integer(int, fd, fd)
+               ctf_integer_oct(unsigned int, flags, flags)
+               ctf_integer_hex(fmode_t, fmode, fmode)
+               ctf_string(filename, filename)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(lttng_statedump_vm_map,
@@ -113,53 +82,35 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_vm_map,
                struct task_struct *p, struct vm_area_struct *map,
                unsigned long inode),
        TP_ARGS(session, p, map, inode),
-       TP_STRUCT__entry(
-               __field(pid_t, pid)
-               __field_hex(unsigned long, start)
-               __field_hex(unsigned long, end)
-               __field_hex(unsigned long, flags)
-               __field(unsigned long, inode)
-               __field(unsigned long, pgoff)
-       ),
-       TP_fast_assign(
-               tp_assign(pid, p->tgid)
-               tp_assign(start, map->vm_start)
-               tp_assign(end, map->vm_end)
-               tp_assign(flags, map->vm_flags)
-               tp_assign(inode, inode)
-               tp_assign(pgoff, map->vm_pgoff << PAGE_SHIFT)
-       ),
-       TP_printk("")
+       TP_FIELDS(
+               ctf_integer(pid_t, pid, p->tgid)
+               ctf_integer_hex(unsigned long, start, map->vm_start)
+               ctf_integer_hex(unsigned long, end, map->vm_end)
+               ctf_integer_hex(unsigned long, flags, map->vm_flags)
+               ctf_integer(unsigned long, inode, inode)
+               ctf_integer(unsigned long, pgoff, map->vm_pgoff << PAGE_SHIFT)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(lttng_statedump_network_interface,
        TP_PROTO(struct lttng_session *session,
                struct net_device *dev, struct in_ifaddr *ifa),
        TP_ARGS(session, dev, ifa),
-       TP_STRUCT__entry(
-               __string(name, dev->name)
-               __field_network_hex(uint32_t, address_ipv4)
-       ),
-       TP_fast_assign(
-               tp_strcpy(name, dev->name)
-               tp_assign(address_ipv4, ifa ? ifa->ifa_address : 0U)
-       ),
-       TP_printk("")
+       TP_FIELDS(
+               ctf_string(name, dev->name)
+               ctf_integer_network_hex(uint32_t, address_ipv4,
+                       ifa ? ifa->ifa_address : 0U)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(lttng_statedump_block_device,
        TP_PROTO(struct lttng_session *session,
                dev_t dev, const char *diskname),
        TP_ARGS(session, dev, diskname),
-       TP_STRUCT__entry(
-               __field(dev_t, dev)
-               __string(diskname, diskname)
-       ),
-       TP_fast_assign(
-               tp_assign(dev, dev)
-               tp_strcpy(diskname, diskname)
-       ),
-       TP_printk("")
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, dev)
+               ctf_string(diskname, diskname)
+       )
 )
 
 /* Called with desc->lock held */
@@ -168,17 +119,11 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_interrupt,
                unsigned int irq, const char *chip_name,
                struct irqaction *action),
        TP_ARGS(session, irq, chip_name, action),
-       TP_STRUCT__entry(
-               __field(unsigned int, irq)
-               __string(name, chip_name)
-               __string(action, action->name ? : "")
-       ),
-       TP_fast_assign(
-               tp_assign(irq, irq)
-               tp_strcpy(name, chip_name)
-               tp_strcpy(action, action->name ? : "")
-       ),
-       TP_printk("")
+       TP_FIELDS(
+               ctf_integer(unsigned int, irq, irq)
+               ctf_string(name, chip_name)
+               ctf_string(action, action->name ? : "")
+       )
 )
 
 #endif /*  LTTNG_TRACE_LTTNG_STATEDUMP_H */
index cd766d29496ccd639706d879d55f98c59745c44f..d2f20a067c8944dcff33d1f1ab2150a136ed7e2a 100644 (file)
@@ -9,13 +9,9 @@
 LTTNG_TRACEPOINT_EVENT(lttng_logger,
        TP_PROTO(const char __user *text, size_t len),
        TP_ARGS(text, len),
-       TP_STRUCT__entry(
-               __dynamic_array_text(char, msg, len)
-       ),
-       TP_fast_assign(
-               tp_memcpy_dyn_from_user(msg, text)
-       ),
-       TP_printk("")
+       TP_FIELDS(
+               ctf_user_sequence_text(char, msg, text, size_t, len)
+       )
 )
 
 #endif /* LTTNG_TRACE_LTTNG_H */
index 870c0264b5a53835f8c9bacda9bf347329d13a7c..a6d7fbf23560e2be8c6757923e8e826434caade1 100644 (file)
 #define RECLAIM_WB_SYNC                0x0004u /* Unused, all reclaim async */
 #define RECLAIM_WB_ASYNC       0x0008u
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
-#define show_reclaim_flags(flags)                              \
-       (flags) ? __print_flags(flags, "|",                     \
-               {RECLAIM_WB_ANON,       "RECLAIM_WB_ANON"},     \
-               {RECLAIM_WB_FILE,       "RECLAIM_WB_FILE"},     \
-               {RECLAIM_WB_MIXED,      "RECLAIM_WB_MIXED"},    \
-               {RECLAIM_WB_SYNC,       "RECLAIM_WB_SYNC"},     \
-               {RECLAIM_WB_ASYNC,      "RECLAIM_WB_ASYNC"}     \
-               ) : "RECLAIM_WB_NONE"
-#else
-#define show_reclaim_flags(flags)                              \
-       (flags) ? __print_flags(flags, "|",                     \
-               {RECLAIM_WB_ANON,       "RECLAIM_WB_ANON"},     \
-               {RECLAIM_WB_FILE,       "RECLAIM_WB_FILE"},     \
-               {RECLAIM_WB_SYNC,       "RECLAIM_WB_SYNC"},     \
-               {RECLAIM_WB_ASYNC,      "RECLAIM_WB_ASYNC"}     \
-               ) : "RECLAIM_WB_NONE"
-#endif
-
 #if ((LINUX_VERSION_CODE <= KERNEL_VERSION(3,0,38)) || \
        LTTNG_KERNEL_RANGE(3,1,0, 3,2,0))
 typedef int isolate_mode_t;
@@ -51,15 +32,9 @@ LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_sleep,
 
        TP_ARGS(nid),
 
-       TP_STRUCT__entry(
-               __field(        int,    nid     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(nid, nid)
-       ),
-
-       TP_printk("nid=%d", __entry->nid)
+       TP_FIELDS(
+               ctf_integer(int, nid, nid)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake,
@@ -68,17 +43,10 @@ LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake,
 
        TP_ARGS(nid, order),
 
-       TP_STRUCT__entry(
-               __field(        int,    nid     )
-               __field(        int,    order   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(nid, nid)
-               tp_assign(order, order)
-       ),
-
-       TP_printk("nid=%d order=%d", __entry->nid, __entry->order)
+       TP_FIELDS(
+               ctf_integer(int, nid, nid)
+               ctf_integer(int, order, order)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd,
@@ -87,22 +55,11 @@ LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd,
 
        TP_ARGS(nid, zid, order),
 
-       TP_STRUCT__entry(
-               __field(        int,            nid     )
-               __field(        int,            zid     )
-               __field(        int,            order   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(nid, nid)
-               tp_assign(zid, zid)
-               tp_assign(order, order)
-       ),
-
-       TP_printk("nid=%d zid=%d order=%d",
-               __entry->nid,
-               __entry->zid,
-               __entry->order)
+       TP_FIELDS(
+               ctf_integer(int, nid, nid)
+               ctf_integer(int, zid, zid)
+               ctf_integer(int, order, order)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
@@ -111,22 +68,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
 
        TP_ARGS(order, may_writepage, gfp_flags),
 
-       TP_STRUCT__entry(
-               __field(        int,    order           )
-               __field(        int,    may_writepage   )
-               __field(        gfp_t,  gfp_flags       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(order, order)
-               tp_assign(may_writepage, may_writepage)
-               tp_assign(gfp_flags, gfp_flags)
-       ),
-
-       TP_printk("order=%d may_writepage=%d gfp_flags=%s",
-               __entry->order,
-               __entry->may_writepage,
-               show_gfp_flags(__entry->gfp_flags))
+       TP_FIELDS(
+               ctf_integer(int, order, order)
+               ctf_integer(int, may_writepage, may_writepage)
+               ctf_integer(gfp_t, gfp_flags, gfp_flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
@@ -156,15 +102,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template,
 
        TP_ARGS(nr_reclaimed),
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  nr_reclaimed    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(nr_reclaimed, nr_reclaimed)
-       ),
-
-       TP_printk("nr_reclaimed=%lu", __entry->nr_reclaimed)
+       TP_FIELDS(
+               ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end,
@@ -201,44 +141,21 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start,
        TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs,
                cache_items, delta, total_scan),
 
-       TP_STRUCT__entry(
-               __field(struct shrinker *, shr)
-               __field(void *, shrink)
-               __field(long, nr_objects_to_shrink)
-               __field(gfp_t, gfp_flags)
-               __field(unsigned long, pgs_scanned)
-               __field(unsigned long, lru_pgs)
-               __field(unsigned long, cache_items)
-               __field(unsigned long long, delta)
-               __field(unsigned long, total_scan)
-       ),
-
-       TP_fast_assign(
-               tp_assign(shr,shr)
+       TP_FIELDS(
+               ctf_integer(struct shrinker *, shr, shr)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
-               tp_assign(shrink, shr->scan_objects)
+               ctf_integer(void *, shrink, shr->scan_objects)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
-               tp_assign(shrink, shr->shrink)
+               ctf_integer(void *, shrink, shr->shrink)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
-               tp_assign(nr_objects_to_shrink, nr_objects_to_shrink)
-               tp_assign(gfp_flags, sc->gfp_mask)
-               tp_assign(pgs_scanned, pgs_scanned)
-               tp_assign(lru_pgs, lru_pgs)
-               tp_assign(cache_items, cache_items)
-               tp_assign(delta, delta)
-               tp_assign(total_scan, total_scan)
-       ),
-
-       TP_printk("%pF %p: objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld",
-               __entry->shrink,
-               __entry->shr,
-               __entry->nr_objects_to_shrink,
-               show_gfp_flags(__entry->gfp_flags),
-               __entry->pgs_scanned,
-               __entry->lru_pgs,
-               __entry->cache_items,
-               __entry->delta,
-               __entry->total_scan)
+               ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink)
+               ctf_integer(gfp_t, gfp_flags, sc->gfp_mask)
+               ctf_integer(unsigned long, pgs_scanned, pgs_scanned)
+               ctf_integer(unsigned long, lru_pgs, lru_pgs)
+               ctf_integer(unsigned long, cache_items, cache_items)
+               ctf_integer(unsigned long long, delta, delta)
+               ctf_integer(unsigned long, total_scan, total_scan)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
@@ -252,34 +169,15 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
        TP_ARGS(shr, nid, shrinker_retval, unused_scan_cnt, new_scan_cnt,
                total_scan),
 
-       TP_STRUCT__entry(
-               __field(struct shrinker *, shr)
-               __field(int, nid)
-               __field(void *, shrink)
-               __field(long, unused_scan)
-               __field(long, new_scan)
-               __field(int, retval)
-               __field(long, total_scan)
-       ),
-
-       TP_fast_assign(
-               tp_assign(shr, shr)
-               tp_assign(nid, nid)
-               tp_assign(shrink, shr->scan_objects)
-               tp_assign(unused_scan, unused_scan_cnt)
-               tp_assign(new_scan, new_scan_cnt)
-               tp_assign(retval, shrinker_retval)
-               tp_assign(total_scan, total_scan)
-       ),
-
-       TP_printk("%pF %p: nid %d unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d",
-               __entry->shrink,
-               __entry->shr,
-               __entry->nid,
-               __entry->unused_scan,
-               __entry->new_scan,
-               __entry->total_scan,
-               __entry->retval)
+       TP_FIELDS(
+               ctf_integer(struct shrinker *, shr, shr)
+               ctf_integer(int, nid, nid)
+               ctf_integer(void *, shrink, shr->scan_objects)
+               ctf_integer(long, unused_scan, unused_scan_cnt)
+               ctf_integer(long, new_scan, new_scan_cnt)
+               ctf_integer(int, retval, shrinker_retval)
+               ctf_integer(long, total_scan, total_scan)
+       )
 )
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
 LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
@@ -291,35 +189,18 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
 
        TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt),
 
-       TP_STRUCT__entry(
-               __field(struct shrinker *, shr)
-               __field(void *, shrink)
-               __field(long, unused_scan)
-               __field(long, new_scan)
-               __field(int, retval)
-               __field(long, total_scan)
-       ),
-
-       TP_fast_assign(
-               tp_assign(shr, shr)
+       TP_FIELDS(
+               ctf_integer(struct shrinker *, shr, shr)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
-               tp_assign(shrink, shr->scan_objects)
+               ctf_integer(void *, shrink, shr->scan_objects)
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
-               tp_assign(shrink, shr->shrink)
+               ctf_integer(void *, shrink, shr->shrink)
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */
-               tp_assign(unused_scan, unused_scan_cnt)
-               tp_assign(new_scan, new_scan_cnt)
-               tp_assign(retval, shrinker_retval)
-               tp_assign(total_scan, new_scan_cnt - unused_scan_cnt)
-       ),
-
-       TP_printk("%pF %p: unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d",
-               __entry->shrink,
-               __entry->shr,
-               __entry->unused_scan,
-               __entry->new_scan,
-               __entry->total_scan,
-               __entry->retval)
+               ctf_integer(long, unused_scan, unused_scan_cnt)
+               ctf_integer(long, new_scan, new_scan_cnt)
+               ctf_integer(int, retval, shrinker_retval)
+               ctf_integer(long, total_scan, new_scan_cnt - unused_scan_cnt)
+       )
 )
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
 #endif
@@ -355,68 +236,21 @@ LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_lru_isolate_template,
        ),
 
 
-       TP_STRUCT__entry(
-               __field(int, order)
-               __field(unsigned long, nr_requested)
-               __field(unsigned long, nr_scanned)
-               __field(unsigned long, nr_taken)
+       TP_FIELDS(
+               ctf_integer(int, order, order)
+               ctf_integer(unsigned long, nr_requested, nr_requested)
+               ctf_integer(unsigned long, nr_scanned, nr_scanned)
+               ctf_integer(unsigned long, nr_taken, nr_taken)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               __field(unsigned long, nr_lumpy_taken)
-               __field(unsigned long, nr_lumpy_dirty)
-               __field(unsigned long, nr_lumpy_failed)
+               ctf_integer(unsigned long, nr_lumpy_taken, nr_lumpy_taken)
+               ctf_integer(unsigned long, nr_lumpy_dirty, nr_lumpy_dirty)
+               ctf_integer(unsigned long, nr_lumpy_failed, nr_lumpy_failed)
 #endif
-               __field(isolate_mode_t, isolate_mode)
+               ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               __field(int, file)
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(order, order)
-               tp_assign(nr_requested, nr_requested)
-               tp_assign(nr_scanned, nr_scanned)
-               tp_assign(nr_taken, nr_taken)
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-               tp_assign(nr_lumpy_taken, nr_lumpy_taken)
-               tp_assign(nr_lumpy_dirty, nr_lumpy_dirty)
-               tp_assign(nr_lumpy_failed, nr_lumpy_failed)
-#endif
-               tp_assign(isolate_mode, isolate_mode)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               tp_assign(file, file)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
-       TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu contig_taken=%lu contig_dirty=%lu contig_failed=%lu",
-               __entry->isolate_mode,
-               __entry->order,
-               __entry->nr_requested,
-               __entry->nr_scanned,
-               __entry->nr_taken,
-               __entry->nr_lumpy_taken,
-               __entry->nr_lumpy_dirty,
-               __entry->nr_lumpy_failed)
-#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0))
-       TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu contig_taken=%lu contig_dirty=%lu contig_failed=%lu file=%d",
-               __entry->isolate_mode,
-               __entry->order,
-               __entry->nr_requested,
-               __entry->nr_scanned,
-               __entry->nr_taken,
-               __entry->nr_lumpy_taken,
-               __entry->nr_lumpy_dirty,
-               __entry->nr_lumpy_failed,
-               __entry->file)
-#else
-       TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu file=%d",
-               __entry->isolate_mode,
-               __entry->order,
-               __entry->nr_requested,
-               __entry->nr_scanned,
-               __entry->nr_taken,
-               __entry->file)
+               ctf_integer(int, file, file)
 #endif
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate,
@@ -489,20 +323,10 @@ LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
 
        TP_ARGS(page, reclaim_flags),
 
-       TP_STRUCT__entry(
-               __field(struct page *, page)
-               __field(int, reclaim_flags)
-       ),
-
-       TP_fast_assign(
-               tp_assign(page, page)
-               tp_assign(reclaim_flags, reclaim_flags)
-       ),
-
-       TP_printk("page=%p pfn=%lu flags=%s",
-               __entry->page,
-               page_to_pfn(__entry->page),
-               show_reclaim_flags(__entry->reclaim_flags))
+       TP_FIELDS(
+               ctf_integer(struct page *, page, page)
+               ctf_integer(int, reclaim_flags, reclaim_flags)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
@@ -514,29 +338,14 @@ LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
 
        TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags),
 
-       TP_STRUCT__entry(
-               __field(int, nid)
-               __field(int, zid)
-               __field(unsigned long, nr_scanned)
-               __field(unsigned long, nr_reclaimed)
-               __field(int, priority)
-               __field(int, reclaim_flags)
-       ),
-
-       TP_fast_assign(
-               tp_assign(nid, nid)
-               tp_assign(zid, zid)
-               tp_assign(nr_scanned, nr_scanned)
-               tp_assign(nr_reclaimed, nr_reclaimed)
-               tp_assign(priority, priority)
-               tp_assign(reclaim_flags, reclaim_flags)
-       ),
-
-       TP_printk("nid=%d zid=%d nr_scanned=%ld nr_reclaimed=%ld priority=%d flags=%s",
-               __entry->nid, __entry->zid,
-               __entry->nr_scanned, __entry->nr_reclaimed,
-               __entry->priority,
-               show_reclaim_flags(__entry->reclaim_flags))
+       TP_FIELDS(
+               ctf_integer(int, nid, nid)
+               ctf_integer(int, zid, zid)
+               ctf_integer(unsigned long, nr_scanned, nr_scanned)
+               ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
+               ctf_integer(int, priority, priority)
+               ctf_integer(int, reclaim_flags, reclaim_flags)
+       )
 )
 #endif
 
@@ -550,23 +359,12 @@ LTTNG_TRACEPOINT_EVENT_MAP(replace_swap_token,
 
        TP_ARGS(old_mm, new_mm),
 
-       TP_STRUCT__entry(
-               __field(struct mm_struct*,      old_mm)
-               __field(unsigned int,           old_prio)
-               __field(struct mm_struct*,      new_mm)
-               __field(unsigned int,           new_prio)
-       ),
-
-       TP_fast_assign(
-               tp_assign(old_mm, old_mm)
-               tp_assign(old_prio, old_mm ? old_mm->token_priority : 0)
-               tp_assign(new_mm, new_mm)
-               tp_assign(new_prio, new_mm->token_priority)
-       ),
-
-       TP_printk("old_token_mm=%p old_prio=%u new_token_mm=%p new_prio=%u",
-                 __entry->old_mm, __entry->old_prio,
-                 __entry->new_mm, __entry->new_prio)
+       TP_FIELDS(
+               ctf_integer(struct mm_struct *, old_mm, old_mm)
+               ctf_integer(unsigned int, old_prio, old_mm ? old_mm->token_priority : 0)
+               ctf_integer(struct mm_struct *, new_mm, new_mm)
+               ctf_integer(unsigned int, new_prio, new_mm->token_priority)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_put_swap_token_template,
@@ -574,15 +372,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_put_swap_token_template,
 
        TP_ARGS(swap_token_mm),
 
-       TP_STRUCT__entry(
-               __field(struct mm_struct*, swap_token_mm)
-       ),
-
-       TP_fast_assign(
-               tp_assign(swap_token_mm, swap_token_mm)
-       ),
-
-       TP_printk("token_mm=%p", __entry->swap_token_mm)
+       TP_FIELDS(
+               ctf_integer(struct mm_struct*, swap_token_mm, swap_token_mm)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(mm_vmscan_put_swap_token_template, put_swap_token,
@@ -593,16 +385,15 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(mm_vmscan_put_swap_token_template, put_swap_
        TP_ARGS(swap_token_mm)
 )
 
-LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP(mm_vmscan_put_swap_token_template, disable_swap_token,
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(mm_vmscan_put_swap_token_template, disable_swap_token,
 
        mm_vmscan_disable_swap_token,
 
        TP_PROTO(struct mm_struct *swap_token_mm),
-       TP_ARGS(swap_token_mm),
-       TP_CONDITION(swap_token_mm != NULL)
+       TP_ARGS(swap_token_mm)
 )
 
-LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(update_swap_token_priority,
+LTTNG_TRACEPOINT_EVENT_MAP(update_swap_token_priority,
 
        mm_vmscan_update_swap_token_priority,
 
@@ -612,27 +403,13 @@ LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(update_swap_token_priority,
 
        TP_ARGS(mm, old_prio, swap_token_mm),
 
-       TP_CONDITION(mm->token_priority != old_prio),
-
-       TP_STRUCT__entry(
-               __field(struct mm_struct*, mm)
-               __field(unsigned int, old_prio)
-               __field(unsigned int, new_prio)
-               __field(struct mm_struct*, swap_token_mm)
-               __field(unsigned int, swap_token_prio)
-       ),
-
-       TP_fast_assign(
-               tp_assign(mm, mm)
-               tp_assign(old_prio, old_prio)
-               tp_assign(new_prio, mm->token_priority)
-               tp_assign(swap_token_mm, swap_token_mm)
-               tp_assign(swap_token_prio, swap_token_mm ? swap_token_mm->token_priority : 0)
-       ),
-
-       TP_printk("mm=%p old_prio=%u new_prio=%u swap_token_mm=%p token_prio=%u",
-                 __entry->mm, __entry->old_prio, __entry->new_prio,
-                 __entry->swap_token_mm, __entry->swap_token_prio)
+       TP_FIELDS(
+               ctf_integer(struct mm_struct*, mm, mm)
+               ctf_integer(unsigned int, old_prio, old_prio)
+               ctf_integer(unsigned int, new_prio, mm->token_priority)
+               ctf_integer(struct mm_struct*, swap_token_mm, swap_token_mm)
+               ctf_integer(unsigned int, swap_token_prio, swap_token_mm ? swap_token_mm->token_priority : 0)
+       )
 )
 #endif
 
index bc9493adba556b2ded8f58212858507d76a6f03b..3bb75594b1084871463dc2b6b64afba64eb595b0 100644 (file)
@@ -31,17 +31,10 @@ LTTNG_TRACEPOINT_EVENT(module_load,
 
        TP_ARGS(mod),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   taints          )
-               __string(       name,           mod->name       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(taints, mod->taints)
-               tp_strcpy(name, mod->name)
-       ),
-
-       TP_printk("%s %s", __get_str(name), show_module_flags(__entry->taints))
+       TP_FIELDS(
+               ctf_integer(unsigned int, taints, mod->taints)
+               ctf_string(name, mod->name)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(module_free,
@@ -50,15 +43,9 @@ LTTNG_TRACEPOINT_EVENT(module_free,
 
        TP_ARGS(mod),
 
-       TP_STRUCT__entry(
-               __string(       name,           mod->name       )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, mod->name)
-       ),
-
-       TP_printk("%s", __get_str(name))
+       TP_FIELDS(
+               ctf_string(name, mod->name)
+       )
 )
 
 #ifdef CONFIG_MODULE_UNLOAD
@@ -76,26 +63,17 @@ LTTNG_TRACEPOINT_EVENT_CLASS(module_refcnt,
        TP_ARGS(mod, ip, refcnt),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  ip              )
-               __field(        int,            refcnt          )
-               __string(       name,           mod->name       )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ip, ip)
+       TP_FIELDS(
+               ctf_integer(unsigned long, ip, ip)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
-               tp_assign(refcnt, atomic_read(&mod->refcnt))
+               ctf_integer(int, refcnt, atomic_read(&mod->refcnt))
 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
-               tp_assign(refcnt, __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs))
+               ctf_integer(int, refcnt, __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs))
 #else
-               tp_assign(refcnt, refcnt)
+               ctf_integer(int, refcnt, refcnt)
 #endif
-               tp_strcpy(name, mod->name)
-       ),
-
-       TP_printk("%s call_site=%pf refcnt=%d",
-                 __get_str(name), (void *)__entry->ip, __entry->refcnt)
+               ctf_string(name, mod->name)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(module_refcnt, module_get,
@@ -131,20 +109,11 @@ LTTNG_TRACEPOINT_EVENT(module_request,
 
        TP_ARGS(name, wait, ip),
 
-       TP_STRUCT__entry(
-               __field(        unsigned long,  ip              )
-               __field(        bool,           wait            )
-               __string(       name,           name            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ip, ip)
-               tp_assign(wait, wait)
-               tp_strcpy(name, name)
-       ),
-
-       TP_printk("%s wait=%d call_site=%pf",
-                 __get_str(name), (int)__entry->wait, (void *)__entry->ip)
+       TP_FIELDS(
+               ctf_integer(unsigned long, ip, ip)
+               ctf_integer(bool, wait, wait)
+               ctf_string(name, name)
+       )
 )
 
 #endif /* CONFIG_MODULES */
index d6df1817d4c53d7b9df63eb50d9dd0fe73ec3d3d..20e0d61dae5c09484dc210414f6d2e5c64601860 100644 (file)
@@ -16,18 +16,10 @@ LTTNG_TRACEPOINT_EVENT(napi_poll,
 
        TP_ARGS(napi),
 
-       TP_STRUCT__entry(
-               __field(        struct napi_struct *,   napi)
-               __string(       dev_name, napi->dev ? napi->dev->name : NO_DEV)
-       ),
-
-       TP_fast_assign(
-               tp_assign(napi, napi)
-               tp_strcpy(dev_name, napi->dev ? napi->dev->name : NO_DEV)
-       ),
-
-       TP_printk("napi poll on napi struct %p for device %s",
-               __entry->napi, __get_str(dev_name))
+       TP_FIELDS(
+               ctf_integer(struct napi_struct *, napi, napi)
+               ctf_string(dev_name, napi->dev ? napi->dev->name : NO_DEV)
+       )
 )
 
 #undef NO_DEV
index a6bcecdf0f8c49ef015c4249b15776a20ecc20fa..f4a0d97ee13b2c92cced3906579ec6d3f6e3b683 100644 (file)
@@ -26,35 +26,16 @@ LTTNG_TRACEPOINT_EVENT(net_dev_xmit,
        TP_ARGS(skb, rc),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        void *,         skbaddr         )
-               __field(        unsigned int,   len             )
-               __field(        int,            rc              )
+       TP_FIELDS(
+               ctf_integer(void *, skbaddr, skb)
+               ctf_integer(unsigned int, len, skb_len)
+               ctf_integer(int, rc, rc)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
-               __string(       name,           dev->name       )
+               ctf_string(name, dev->name)
 #else
-               __string(       name,           skb->dev->name  )
+               ctf_string(name, skb->dev->name)
 #endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
-       TP_fast_assign(
-               tp_assign(skbaddr, skb)
-               tp_assign(len, skb_len)
-               tp_assign(rc, rc)
-               tp_strcpy(name, dev->name)
-       ),
-#else
-       TP_fast_assign(
-               tp_assign(skbaddr, skb)
-               tp_assign(len, skb->len)
-               tp_assign(rc, rc)
-               tp_strcpy(name, skb->dev->name)
-       ),
-#endif
-
-       TP_printk("dev=%s skbaddr=%p len=%u rc=%d",
-               __get_str(name), __entry->skbaddr, __entry->len, __entry->rc)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(net_dev_template,
@@ -63,20 +44,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(net_dev_template,
 
        TP_ARGS(skb),
 
-       TP_STRUCT__entry(
-               __field(        void *,         skbaddr         )
-               __field(        unsigned int,   len             )
-               __string(       name,           skb->dev->name  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(skbaddr, skb)
-               tp_assign(len, skb->len)
-               tp_strcpy(name, skb->dev->name)
-       ),
-
-       TP_printk("dev=%s skbaddr=%p len=%u",
-               __get_str(name), __entry->skbaddr, __entry->len)
+       TP_FIELDS(
+               ctf_integer(void *, skbaddr, skb)
+               ctf_integer(unsigned int, len, skb->len)
+               ctf_string(name, skb->dev->name)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(net_dev_template, net_dev_queue,
index 02a803cdb8951ddabbb5bea9bf95e7612fb6c34b..c934b47512e7857249d74288440ededfe02e96e3 100644 (file)
@@ -15,18 +15,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu,
 
        TP_ARGS(state, cpu_id),
 
-       TP_STRUCT__entry(
-               __field(        u32,            state           )
-               __field(        u32,            cpu_id          )
-       ),
-
-       TP_fast_assign(
-               tp_assign(state, state)
-               tp_assign(cpu_id, cpu_id)
-       ),
-
-       TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state,
-                 (unsigned long)__entry->cpu_id)
+       TP_FIELDS(
+               ctf_integer(u32, state, state)
+               ctf_integer(u32, cpu_id, cpu_id)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_idle,
@@ -62,15 +54,9 @@ LTTNG_TRACEPOINT_EVENT_MAP(machine_suspend,
 
        TP_ARGS(state),
 
-       TP_STRUCT__entry(
-               __field(        u32,            state           )
-       ),
-
-       TP_fast_assign(
-               tp_assign(state, state)
-       ),
-
-       TP_printk("state=%lu", (unsigned long)__entry->state)
+       TP_FIELDS(
+               ctf_integer(u32, state, state)
+       )
 )
 #endif
 
@@ -81,18 +67,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source,
 
        TP_ARGS(name, state),
 
-       TP_STRUCT__entry(
-               __string(       name,           name            )
-               __field(        u64,            state           )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, name)
-               tp_assign(state, state)
-       ),
-
-       TP_printk("%s state=0x%lx", __get_str(name),
-               (unsigned long)__entry->state)
+       TP_FIELDS(
+               ctf_string(name, name)
+               ctf_integer(u64, state, state)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_activate,
@@ -138,29 +116,13 @@ LTTNG_TRACEPOINT_EVENT_CLASS(power,
        TP_ARGS(type, state),
 #endif
 
-       TP_STRUCT__entry(
-               __field(        u64,            type            )
-               __field(        u64,            state           )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-               __field(        u64,            cpu_id          )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_assign(type, type)
-               tp_assign(state, state)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-               tp_assign(cpu_id, cpu_id)
-#endif
-       ),
-
+       TP_FIELDS(
+               ctf_integer(u64, type, type)
+               ctf_integer(u64, state, state)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-       TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type,
-               (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
-#else
-       TP_printk("type=%lu state=%lu", (unsigned long)__entry->type,
-               (unsigned long)__entry->state)
+               ctf_integer(u64, cpu_id, cpu_id)
 #endif
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_start,
@@ -201,27 +163,13 @@ LTTNG_TRACEPOINT_EVENT(power_end,
        TP_ARGS(dummy),
 #endif
 
-       TP_STRUCT__entry(
+       TP_FIELDS(
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-               __field(        u64,            cpu_id          )
+               ctf_integer(u64, cpu_id, cpu_id)
 #else
-               __field(        u64,            dummy           )
-#endif
-       ),
-
-       TP_fast_assign(
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-               tp_assign(cpu_id, cpu_id)
-#else
-               tp_assign(dummy, 0xffff)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
-       TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id)
-#else
-       TP_printk("dummy=%lu", (unsigned long)__entry->dummy)
+               ctf_integer(u64, dummy, 0xffff)
 #endif
+       )
 )
 
 /* Deprecated dummy functions must be protected against multi-declartion */
@@ -269,20 +217,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(power_clock,
 
        TP_ARGS(name, state, cpu_id),
 
-       TP_STRUCT__entry(
-               __string(       name,           name            )
-               __field(        u64,            state           )
-               __field(        u64,            cpu_id          )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, name)
-               tp_assign(state, state)
-               tp_assign(cpu_id, cpu_id)
-       ),
-
-       TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
-               (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
+       TP_FIELDS(
+               ctf_string(name, name)
+               ctf_integer(u64, state, state)
+               ctf_integer(u64, cpu_id, cpu_id)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_enable,
@@ -321,20 +260,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(power_domain,
 
        TP_ARGS(name, state, cpu_id),
 
-       TP_STRUCT__entry(
-               __string(       name,           name            )
-               __field(        u64,            state           )
-               __field(        u64,            cpu_id          )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, name)
-               tp_assign(state, state)
-               tp_assign(cpu_id, cpu_id)
-),
-
-       TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
-               (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
+       TP_FIELDS(
+               ctf_string(name, name)
+               ctf_integer(u64, state, state)
+               ctf_integer(u64, cpu_id, cpu_id)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(power_domain, power_domain_target,
index fd7cccc3769a9627092e536eede966600be7e1d3..77fe081b36e835ff26ac6a92afc26bce3fbcecef 100644 (file)
@@ -17,15 +17,9 @@ LTTNG_TRACEPOINT_EVENT_MAP(console,
 
        TP_ARGS(text, len),
 
-       TP_STRUCT__entry(
-               __dynamic_array_text(char, msg, len)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy_dyn(msg, text)
-       ),
-
-       TP_printk("%s", __get_str(msg))
+       TP_FIELDS(
+               ctf_sequence_text(char, msg, text, size_t, len)
+       )
 )
 
 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
@@ -41,15 +35,10 @@ LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(console,
 
        TP_CONDITION(start != end),
 
-       TP_STRUCT__entry(
-               __dynamic_array_text(char, msg, end - start)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy_dyn(msg, log_buf + start)
-       ),
-
-       TP_printk("%s", __get_str(msg))
+       TP_FIELDS(
+               ctf_sequence_text(char, msg, log_buf + start,
+                       size_t, end - start)
+       )
 )
 
 #else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */
@@ -65,23 +54,21 @@ LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(console,
 
        TP_CONDITION(start != end),
 
-       TP_STRUCT__entry(
-               __dynamic_array_text_2(char, msg,
-                       (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
+       TP_FIELDS(
+               /*
+                * printk buffer is gathered from two segments on older kernels.
+                */
+               ctf_sequence_text(char, msg1,
+                       log_buf + (start & (log_buf_len - 1)),
+                       size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
                                ? log_buf_len - (start & (log_buf_len - 1))
-                               : end - start,
-                       (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
+                               : end - start)
+               ctf_sequence_text(char, msg2,
+                       log_buf,
+                       size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
                                ? end & (log_buf_len - 1)
                                : 0)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy_dyn_2(msg,
-                       log_buf + (start & (log_buf_len - 1)),
-                       log_buf)
-       ),
-
-       TP_printk("%s", __get_str(msg))
+       )
 )
 
 #endif
index 910ea9149b133555a34f56aa47e1c62941e8f673..32737291a85510b32ce961ff17690a31dafe98c4 100644 (file)
@@ -12,20 +12,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
 
        TP_ARGS(pool_name, bytes, IP),
 
-       TP_STRUCT__entry(
-               __string(   pool_name,  pool_name               )
-               __field(          int,  bytes                   )
-               __field(unsigned long,  IP                      )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(pool_name, pool_name)
-               tp_assign(bytes, bytes)
-               tp_assign(IP, IP)
-       ),
-
-       TP_printk("%s pool: bytes %d caller %pF",
-                 __get_str(pool_name), __entry->bytes, (void *)__entry->IP)
+       TP_FIELDS(
+               ctf_string(pool_name, pool_name)
+               ctf_integer(int, bytes, bytes)
+               ctf_integer(unsigned long, IP, IP)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes,
@@ -55,26 +46,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
 
        TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP),
 
-       TP_STRUCT__entry(
-               __string(   pool_name,  pool_name               )
-               __field(          int,  bits                    )
-               __field(          int,  entropy_count           )
-               __field(          int,  entropy_total           )
-               __field(unsigned long,  IP                      )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(pool_name, pool_name)
-               tp_assign(bits, bits)
-               tp_assign(entropy_count, entropy_count)
-               tp_assign(entropy_total, entropy_total)
-               tp_assign(IP, IP)
-       ),
-
-       TP_printk("%s pool: bits %d entropy_count %d entropy_total %d "
-                 "caller %pF", __get_str(pool_name), __entry->bits,
-                 __entry->entropy_count, __entry->entropy_total,
-                 (void *)__entry->IP)
+       TP_FIELDS(
+               ctf_string(pool_name, pool_name)
+               ctf_integer(int, bits, bits)
+               ctf_integer(int, entropy_count, entropy_count)
+               ctf_integer(int, entropy_total, entropy_total)
+               ctf_integer(unsigned long, IP, IP)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_MAP(get_random_bytes,
@@ -85,17 +63,10 @@ LTTNG_TRACEPOINT_EVENT_MAP(get_random_bytes,
 
        TP_ARGS(nbytes, IP),
 
-       TP_STRUCT__entry(
-               __field(          int,  nbytes                  )
-               __field(unsigned long,  IP                      )
-       ),
-
-       TP_fast_assign(
-               tp_assign(nbytes, nbytes)
-               tp_assign(IP, IP)
-       ),
-
-       TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP)
+       TP_FIELDS(
+               ctf_integer(int, nbytes, nbytes)
+               ctf_integer(unsigned long, IP, IP)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
@@ -104,23 +75,12 @@ LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
 
        TP_ARGS(pool_name, nbytes, entropy_count, IP),
 
-       TP_STRUCT__entry(
-               __string(   pool_name,  pool_name               )
-               __field(          int,  nbytes                  )
-               __field(          int,  entropy_count           )
-               __field(unsigned long,  IP                      )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(pool_name, pool_name)
-               tp_assign(nbytes, nbytes)
-               tp_assign(entropy_count, entropy_count)
-               tp_assign(IP, IP)
-       ),
-
-       TP_printk("%s pool: nbytes %d entropy_count %d caller %pF",
-                 __get_str(pool_name), __entry->nbytes, __entry->entropy_count,
-                 (void *)__entry->IP)
+       TP_FIELDS(
+               ctf_string(pool_name, pool_name)
+               ctf_integer(int, nbytes, nbytes)
+               ctf_integer(int, entropy_count, entropy_count)
+               ctf_integer(unsigned long, IP, IP)
+       )
 )
 
 
index 16993aa3f4dd51ac36b95c380768eb223c6267ce..062dd14b742dde3c9e2cda04d1cd227bb9f84a95 100644 (file)
@@ -28,15 +28,9 @@ LTTNG_TRACEPOINT_EVENT(rcu_utilization,
 
        TP_ARGS(s),
 
-       TP_STRUCT__entry(
-               __string(s, s)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(s, s)
-       ),
-
-       TP_printk("%s", __get_str(s))
+       TP_FIELDS(
+               ctf_string(s, s)
+       )
 )
 
 #ifdef CONFIG_RCU_TRACE
@@ -65,20 +59,11 @@ LTTNG_TRACEPOINT_EVENT(rcu_grace_period,
 
        TP_ARGS(rcuname, gpnum, gpevent),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(unsigned long, gpnum)
-               __string(gpevent, gpevent)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(gpnum, gpnum)
-               tp_strcpy(gpevent, gpevent)
-       ),
-
-       TP_printk("%s %lu %s",
-                 __get_str(rcuname), __entry->gpnum, __get_str(gpevent))
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(unsigned long, gpnum, gpnum)
+               ctf_string(gpevent, gpevent)
+       )
 )
 
 /*
@@ -100,27 +85,14 @@ LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init,
 
        TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(unsigned long, gpnum)
-               __field(u8, level)
-               __field(int, grplo)
-               __field(int, grphi)
-               __field(unsigned long, qsmask)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(gpnum, gpnum)
-               tp_assign(level, level)
-               tp_assign(grplo, grplo)
-               tp_assign(grphi, grphi)
-               tp_assign(qsmask, qsmask)
-       ),
-
-       TP_printk("%s %lu %u %d %d %lx",
-                 __get_str(rcuname), __entry->gpnum, __entry->level,
-                 __entry->grplo, __entry->grphi, __entry->qsmask)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(unsigned long, gpnum, gpnum)
+               ctf_integer(u8, level, level)
+               ctf_integer(int, grplo, grplo)
+               ctf_integer(int, grphi, grphi)
+               ctf_integer(unsigned long, qsmask, qsmask)
+       )
 )
 
 /*
@@ -139,20 +111,11 @@ LTTNG_TRACEPOINT_EVENT(rcu_preempt_task,
 
        TP_ARGS(rcuname, pid, gpnum),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(unsigned long, gpnum)
-               __field(int, pid)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(gpnum, gpnum)
-               tp_assign(pid, pid)
-       ),
-
-       TP_printk("%s %lu %d",
-                 __get_str(rcuname), __entry->gpnum, __entry->pid)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(unsigned long, gpnum, gpnum)
+               ctf_integer(int, pid, pid)
+       )
 )
 
 /*
@@ -170,19 +133,11 @@ LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task,
 
        TP_ARGS(rcuname, gpnum, pid),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(unsigned long, gpnum)
-               __field(int, pid)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(gpnum, gpnum)
-               tp_assign(pid, pid)
-       ),
-
-       TP_printk("%s %lu %d", __get_str(rcuname), __entry->gpnum, __entry->pid)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(unsigned long, gpnum, gpnum)
+               ctf_integer(int, pid, pid)
+       )
 )
 
 /*
@@ -207,32 +162,16 @@ LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report,
 
        TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(unsigned long, gpnum)
-               __field(unsigned long, mask)
-               __field(unsigned long, qsmask)
-               __field(u8, level)
-               __field(int, grplo)
-               __field(int, grphi)
-               __field(u8, gp_tasks)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(gpnum, gpnum)
-               tp_assign(mask, mask)
-               tp_assign(qsmask, qsmask)
-               tp_assign(level, level)
-               tp_assign(grplo, grplo)
-               tp_assign(grphi, grphi)
-               tp_assign(gp_tasks, gp_tasks)
-       ),
-
-       TP_printk("%s %lu %lx>%lx %u %d %d %u",
-                 __get_str(rcuname), __entry->gpnum,
-                 __entry->mask, __entry->qsmask, __entry->level,
-                 __entry->grplo, __entry->grphi, __entry->gp_tasks)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(unsigned long, gpnum, gpnum)
+               ctf_integer(unsigned long, mask, mask)
+               ctf_integer(unsigned long, qsmask, qsmask)
+               ctf_integer(u8, level, level)
+               ctf_integer(int, grplo, grplo)
+               ctf_integer(int, grphi, grphi)
+               ctf_integer(u8, gp_tasks, gp_tasks)
+       )
 )
 
 /*
@@ -253,23 +192,12 @@ LTTNG_TRACEPOINT_EVENT(rcu_fqs,
 
        TP_ARGS(rcuname, gpnum, cpu, qsevent),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(unsigned long, gpnum)
-               __field(int, cpu)
-               __string(qsevent, qsevent)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(gpnum, gpnum)
-               tp_assign(cpu, cpu)
-               tp_strcpy(qsevent, qsevent)
-       ),
-
-       TP_printk("%s %lu %d %s",
-                 __get_str(rcuname), __entry->gpnum,
-                 __entry->cpu, __get_str(qsevent))
+       TP_FIELDS(
+               ctf_integer(unsigned long, gpnum, gpnum)
+               ctf_integer(int, cpu, cpu)
+               ctf_string(rcuname, rcuname)
+               ctf_string(qsevent, qsevent)
+       )
 )
 
 #endif /*
@@ -309,28 +237,13 @@ LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
        TP_ARGS(polarity),
 #endif
 
-       TP_STRUCT__entry(
-               __string(polarity, polarity)
+       TP_FIELDS(
+               ctf_string(polarity, polarity)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               __field(long long, oldnesting)
-               __field(long long, newnesting)
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(polarity, polarity)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               tp_assign(oldnesting, oldnesting)
-               tp_assign(newnesting, newnesting)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-       TP_printk("%s %llx %llx", __get_str(polarity),
-                 __entry->oldnesting, __entry->newnesting)
-#else
-       TP_printk("%s", __get_str(polarity))
+               ctf_integer(long long, oldnesting, oldnesting)
+               ctf_integer(long long, newnesting, newnesting)
 #endif
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
@@ -366,15 +279,9 @@ LTTNG_TRACEPOINT_EVENT(rcu_prep_idle,
 
        TP_ARGS(reason),
 
-       TP_STRUCT__entry(
-               __string(reason, reason)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(reason, reason)
-       ),
-
-       TP_printk("%s", __get_str(reason))
+       TP_FIELDS(
+               ctf_string(reason, reason)
+       )
 )
 #endif
 
@@ -403,35 +310,15 @@ LTTNG_TRACEPOINT_EVENT(rcu_callback,
        TP_ARGS(rcuname, rhp, qlen),
 #endif
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(void *, rhp)
-               __field(void *, func)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-               __field(long, qlen_lazy)
-#endif
-               __field(long, qlen)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(rhp, rhp)
-               tp_assign(func, rhp->func)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-               tp_assign(qlen_lazy, qlen_lazy)
-#endif
-               tp_assign(qlen, qlen)
-       ),
-
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(void *, rhp, rhp)
+               ctf_integer(void *, func, rhp->func)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-       TP_printk("%s rhp=%p func=%pf %ld/%ld",
-                 __get_str(rcuname), __entry->rhp, __entry->func,
-                 __entry->qlen_lazy, __entry->qlen)
-#else
-       TP_printk("%s rhp=%p func=%pf %ld",
-                 __get_str(rcuname), __entry->rhp, __entry->func,
-                 __entry->qlen)
+               ctf_integer(long, qlen_lazy, qlen_lazy)
 #endif
+               ctf_integer(long, qlen, qlen)
+       )
 )
 
 /*
@@ -462,35 +349,15 @@ LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback,
        TP_ARGS(rcuname, rhp, offset, qlen),
 #endif
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(void *, rhp)
-               __field(unsigned long, offset)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(void *, rhp, rhp)
+               ctf_integer(unsigned long, offset, offset)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-               __field(long, qlen_lazy)
-#endif
-               __field(long, qlen)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(rhp, rhp)
-               tp_assign(offset, offset)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-               tp_assign(qlen_lazy, qlen_lazy)
-#endif
-               tp_assign(qlen, qlen)
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-       TP_printk("%s rhp=%p func=%ld %ld/%ld",
-                 __get_str(rcuname), __entry->rhp, __entry->offset,
-                 __entry->qlen_lazy, __entry->qlen)
-#else
-       TP_printk("%s rhp=%p func=%ld %ld",
-                 __get_str(rcuname), __entry->rhp, __entry->offset,
-                 __entry->qlen)
+               ctf_integer(long, qlen_lazy, qlen_lazy)
 #endif
+               ctf_integer(long, qlen, qlen)
+       )
 )
 
 /*
@@ -520,40 +387,18 @@ LTTNG_TRACEPOINT_EVENT(rcu_batch_start,
        TP_ARGS(rcuname, qlen, blimit),
 #endif
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-               __field(long, qlen_lazy)
-#endif
-               __field(long, qlen)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
-               __field(long, blimit)
-#else
-               __field(int, blimit)
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-               tp_assign(qlen_lazy, qlen_lazy)
+               ctf_integer(long, qlen_lazy, qlen_lazy)
 #endif
-               tp_assign(qlen, qlen)
-               tp_assign(blimit, blimit)
-       ),
-
+               ctf_integer(long, qlen, qlen)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
-       TP_printk("%s CBs=%ld/%ld bl=%ld",
-                 __get_str(rcuname), __entry->qlen_lazy, __entry->qlen,
-                 __entry->blimit)
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-       TP_printk("%s CBs=%ld/%ld bl=%d",
-                 __get_str(rcuname), __entry->qlen_lazy, __entry->qlen,
-                 __entry->blimit)
+               ctf_integer(long, blimit, blimit)
 #else
-       TP_printk("%s CBs=%ld bl=%d",
-                 __get_str(rcuname), __entry->qlen, __entry->blimit)
+               ctf_integer(int, blimit, blimit)
 #endif
+       )
 )
 
 /*
@@ -571,20 +416,11 @@ LTTNG_TRACEPOINT_EVENT(rcu_invoke_callback,
 
        TP_ARGS(rcuname, rhp),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(void *, rhp)
-               __field(void *, func)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(rhp, rhp)
-               tp_assign(func, rhp->func)
-       ),
-
-       TP_printk("%s rhp=%p func=%pf",
-                 __get_str(rcuname), __entry->rhp, __entry->func)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(void *, rhp, rhp)
+               ctf_integer(void *, func, rhp->func)
+       )
 )
 
 /*
@@ -604,20 +440,11 @@ LTTNG_TRACEPOINT_EVENT(rcu_invoke_kfree_callback,
 
        TP_ARGS(rcuname, rhp, offset),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(void *, rhp)
-               __field(unsigned long, offset)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(rhp, rhp)
-               tp_assign(offset, offset)
-       ),
-
-       TP_printk("%s rhp=%p func=%ld",
-                 __get_str(rcuname), __entry->rhp, __entry->offset)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(void *, rhp, rhp)
+               ctf_integer(unsigned long, offset, offset)
+       )
 )
 
 /*
@@ -654,44 +481,21 @@ LTTNG_TRACEPOINT_EVENT(rcu_batch_end,
        TP_ARGS(rcuname, callbacks_invoked),
 #endif
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __field(int, callbacks_invoked)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_integer(int, callbacks_invoked, callbacks_invoked)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
-               __field(char, cb)
-               __field(char, nr)
-               __field(char, iit)
-               __field(char, risk)
+               ctf_integer(char, cb, cb)
+               ctf_integer(char, nr, nr)
+               ctf_integer(char, iit, iit)
+               ctf_integer(char, risk, risk)
 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               __field(bool, cb)
-               __field(bool, nr)
-               __field(bool, iit)
-               __field(bool, risk)
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_assign(callbacks_invoked, callbacks_invoked)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               tp_assign(cb, cb)
-               tp_assign(nr, nr)
-               tp_assign(iit, iit)
-               tp_assign(risk, risk)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-       TP_printk("%s CBs-invoked=%d idle=%c%c%c%c",
-                 __get_str(rcuname), __entry->callbacks_invoked,
-                 __entry->cb ? 'C' : '.',
-                 __entry->nr ? 'S' : '.',
-                 __entry->iit ? 'I' : '.',
-                 __entry->risk ? 'R' : '.')
-#else
-       TP_printk("%s CBs-invoked=%d",
-                 __get_str(rcuname), __entry->callbacks_invoked)
+               ctf_integer(bool, cb, cb)
+               ctf_integer(bool, nr, nr)
+               ctf_integer(bool, iit, iit)
+               ctf_integer(bool, risk, risk)
 #endif
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
@@ -718,34 +522,15 @@ LTTNG_TRACEPOINT_EVENT(rcu_torture_read,
        TP_ARGS(rcutorturename, rhp),
 #endif
 
-       TP_STRUCT__entry(
-               __string(rcutorturename, rcutorturename)
-               __field(struct rcu_head *, rhp)
+       TP_FIELDS(
+               ctf_string(rcutorturename, rcutorturename)
+               ctf_integer(struct rcu_head *, rhp, rhp)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
-               __field(unsigned long, secs)
-               __field(unsigned long, c_old)
-               __field(unsigned long, c)
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcutorturename, rcutorturename)
-               tp_assign(rhp, rhp)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
-               tp_assign(secs, secs)
-               tp_assign(c_old, c_old)
-               tp_assign(c, c)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0))
-       TP_printk("%s torture read %p %luus c: %lu %lu",
-                 __entry->rcutorturename, __entry->rhp,
-                 __entry->secs, __entry->c_old, __entry->c)
-#else
-       TP_printk("%s torture read %p",
-                 __get_str(rcutorturename), __entry->rhp)
+               ctf_integer(unsigned long, secs, secs)
+               ctf_integer(unsigned long, c_old, c_old)
+               ctf_integer(unsigned long, c, c)
 #endif
+       )
 )
 #endif
 
@@ -777,25 +562,13 @@ LTTNG_TRACEPOINT_EVENT(rcu_barrier,
 
        TP_ARGS(rcuname, s, cpu, cnt, done),
 
-       TP_STRUCT__entry(
-               __string(rcuname, rcuname)
-               __string(s, s)
-               __field(int, cpu)
-               __field(int, cnt)
-               __field(unsigned long, done)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(rcuname, rcuname)
-               tp_strcpy(s, s)
-               tp_assign(cpu, cpu)
-               tp_assign(cnt, cnt)
-               tp_assign(done, done)
-       ),
-
-       TP_printk("%s %s cpu %d remaining %d # %lu",
-                 __get_str(rcuname), __get_str(s), __entry->cpu, __entry->cnt,
-                 __entry->done)
+       TP_FIELDS(
+               ctf_string(rcuname, rcuname)
+               ctf_string(s, s)
+               ctf_integer(int, cpu, cpu)
+               ctf_integer(int, cnt, cnt)
+               ctf_integer(unsigned long, done, done)
+       )
 )
 #endif
 
index 69e421610aaec4ae90fa6a12f82785ae7cc5a458..eef3c6cd255dcfeadb0b80ba15d4276febeba9c7 100644 (file)
@@ -24,21 +24,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(regmap_reg,
 
        TP_ARGS(dev, reg, val),
 
-       TP_STRUCT__entry(
-               __string(       name,           dev_name(dev)   )
-               __field(        unsigned int,   reg             )
-               __field(        unsigned int,   val             )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, dev_name(dev))
-               tp_assign(reg, reg)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("%s reg=%x val=%x", __get_str(name),
-                 (unsigned int)__entry->reg,
-                 (unsigned int)__entry->val)
+       TP_FIELDS(
+               ctf_string(name, dev_name(dev))
+               ctf_integer(unsigned int, reg, reg)
+               ctf_integer(unsigned int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_write,
@@ -76,21 +66,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(regmap_block,
 
        TP_ARGS(dev, reg, count),
 
-       TP_STRUCT__entry(
-               __string(       name,           dev_name(dev)   )
-               __field(        unsigned int,   reg             )
-               __field(        int,            count           )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, dev_name(dev))
-               tp_assign(reg, reg)
-               tp_assign(count, count)
-       ),
-
-       TP_printk("%s reg=%x count=%d", __get_str(name),
-                 (unsigned int)__entry->reg,
-                 (int)__entry->count)
+       TP_FIELDS(
+               ctf_string(name, dev_name(dev))
+               ctf_integer(unsigned int, reg, reg)
+               ctf_integer(int, count, count)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_start,
@@ -130,20 +110,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(regcache_sync,
 
        TP_ARGS(dev, type, status),
 
-       TP_STRUCT__entry(
-               __string(       name,           dev_name(dev)   )
-               __string(       status,         status          )
-               __string(       type,           type            )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, dev_name(dev))
-               tp_strcpy(status, status)
-               tp_strcpy(type, type)
-       ),
-
-       TP_printk("%s type=%s status=%s", __get_str(name),
-                 __get_str(type), __get_str(status))
+       TP_FIELDS(
+               ctf_string(name, dev_name(dev))
+               ctf_string(status, status)
+               ctf_string(type, type)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
@@ -153,18 +124,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(regmap_bool,
 
        TP_ARGS(dev, flag),
 
-       TP_STRUCT__entry(
-               __string(       name,           dev_name(dev)   )
-               __field(        int,            flag            )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, dev_name(dev))
-               tp_assign(flag, flag)
-       ),
-
-       TP_printk("%s flag=%d", __get_str(name),
-                 (int)__entry->flag)
+       TP_FIELDS(
+               ctf_string(name, dev_name(dev))
+               ctf_integer(int, flag, flag)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_only,
index a84c24cefeee6ee5273f53b502f55080b124938a..b2edf5ae9d3512112f9b9de43d2a53009fa7703e 100644 (file)
@@ -17,16 +17,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(regulator_basic,
 
        TP_ARGS(name),
 
-       TP_STRUCT__entry(
-               __string(       name,   name    )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, name)
-       ),
-
-       TP_printk("name=%s", __get_str(name))
-
+       TP_FIELDS(
+               ctf_string(name, name)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_basic, regulator_enable,
@@ -79,20 +72,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(regulator_range,
 
        TP_ARGS(name, min, max),
 
-       TP_STRUCT__entry(
-               __string(       name,           name            )
-               __field(        int,            min             )
-               __field(        int,            max             )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, name)
-               tp_assign(min, min)
-               tp_assign(max, max)
-       ),
-
-       TP_printk("name=%s (%d-%d)", __get_str(name),
-                 (int)__entry->min, (int)__entry->max)
+       TP_FIELDS(
+               ctf_string(name, name)
+               ctf_integer(int, min, min)
+               ctf_integer(int, max, max)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_range, regulator_set_voltage,
@@ -113,18 +97,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(regulator_value,
 
        TP_ARGS(name, val),
 
-       TP_STRUCT__entry(
-               __string(       name,           name            )
-               __field(        unsigned int,   val             )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, name)
-               tp_assign(val, val)
-       ),
-
-       TP_printk("name=%s, val=%u", __get_str(name),
-                 (int)__entry->val)
+       TP_FIELDS(
+               ctf_string(name, name)
+               ctf_integer(unsigned int, val, val)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(regulator_value, regulator_set_voltage_complete,
index bcaafbc12c084dc365cd9287b95be36d3220d4b7..a208b5af56bbfedacf8f23d96de4353ae4c7d185 100644 (file)
@@ -14,19 +14,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
 
        TP_ARGS(task),
 
-       TP_STRUCT__entry(
-               __field(const struct rpc_task *, task)
-               __field(const struct rpc_clnt *, clnt)
-               __field(int, status)
-       ),
-
-       TP_fast_assign(
-               tp_assign(task, task)
-               tp_assign(clnt, task->tk_client)
-               tp_assign(status, task->tk_status)
-       ),
-
-       TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status)
+       TP_FIELDS(
+               ctf_integer(const struct rpc_task *, task, task)
+               ctf_integer(const struct rpc_clnt *, clnt, task->tk_client)
+               ctf_integer(int, status, task->tk_status)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
@@ -46,19 +38,11 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
 
        TP_ARGS(task, status),
 
-       TP_STRUCT__entry(
-               __field(const struct rpc_task *, task)
-               __field(const struct rpc_clnt *, clnt)
-               __field(int, status)
-       ),
-
-       TP_fast_assign(
-               tp_assign(task, task)
-               tp_assign(clnt, task->tk_client)
-               tp_assign(status, status)
-       ),
-
-       TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status)
+       TP_FIELDS(
+               ctf_integer(const struct rpc_task *, task, task)
+               ctf_integer(const struct rpc_clnt *, clnt, task->tk_client)
+               ctf_integer(int, status, status)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
@@ -67,32 +51,14 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
 
        TP_ARGS(clnt, task, action),
 
-       TP_STRUCT__entry(
-               __field(const struct rpc_clnt *, clnt)
-               __field(const struct rpc_task *, task)
-               __field(const void *, action)
-               __field(unsigned long, runstate)
-               __field(int, status)
-               __field(unsigned short, flags)
-               ),
-
-       TP_fast_assign(
-               tp_assign(clnt, clnt)
-               tp_assign(task, task)
-               tp_assign(action, action)
-               tp_assign(runstate, task->tk_runstate)
-               tp_assign(status, task->tk_status)
-               tp_assign(flags, task->tk_flags)
-               ),
-
-       TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf",
-               __entry->task,
-               __entry->clnt,
-               __entry->flags,
-               __entry->runstate,
-               __entry->status,
-               __entry->action
-               )
+       TP_FIELDS(
+               ctf_integer(const struct rpc_clnt *, clnt, clnt)
+               ctf_integer(const struct rpc_task *, task, task)
+               ctf_integer(const void *, action, action)
+               ctf_integer(unsigned long, runstate, task->tk_runstate)
+               ctf_integer(int, status, task->tk_status)
+               ctf_integer(unsigned short, flags, task->tk_flags)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
@@ -125,35 +91,15 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
 
        TP_ARGS(clnt, task, q),
 
-       TP_STRUCT__entry(
-               __field(const struct rpc_clnt *, clnt)
-               __field(const struct rpc_task *, task)
-               __field(unsigned long, timeout)
-               __field(unsigned long, runstate)
-               __field(int, status)
-               __field(unsigned short, flags)
-               __string(q_name, rpc_qname(q))
-               ),
-
-       TP_fast_assign(
-               tp_assign(clnt, clnt)
-               tp_assign(task, task)
-               tp_assign(timeout, task->tk_timeout)
-               tp_assign(runstate, task->tk_runstate)
-               tp_assign(status, task->tk_status)
-               tp_assign(flags, task->tk_flags)
-               tp_strcpy(q_name, rpc_qname(q))
-               ),
-
-       TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s",
-               __entry->task,
-               __entry->clnt,
-               __entry->flags,
-               __entry->runstate,
-               __entry->status,
-               __entry->timeout,
-               __get_str(q_name)
-               )
+       TP_FIELDS(
+               ctf_integer(const struct rpc_clnt *, clnt, clnt)
+               ctf_integer(const struct rpc_task *, task, task)
+               ctf_integer(unsigned long, timeout, task->tk_timeout)
+               ctf_integer(unsigned long, runstate, task->tk_runstate)
+               ctf_integer(int, status, task->tk_status)
+               ctf_integer(unsigned short, flags, task->tk_flags)
+               ctf_string(q_name, rpc_qname(q))
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
index 2baebc8750947f8de2393ebb834430dfeffc4467..11558232ad19df59da91820b1c0b62bcb968f664 100644 (file)
@@ -23,51 +23,32 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpm_internal,
 
        TP_ARGS(dev, flags),
 
-       TP_STRUCT__entry(
-               __string(       name,           dev_name(dev)   )
-               __field(        int,            flags           )
-               __field(        int ,           usage_count     )
-               __field(        int ,           disable_depth   )
-               __field(        int ,           runtime_auto    )
-               __field(        int ,           request_pending )
-               __field(        int ,           irq_safe        )
-               __field(        int ,           child_count     )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, dev_name(dev))
-               tp_assign(flags, flags)
-               tp_assign(usage_count, atomic_read(&dev->power.usage_count))
-               tp_assign(disable_depth, dev->power.disable_depth)
-               tp_assign(runtime_auto, dev->power.runtime_auto)
-               tp_assign(request_pending, dev->power.request_pending)
-               tp_assign(irq_safe, dev->power.irq_safe)
-               tp_assign(child_count, atomic_read(&dev->power.child_count))
-       ),
-
-       TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d"
-                       " irq-%-1d child-%d",
-                       __get_str(name), __entry->flags,
-                       __entry->usage_count,
-                       __entry->disable_depth,
-                       __entry->runtime_auto,
-                       __entry->request_pending,
-                       __entry->irq_safe,
-                       __entry->child_count
-                )
+       TP_FIELDS(
+               ctf_string(name, dev_name(dev))
+               ctf_integer(int, flags, flags)
+               ctf_integer(int, usage_count, atomic_read(&dev->power.usage_count))
+               ctf_integer(int, disable_depth, dev->power.disable_depth)
+               ctf_integer(int, runtime_auto, dev->power.runtime_auto)
+               ctf_integer(int, request_pending, dev->power.request_pending)
+               ctf_integer(int, irq_safe, dev->power.irq_safe)
+               ctf_integer(int, child_count, atomic_read(&dev->power.child_count))
+       )
 )
+
 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpm_internal, rpm_suspend,
 
        TP_PROTO(struct device *dev, int flags),
 
        TP_ARGS(dev, flags)
 )
+
 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpm_internal, rpm_resume,
 
        TP_PROTO(struct device *dev, int flags),
 
        TP_ARGS(dev, flags)
 )
+
 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpm_internal, rpm_idle,
 
        TP_PROTO(struct device *dev, int flags),
@@ -79,20 +60,11 @@ LTTNG_TRACEPOINT_EVENT(rpm_return_int,
        TP_PROTO(struct device *dev, unsigned long ip, int ret),
        TP_ARGS(dev, ip, ret),
 
-       TP_STRUCT__entry(
-               __string(       name,           dev_name(dev))
-               __field(        unsigned long,          ip      )
-               __field(        int,                    ret     )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, dev_name(dev))
-               tp_assign(ip, ip)
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name),
-               __entry->ret)
+       TP_FIELDS(
+               ctf_string(name, dev_name(dev))
+               ctf_integer(unsigned long, ip, ip)
+               ctf_integer(int, ret, ret)
+       )
 )
 
 #endif /* LTTNG_TRACE_RUNTIME_POWER_H */
index 1bea326135a428e0db10c42388a9683d58edd745..ac61bcef3d4a79335a53166574d9b39a99c79813 100644 (file)
@@ -99,17 +99,10 @@ LTTNG_TRACEPOINT_EVENT(sched_kthread_stop,
 
        TP_ARGS(t),
 
-       TP_STRUCT__entry(
-               __array_text(   char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  tid                     )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, t->comm, TASK_COMM_LEN)
-               tp_assign(tid, t->pid)
-       ),
-
-       TP_printk("comm=%s tid=%d", __entry->comm, __entry->tid)
+       TP_FIELDS(
+               ctf_array_text(char, comm, t->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, t->pid)
+       )
 )
 
 /*
@@ -121,15 +114,9 @@ LTTNG_TRACEPOINT_EVENT(sched_kthread_stop_ret,
 
        TP_ARGS(ret),
 
-       TP_STRUCT__entry(
-               __field(        int,    ret     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(ret, ret)
-       ),
-
-       TP_printk("ret=%d", __entry->ret)
+       TP_FIELDS(
+               ctf_integer(int, ret, ret)
+       )
 )
 
 /*
@@ -147,40 +134,15 @@ LTTNG_TRACEPOINT_EVENT_CLASS(sched_wakeup_template,
        TP_ARGS(rq, p, success),
 #endif
 
-       TP_STRUCT__entry(
-               __array_text(   char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  tid                     )
-               __field(        int,    prio                    )
-               __field(        int,    success                 )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
-               __field(        int,    target_cpu              )
-#endif
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, p->comm, TASK_COMM_LEN)
-               tp_assign(tid, p->pid)
-               tp_assign(prio, p->prio)
-               tp_assign(success, success)
+       TP_FIELDS(
+               ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, p->pid)
+               ctf_integer(int, prio, p->prio)
+               ctf_integer(int, success, success)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
-               tp_assign(target_cpu, task_cpu(p))
+               ctf_integer(int, target_cpu, task_cpu(p))
 #endif
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
        )
-       TP_perf_assign(
-               __perf_task(p)
-#endif
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
-       TP_printk("comm=%s tid=%d prio=%d success=%d target_cpu=%03d",
-                 __entry->comm, __entry->tid, __entry->prio,
-                 __entry->success, __entry->target_cpu)
-#else
-       TP_printk("comm=%s tid=%d prio=%d success=%d",
-                 __entry->comm, __entry->tid, __entry->prio,
-                 __entry->success)
-#endif
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
@@ -228,50 +190,19 @@ LTTNG_TRACEPOINT_EVENT(sched_switch,
        TP_ARGS(rq, prev, next),
 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */
 
-       TP_STRUCT__entry(
-               __array_text(   char,   prev_comm,      TASK_COMM_LEN   )
-               __field(        pid_t,  prev_tid                        )
-               __field(        int,    prev_prio                       )
-               __field(        long,   prev_state                      )
-               __array_text(   char,   next_comm,      TASK_COMM_LEN   )
-               __field(        pid_t,  next_tid                        )
-               __field(        int,    next_prio                       )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(next_comm, next->comm, TASK_COMM_LEN)
-               tp_assign(prev_tid, prev->pid)
-               tp_assign(prev_prio, prev->prio - MAX_RT_PRIO)
+       TP_FIELDS(
+               ctf_array_text(char, prev_comm, prev->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, prev_tid, prev->pid)
+               ctf_integer(int, prev_prio, prev->prio - MAX_RT_PRIO)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
-               tp_assign(prev_state, __trace_sched_switch_state(prev))
+               ctf_integer(long, prev_state, __trace_sched_switch_state(prev))
 #else
-               tp_assign(prev_state, prev->state)
-#endif
-               tp_memcpy(prev_comm, prev->comm, TASK_COMM_LEN)
-               tp_assign(next_tid, next->pid)
-               tp_assign(next_prio, next->prio - MAX_RT_PRIO)
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-       TP_printk("prev_comm=%s prev_tid=%d prev_prio=%d prev_state=%s%s ==> next_comm=%s next_tid=%d next_prio=%d",
-               __entry->prev_comm, __entry->prev_tid, __entry->prev_prio,
-               __entry->prev_state & (TASK_STATE_MAX-1) ?
-                 __print_flags(__entry->prev_state & (TASK_STATE_MAX-1), "|",
-                               { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" },
-                               { 16, "Z" }, { 32, "X" }, { 64, "x" },
-                               { 128, "W" }) : "R",
-               __entry->prev_state & TASK_STATE_MAX ? "+" : "",
-               __entry->next_comm, __entry->next_tid, __entry->next_prio)
-#else
-       TP_printk("prev_comm=%s prev_tid=%d prev_prio=%d prev_state=%s ==> next_comm=%s next_tid=%d next_prio=%d",
-               __entry->prev_comm, __entry->prev_tid, __entry->prev_prio,
-               __entry->prev_state ?
-                 __print_flags(__entry->prev_state, "|",
-                               { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" },
-                               { 16, "Z" }, { 32, "X" }, { 64, "x" },
-                               { 128, "W" }) : "R",
-               __entry->next_comm, __entry->next_tid, __entry->next_prio)
+               ctf_integer(long, prev_state, prev->state)
 #endif
+               ctf_array_text(char, next_comm, next->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, next_tid, next->pid)
+               ctf_integer(int, next_prio, next->prio - MAX_RT_PRIO)
+       )
 )
 
 /*
@@ -283,25 +214,13 @@ LTTNG_TRACEPOINT_EVENT(sched_migrate_task,
 
        TP_ARGS(p, dest_cpu),
 
-       TP_STRUCT__entry(
-               __array_text(   char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  tid                     )
-               __field(        int,    prio                    )
-               __field(        int,    orig_cpu                )
-               __field(        int,    dest_cpu                )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, p->comm, TASK_COMM_LEN)
-               tp_assign(tid, p->pid)
-               tp_assign(prio, p->prio - MAX_RT_PRIO)
-               tp_assign(orig_cpu, task_cpu(p))
-               tp_assign(dest_cpu, dest_cpu)
-       ),
-
-       TP_printk("comm=%s tid=%d prio=%d orig_cpu=%d dest_cpu=%d",
-                 __entry->comm, __entry->tid, __entry->prio,
-                 __entry->orig_cpu, __entry->dest_cpu)
+       TP_FIELDS(
+               ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, p->pid)
+               ctf_integer(int, prio, p->prio - MAX_RT_PRIO)
+               ctf_integer(int, orig_cpu, task_cpu(p))
+               ctf_integer(int, dest_cpu, dest_cpu)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(sched_process_template,
@@ -310,20 +229,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(sched_process_template,
 
        TP_ARGS(p),
 
-       TP_STRUCT__entry(
-               __array_text(   char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  tid                     )
-               __field(        int,    prio                    )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, p->comm, TASK_COMM_LEN)
-               tp_assign(tid, p->pid)
-               tp_assign(prio, p->prio - MAX_RT_PRIO)
-       ),
-
-       TP_printk("comm=%s tid=%d prio=%d",
-                 __entry->comm, __entry->tid, __entry->prio)
+       TP_FIELDS(
+               ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, p->pid)
+               ctf_integer(int, prio, p->prio - MAX_RT_PRIO)
+       )
 )
 
 /*
@@ -363,20 +273,11 @@ LTTNG_TRACEPOINT_EVENT(sched_process_wait,
 
        TP_ARGS(pid),
 
-       TP_STRUCT__entry(
-               __array_text(   char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  tid                     )
-               __field(        int,    prio                    )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, current->comm, TASK_COMM_LEN)
-               tp_assign(tid, pid_nr(pid))
-               tp_assign(prio, current->prio - MAX_RT_PRIO)
-       ),
-
-       TP_printk("comm=%s tid=%d prio=%d",
-                 __entry->comm, __entry->tid, __entry->prio)
+       TP_FIELDS(
+               ctf_array_text(char, comm, current->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, pid_nr(pid))
+               ctf_integer(int, prio, current->prio - MAX_RT_PRIO)
+       )
 )
 
 /*
@@ -393,27 +294,14 @@ LTTNG_TRACEPOINT_EVENT(sched_process_fork,
 
        TP_ARGS(parent, child),
 
-       TP_STRUCT__entry(
-               __array_text(   char,   parent_comm,    TASK_COMM_LEN   )
-               __field(        pid_t,  parent_tid                      )
-               __field(        pid_t,  parent_pid                      )
-               __array_text(   char,   child_comm,     TASK_COMM_LEN   )
-               __field(        pid_t,  child_tid                       )
-               __field(        pid_t,  child_pid                       )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(parent_comm, parent->comm, TASK_COMM_LEN)
-               tp_assign(parent_tid, parent->pid)
-               tp_assign(parent_pid, parent->tgid)
-               tp_memcpy(child_comm, child->comm, TASK_COMM_LEN)
-               tp_assign(child_tid, child->pid)
-               tp_assign(child_pid, child->tgid)
-       ),
-
-       TP_printk("comm=%s tid=%d child_comm=%s child_tid=%d",
-               __entry->parent_comm, __entry->parent_tid,
-               __entry->child_comm, __entry->child_tid)
+       TP_FIELDS(
+               ctf_array_text(char, parent_comm, parent->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, parent_tid, parent->pid)
+               ctf_integer(pid_t, parent_pid, parent->tgid)
+               ctf_array_text(char, child_comm, child->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, child_tid, child->pid)
+               ctf_integer(pid_t, child_pid, child->tgid)
+       )
 )
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
@@ -426,20 +314,11 @@ LTTNG_TRACEPOINT_EVENT(sched_signal_send,
 
        TP_ARGS(sig, p),
 
-       TP_STRUCT__entry(
-               __field(        int,    sig                     )
-               __array(        char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  pid                     )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, p->comm, TASK_COMM_LEN)
-               tp_assign(pid, p->pid)
-               tp_assign(sig, sig)
-       ),
-
-       TP_printk("sig=%d comm=%s pid=%d",
-               __entry->sig, __entry->comm, __entry->pid)
+       TP_FIELDS(
+               ctf_integer(int, sig, sig)
+               ctf_array_text(char, comm, p->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, p->pid)
+       )
 )
 #endif
 
@@ -454,20 +333,11 @@ LTTNG_TRACEPOINT_EVENT(sched_process_exec,
 
        TP_ARGS(p, old_pid, bprm),
 
-       TP_STRUCT__entry(
-               __string(       filename,       bprm->filename  )
-               __field(        pid_t,          tid             )
-               __field(        pid_t,          old_tid         )
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(filename, bprm->filename)
-               tp_assign(tid, p->pid)
-               tp_assign(old_tid, old_pid)
-       ),
-
-       TP_printk("filename=%s tid=%d old_tid=%d", __get_str(filename),
-                 __entry->tid, __entry->old_tid)
+       TP_FIELDS(
+               ctf_string(filename, bprm->filename)
+               ctf_integer(pid_t, tid, p->pid)
+               ctf_integer(pid_t, old_tid, old_pid)
+       )
 )
 #endif
 
@@ -482,24 +352,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(sched_stat_template,
 
        TP_ARGS(tsk, delay),
 
-       TP_STRUCT__entry(
-               __array_text( char,     comm,   TASK_COMM_LEN   )
-               __field( pid_t, tid                     )
-               __field( u64,   delay                   )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, tsk->comm, TASK_COMM_LEN)
-               tp_assign(tid,  tsk->pid)
-               tp_assign(delay, delay)
+       TP_FIELDS(
+               ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, tsk->pid)
+               ctf_integer(u64, delay, delay)
        )
-       TP_perf_assign(
-               __perf_count(delay)
-       ),
-
-       TP_printk("comm=%s tid=%d delay=%Lu [ns]",
-                       __entry->comm, __entry->tid,
-                       (unsigned long long)__entry->delay)
 )
 
 
@@ -546,30 +403,12 @@ LTTNG_TRACEPOINT_EVENT(sched_stat_runtime,
 
        TP_ARGS(tsk, runtime, vruntime),
 
-       TP_STRUCT__entry(
-               __array_text( char,     comm,   TASK_COMM_LEN   )
-               __field( pid_t, tid                     )
-               __field( u64,   runtime                 )
-               __field( u64,   vruntime                        )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, tsk->comm, TASK_COMM_LEN)
-               tp_assign(tid, tsk->pid)
-               tp_assign(runtime, runtime)
-               tp_assign(vruntime, vruntime)
+       TP_FIELDS(
+               ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, tsk->pid)
+               ctf_integer(u64, runtime, runtime)
+               ctf_integer(u64, vruntime, vruntime)
        )
-       TP_perf_assign(
-               __perf_count(runtime)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
-               __perf_task(tsk)
-#endif
-       ),
-
-       TP_printk("comm=%s tid=%d runtime=%Lu [ns] vruntime=%Lu [ns]",
-                       __entry->comm, __entry->tid,
-                       (unsigned long long)__entry->runtime,
-                       (unsigned long long)__entry->vruntime)
 )
 #endif
 
@@ -584,23 +423,12 @@ LTTNG_TRACEPOINT_EVENT(sched_pi_setprio,
 
        TP_ARGS(tsk, newprio),
 
-       TP_STRUCT__entry(
-               __array_text( char,     comm,   TASK_COMM_LEN   )
-               __field( pid_t, tid                     )
-               __field( int,   oldprio                 )
-               __field( int,   newprio                 )
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(comm, tsk->comm, TASK_COMM_LEN)
-               tp_assign(tid, tsk->pid)
-               tp_assign(oldprio, tsk->prio - MAX_RT_PRIO)
-               tp_assign(newprio, newprio - MAX_RT_PRIO)
-       ),
-
-       TP_printk("comm=%s tid=%d oldprio=%d newprio=%d",
-                       __entry->comm, __entry->tid,
-                       __entry->oldprio, __entry->newprio)
+       TP_FIELDS(
+               ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, tid, tsk->pid)
+               ctf_integer(int, oldprio, tsk->prio - MAX_RT_PRIO)
+               ctf_integer(int, newprio, newprio - MAX_RT_PRIO)
+       )
 )
 #endif
 
index 05991e79981a39c2b8039d7b65afdbcbb5a25a60..c23c4f2d5c18596cbf240633288c95fc98f1a1b3 100644 (file)
@@ -313,51 +313,20 @@ LTTNG_TRACEPOINT_EVENT(scsi_dispatch_cmd_start,
 
        TP_ARGS(cmd),
 
-       TP_STRUCT__entry(
-               __field( unsigned int,  host_no )
-               __field( unsigned int,  channel )
-               __field( unsigned int,  id      )
-               __field( unsigned int,  lun     )
-               __field( unsigned int,  opcode  )
-               __field( unsigned int,  cmd_len )
-               __field( unsigned int,  data_sglen )
-               __field( unsigned int,  prot_sglen )
+       TP_FIELDS(
+               ctf_integer(unsigned int, host_no, cmd->device->host->host_no)
+               ctf_integer(unsigned int, channel, cmd->device->channel)
+               ctf_integer(unsigned int, id, cmd->device->id)
+               ctf_integer(unsigned int, lun, cmd->device->lun)
+               ctf_integer(unsigned int, opcode, cmd->cmnd[0])
+               ctf_integer(unsigned int, cmd_len, cmd->cmd_len)
+               ctf_integer(unsigned int, data_sglen, scsi_sg_count(cmd))
+               ctf_integer(unsigned int, prot_sglen, scsi_prot_sg_count(cmd))
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               __field( unsigned char, prot_op )
+               ctf_integer(unsigned char, prot_op, scsi_get_prot_op(cmd))
 #endif
-               __dynamic_array_hex(unsigned char,      cmnd, cmd->cmd_len)
-       ),
-
-       TP_fast_assign(
-               tp_assign(host_no, cmd->device->host->host_no)
-               tp_assign(channel, cmd->device->channel)
-               tp_assign(id, cmd->device->id)
-               tp_assign(lun, cmd->device->lun)
-               tp_assign(opcode, cmd->cmnd[0])
-               tp_assign(cmd_len, cmd->cmd_len)
-               tp_assign(data_sglen, scsi_sg_count(cmd))
-               tp_assign(prot_sglen, scsi_prot_sg_count(cmd))
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               tp_assign(prot_op, scsi_get_prot_op(cmd))
-#endif
-               tp_memcpy_dyn(cmnd, cmd->cmnd)
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-       TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \
-                 " prot_op=%s cmnd=(%s %s raw=%s)",
-#else
-       TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \
-                 " cmnd=(%s %s raw=%s)",
-#endif
-                 __entry->host_no, __entry->channel, __entry->id,
-                 __entry->lun, __entry->data_sglen, __entry->prot_sglen,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-                 show_prot_op_name(__entry->prot_op),
-#endif
-                 show_opcode_name(__entry->opcode),
-                 __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len),
-                 __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len))
+               ctf_sequence_hex(unsigned char, cmnd, cmd->cmnd, u32, cmd->cmd_len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(scsi_dispatch_cmd_error,
@@ -366,54 +335,21 @@ LTTNG_TRACEPOINT_EVENT(scsi_dispatch_cmd_error,
 
        TP_ARGS(cmd, rtn),
 
-       TP_STRUCT__entry(
-               __field( unsigned int,  host_no )
-               __field( unsigned int,  channel )
-               __field( unsigned int,  id      )
-               __field( unsigned int,  lun     )
-               __field( int,           rtn     )
-               __field( unsigned int,  opcode  )
-               __field( unsigned int,  cmd_len )
-               __field( unsigned int,  data_sglen )
-               __field( unsigned int,  prot_sglen )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               __field( unsigned char, prot_op )
-#endif
-               __dynamic_array_hex(unsigned char,      cmnd, cmd->cmd_len)
-       ),
-
-       TP_fast_assign(
-               tp_assign(host_no, cmd->device->host->host_no)
-               tp_assign(channel, cmd->device->channel)
-               tp_assign(id, cmd->device->id)
-               tp_assign(lun, cmd->device->lun)
-               tp_assign(rtn, rtn)
-               tp_assign(opcode, cmd->cmnd[0])
-               tp_assign(cmd_len, cmd->cmd_len)
-               tp_assign(data_sglen, scsi_sg_count(cmd))
-               tp_assign(prot_sglen, scsi_prot_sg_count(cmd))
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               tp_assign(prot_op, scsi_get_prot_op(cmd))
-#endif
-               tp_memcpy_dyn(cmnd, cmd->cmnd)
-       ),
-
+       TP_FIELDS(
+               ctf_integer(unsigned int, host_no, cmd->device->host->host_no)
+               ctf_integer(unsigned int, channel, cmd->device->channel)
+               ctf_integer(unsigned int, id, cmd->device->id)
+               ctf_integer(unsigned int, lun, cmd->device->lun)
+               ctf_integer(int, rtn, rtn)
+               ctf_integer(unsigned int, opcode, cmd->cmnd[0])
+               ctf_integer(unsigned int, cmd_len, cmd->cmd_len)
+               ctf_integer(unsigned int, data_sglen, scsi_sg_count(cmd))
+               ctf_integer(unsigned int, prot_sglen, scsi_prot_sg_count(cmd))
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-       TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \
-                 " prot_op=%s cmnd=(%s %s raw=%s) rtn=%d",
-#else
-       TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \
-                 " cmnd=(%s %s raw=%s) rtn=%d",
+               ctf_integer(unsigned char, prot_op, scsi_get_prot_op(cmd))
 #endif
-                 __entry->host_no, __entry->channel, __entry->id,
-                 __entry->lun, __entry->data_sglen, __entry->prot_sglen,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-                 show_prot_op_name(__entry->prot_op),
-#endif
-                 show_opcode_name(__entry->opcode),
-                 __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len),
-                 __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len),
-                 __entry->rtn)
+               ctf_sequence_hex(unsigned char, cmnd, cmd->cmnd, u32, cmd->cmd_len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(scsi_cmd_done_timeout_template,
@@ -422,59 +358,21 @@ LTTNG_TRACEPOINT_EVENT_CLASS(scsi_cmd_done_timeout_template,
 
        TP_ARGS(cmd),
 
-       TP_STRUCT__entry(
-               __field( unsigned int,  host_no )
-               __field( unsigned int,  channel )
-               __field( unsigned int,  id      )
-               __field( unsigned int,  lun     )
-               __field( int,           result  )
-               __field( unsigned int,  opcode  )
-               __field( unsigned int,  cmd_len )
-               __field( unsigned int,  data_sglen )
-               __field( unsigned int,  prot_sglen )
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               __field( unsigned char, prot_op )
-#endif
-               __dynamic_array_hex(unsigned char,      cmnd, cmd->cmd_len)
-       ),
-
-       TP_fast_assign(
-               tp_assign(host_no, cmd->device->host->host_no)
-               tp_assign(channel, cmd->device->channel)
-               tp_assign(id, cmd->device->id)
-               tp_assign(lun, cmd->device->lun)
-               tp_assign(result, cmd->result)
-               tp_assign(opcode, cmd->cmnd[0])
-               tp_assign(cmd_len, cmd->cmd_len)
-               tp_assign(data_sglen, scsi_sg_count(cmd))
-               tp_assign(prot_sglen, scsi_prot_sg_count(cmd))
+       TP_FIELDS(
+               ctf_integer(unsigned int, host_no, cmd->device->host->host_no)
+               ctf_integer(unsigned int, channel, cmd->device->channel)
+               ctf_integer(unsigned int, id, cmd->device->id)
+               ctf_integer(unsigned int, lun, cmd->device->lun)
+               ctf_integer(int, result, cmd->result)
+               ctf_integer(unsigned int, opcode, cmd->cmnd[0])
+               ctf_integer(unsigned int, cmd_len, cmd->cmd_len)
+               ctf_integer(unsigned int, data_sglen, scsi_sg_count(cmd))
+               ctf_integer(unsigned int, prot_sglen, scsi_prot_sg_count(cmd))
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-               tp_assign(prot_op, scsi_get_prot_op(cmd))
+               ctf_integer(unsigned char, prot_op, scsi_get_prot_op(cmd))
 #endif
-               tp_memcpy_dyn(cmnd, cmd->cmnd)
-       ),
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-       TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \
-                 "prot_sgl=%u prot_op=%s cmnd=(%s %s raw=%s) result=(driver=" \
-                 "%s host=%s message=%s status=%s)",
-#else
-       TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \
-                 "prot_sgl=%u cmnd=(%s %s raw=%s) result=(driver=%s host=%s " \
-                 "message=%s status=%s)",
-#endif
-                 __entry->host_no, __entry->channel, __entry->id,
-                 __entry->lun, __entry->data_sglen, __entry->prot_sglen,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
-                 show_prot_op_name(__entry->prot_op),
-#endif
-                 show_opcode_name(__entry->opcode),
-                 __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len),
-                 __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len),
-                 show_driverbyte_name(((__entry->result) >> 24) & 0xff),
-                 show_hostbyte_name(((__entry->result) >> 16) & 0xff),
-                 show_msgbyte_name(((__entry->result) >> 8) & 0xff),
-                 show_statusbyte_name(__entry->result & 0xff))
+               ctf_sequence_hex(unsigned char, cmnd, cmd->cmnd, u32, cmd->cmd_len)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done,
@@ -491,15 +389,9 @@ LTTNG_TRACEPOINT_EVENT(scsi_eh_wakeup,
 
        TP_ARGS(shost),
 
-       TP_STRUCT__entry(
-               __field( unsigned int,  host_no )
-       ),
-
-       TP_fast_assign(
-               tp_assign(host_no, shost->host_no)
-       ),
-
-       TP_printk("host_no=%u", __entry->host_no)
+       TP_FIELDS(
+               ctf_integer(unsigned int, host_no, shost->host_no)
+       )
 )
 
 #endif /*  LTTNG_TRACE_SCSI_H */
index d6aabd9a100344c3053dff934168b5f108051146..2c12fab5a1bac8288836e5840b586f93cbcecb31 100644 (file)
 #define _TRACE_SIGNAL_DEF
 #include <linux/signal.h>
 #include <linux/sched.h>
-#undef TP_STORE_SIGINFO
-#define TP_STORE_SIGINFO(info)                                 \
-               tp_assign(errno,                                \
+#undef LTTNG_FIELDS_SIGINFO
+#define LTTNG_FIELDS_SIGINFO(info)                             \
+               ctf_integer(int, errno,                         \
                        (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED || info == SEND_SIG_PRIV) ? \
                        0 :                                     \
                        info->si_errno)                         \
-               tp_assign(code,                                 \
+               ctf_integer(int, code,                          \
                        (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED) ? \
                        SI_USER :                               \
                        ((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
@@ -42,24 +42,12 @@ LTTNG_TRACEPOINT_EVENT(signal_generate,
 
        TP_ARGS(sig, info, task),
 
-       TP_STRUCT__entry(
-               __field(        int,    sig                     )
-               __field(        int,    errno                   )
-               __field(        int,    code                    )
-               __array_text(   char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  pid                     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(sig, sig)
-               TP_STORE_SIGINFO(info)
-               tp_memcpy(comm, task->comm, TASK_COMM_LEN)
-               tp_assign(pid, task->pid)
-       ),
-
-       TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d",
-                 __entry->sig, __entry->errno, __entry->code,
-                 __entry->comm, __entry->pid)
+       TP_FIELDS(
+               ctf_integer(int, sig, sig)
+               LTTNG_FIELDS_SIGINFO(info)
+               ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, pid, task->pid)
+       )
 )
 #else
 LTTNG_TRACEPOINT_EVENT(signal_generate,
@@ -69,29 +57,14 @@ LTTNG_TRACEPOINT_EVENT(signal_generate,
 
        TP_ARGS(sig, info, task, group, result),
 
-       TP_STRUCT__entry(
-               __field(        int,    sig                     )
-               __field(        int,    errno                   )
-               __field(        int,    code                    )
-               __array_text(   char,   comm,   TASK_COMM_LEN   )
-               __field(        pid_t,  pid                     )
-               __field(        int,    group                   )
-               __field(        int,    result                  )
-       ),
-
-       TP_fast_assign(
-               tp_assign(sig, sig)
-               TP_STORE_SIGINFO(info)
-               tp_memcpy(comm, task->comm, TASK_COMM_LEN)
-               tp_assign(pid, task->pid)
-               tp_assign(group, group)
-               tp_assign(result, result)
-       ),
-
-       TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d",
-                 __entry->sig, __entry->errno, __entry->code,
-                 __entry->comm, __entry->pid, __entry->group,
-                 __entry->result)
+       TP_FIELDS(
+               ctf_integer(int, sig, sig)
+               LTTNG_FIELDS_SIGINFO(info)
+               ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, pid, task->pid)
+               ctf_integer(int, group, group)
+               ctf_integer(int, result, result)
+       )
 )
 #endif
 
@@ -115,24 +88,12 @@ LTTNG_TRACEPOINT_EVENT(signal_deliver,
 
        TP_ARGS(sig, info, ka),
 
-       TP_STRUCT__entry(
-               __field(        int,            sig             )
-               __field(        int,            errno           )
-               __field(        int,            code            )
-               __field(        unsigned long,  sa_handler      )
-               __field(        unsigned long,  sa_flags        )
-       ),
-
-       TP_fast_assign(
-               tp_assign(sig, sig)
-               TP_STORE_SIGINFO(info)
-               tp_assign(sa_handler, (unsigned long)ka->sa.sa_handler)
-               tp_assign(sa_flags, ka->sa.sa_flags)
-       ),
-
-       TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx",
-                 __entry->sig, __entry->errno, __entry->code,
-                 __entry->sa_handler, __entry->sa_flags)
+       TP_FIELDS(
+               ctf_integer(int, sig, sig)
+               LTTNG_FIELDS_SIGINFO(info)
+               ctf_integer(unsigned long, sa_handler, (unsigned long) ka->sa.sa_handler)
+               ctf_integer(unsigned long, sa_flags, ka->sa.sa_flags)
+       )
 )
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
@@ -142,21 +103,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(signal_queue_overflow,
 
        TP_ARGS(sig, group, info),
 
-       TP_STRUCT__entry(
-               __field(        int,    sig     )
-               __field(        int,    group   )
-               __field(        int,    errno   )
-               __field(        int,    code    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(sig, sig)
-               tp_assign(group, group)
-               TP_STORE_SIGINFO(info)
-       ),
-
-       TP_printk("sig=%d group=%d errno=%d code=%d",
-                 __entry->sig, __entry->group, __entry->errno, __entry->code)
+       TP_FIELDS(
+               ctf_integer(int, sig, sig)
+               ctf_integer(int, group, group)
+               LTTNG_FIELDS_SIGINFO(info)
+       )
 )
 
 /**
index 106478bdbca8761060b996f71ebbc3c162ea5c18..2079580aa0977a60e020e48461f4dbe6bffa9f71 100644 (file)
@@ -20,20 +20,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb,
 
        TP_ARGS(skb, location),
 
-       TP_STRUCT__entry(
-               __field(        void *,         skbaddr         )
-               __field(        void *,         location        )
-               __field(        unsigned short, protocol        )
-       ),
-
-       TP_fast_assign(
-               tp_assign(skbaddr, skb)
-               tp_assign(location, location)
-               tp_assign(protocol, ntohs(skb->protocol))
-       ),
-
-       TP_printk("skbaddr=%p protocol=%u location=%p",
-               __entry->skbaddr, __entry->protocol, __entry->location)
+       TP_FIELDS(
+               ctf_integer(void *, skbaddr, skb)
+               ctf_integer(void *, location, location)
+               ctf_integer_network(unsigned short, protocol, skb->protocol)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
@@ -45,15 +36,9 @@ LTTNG_TRACEPOINT_EVENT_MAP(consume_skb,
 
        TP_ARGS(skb),
 
-       TP_STRUCT__entry(
-               __field(        void *, skbaddr )
-       ),
-
-       TP_fast_assign(
-               tp_assign(skbaddr, skb)
-       ),
-
-       TP_printk("skbaddr=%p", __entry->skbaddr)
+       TP_FIELDS(
+               ctf_integer(void *, skbaddr, skb)
+       )
 )
 #endif
 
@@ -64,17 +49,10 @@ LTTNG_TRACEPOINT_EVENT(skb_copy_datagram_iovec,
 
        TP_ARGS(skb, len),
 
-       TP_STRUCT__entry(
-               __field(        const void *,           skbaddr         )
-               __field(        int,                    len             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(skbaddr, skb)
-               tp_assign(len, len)
-       ),
-
-       TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len)
+       TP_FIELDS(
+               ctf_integer(const void *, skbaddr, skb)
+               ctf_integer(int, len, len)
+       )
 )
 #endif
 
index 3f48fa3644269e768b98da663666f2fbc2509c2d..c9bf4bf76094e366e26f8520069b524f880ac5b1 100644 (file)
@@ -13,20 +13,11 @@ LTTNG_TRACEPOINT_EVENT(sock_rcvqueue_full,
 
        TP_ARGS(sk, skb),
 
-       TP_STRUCT__entry(
-               __field(int, rmem_alloc)
-               __field(unsigned int, truesize)
-               __field(int, sk_rcvbuf)
-       ),
-
-       TP_fast_assign(
-               tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
-               tp_assign(truesize, skb->truesize)
-               tp_assign(sk_rcvbuf, sk->sk_rcvbuf)
-       ),
-
-       TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d",
-               __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf)
+       TP_FIELDS(
+               ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
+               ctf_integer(unsigned int, truesize, skb->truesize)
+               ctf_integer(int, sk_rcvbuf, sk->sk_rcvbuf)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
@@ -35,31 +26,13 @@ LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
 
        TP_ARGS(sk, prot, allocated),
 
-       TP_STRUCT__entry(
-               __string(name, prot->name)
-               __array(long, sysctl_mem, 3)
-               __field(long, allocated)
-               __field(int, sysctl_rmem)
-               __field(int, rmem_alloc)
-       ),
-
-       TP_fast_assign(
-               tp_strcpy(name, prot->name)
-               tp_memcpy(sysctl_mem, prot->sysctl_mem, 3 * sizeof(long))
-               tp_assign(allocated, allocated)
-               tp_assign(sysctl_rmem, prot->sysctl_rmem[0])
-               tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
-       ),
-
-       TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld "
-               "sysctl_rmem=%d rmem_alloc=%d",
-               __entry->name,
-               __entry->sysctl_mem[0],
-               __entry->sysctl_mem[1],
-               __entry->sysctl_mem[2],
-               __entry->allocated,
-               __entry->sysctl_rmem,
-               __entry->rmem_alloc)
+       TP_FIELDS(
+               ctf_string(name, prot->name)
+               ctf_array(long, sysctl_mem, prot->sysctl_mem, 3)
+               ctf_integer(long, allocated, allocated)
+               ctf_integer(int, sysctl_rmem, prot->sysctl_rmem[0])
+               ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc))
+       )
 )
 
 #endif /* LTTNG_TRACE_SOCK_H */
index 5e409a0b83609be5116a8e163e93431110368224..d00507373f69b1683e18f7ab6808ffe38d6d6f7d 100644 (file)
@@ -21,15 +21,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(timer_class,
 
        TP_ARGS(timer),
 
-       TP_STRUCT__entry(
-               __field( void *,        timer   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(timer, timer)
-       ),
-
-       TP_printk("timer=%p", __entry->timer)
+       TP_FIELDS(
+               ctf_integer(void *, timer, timer)
+       )
 )
 
 /**
@@ -54,23 +48,12 @@ LTTNG_TRACEPOINT_EVENT(timer_start,
 
        TP_ARGS(timer, expires),
 
-       TP_STRUCT__entry(
-               __field( void *,        timer           )
-               __field( void *,        function        )
-               __field( unsigned long, expires         )
-               __field( unsigned long, now             )
-       ),
-
-       TP_fast_assign(
-               tp_assign(timer, timer)
-               tp_assign(function, timer->function)
-               tp_assign(expires, expires)
-               tp_assign(now, jiffies)
-       ),
-
-       TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]",
-                 __entry->timer, __entry->function, __entry->expires,
-                 (long)__entry->expires - __entry->now)
+       TP_FIELDS(
+               ctf_integer(void *, timer, timer)
+               ctf_integer(void *, function, timer->function)
+               ctf_integer(unsigned long, expires, expires)
+               ctf_integer(unsigned long, now, jiffies)
+       )
 )
 
 /**
@@ -85,19 +68,11 @@ LTTNG_TRACEPOINT_EVENT(timer_expire_entry,
 
        TP_ARGS(timer),
 
-       TP_STRUCT__entry(
-               __field( void *,        timer   )
-               __field( unsigned long, now     )
-               __field( void *,        function)
-       ),
-
-       TP_fast_assign(
-               tp_assign(timer, timer)
-               tp_assign(now, jiffies)
-               tp_assign(function, timer->function)
-       ),
-
-       TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now)
+       TP_FIELDS(
+               ctf_integer(void *, timer, timer)
+               ctf_integer(unsigned long, now, jiffies)
+               ctf_integer(void *, function, timer->function)
+       )
 )
 
 /**
@@ -143,23 +118,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_init,
 
        TP_ARGS(hrtimer, clockid, mode),
 
-       TP_STRUCT__entry(
-               __field( void *,                hrtimer         )
-               __field( clockid_t,             clockid         )
-               __field( enum hrtimer_mode,     mode            )
-       ),
-
-       TP_fast_assign(
-               tp_assign(hrtimer, hrtimer)
-               tp_assign(clockid, clockid)
-               tp_assign(mode, mode)
-       ),
-
-       TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer,
-                 __entry->clockid == CLOCK_REALTIME ?
-                       "CLOCK_REALTIME" : "CLOCK_MONOTONIC",
-                 __entry->mode == HRTIMER_MODE_ABS ?
-                       "HRTIMER_MODE_ABS" : "HRTIMER_MODE_REL")
+       TP_FIELDS(
+               ctf_integer(void *, hrtimer, hrtimer)
+               ctf_integer(clockid_t, clockid, clockid)
+               ctf_integer(enum hrtimer_mode, mode, mode)
+       )
 )
 
 /**
@@ -174,26 +137,12 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
 
        TP_ARGS(hrtimer),
 
-       TP_STRUCT__entry(
-               __field( void *,        hrtimer         )
-               __field( void *,        function        )
-               __field( s64,           expires         )
-               __field( s64,           softexpires     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(hrtimer, hrtimer)
-               tp_assign(function, hrtimer->function)
-               tp_assign(expires, hrtimer_get_expires(hrtimer).tv64)
-               tp_assign(softexpires, hrtimer_get_softexpires(hrtimer).tv64)
-       ),
-
-       TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu",
-                 __entry->hrtimer, __entry->function,
-                 (unsigned long long)ktime_to_ns((ktime_t) {
-                                 .tv64 = __entry->expires }),
-                 (unsigned long long)ktime_to_ns((ktime_t) {
-                                 .tv64 = __entry->softexpires }))
+       TP_FIELDS(
+               ctf_integer(void *, hrtimer, hrtimer)
+               ctf_integer(void *, function, hrtimer->function)
+               ctf_integer(s64, expires, hrtimer_get_expires(hrtimer).tv64)
+               ctf_integer(s64, softexpires, hrtimer_get_softexpires(hrtimer).tv64)
+       )
 )
 
 /**
@@ -212,20 +161,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_expire_entry,
 
        TP_ARGS(hrtimer, now),
 
-       TP_STRUCT__entry(
-               __field( void *,        hrtimer )
-               __field( s64,           now     )
-               __field( void *,        function)
-       ),
-
-       TP_fast_assign(
-               tp_assign(hrtimer, hrtimer)
-               tp_assign(now, now->tv64)
-               tp_assign(function, hrtimer->function)
-       ),
-
-       TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function,
-                 (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now }))
+       TP_FIELDS(
+               ctf_integer(void *, hrtimer, hrtimer)
+               ctf_integer(s64, now, now->tv64)
+               ctf_integer(void *, function, hrtimer->function)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(timer_hrtimer_class,
@@ -234,15 +174,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(timer_hrtimer_class,
 
        TP_ARGS(hrtimer),
 
-       TP_STRUCT__entry(
-               __field( void *,        hrtimer )
-       ),
-
-       TP_fast_assign(
-               tp_assign(hrtimer, hrtimer)
-       ),
-
-       TP_printk("hrtimer=%p", __entry->hrtimer)
+       TP_FIELDS(
+               ctf_integer(void *, hrtimer, hrtimer)
+       )
 )
 
 /**
@@ -290,28 +224,14 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_state,
 
        TP_ARGS(which, value, expires),
 
-       TP_STRUCT__entry(
-               __field(        int,            which           )
-               __field(        cputime_t,      expires         )
-               __field(        long,           value_sec       )
-               __field(        long,           value_usec      )
-               __field(        long,           interval_sec    )
-               __field(        long,           interval_usec   )
-       ),
-
-       TP_fast_assign(
-               tp_assign(which, which)
-               tp_assign(expires, expires)
-               tp_assign(value_sec, value->it_value.tv_sec)
-               tp_assign(value_usec, value->it_value.tv_usec)
-               tp_assign(interval_sec, value->it_interval.tv_sec)
-               tp_assign(interval_usec, value->it_interval.tv_usec)
-       ),
-
-       TP_printk("which=%d expires=%llu it_value=%ld.%ld it_interval=%ld.%ld",
-                 __entry->which, (unsigned long long)__entry->expires,
-                 __entry->value_sec, __entry->value_usec,
-                 __entry->interval_sec, __entry->interval_usec)
+       TP_FIELDS(
+               ctf_integer(int, which, which)
+               ctf_integer(cputime_t, expires, expires)
+               ctf_integer(long, value_sec, value->it_value.tv_sec)
+               ctf_integer(long, value_usec, value->it_value.tv_usec)
+               ctf_integer(long, interval_sec, value->it_interval.tv_sec)
+               ctf_integer(long, interval_usec, value->it_interval.tv_usec)
+       )
 )
 
 /**
@@ -328,20 +248,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire,
 
        TP_ARGS(which, pid, now),
 
-       TP_STRUCT__entry(
-               __field( int ,          which   )
-               __field( pid_t,         pid     )
-               __field( cputime_t,     now     )
-       ),
-
-       TP_fast_assign(
-               tp_assign(which, which)
-               tp_assign(now, now)
-               tp_assign(pid, pid_nr(pid))
-       ),
-
-       TP_printk("which=%d pid=%d now=%llu", __entry->which,
-                 (int) __entry->pid, (unsigned long long)__entry->now)
+       TP_FIELDS(
+               ctf_integer(int , which, which)
+               ctf_integer(pid_t, pid, pid_nr(pid))
+               ctf_integer(cputime_t, now, now)
+       )
 )
 
 #endif /*  LTTNG_TRACE_TIMER_H */
index bcb44d87fbf70e2d44bc180b41660509f3f49f17..fddc3e4701c4460aa7abb7dff3238985ac4cd323 100644 (file)
@@ -13,17 +13,10 @@ LTTNG_TRACEPOINT_EVENT(udp_fail_queue_rcv_skb,
 
        TP_ARGS(rc, sk),
 
-       TP_STRUCT__entry(
-               __field(int, rc)
-               __field(__u16, lport)
-       ),
-
-       TP_fast_assign(
-               tp_assign(rc, rc)
-               tp_assign(lport, inet_sk(sk)->inet_num)
-       ),
-
-       TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport)
+       TP_FIELDS(
+               ctf_integer(int, rc, rc)
+               ctf_integer(__u16, lport, inet_sk(sk)->inet_num)
+       )
 )
 
 #endif /* LTTNG_TRACE_UDP_H */
index 03ab58a7d991309bf13894d9316ea1485d70bb61..696f226f6d2f0e982a92f22fb40a774c93133c19 100644 (file)
 
 #include "../../../probes/lttng-tracepoint-event.h"
 
-#define show_field(field)                                              \
-       __print_symbolic(field,                                         \
-               { V4L2_FIELD_ANY,               "ANY" },                \
-               { V4L2_FIELD_NONE,              "NONE" },               \
-               { V4L2_FIELD_TOP,               "TOP" },                \
-               { V4L2_FIELD_BOTTOM,            "BOTTOM" },             \
-               { V4L2_FIELD_INTERLACED,        "INTERLACED" },         \
-               { V4L2_FIELD_SEQ_TB,            "SEQ_TB" },             \
-               { V4L2_FIELD_SEQ_BT,            "SEQ_BT" },             \
-               { V4L2_FIELD_ALTERNATE,         "ALTERNATE" },          \
-               { V4L2_FIELD_INTERLACED_TB,     "INTERLACED_TB" },      \
-               { V4L2_FIELD_INTERLACED_BT,     "INTERLACED_BT" })
+LTTNG_TRACEPOINT_EVENT_CLASS(v4l2_class,
+
+       TP_PROTO(int minor, struct v4l2_buffer *buf),
+
+       TP_ARGS(minor, buf),
+
+       TP_FIELDS(
+               ctf_integer(int, minor, minor)
+               ctf_integer(u32, index, buf->index)
+               ctf_integer(u32, type, buf->type)
+               ctf_integer(u32, bytesused, buf->bytesused)
+               ctf_integer(u32, flags, buf->flags)
+               ctf_integer(u32, field, buf->field)
+               ctf_integer(s64, timestamp, timeval_to_ns(&buf->timestamp))
+               ctf_integer(u32, timecode_type, buf->timecode.type)
+               ctf_integer(u32, timecode_flags, buf->timecode.flags)
+               ctf_integer(u8, timecode_frames, buf->timecode.frames)
+               ctf_integer(u8, timecode_seconds, buf->timecode.seconds)
+               ctf_integer(u8, timecode_minutes, buf->timecode.minutes)
+               ctf_integer(u8, timecode_hours, buf->timecode.hours)
+               ctf_array(u8, timecode_userbits, buf->timecode.userbits, 4)
+               ctf_integer(u32, sequence, buf->sequence)
+       )
+)
 
-#define show_timecode_type(type)                                       \
-       __print_symbolic(type,                                          \
-               { V4L2_TC_TYPE_24FPS,           "24FPS" },              \
-               { V4L2_TC_TYPE_25FPS,           "25FPS" },              \
-               { V4L2_TC_TYPE_30FPS,           "30FPS" },              \
-               { V4L2_TC_TYPE_50FPS,           "50FPS" },              \
-               { V4L2_TC_TYPE_60FPS,           "60FPS" })
+LTTNG_TRACEPOINT_EVENT_INSTANCE(v4l2_class,
+       v4l2_dqbuf,
 
-#define show_flags(flags)                                                    \
-       __print_flags(flags, "|",                                             \
-               { V4L2_BUF_FLAG_MAPPED,              "MAPPED" },              \
-               { V4L2_BUF_FLAG_QUEUED,              "QUEUED" },              \
-               { V4L2_BUF_FLAG_DONE,                "DONE" },                \
-               { V4L2_BUF_FLAG_KEYFRAME,            "KEYFRAME" },            \
-               { V4L2_BUF_FLAG_PFRAME,              "PFRAME" },              \
-               { V4L2_BUF_FLAG_BFRAME,              "BFRAME" },              \
-               { V4L2_BUF_FLAG_ERROR,               "ERROR" },               \
-               { V4L2_BUF_FLAG_TIMECODE,            "TIMECODE" },            \
-               { V4L2_BUF_FLAG_PREPARED,            "PREPARED" },            \
-               { V4L2_BUF_FLAG_NO_CACHE_INVALIDATE, "NO_CACHE_INVALIDATE" }, \
-               { V4L2_BUF_FLAG_NO_CACHE_CLEAN,      "NO_CACHE_CLEAN" },      \
-               { V4L2_BUF_FLAG_TIMESTAMP_MASK,      "TIMESTAMP_MASK" },      \
-               { V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN,   "TIMESTAMP_UNKNOWN" },   \
-               { V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC, "TIMESTAMP_MONOTONIC" }, \
-               { V4L2_BUF_FLAG_TIMESTAMP_COPY,      "TIMESTAMP_COPY" })
+       TP_PROTO(int minor, struct v4l2_buffer *buf),
 
-#define show_timecode_flags(flags)                                       \
-       __print_flags(flags, "|",                                         \
-               { V4L2_TC_FLAG_DROPFRAME,       "DROPFRAME" },            \
-               { V4L2_TC_FLAG_COLORFRAME,      "COLORFRAME" },           \
-               { V4L2_TC_USERBITS_USERDEFINED, "USERBITS_USERDEFINED" }, \
-               { V4L2_TC_USERBITS_8BITCHARS,   "USERBITS_8BITCHARS" })
+       TP_ARGS(minor, buf)
+)
 
-#define LTTNG_TRACEPOINT_EVENT_V4L2(event_name)                                \
-       LTTNG_TRACEPOINT_EVENT(event_name,                                              \
-               TP_PROTO(int minor, struct v4l2_buffer *buf),           \
-                                                                       \
-               TP_ARGS(minor, buf),                                    \
-                                                                       \
-               TP_STRUCT__entry(                                       \
-                       __field(int, minor)                             \
-                       __field(u32, index)                             \
-                       __field(u32, type)                              \
-                       __field(u32, bytesused)                         \
-                       __field(u32, flags)                             \
-                       __field(u32, field)                             \
-                       __field(s64, timestamp)                         \
-                       __field(u32, timecode_type)                     \
-                       __field(u32, timecode_flags)                    \
-                       __field(u8, timecode_frames)                    \
-                       __field(u8, timecode_seconds)                   \
-                       __field(u8, timecode_minutes)                   \
-                       __field(u8, timecode_hours)                     \
-                       __field(u8, timecode_userbits0)                 \
-                       __field(u8, timecode_userbits1)                 \
-                       __field(u8, timecode_userbits2)                 \
-                       __field(u8, timecode_userbits3)                 \
-                       __field(u32, sequence)                          \
-               ),                                                      \
-                                                                       \
-               TP_fast_assign(                                         \
-                       tp_assign(minor, minor);                        \
-                       tp_assign(index, buf->index);                   \
-                       tp_assign(type, buf->type);                     \
-                       tp_assign(bytesused, buf->bytesused);           \
-                       tp_assign(flags, buf->flags);                   \
-                       tp_assign(field, buf->field);                   \
-                       tp_assign(timestamp,                            \
-                               timeval_to_ns(&buf->timestamp));        \
-                       tp_assign(timecode_type, buf->timecode.type);   \
-                       tp_assign(timecode_flags, buf->timecode.flags); \
-                       tp_assign(timecode_frames,                      \
-                               buf->timecode.frames);                  \
-                       tp_assign(timecode_seconds,                     \
-                               buf->timecode.seconds);                 \
-                       tp_assign(timecode_minutes,                     \
-                               buf->timecode.minutes);                 \
-                       tp_assign(timecode_hours, buf->timecode.hours); \
-                       tp_assign(timecode_userbits0,                   \
-                               buf->timecode.userbits[0]);             \
-                       tp_assign(timecode_userbits1,                   \
-                               buf->timecode.userbits[1]);             \
-                       tp_assign(timecode_userbits2,                   \
-                               buf->timecode.userbits[2]);             \
-                       tp_assign(timecode_userbits3,                   \
-                               buf->timecode.userbits[3]);             \
-                       tp_assign(sequence, buf->sequence);             \
-               ),                                                      \
-                                                                       \
-               TP_printk("minor = %d, index = %u, type = %s, "         \
-                         "bytesused = %u, flags = %s, "                \
-                         "field = %s, timestamp = %llu, timecode = { " \
-                         "type = %s, flags = %s, frames = %u, "        \
-                         "seconds = %u, minutes = %u, hours = %u, "    \
-                         "userbits = { %u %u %u %u } }, "              \
-                         "sequence = %u", __entry->minor,              \
-                         __entry->index, show_type(__entry->type),     \
-                         __entry->bytesused,                           \
-                         show_flags(__entry->flags),                   \
-                         show_field(__entry->field),                   \
-                         __entry->timestamp,                           \
-                         show_timecode_type(__entry->timecode_type),   \
-                         show_timecode_flags(__entry->timecode_flags), \
-                         __entry->timecode_frames,                     \
-                         __entry->timecode_seconds,                    \
-                         __entry->timecode_minutes,                    \
-                         __entry->timecode_hours,                      \
-                         __entry->timecode_userbits0,                  \
-                         __entry->timecode_userbits1,                  \
-                         __entry->timecode_userbits2,                  \
-                         __entry->timecode_userbits3,                  \
-                         __entry->sequence                             \
-               )                                                       \
-       )
+LTTNG_TRACEPOINT_EVENT_INSTANCE(v4l2_class,
+
+       v4l2_qbuf,
+
+       TP_PROTO(int minor, struct v4l2_buffer *buf),
 
-LTTNG_TRACEPOINT_EVENT_V4L2(v4l2_dqbuf)
-LTTNG_TRACEPOINT_EVENT_V4L2(v4l2_qbuf)
+       TP_ARGS(minor, buf)
+)
 
 #endif /* if !defined(LTTNG_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */
 
index 8393a3311440e47cbece61a92e3a9d583b3236e4..3cdc7f9b279f02bb96465d74d0de7ec4d7bab191 100644 (file)
@@ -24,15 +24,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS(workqueue_work,
 
        TP_ARGS(work),
 
-       TP_STRUCT__entry(
-               __field( void *,        work    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(work, work)
-       ),
-
-       TP_printk("work struct %p", __entry->work)
+       TP_FIELDS(
+               ctf_integer(void *, work, work)
+       )
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
@@ -60,21 +54,11 @@ LTTNG_TRACEPOINT_EVENT(workqueue_queue_work,
        TP_ARGS(req_cpu, cwq, work),
 #endif
 
-       TP_STRUCT__entry(
-               __field( void *,        work    )
-               __field( void *,        function)
-               __field( unsigned int,  req_cpu )
-       ),
-
-       TP_fast_assign(
-               tp_assign(work, work)
-               tp_assign(function, work->func)
-               tp_assign(req_cpu, req_cpu)
-       ),
-
-       TP_printk("work struct=%p function=%pf req_cpu=%u",
-                 __entry->work, __entry->function,
-                 __entry->req_cpu)
+       TP_FIELDS(
+               ctf_integer(void *, work, work)
+               ctf_integer(void *, function, work->func)
+               ctf_integer(unsigned int, req_cpu, req_cpu)
+       )
 )
 
 /**
@@ -105,17 +89,10 @@ LTTNG_TRACEPOINT_EVENT(workqueue_execute_start,
 
        TP_ARGS(work),
 
-       TP_STRUCT__entry(
-               __field( void *,        work    )
-               __field( void *,        function)
-       ),
-
-       TP_fast_assign(
-               tp_assign(work, work)
-               tp_assign(function, work->func)
-       ),
-
-       TP_printk("work struct %p: function %pf", __entry->work, __entry->function)
+       TP_FIELDS(
+               ctf_integer(void *, work, work)
+               ctf_integer(void *, function, work->func)
+       )
 )
 
 /**
@@ -139,20 +116,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(workqueue,
 
        TP_ARGS(wq_thread, work),
 
-       TP_STRUCT__entry(
-               __array(char,           thread_comm,    TASK_COMM_LEN)
-               __field(pid_t,          thread_pid)
-               __field(work_func_t,    func)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN)
-               tp_assign(thread_pid, wq_thread->pid)
-               tp_assign(func, work->func)
-       ),
-
-       TP_printk("thread=%s:%d func=%pf", __entry->thread_comm,
-               __entry->thread_pid, __entry->func)
+       TP_FIELDS(
+               ctf_array(char, thread_comm, wq_thread->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, thread_pid, wq_thread->pid)
+               ctf_integer(work_func_t, func, work->func)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(workqueue, workqueue_insertion,
@@ -176,20 +144,11 @@ LTTNG_TRACEPOINT_EVENT(workqueue_creation,
 
        TP_ARGS(wq_thread, cpu),
 
-       TP_STRUCT__entry(
-               __array(char,   thread_comm,    TASK_COMM_LEN)
-               __field(pid_t,  thread_pid)
-               __field(int,    cpu)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN)
-               tp_assign(thread_pid, wq_thread->pid)
-               tp_assign(cpu, cpu)
-       ),
-
-       TP_printk("thread=%s:%d cpu=%d", __entry->thread_comm,
-               __entry->thread_pid, __entry->cpu)
+       TP_FIELDS(
+               ctf_array(char, thread_comm, wq_thread->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, thread_pid, wq_thread->pid)
+               ctf_integer(int, cpu, cpu)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT(workqueue_destruction,
@@ -198,17 +157,10 @@ LTTNG_TRACEPOINT_EVENT(workqueue_destruction,
 
        TP_ARGS(wq_thread),
 
-       TP_STRUCT__entry(
-               __array(char,   thread_comm,    TASK_COMM_LEN)
-               __field(pid_t,  thread_pid)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN)
-               tp_assign(thread_pid, wq_thread->pid)
-       ),
-
-       TP_printk("thread=%s:%d", __entry->thread_comm, __entry->thread_pid)
+       TP_FIELDS(
+               ctf_array(char, thread_comm, wq_thread->comm, TASK_COMM_LEN)
+               ctf_integer(pid_t, thread_pid, wq_thread->pid)
+       )
 )
 
 #endif
index 79f84b76559f92d72b3d34440c74c23205b900f3..b2148d86b5079ded37d7c60b94a1a96e6fb1e1d4 100644 (file)
@@ -74,46 +74,25 @@ static inline struct backing_dev_info *inode_to_bdi(struct inode *inode)
 LTTNG_TRACEPOINT_EVENT(writeback_dirty_page,
        TP_PROTO(struct page *page, struct address_space *mapping),
        TP_ARGS(page, mapping),
-       TP_STRUCT__entry (
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(pgoff_t, index)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name,
+       TP_FIELDS(
+               ctf_array_text(char, name,
                        mapping ? dev_name(inode_to_bdi(mapping->host)->dev) : "(unknown)", 32)
-               tp_assign(ino, mapping ? mapping->host->i_ino : 0)
-               tp_assign(index, page->index)
-       ),
-       TP_printk("bdi %s: ino=%lu index=%lu",
-               __entry->name,
-               __entry->ino,
-               __entry->index
+               ctf_integer(unsigned long, ino, mapping ? mapping->host->i_ino : 0)
+               ctf_integer(pgoff_t, index, page->index)
        )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_dirty_inode_template,
        TP_PROTO(struct inode *inode, int flags),
        TP_ARGS(inode, flags),
-       TP_STRUCT__entry (
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(unsigned long, state)
-               __field(unsigned long, flags)
-       ),
-       TP_fast_assign(
+       TP_FIELDS(
                /* may be called for files on pseudo FSes w/ unregistered bdi */
-               tp_memcpy(name,
+               ctf_array_text(char, name,
                        inode_to_bdi(inode)->dev ?
                                dev_name(inode_to_bdi(inode)->dev) : "(unknown)", 32)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(state, inode->i_state)
-               tp_assign(flags, flags)
-       ),
-       TP_printk("bdi %s: ino=%lu flags=%s",
-               __entry->name,
-               __entry->ino,
-               show_inode_state(__entry->flags)
+               ctf_integer(unsigned long, ino, inode->i_ino)
+               ctf_integer(unsigned long, state, inode->i_state)
+               ctf_integer(unsigned long, flags, flags)
        )
 )
 #define LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(name) \
@@ -127,21 +106,11 @@ LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(writeback_mark_inode_dirty
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_write_inode_template,
        TP_PROTO(struct inode *inode, struct writeback_control *wbc),
        TP_ARGS(inode, wbc),
-       TP_STRUCT__entry (
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(int, sync_mode)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name,
+       TP_FIELDS(
+               ctf_array_text(char, name,
                        dev_name(inode_to_bdi(inode)->dev), 32)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(sync_mode, wbc->sync_mode)
-       ),
-       TP_printk("bdi %s: ino=%lu sync_mode=%d",
-               __entry->name,
-               __entry->ino,
-               __entry->sync_mode
+               ctf_integer(unsigned long, ino, inode->i_ino)
+               ctf_integer(int, sync_mode, wbc->sync_mode)
        )
 )
 
@@ -157,44 +126,25 @@ LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode)
 LTTNG_TRACEPOINT_EVENT(writeback_dirty_page,
        TP_PROTO(struct page *page, struct address_space *mapping),
        TP_ARGS(page, mapping),
-       TP_STRUCT__entry (
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(pgoff_t, index)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name,
+       TP_FIELDS(
+               ctf_array_text(char, name,
                        mapping ? dev_name(mapping->backing_dev_info->dev) : "(unknown)", 32)
-               tp_assign(ino, mapping ? mapping->host->i_ino : 0)
-               tp_assign(index, page->index)
-       ),
-       TP_printk("bdi %s: ino=%lu index=%lu",
-               __entry->name,
-               __entry->ino,
-               __entry->index
+               ctf_integer(unsigned long, ino, mapping ? mapping->host->i_ino : 0)
+               ctf_integer(pgoff_t, index, page->index)
        )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_dirty_inode_template,
        TP_PROTO(struct inode *inode, int flags),
        TP_ARGS(inode, flags),
-       TP_STRUCT__entry (
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(unsigned long, flags)
-       ),
-       TP_fast_assign(
+       TP_FIELDS(
                /* may be called for files on pseudo FSes w/ unregistered bdi */
-               tp_memcpy(name,
+               ctf_array_text(char, name,
                        inode->i_mapping->backing_dev_info->dev ?
-                               dev_name(inode->i_mapping->backing_dev_info->dev) : "(unknown)", 32)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(flags, flags)
-       ),
-       TP_printk("bdi %s: ino=%lu flags=%s",
-               __entry->name,
-               __entry->ino,
-               show_inode_state(__entry->flags)
+                               dev_name(inode->i_mapping->backing_dev_info->dev)
+                               : "(unknown)", 32)
+               ctf_integer(unsigned long, ino, inode->i_ino)
+               ctf_integer(unsigned long, flags, flags)
        )
 )
 #define LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(name) \
@@ -207,21 +157,11 @@ LTTNG_TRACEPOINT_EVENT_WRITEBACK_DIRTY_INODE_TEMPLATE(writeback_dirty_inode)
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_write_inode_template,
        TP_PROTO(struct inode *inode, struct writeback_control *wbc),
        TP_ARGS(inode, wbc),
-       TP_STRUCT__entry (
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(int, sync_mode)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name,
+       TP_FIELDS(
+               ctf_array_text(char, name,
                        dev_name(inode->i_mapping->backing_dev_info->dev), 32)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(sync_mode, wbc->sync_mode)
-       ),
-       TP_printk("bdi %s: ino=%lu sync_mode=%d",
-               __entry->name,
-               __entry->ino,
-               __entry->sync_mode
+               ctf_integer(unsigned long, ino, inode->i_ino)
+               ctf_integer(int, sync_mode, wbc->sync_mode)
        )
 )
 
@@ -239,15 +179,9 @@ LTTNG_TRACEPOINT_EVENT_WRITEBACK_WRITE_INODE(writeback_write_inode)
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
        TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work),
        TP_ARGS(bdi, work),
-       TP_STRUCT__entry(
-               __array_text(char, name, 32)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name, bdi->dev ? dev_name(bdi->dev) :
+       TP_FIELDS(
+               ctf_array_text(char, name, bdi->dev ? dev_name(bdi->dev) :
                                "(unknown)", 32)
-       ),
-       TP_printk("bdi %s",
-                 __entry->name
        )
 )
 
@@ -256,15 +190,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_work_class,
        TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work),
        TP_ARGS(bdi, work),
-       TP_STRUCT__entry(
-               __array_text(char, name, 32)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name, dev_name(bdi->dev ? bdi->dev :
+       TP_FIELDS(
+               ctf_array_text(char, name,
+                       dev_name(bdi->dev ? bdi->dev :
                                default_backing_dev_info.dev), 32)
-       ),
-       TP_printk("bdi %s",
-                 __entry->name
        )
 )
 
@@ -286,26 +215,17 @@ LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE(writeback_wait)
 LTTNG_TRACEPOINT_EVENT(writeback_pages_written,
        TP_PROTO(long pages_written),
        TP_ARGS(pages_written),
-       TP_STRUCT__entry(
-               __field(long,           pages)
-       ),
-       TP_fast_assign(
-               tp_assign(pages, pages_written)
-       ),
-       TP_printk("%ld", __entry->pages)
+       TP_FIELDS(
+               ctf_integer(long, pages, pages_written)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_class,
        TP_PROTO(struct backing_dev_info *bdi),
        TP_ARGS(bdi),
-       TP_STRUCT__entry(
-               __array_text(char, name, 32)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name, dev_name(bdi->dev), 32)
-       ),
-       TP_printk("bdi %s",
-                 __entry->name
+       TP_FIELDS(
+               ctf_array_text(char, name,
+                       dev_name(bdi->dev), 32)
        )
 )
 #undef DEFINE_WRITEBACK_EVENT
@@ -341,19 +261,9 @@ LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_written,
 
        TP_ARGS(bdi, written),
 
-       TP_STRUCT__entry(
-               __array(char,   name, 32)
-               __field(int,    written)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(name, dev_name(bdi->dev), 32)
-               tp_assign(written, written)
-       ),
-
-       TP_printk("bdi %s written %d",
-                 __entry->name,
-                 __entry->written
+       TP_FIELDS(
+               ctf_array_text(char, name, dev_name(bdi->dev), 32)
+               ctf_integer(int, written, written)
        )
 )
 #endif
@@ -361,62 +271,23 @@ LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_written,
 LTTNG_TRACEPOINT_EVENT_CLASS(writeback_wbc_class,
        TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi),
        TP_ARGS(wbc, bdi),
-       TP_STRUCT__entry(
-               __array_text(char, name, 32)
-               __field(long, nr_to_write)
-               __field(long, pages_skipped)
-               __field(int, sync_mode)
-               __field(int, for_kupdate)
-               __field(int, for_background)
-               __field(int, for_reclaim)
-               __field(int, range_cyclic)
+       TP_FIELDS(
+               ctf_array_text(char, name, dev_name(bdi->dev), 32)
+               ctf_integer(long, nr_to_write, wbc->nr_to_write)
+               ctf_integer(long, pages_skipped, wbc->pages_skipped)
+               ctf_integer(int, sync_mode, wbc->sync_mode)
+               ctf_integer(int, for_kupdate, wbc->for_kupdate)
+               ctf_integer(int, for_background, wbc->for_background)
+               ctf_integer(int, for_reclaim, wbc->for_reclaim)
+               ctf_integer(int, range_cyclic, wbc->range_cyclic)
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               __field(int, more_io)
-               __field(unsigned long, older_than_this)
+               ctf_integer(int, more_io, wbc->more_io)
+               ctf_integer(unsigned long, older_than_this,
+                       wbc->older_than_this ? *wbc->older_than_this : 0)
 #endif
-               __field(long, range_start)
-               __field(long, range_end)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(name, dev_name(bdi->dev), 32)
-               tp_assign(nr_to_write, wbc->nr_to_write)
-               tp_assign(pages_skipped, wbc->pages_skipped)
-               tp_assign(sync_mode, wbc->sync_mode)
-               tp_assign(for_kupdate, wbc->for_kupdate)
-               tp_assign(for_background, wbc->for_background)
-               tp_assign(for_reclaim, wbc->for_reclaim)
-               tp_assign(range_cyclic, wbc->range_cyclic)
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               tp_assign(more_io, wbc->more_io)
-               tp_assign(older_than_this, wbc->older_than_this ?
-                                               *wbc->older_than_this : 0)
-#endif
-               tp_assign(range_start, (long)wbc->range_start)
-               tp_assign(range_end, (long)wbc->range_end)
-       ),
-
-       TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d "
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               "bgrd=%d reclm=%d cyclic=%d more=%d older=0x%lx "
-#else
-               "bgrd=%d reclm=%d cyclic=%d "
-#endif
-               "start=0x%lx end=0x%lx",
-               __entry->name,
-               __entry->nr_to_write,
-               __entry->pages_skipped,
-               __entry->sync_mode,
-               __entry->for_kupdate,
-               __entry->for_background,
-               __entry->for_reclaim,
-               __entry->range_cyclic,
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
-               __entry->more_io,
-               __entry->older_than_this,
-#endif
-               __entry->range_start,
-               __entry->range_end)
+               ctf_integer(long, range_start, (long) wbc->range_start)
+               ctf_integer(long, range_end, (long) wbc->range_end)
+       )
 )
 
 #undef DEFINE_WBC_EVENT
@@ -448,38 +319,19 @@ LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
 #else
        TP_ARGS(wb, older_than_this, moved),
 #endif
-       TP_STRUCT__entry(
-               __array(char,           name, 32)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-#else
-               __field(unsigned long,  older)
-               __field(long,           age)
-#endif
-               __field(int,            moved)
-       ),
-       TP_fast_assign(
-               tp_memcpy(name, dev_name(wb->bdi->dev), 32)
+       TP_FIELDS(
+               ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
 #else
-               tp_assign(older, older_than_this ?  *older_than_this : 0)
-               tp_assign(age, older_than_this ?
-                       (jiffies - *older_than_this) * 1000 / HZ : -1)
+               ctf_integer(unsigned long, older,
+                       older_than_this ? *older_than_this : 0)
+               ctf_integer(long, age,
+                       older_than_this ?
+                               (jiffies - *older_than_this) * 1000 / HZ
+                               : -1)
 #endif
-               tp_assign(moved, moved)
-       ),
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-       TP_printk("bdi %s: enqueue=%d",
-               __entry->name,
-               __entry->moved,
-       )
-#else
-       TP_printk("bdi %s: older=%lu age=%ld enqueue=%d",
-               __entry->name,
-               __entry->older, /* older_than_this in jiffies */
-               __entry->age,   /* older_than_this in relative milliseconds */
-               __entry->moved
+               ctf_integer(int, moved, moved)
        )
-#endif
 )
 
 LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
@@ -494,39 +346,15 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
                dirty_thresh
        ),
 
-       TP_STRUCT__entry(
-               __field(unsigned long,  nr_dirty)
-               __field(unsigned long,  nr_writeback)
-               __field(unsigned long,  nr_unstable)
-               __field(unsigned long,  background_thresh)
-               __field(unsigned long,  dirty_thresh)
-               __field(unsigned long,  dirty_limit)
-               __field(unsigned long,  nr_dirtied)
-               __field(unsigned long,  nr_written)
-       ),
-
-       TP_fast_assign(
-               tp_assign(nr_dirty, global_page_state(NR_FILE_DIRTY))
-               tp_assign(nr_writeback, global_page_state(NR_WRITEBACK))
-               tp_assign(nr_unstable, global_page_state(NR_UNSTABLE_NFS))
-               tp_assign(nr_dirtied, global_page_state(NR_DIRTIED))
-               tp_assign(nr_written, global_page_state(NR_WRITTEN))
-               tp_assign(background_thresh, background_thresh)
-               tp_assign(dirty_thresh, dirty_thresh)
-               tp_assign(dirty_limit, global_dirty_limit)
-       ),
-
-       TP_printk("dirty=%lu writeback=%lu unstable=%lu "
-                 "bg_thresh=%lu thresh=%lu limit=%lu "
-                 "dirtied=%lu written=%lu",
-                 __entry->nr_dirty,
-                 __entry->nr_writeback,
-                 __entry->nr_unstable,
-                 __entry->background_thresh,
-                 __entry->dirty_thresh,
-                 __entry->dirty_limit,
-                 __entry->nr_dirtied,
-                 __entry->nr_written
+       TP_FIELDS(
+               ctf_integer(unsigned long, nr_dirty, global_page_state(NR_FILE_DIRTY))
+               ctf_integer(unsigned long, nr_writeback, global_page_state(NR_WRITEBACK))
+               ctf_integer(unsigned long, nr_unstable, global_page_state(NR_UNSTABLE_NFS))
+               ctf_integer(unsigned long, nr_dirtied, global_page_state(NR_DIRTIED))
+               ctf_integer(unsigned long, nr_written, global_page_state(NR_WRITTEN))
+               ctf_integer(unsigned long, background_thresh, background_thresh)
+               ctf_integer(unsigned long, dirty_thresh, dirty_thresh)
+               ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
        )
 )
 #endif
@@ -545,38 +373,15 @@ LTTNG_TRACEPOINT_EVENT_MAP(bdi_dirty_ratelimit,
 
        TP_ARGS(bdi, dirty_rate, task_ratelimit),
 
-       TP_STRUCT__entry(
-               __array(char,           bdi, 32)
-               __field(unsigned long,  write_bw)
-               __field(unsigned long,  avg_write_bw)
-               __field(unsigned long,  dirty_rate)
-               __field(unsigned long,  dirty_ratelimit)
-               __field(unsigned long,  task_ratelimit)
-               __field(unsigned long,  balanced_dirty_ratelimit)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(bdi, dev_name(bdi->dev), 32)
-               tp_assign(write_bw, KBps(bdi->write_bandwidth))
-               tp_assign(avg_write_bw, KBps(bdi->avg_write_bandwidth))
-               tp_assign(dirty_rate, KBps(dirty_rate))
-               tp_assign(dirty_ratelimit, KBps(bdi->dirty_ratelimit))
-               tp_assign(task_ratelimit, KBps(task_ratelimit))
-               tp_assign(balanced_dirty_ratelimit,
+       TP_FIELDS(
+               ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
+               ctf_integer(unsigned long, write_bw, KBps(bdi->write_bandwidth))
+               ctf_integer(unsigned long, avg_write_bw, KBps(bdi->avg_write_bandwidth))
+               ctf_integer(unsigned long, dirty_rate, KBps(dirty_rate))
+               ctf_integer(unsigned long, dirty_ratelimit, KBps(bdi->dirty_ratelimit))
+               ctf_integer(unsigned long, task_ratelimit, KBps(task_ratelimit))
+               ctf_integer(unsigned long, balanced_dirty_ratelimit,
                                        KBps(bdi->balanced_dirty_ratelimit))
-       ),
-
-       TP_printk("bdi %s: "
-                 "write_bw=%lu awrite_bw=%lu dirty_rate=%lu "
-                 "dirty_ratelimit=%lu task_ratelimit=%lu "
-                 "balanced_dirty_ratelimit=%lu",
-                 __entry->bdi,
-                 __entry->write_bw,            /* write bandwidth */
-                 __entry->avg_write_bw,        /* avg write bandwidth */
-                 __entry->dirty_rate,          /* bdi dirty rate */
-                 __entry->dirty_ratelimit,     /* base ratelimit */
-                 __entry->task_ratelimit, /* ratelimit with position control */
-                 __entry->balanced_dirty_ratelimit /* the balanced ratelimit */
        )
 )
 
@@ -602,96 +407,40 @@ LTTNG_TRACEPOINT_EVENT_MAP(balance_dirty_pages,
        TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty,
                dirty_ratelimit, task_ratelimit,
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               dirtied, period, pause, start_time),
+               dirtied, period, pause, start_time
 #else
-               dirtied, pause, start_time),
-#endif
-       TP_STRUCT__entry(
-               __array(         char,  bdi, 32)
-               __field(unsigned long,  limit)
-               __field(unsigned long,  setpoint)
-               __field(unsigned long,  dirty)
-               __field(unsigned long,  bdi_setpoint)
-               __field(unsigned long,  bdi_dirty)
-               __field(unsigned long,  dirty_ratelimit)
-               __field(unsigned long,  task_ratelimit)
-               __field(unsigned int,   dirtied)
-               __field(unsigned int,   dirtied_pause)
-               __field(unsigned long,  paused)
-               __field(         long,  pause)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               __field(unsigned long,  period)
-               __field(         long,  think)
+               dirtied, pause, start_time
 #endif
        ),
 
-       TP_fast_assign(
-               tp_memcpy(bdi, dev_name(bdi->dev), 32)
-               tp_assign(limit, global_dirty_limit)
-               tp_assign(setpoint,
+       TP_FIELDS(
+               ctf_array_text(char, bdi, dev_name(bdi->dev), 32)
+               ctf_integer(unsigned long, limit, global_dirty_limit)
+               ctf_integer(unsigned long, setpoint,
                        (global_dirty_limit + (thresh + bg_thresh) / 2) / 2)
-               tp_assign(dirty, dirty)
-               tp_assign(bdi_setpoint,
+               ctf_integer(unsigned long, dirty, dirty)
+               ctf_integer(unsigned long, bdi_setpoint,
                        ((global_dirty_limit + (thresh + bg_thresh) / 2) / 2) *
-                       bdi_thresh / (thresh + 1))
-               tp_assign(bdi_dirty, bdi_dirty)
-               tp_assign(dirty_ratelimit, KBps(dirty_ratelimit))
-               tp_assign(task_ratelimit, KBps(task_ratelimit))
-               tp_assign(dirtied, dirtied)
-               tp_assign(dirtied_pause, current->nr_dirtied_pause)
+                               bdi_thresh / (thresh + 1))
+               ctf_integer(unsigned long, bdi_dirty, bdi_dirty)
+               ctf_integer(unsigned long, dirty_ratelimit,
+                       KBps(dirty_ratelimit))
+               ctf_integer(unsigned long, task_ratelimit,
+                       KBps(task_ratelimit))
+               ctf_integer(unsigned int, dirtied, dirtied)
+               ctf_integer(unsigned int, dirtied_pause,
+                       current->nr_dirtied_pause)
+               ctf_integer(unsigned long, paused,
+                       (jiffies - start_time) * 1000 / HZ)
+               ctf_integer(long, pause, pause * 1000 / HZ)
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-               tp_assign(think, current->dirty_paused_when == 0 ? 0 :
-                       (long)(jiffies - current->dirty_paused_when) * 1000/HZ)
-               tp_assign(period, period * 1000 / HZ)
-#endif
-               tp_assign(pause, pause * 1000 / HZ)
-               tp_assign(paused, (jiffies - start_time) * 1000 / HZ)
-       ),
-
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
-       TP_printk("bdi %s: "
-                 "limit=%lu setpoint=%lu dirty=%lu "
-                 "bdi_setpoint=%lu bdi_dirty=%lu "
-                 "dirty_ratelimit=%lu task_ratelimit=%lu "
-                 "dirtied=%u dirtied_pause=%u "
-                 "paused=%lu pause=%ld period=%lu think=%ld",
-                 __entry->bdi,
-                 __entry->limit,
-                 __entry->setpoint,
-                 __entry->dirty,
-                 __entry->bdi_setpoint,
-                 __entry->bdi_dirty,
-                 __entry->dirty_ratelimit,
-                 __entry->task_ratelimit,
-                 __entry->dirtied,
-                 __entry->dirtied_pause,
-                 __entry->paused,      /* ms */
-                 __entry->pause,       /* ms */
-                 __entry->period,      /* ms */
-                 __entry->think        /* ms */
-         )
-#else
-       TP_printk("bdi %s: "
-                 "limit=%lu setpoint=%lu dirty=%lu "
-                 "bdi_setpoint=%lu bdi_dirty=%lu "
-                 "dirty_ratelimit=%lu task_ratelimit=%lu "
-                 "dirtied=%u dirtied_pause=%u "
-                 "paused=%lu pause=%ld",
-                 __entry->bdi,
-                 __entry->limit,
-                 __entry->setpoint,
-                 __entry->dirty,
-                 __entry->bdi_setpoint,
-                 __entry->bdi_dirty,
-                 __entry->dirty_ratelimit,
-                 __entry->task_ratelimit,
-                 __entry->dirtied,
-                 __entry->dirtied_pause,
-                 __entry->paused,      /* ms */
-                 __entry->pause        /* ms */
-         )
+               ctf_integer(unsigned long, period,
+                       period * 1000 / HZ)
+               ctf_integer(long, think,
+                       current->dirty_paused_when == 0 ? 0 :
+                               (long)(jiffies - current->dirty_paused_when) * 1000/HZ)
 #endif
+       )
 )
 #endif
 
@@ -701,26 +450,12 @@ LTTNG_TRACEPOINT_EVENT(writeback_sb_inodes_requeue,
        TP_PROTO(struct inode *inode),
        TP_ARGS(inode),
 
-       TP_STRUCT__entry(
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(unsigned long, state)
-               __field(unsigned long, dirtied_when)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(name, dev_name(inode_to_bdi(inode)->dev), 32)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(state, inode->i_state)
-               tp_assign(dirtied_when, inode->dirtied_when)
-       ),
-
-       TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu",
-                 __entry->name,
-                 __entry->ino,
-                 show_inode_state(__entry->state),
-                 __entry->dirtied_when,
-                 (jiffies - __entry->dirtied_when) / HZ
+       TP_FIELDS(
+               ctf_array_text(char, name,
+                       dev_name(inode_to_bdi(inode)->dev), 32)
+               ctf_integer(unsigned long, ino, inode->i_ino)
+               ctf_integer(unsigned long, state, inode->i_state)
+               ctf_integer(unsigned long, dirtied_when, inode->dirtied_when)
        )
 )
 #endif
@@ -732,19 +467,10 @@ LTTNG_TRACEPOINT_EVENT_CLASS(writeback_congest_waited_template,
 
        TP_ARGS(usec_timeout, usec_delayed),
 
-       TP_STRUCT__entry(
-               __field(        unsigned int,   usec_timeout    )
-               __field(        unsigned int,   usec_delayed    )
-       ),
-
-       TP_fast_assign(
-               tp_assign(usec_timeout, usec_timeout)
-               tp_assign(usec_delayed, usec_delayed)
-       ),
-
-       TP_printk("usec_timeout=%u usec_delayed=%u",
-                       __entry->usec_timeout,
-                       __entry->usec_delayed)
+       TP_FIELDS(
+               ctf_integer(unsigned int, usec_timeout, usec_timeout)
+               ctf_integer(unsigned int, usec_delayed, usec_delayed)
+       )
 )
 
 LTTNG_TRACEPOINT_EVENT_INSTANCE(writeback_congest_waited_template, writeback_congestion_wait,
@@ -772,36 +498,17 @@ LTTNG_TRACEPOINT_EVENT_CLASS(writeback_single_inode_template,
 
        TP_ARGS(inode, wbc, nr_to_write),
 
-       TP_STRUCT__entry(
-               __array_text(char, name, 32)
-               __field(unsigned long, ino)
-               __field(unsigned long, state)
-               __field(unsigned long, dirtied_when)
-               __field(unsigned long, writeback_index)
-               __field(long, nr_to_write)
-               __field(unsigned long, wrote)
-       ),
-
-       TP_fast_assign(
-               tp_memcpy(name, dev_name(inode_to_bdi(inode)->dev), 32)
-               tp_assign(ino, inode->i_ino)
-               tp_assign(state, inode->i_state)
-               tp_assign(dirtied_when, inode->dirtied_when)
-               tp_assign(writeback_index, inode->i_mapping->writeback_index)
-               tp_assign(nr_to_write, nr_to_write)
-               tp_assign(wrote, nr_to_write - wbc->nr_to_write)
-       ),
-
-       TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu "
-                 "index=%lu to_write=%ld wrote=%lu",
-                 __entry->name,
-                 __entry->ino,
-                 show_inode_state(__entry->state),
-                 __entry->dirtied_when,
-                 (jiffies - __entry->dirtied_when) / HZ,
-                 __entry->writeback_index,
-                 __entry->nr_to_write,
-                 __entry->wrote
+       TP_FIELDS(
+               ctf_array_text(char, name,
+                       dev_name(inode_to_bdi(inode)->dev), 32)
+               ctf_integer(unsigned long, ino, inode->i_ino)
+               ctf_integer(unsigned long, state, inode->i_state)
+               ctf_integer(unsigned long, dirtied_when, inode->dirtied_when)
+               ctf_integer(unsigned long, writeback_index,
+                       inode->i_mapping->writeback_index)
+               ctf_integer(long, nr_to_write, nr_to_write)
+               ctf_integer(unsigned long, wrote,
+                       nr_to_write - wbc->nr_to_write)
        )
 )
 
index aadc9c37b1d2b3f7870a2ad87f184ae736c0aafc..e3a0a81afb7a5b6f8bc327dce3c3847ec0a8e0b1 100644 (file)
@@ -209,7 +209,7 @@ size_t lib_ring_buffer_do_strcpy_from_user_inatomic(const struct lib_ring_buffer
                int ret;
                char c;
 
-               ret = __get_user(c, &src[count]);
+               ret = __copy_from_user_inatomic(&c, src + count, 1);
                if (ret || !c)
                        break;
                lib_ring_buffer_do_copy(config, &dest[count], &c, 1);
index beaad907d072ca5db410d8fc2a23e1feb0d17a25..d4c5ea0fc8938d1d31b6639357546b24a5d19ffa 100644 (file)
@@ -144,6 +144,51 @@ fd_error:
        return ret;
 }
 
+#ifndef CONFIG_HAVE_SYSCALL_TRACEPOINTS
+static inline
+int lttng_abi_syscall_list(void)
+{
+       return -ENOSYS;
+}
+#else
+static
+int lttng_abi_syscall_list(void)
+{
+       struct file *syscall_list_file;
+       int file_fd, ret;
+
+       file_fd = lttng_get_unused_fd();
+       if (file_fd < 0) {
+               ret = file_fd;
+               goto fd_error;
+       }
+
+       syscall_list_file = anon_inode_getfile("[lttng_syscall_list]",
+                                         &lttng_syscall_list_fops,
+                                         NULL, O_RDWR);
+       if (IS_ERR(syscall_list_file)) {
+               ret = PTR_ERR(syscall_list_file);
+               goto file_error;
+       }
+       ret = lttng_syscall_list_fops.open(NULL, syscall_list_file);
+       if (ret < 0)
+               goto open_error;
+       fd_install(file_fd, syscall_list_file);
+       if (file_fd < 0) {
+               ret = file_fd;
+               goto fd_error;
+       }
+       return file_fd;
+
+open_error:
+       fput(syscall_list_file);
+file_error:
+       put_unused_fd(file_fd);
+fd_error:
+       return ret;
+}
+#endif
+
 static
 void lttng_abi_tracer_version(struct lttng_kernel_tracer_version *v)
 {
index e029bc70f3e862dc4e54800f3e12488a0b61dda2..06eae78586d2d2a853119c7a37db1328c9f17a71 100644 (file)
@@ -161,7 +161,7 @@ struct lttng_kernel_context {
        } u;
 } __attribute__((packed));
 
-#define FILTER_BYTECODE_MAX_LEN                65536
+#define LTTNG_KERNEL_FILTER_BYTECODE_MAX_LEN           65536
 struct lttng_kernel_filter_bytecode {
        uint32_t len;
        uint32_t reloc_offset;
index 15aabe63c3f18bb31800f9b7ed61fc14dd6a859d..28881d05b771eae420114334862610b19b22a265 100644 (file)
@@ -65,6 +65,28 @@ void hostname_record(struct lttng_ctx_field *field,
        }
 }
 
+static
+void hostname_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       struct nsproxy *nsproxy;
+       struct uts_namespace *ns;
+       char *hostname;
+
+       /*
+        * No need to take the RCU read-side lock to read current
+        * nsproxy. (documented in nsproxy.h)
+        */
+       nsproxy = current->nsproxy;
+       if (nsproxy) {
+               ns = nsproxy->uts_ns;
+               hostname = ns->name.nodename;
+       } else {
+               hostname = "";
+       }
+       value->str = hostname;
+}
+
 int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -89,6 +111,7 @@ int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx)
 
        field->get_size = hostname_get_size;
        field->record = hostname_record;
+       field->get_value = hostname_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index 65117f8bce3ed843285d4fa8a4fb8ff24a37998e..412dd93af5299f67e8b679d9f1acaf5ad3839442 100644 (file)
@@ -50,6 +50,13 @@ void nice_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, &nice, sizeof(nice));
 }
 
+static
+void nice_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       value->s64 = task_nice(current);
+}
+
 int lttng_add_nice_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -71,6 +78,7 @@ int lttng_add_nice_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.basic.integer.encoding = lttng_encode_none;
        field->get_size = nice_get_size;
        field->record = nice_record;
+       field->get_value = nice_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index 25cbcbb299d70f6cee9107c959c98aa4595f8f12..3211819d082097596e3802aa5c1620987c1162b7 100644 (file)
@@ -50,6 +50,13 @@ void pid_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, &pid, sizeof(pid));
 }
 
+static
+void pid_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       value->s64 = task_tgid_nr(current);
+}
+
 int lttng_add_pid_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -71,6 +78,7 @@ int lttng_add_pid_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.basic.integer.encoding = lttng_encode_none;
        field->get_size = pid_get_size;
        field->record = pid_record;
+       field->get_value = pid_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index a22c9d83ccd2671133db528ea8b02b64ef242620..33ea1a796e0503d203b64cbd74db7420cb3fb534 100644 (file)
@@ -46,7 +46,6 @@ void ppid_record(struct lttng_ctx_field *field,
 {
        pid_t ppid;
 
-
        /*
         * TODO: when we eventually add RCU subsystem instrumentation,
         * taking the rcu read lock here will trigger RCU tracing
@@ -54,7 +53,6 @@ void ppid_record(struct lttng_ctx_field *field,
         * it synchronizes both for RCU and RCU sched, and rely on
         * rcu_read_lock_sched_notrace.
         */
-
        rcu_read_lock();
        ppid = task_tgid_nr(current->real_parent);
        rcu_read_unlock();
@@ -62,6 +60,25 @@ void ppid_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, &ppid, sizeof(ppid));
 }
 
+static
+void ppid_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       pid_t ppid;
+
+       /*
+        * TODO: when we eventually add RCU subsystem instrumentation,
+        * taking the rcu read lock here will trigger RCU tracing
+        * recursively. We should modify the kernel synchronization so
+        * it synchronizes both for RCU and RCU sched, and rely on
+        * rcu_read_lock_sched_notrace.
+        */
+       rcu_read_lock();
+       ppid = task_tgid_nr(current->real_parent);
+       rcu_read_unlock();
+       value->s64 = ppid;
+}
+
 int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -83,6 +100,7 @@ int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.basic.integer.encoding = lttng_encode_none;
        field->get_size = ppid_get_size;
        field->record = ppid_record;
+       field->get_value = ppid_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index 891a315d7b990cc1133204f7263034faa35be3b4..d9fb6f31da74ad0fec12898a279466c88f2957a5 100644 (file)
@@ -64,6 +64,13 @@ void prio_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, &prio, sizeof(prio));
 }
 
+static
+void prio_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       value->s64 = wrapper_task_prio_sym(current);
+}
+
 int lttng_add_prio_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -92,6 +99,7 @@ int lttng_add_prio_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.basic.integer.encoding = lttng_encode_none;
        field->get_size = prio_get_size;
        field->record = prio_record;
+       field->get_value = prio_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index 5913ee6ac997fefb5a8f65c69cd45aa41a7cc68c..5c1cd3a6b04f7bf23f16239cb2131dffa2f8c755 100644 (file)
@@ -51,6 +51,13 @@ void procname_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, current->comm, sizeof(current->comm));
 }
 
+static
+void procname_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       value->str = current->comm;
+}
+
 int lttng_add_procname_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -75,6 +82,7 @@ int lttng_add_procname_to_ctx(struct lttng_ctx **ctx)
 
        field->get_size = procname_get_size;
        field->record = procname_record;
+       field->get_value = procname_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index 5ddc43c5cfdbcb94587ded42da4594a1c38af4b9..7b8e04bed21518520f3d3a2b45127b08dd2dfb15 100644 (file)
@@ -50,6 +50,16 @@ void tid_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, &tid, sizeof(tid));
 }
 
+static
+void tid_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       pid_t tid;
+
+       tid = task_pid_nr(current);
+       value->s64 = tid;
+}
+
 int lttng_add_tid_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -71,6 +81,7 @@ int lttng_add_tid_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.basic.integer.encoding = lttng_encode_none;
        field->get_size = tid_get_size;
        field->record = tid_record;
+       field->get_value = tid_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index c18c553148d6e41a0339b9f77faf0dbe0fd5c6f9..9f36375db08f449d840742b831cfb04b25a213e4 100644 (file)
@@ -71,6 +71,36 @@ void vppid_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, &vppid, sizeof(vppid));
 }
 
+static
+void vppid_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       struct task_struct *parent;
+       pid_t vppid;
+
+       /*
+        * current nsproxy can be NULL when scheduled out of exit. pid_vnr uses
+        * the current thread nsproxy to perform the lookup.
+        */
+
+       /*
+        * TODO: when we eventually add RCU subsystem instrumentation,
+        * taking the rcu read lock here will trigger RCU tracing
+        * recursively. We should modify the kernel synchronization so
+        * it synchronizes both for RCU and RCU sched, and rely on
+        * rcu_read_lock_sched_notrace.
+        */
+
+       rcu_read_lock();
+       parent = rcu_dereference(current->real_parent);
+       if (!current->nsproxy)
+               vppid = 0;
+       else
+               vppid = task_tgid_vnr(parent);
+       rcu_read_unlock();
+       value->s64 = vppid;
+}
+
 int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -92,6 +122,7 @@ int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.basic.integer.encoding = lttng_encode_none;
        field->get_size = vppid_get_size;
        field->record = vppid_record;
+       field->get_value = vppid_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index 8abba82bfc93c14cf88e19000be7f545a55c98ff..a264424fcf01510d766c1e053ea0e270dffd4efe 100644 (file)
@@ -56,6 +56,22 @@ void vtid_record(struct lttng_ctx_field *field,
        chan->ops->event_write(ctx, &vtid, sizeof(vtid));
 }
 
+static
+void vtid_get_value(struct lttng_ctx_field *field,
+               union lttng_ctx_value *value)
+{
+       pid_t vtid;
+
+       /*
+        * nsproxy can be NULL when scheduled out of exit.
+        */
+       if (!current->nsproxy)
+               vtid = 0;
+       else
+               vtid = task_pid_vnr(current);
+       value->s64 = vtid;
+}
+
 int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
@@ -77,6 +93,7 @@ int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.basic.integer.encoding = lttng_encode_none;
        field->get_size = vtid_get_size;
        field->record = vtid_record;
+       field->get_value = vtid_get_value;
        lttng_context_update(*ctx);
        wrapper_vmalloc_sync_all();
        return 0;
index b625f4391de8d40d634c436ec04253b1808ab81d..c2ce68d7557e5be924b4a6e901f036765b59e32b 100644 (file)
@@ -224,48 +224,47 @@ int lttng_context_init(void)
 {
        int ret;
 
-       ret = lttng_add_vpid_to_ctx(&lttng_static_ctx);
+       ret = lttng_add_hostname_to_ctx(&lttng_static_ctx);
+       if (ret) {
+               printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+       }
+       ret = lttng_add_nice_to_ctx(&lttng_static_ctx);
        if (ret) {
                printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
        }
-#if 0  //TODO
        ret = lttng_add_pid_to_ctx(&lttng_static_ctx);
        if (ret) {
                printk(KERN_WARNING "Cannot add context lttng_add_pthread_id_to_ctx");
        }
-       ret = lttng_add_procname_to_ctx(&lttng_static_ctx);
+       ret = lttng_add_ppid_to_ctx(&lttng_static_ctx);
        if (ret) {
-               printk(KERN_WARNING "Cannot add context lttng_add_vtid_to_ctx");
+               printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
        }
        ret = lttng_add_prio_to_ctx(&lttng_static_ctx);
        if (ret) {
                printk(KERN_WARNING "Cannot add context lttng_add_vpid_to_ctx");
        }
-       ret = lttng_add_nice_to_ctx(&lttng_static_ctx);
+       ret = lttng_add_procname_to_ctx(&lttng_static_ctx);
        if (ret) {
-               printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
+               printk(KERN_WARNING "Cannot add context lttng_add_vtid_to_ctx");
        }
        ret = lttng_add_tid_to_ctx(&lttng_static_ctx);
        if (ret) {
                printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
        }
-       ret = lttng_add_vtid_to_ctx(&lttng_static_ctx);
-       if (ret) {
-               printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
-       }
-       ret = lttng_add_ppid_to_ctx(&lttng_static_ctx);
+       ret = lttng_add_vppid_to_ctx(&lttng_static_ctx);
        if (ret) {
                printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
        }
-       ret = lttng_add_vppid_to_ctx(&lttng_static_ctx);
+       ret = lttng_add_vtid_to_ctx(&lttng_static_ctx);
        if (ret) {
                printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
        }
-       ret = lttng_add_hostname_to_ctx(&lttng_static_ctx);
+       ret = lttng_add_vpid_to_ctx(&lttng_static_ctx);
        if (ret) {
                printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx");
        }
-#endif
+       /* TODO: perf counters for filtering */
        return 0;
 }
 
index c103c6ed0d8a53392afd21352734587819bb3d2e..ea22a35c6a317c5a81500f3752a250fdd197ee73 100644 (file)
@@ -671,7 +671,7 @@ static
 void register_event(struct lttng_event *event)
 {
        const struct lttng_event_desc *desc;
-       int ret;
+       int ret = -EINVAL;
 
        if (event->registered)
                return;
@@ -1218,6 +1218,11 @@ int lttng_enabler_ref_events(struct lttng_enabler *enabler)
                                &event->enablers_ref_head);
                }
 
+               /*
+                * Link filter bytecodes if not linked yet.
+                */
+               lttng_enabler_event_link_bytecode(event, enabler);
+
                /* TODO: merge event context. */
        }
        return 0;
@@ -1404,9 +1409,8 @@ void lttng_session_sync_enablers(struct lttng_session *session)
 
                /* Enable filters */
                list_for_each_entry(runtime,
-                               &event->bytecode_runtime_head, node) {
+                               &event->bytecode_runtime_head, node)
                        lttng_filter_sync_state(runtime);
-               }
        }
 }
 
index d9fdd0cf091b117d68f5cfe0de0edf99af1c835a..a420dee26167ac9e03bf141ce3fa28a729376377 100644 (file)
@@ -31,6 +31,9 @@
 #include "lttng-abi.h"
 #include "lttng-abi-old.h"
 
+/* FIXME test */
+#undef CONFIG_HAVE_SYSCALL_TRACEPOINTS
+
 #define lttng_is_signed_type(type)     (((type)(-1)) < 0)
 
 struct lttng_channel;
@@ -138,6 +141,8 @@ struct lttng_enum {
 struct lttng_event_field {
        const char *name;
        struct lttng_type type;
+       unsigned int nowrite:1,         /* do not write into trace */
+                       user:1;         /* fetch from user-space */
 };
 
 union lttng_ctx_value {
@@ -567,22 +572,19 @@ static inline int lttng_syscalls_unregister(struct lttng_channel *chan)
        return 0;
 }
 
-static inline
-int lttng_syscall_filter_enable(struct lttng_channel *chan,
+static inline int lttng_syscall_filter_enable(struct lttng_channel *chan,
                const char *name)
 {
        return -ENOSYS;
 }
 
-static inline
-int lttng_syscall_filter_disable(struct lttng_channel *chan,
+static inline int lttng_syscall_filter_disable(struct lttng_channel *chan,
                const char *name)
 {
        return -ENOSYS;
 }
 
-static inline
-long lttng_channel_syscall_mask(struct lttng_channel *channel,
+static inline long lttng_channel_syscall_mask(struct lttng_channel *channel,
                struct lttng_kernel_syscall_mask __user *usyscall_mask)
 {
        return -ENOSYS;
@@ -598,6 +600,8 @@ int lttng_abi_syscall_list(void)
 void lttng_filter_sync_state(struct lttng_bytecode_runtime *runtime);
 int lttng_enabler_attach_bytecode(struct lttng_enabler *enabler,
                struct lttng_kernel_filter_bytecode __user *bytecode);
+void lttng_enabler_event_link_bytecode(struct lttng_event *event,
+               struct lttng_enabler *enabler);
 
 extern struct lttng_ctx *lttng_static_ctx;
 
index 4018264d196bc6bdcc00533154abee3db42f4705..ffce2150af3aacdb62789a21e413f9d7bb50ccac 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <linux/uaccess.h>
+
 #include "lttng-filter.h"
 
+/*
+ * get_char should be called with page fault handler disabled if it is expected
+ * to handle user-space read.
+ */
+static
+char get_char(struct estack_entry *reg, size_t offset)
+{
+       if (unlikely(offset >= reg->u.s.seq_len))
+               return '\0';
+       if (reg->u.s.user) {
+               char c;
+
+               /* Handle invalid access as end of string. */
+               if (unlikely(!access_ok(VERIFY_READ,
+                               reg->u.s.user_str + offset,
+                               sizeof(c))))
+                       return '\0';
+               /* Handle fault (nonzero return value) as end of string. */
+               if (unlikely(__copy_from_user_inatomic(&c,
+                               reg->u.s.user_str + offset,
+                               sizeof(c))))
+                       return '\0';
+               return c;
+       } else {
+               return reg->u.s.str[offset];
+       }
+}
+
 /*
  * -1: wildcard found.
  * -2: unknown escape char.
  * 0: normal char.
  */
-
 static
-int parse_char(const char **p)
+int parse_char(struct estack_entry *reg, char *c, size_t *offset)
 {
-       switch (**p) {
+       switch (*c) {
        case '\\':
-               (*p)++;
-               switch (**p) {
+               (*offset)++;
+               *c = get_char(reg, *offset);
+               switch (*c) {
                case '\\':
                case '*':
                        return 0;
@@ -51,66 +81,103 @@ int parse_char(const char **p)
 static
 int stack_strcmp(struct estack *stack, int top, const char *cmp_type)
 {
-       const char *p = estack_bx(stack, top)->u.s.str, *q = estack_ax(stack, top)->u.s.str;
-       int ret;
-       int diff;
+       size_t offset_bx = 0, offset_ax = 0;
+       int diff, has_user = 0;
+       mm_segment_t old_fs;
+
+       if (estack_bx(stack, top)->u.s.user
+                       || estack_ax(stack, top)->u.s.user) {
+               has_user = 1;
+               old_fs = get_fs();
+               set_fs(KERNEL_DS);
+               pagefault_disable();
+       }
 
        for (;;) {
+               int ret;
                int escaped_r0 = 0;
+               char char_bx, char_ax;
 
-               if (unlikely(p - estack_bx(stack, top)->u.s.str > estack_bx(stack, top)->u.s.seq_len || *p == '\0')) {
-                       if (q - estack_ax(stack, top)->u.s.str > estack_ax(stack, top)->u.s.seq_len || *q == '\0') {
-                               return 0;
+               char_bx = get_char(estack_bx(stack, top), offset_bx);
+               char_ax = get_char(estack_ax(stack, top), offset_ax);
+
+               if (unlikely(char_bx == '\0')) {
+                       if (char_ax == '\0') {
+                               diff = 0;
+                               break;
                        } else {
                                if (estack_ax(stack, top)->u.s.literal) {
-                                       ret = parse_char(&q);
-                                       if (ret == -1)
-                                               return 0;
+                                       ret = parse_char(estack_ax(stack, top),
+                                               &char_ax, &offset_ax);
+                                       if (ret == -1) {
+                                               diff = 0;
+                                               break;
+                                       }
                                }
-                               return -1;
+                               diff = -1;
+                               break;
                        }
                }
-               if (unlikely(q - estack_ax(stack, top)->u.s.str > estack_ax(stack, top)->u.s.seq_len || *q == '\0')) {
-                       if (p - estack_bx(stack, top)->u.s.str > estack_bx(stack, top)->u.s.seq_len || *p == '\0') {
-                               return 0;
+               if (unlikely(char_ax == '\0')) {
+                       if (char_bx == '\0') {
+                               diff = 0;
+                               break;
                        } else {
                                if (estack_bx(stack, top)->u.s.literal) {
-                                       ret = parse_char(&p);
-                                       if (ret == -1)
-                                               return 0;
+                                       ret = parse_char(estack_bx(stack, top),
+                                               &char_bx, &offset_bx);
+                                       if (ret == -1) {
+                                               diff = 0;
+                                               break;
+                                       }
                                }
-                               return 1;
+                               diff = 1;
+                               break;
                        }
                }
                if (estack_bx(stack, top)->u.s.literal) {
-                       ret = parse_char(&p);
+                       ret = parse_char(estack_bx(stack, top),
+                               &char_bx, &offset_bx);
                        if (ret == -1) {
-                               return 0;
+                               diff = 0;
+                               break;
                        } else if (ret == -2) {
                                escaped_r0 = 1;
                        }
                        /* else compare both char */
                }
                if (estack_ax(stack, top)->u.s.literal) {
-                       ret = parse_char(&q);
+                       ret = parse_char(estack_ax(stack, top),
+                               &char_ax, &offset_ax);
                        if (ret == -1) {
-                               return 0;
+                               diff = 0;
+                               break;
                        } else if (ret == -2) {
-                               if (!escaped_r0)
-                                       return -1;
+                               if (!escaped_r0) {
+                                       diff = -1;
+                                       break;
+                               }
                        } else {
-                               if (escaped_r0)
-                                       return 1;
+                               if (escaped_r0) {
+                                       diff = 1;
+                                       break;
+                               }
                        }
                } else {
-                       if (escaped_r0)
-                               return 1;
+                       if (escaped_r0) {
+                               diff = 1;
+                               break;
+                       }
                }
-               diff = *p - *q;
+               diff = char_bx - char_ax;
                if (diff != 0)
                        break;
-               p++;
-               q++;
+               offset_bx++;
+               offset_ax++;
+       }
+       if (has_user) {
+               pagefault_enable();
+               set_fs(old_fs);
        }
        return diff;
 }
@@ -285,6 +352,10 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                [ FILTER_OP_GET_CONTEXT_REF_STRING ] = &&LABEL_FILTER_OP_GET_CONTEXT_REF_STRING,
                [ FILTER_OP_GET_CONTEXT_REF_S64 ] = &&LABEL_FILTER_OP_GET_CONTEXT_REF_S64,
                [ FILTER_OP_GET_CONTEXT_REF_DOUBLE ] = &&LABEL_FILTER_OP_GET_CONTEXT_REF_DOUBLE,
+
+               /* load userspace field ref */
+               [ FILTER_OP_LOAD_FIELD_REF_USER_STRING ] = &&LABEL_FILTER_OP_LOAD_FIELD_REF_USER_STRING,
+               [ FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE ] = &&LABEL_FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE,
        };
 #endif /* #ifndef INTERPRETER_USE_SWITCH */
 
@@ -579,6 +650,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                        }
                        estack_ax(stack, top)->u.s.seq_len = UINT_MAX;
                        estack_ax(stack, top)->u.s.literal = 0;
+                       estack_ax(stack, top)->u.s.user = 0;
                        dbg_printk("ref load string %s\n", estack_ax(stack, top)->u.s.str);
                        next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
                        PO;
@@ -603,6 +675,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                                goto end;
                        }
                        estack_ax(stack, top)->u.s.literal = 0;
+                       estack_ax(stack, top)->u.s.user = 0;
                        next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
                        PO;
                }
@@ -639,6 +712,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                        estack_ax(stack, top)->u.s.str = insn->data;
                        estack_ax(stack, top)->u.s.seq_len = UINT_MAX;
                        estack_ax(stack, top)->u.s.literal = 1;
+                       estack_ax(stack, top)->u.s.user = 0;
                        next_pc += sizeof(struct load_op) + strlen(insn->data) + 1;
                        PO;
                }
@@ -702,6 +776,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                        }
                        estack_ax(stack, top)->u.s.seq_len = UINT_MAX;
                        estack_ax(stack, top)->u.s.literal = 0;
+                       estack_ax(stack, top)->u.s.user = 0;
                        dbg_printk("ref get context string %s\n", estack_ax(stack, top)->u.s.str);
                        next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
                        PO;
@@ -732,6 +807,54 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
                        PO;
                }
 
+               /* load userspace field ref */
+               OP(FILTER_OP_LOAD_FIELD_REF_USER_STRING):
+               {
+                       struct load_op *insn = (struct load_op *) pc;
+                       struct field_ref *ref = (struct field_ref *) insn->data;
+
+                       dbg_printk("load field ref offset %u type user string\n",
+                               ref->offset);
+                       estack_push(stack, top, ax, bx);
+                       estack_ax(stack, top)->u.s.str =
+                               *(const char * const *) &filter_stack_data[ref->offset];
+                       if (unlikely(!estack_ax(stack, top)->u.s.str)) {
+                               dbg_printk("Filter warning: loading a NULL string.\n");
+                               ret = -EINVAL;
+                               goto end;
+                       }
+                       estack_ax(stack, top)->u.s.seq_len = UINT_MAX;
+                       estack_ax(stack, top)->u.s.literal = 0;
+                       estack_ax(stack, top)->u.s.user = 1;
+                       dbg_printk("ref load string %s\n", estack_ax(stack, top)->u.s.str);
+                       next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
+                       PO;
+               }
+
+               OP(FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE):
+               {
+                       struct load_op *insn = (struct load_op *) pc;
+                       struct field_ref *ref = (struct field_ref *) insn->data;
+
+                       dbg_printk("load field ref offset %u type user sequence\n",
+                               ref->offset);
+                       estack_push(stack, top, ax, bx);
+                       estack_ax(stack, top)->u.s.seq_len =
+                               *(unsigned long *) &filter_stack_data[ref->offset];
+                       estack_ax(stack, top)->u.s.str =
+                               *(const char **) (&filter_stack_data[ref->offset
+                                                               + sizeof(unsigned long)]);
+                       if (unlikely(!estack_ax(stack, top)->u.s.str)) {
+                               dbg_printk("Filter warning: loading a NULL sequence.\n");
+                               ret = -EINVAL;
+                               goto end;
+                       }
+                       estack_ax(stack, top)->u.s.literal = 0;
+                       estack_ax(stack, top)->u.s.user = 1;
+                       next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
+                       PO;
+               }
+
        END_OP
 end:
        /* return 0 (discard) on error */
index 0c1d395423b2590cd6bdd53020ac12e64e3a1dbd..b82497d20e562eb588c61c6d9b41bd18b1308647 100644 (file)
@@ -423,6 +423,8 @@ int lttng_filter_specialize_bytecode(struct bytecode_runtime *bytecode)
                case FILTER_OP_LOAD_FIELD_REF_STRING:
                case FILTER_OP_LOAD_FIELD_REF_SEQUENCE:
                case FILTER_OP_GET_CONTEXT_REF_STRING:
+               case FILTER_OP_LOAD_FIELD_REF_USER_STRING:
+               case FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE:
                {
                        if (vstack_push(stack)) {
                                ret = -EINVAL;
index 71e9a7409167d87684bb11049040f7f0a459d14c..e785799a13b40827837b76269631a941786c2c99 100644 (file)
@@ -299,6 +299,8 @@ int bytecode_validate_overflow(struct bytecode_runtime *bytecode,
        }
        case FILTER_OP_LOAD_FIELD_REF_STRING:
        case FILTER_OP_LOAD_FIELD_REF_SEQUENCE:
+       case FILTER_OP_LOAD_FIELD_REF_USER_STRING:
+       case FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE:
        case FILTER_OP_LOAD_FIELD_REF_S64:
        case FILTER_OP_GET_CONTEXT_REF_STRING:
        case FILTER_OP_GET_CONTEXT_REF_S64:
@@ -612,6 +614,8 @@ int validate_instruction_context(struct bytecode_runtime *bytecode,
        }
        case FILTER_OP_LOAD_FIELD_REF_STRING:
        case FILTER_OP_LOAD_FIELD_REF_SEQUENCE:
+       case FILTER_OP_LOAD_FIELD_REF_USER_STRING:
+       case FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE:
        {
                struct load_op *insn = (struct load_op *) pc;
                struct field_ref *ref = (struct field_ref *) insn->data;
@@ -932,6 +936,8 @@ int exec_insn(struct bytecode_runtime *bytecode,
        case FILTER_OP_LOAD_FIELD_REF_STRING:
        case FILTER_OP_LOAD_FIELD_REF_SEQUENCE:
        case FILTER_OP_GET_CONTEXT_REF_STRING:
+       case FILTER_OP_LOAD_FIELD_REF_USER_STRING:
+       case FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE:
        {
                if (vstack_push(stack)) {
                        ret = -EINVAL;
index 6cd750cd6934c2a7a75d3e519950f99e995a5851..e9f549ca3f9a2bc9963998629859bce784863dd5 100644 (file)
@@ -126,6 +126,10 @@ static const char *opnames[] = {
        [ FILTER_OP_GET_CONTEXT_REF_STRING ] = "GET_CONTEXT_REF_STRING",
        [ FILTER_OP_GET_CONTEXT_REF_S64 ] = "GET_CONTEXT_REF_S64",
        [ FILTER_OP_GET_CONTEXT_REF_DOUBLE ] = "GET_CONTEXT_REF_DOUBLE",
+
+       /* load userspace field ref */
+       [ FILTER_OP_LOAD_FIELD_REF_USER_STRING ] = "LOAD_FIELD_REF_USER_STRING",
+       [ FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE ] = "LOAD_FIELD_REF_USER_SEQUENCE",
 };
 
 const char *lttng_filter_print_op(enum filter_op op)
@@ -187,7 +191,7 @@ int apply_field_reloc(struct lttng_event *event,
                return -EINVAL;
 
        /* Check if field offset is too large for 16-bit offset */
-       if (field_offset > FILTER_BYTECODE_MAX_LEN - 1)
+       if (field_offset > LTTNG_KERNEL_FILTER_BYTECODE_MAX_LEN - 1)
                return -EINVAL;
 
        /* set type */
@@ -200,10 +204,16 @@ int apply_field_reloc(struct lttng_event *event,
                break;
        case atype_array:
        case atype_sequence:
-               op->op = FILTER_OP_LOAD_FIELD_REF_SEQUENCE;
+               if (field->user)
+                       op->op = FILTER_OP_LOAD_FIELD_REF_USER_SEQUENCE;
+               else
+                       op->op = FILTER_OP_LOAD_FIELD_REF_SEQUENCE;
                break;
        case atype_string:
-               op->op = FILTER_OP_LOAD_FIELD_REF_STRING;
+               if (field->user)
+                       op->op = FILTER_OP_LOAD_FIELD_REF_USER_STRING;
+               else
+                       op->op = FILTER_OP_LOAD_FIELD_REF_STRING;
                break;
        default:
                return -EINVAL;
@@ -233,7 +243,7 @@ int apply_context_reloc(struct lttng_event *event,
                return -ENOENT;
 
        /* Check if idx is too large for 16-bit offset */
-       if (idx > FILTER_BYTECODE_MAX_LEN - 1)
+       if (idx > LTTNG_KERNEL_FILTER_BYTECODE_MAX_LEN - 1)
                return -EINVAL;
 
        /* Get context return type */
@@ -249,6 +259,7 @@ int apply_context_reloc(struct lttng_event *event,
        case atype_string:
        case atype_array:
        case atype_sequence:
+               BUG_ON(ctx_field->event_field.user);
                op->op = FILTER_OP_GET_CONTEXT_REF_STRING;
                break;
        default:
index 98b97c20bcd774ab89021012291ffc0ed6c51d06..7eea1487e5774bd74458c9243bac17e9ad7101cc 100644 (file)
@@ -121,8 +121,10 @@ struct estack_entry {
 
                struct {
                        const char *str;
+                       const char __user *user_str;
                        size_t seq_len;
                        int literal;            /* is string literal ? */
+                       int user;               /* is string from userspace ? */
                } s;
        } u;
 };
index 28125edd3d2fbece21aa0e93cda86a4c3b712042..4b67f5f8392c535f9571435f4069b147cf5b00d4 100644 (file)
 #include <linux/stringify.h>
 
 #undef LTTNG_TRACEPOINT_EVENT_MAP
-#define LTTNG_TRACEPOINT_EVENT_MAP(name, map, proto, args, tstruct, assign, print)
+#define LTTNG_TRACEPOINT_EVENT_MAP(name, map, proto, args, fields)
 
 #undef LTTNG_TRACEPOINT_EVENT_MAP_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, map, tstruct, assign, print)
-
-#undef LTTNG_TRACEPOINT_EVENT_CONDITION_MAP
-#define LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(name, map, proto, args, cond, tstruct, assign, print) \
-       LTTNG_TRACEPOINT_EVENT(name,                                    \
-               PARAMS(proto),                                          \
-               PARAMS(args),                                           \
-               PARAMS(tstruct),                                        \
-               PARAMS(assign),                                         \
-               PARAMS(print))
-
-#undef LTTNG_TRACEPOINT_EVENT_FN_MAP
-#define LTTNG_TRACEPOINT_EVENT_FN_MAP(name, map, proto, args, tstruct, \
-               assign, print, reg, unreg)
+#define LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, map, fields)
 
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(template, name, map, proto, args)
 
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP(template, name, map, proto, args, print)
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP(template, name, map, proto, args, cond)
-
 #undef LTTNG_TRACEPOINT_EVENT
-#define LTTNG_TRACEPOINT_EVENT(name, proto, args, tstruct, assign, print)
-
-#undef LTTNG_TRACEPOINT_EVENT_CONDITION
-#define LTTNG_TRACEPOINT_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \
-       LTTNG_TRACEPOINT_EVENT(name,                                    \
-               PARAMS(proto),                                          \
-               PARAMS(args),                                           \
-               PARAMS(tstruct),                                        \
-               PARAMS(assign),                                         \
-               PARAMS(print))
+#define LTTNG_TRACEPOINT_EVENT(name, proto, args, fields)
 
 #undef LTTNG_TRACEPOINT_EVENT_CODE
-#define LTTNG_TRACEPOINT_EVENT_CODE(name, proto, args, _locvar, _code, tstruct, assign, print)
+#define LTTNG_TRACEPOINT_EVENT_CODE(name, proto, args, _locvar, _code, fields)
 
-#undef LTTNG_TRACEPOINT_EVENT_FN
-#define LTTNG_TRACEPOINT_EVENT_FN(name, proto, args, tstruct,          \
-               assign, print, reg, unreg)
+#undef LTTNG_TRACEPOINT_EVENT_CODE_MAP
+#define LTTNG_TRACEPOINT_EVENT_CODE_MAP(name, map, proto, args, _locvar, _code, fields)
 
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE(template, name, proto, args)
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(template, name, map)
 
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT(template, name, proto, args, print)
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION(template, name, proto, args, cond) \
-       LTTNG_TRACEPOINT_EVENT_INSTANCE(template, name, PARAMS(proto), PARAMS(args))
-
 #undef TRACE_INCLUDE
 #undef __TRACE_INCLUDE
 
 #endif
 
 #undef LTTNG_TRACEPOINT_EVENT
-#undef LTTNG_TRACEPOINT_EVENT_FN
-#undef LTTNG_TRACEPOINT_EVENT_CONDITION
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION
 #undef LTTNG_TRACEPOINT_EVENT_MAP
-#undef LTTNG_TRACEPOINT_EVENT_FN_MAP
-#undef LTTNG_TRACEPOINT_EVENT_CONDITION_MAP
 #undef LTTNG_TRACEPOINT_EVENT_CLASS
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP
+#undef LTTNG_TRACEPOINT_EVENT_CODE_MAP
 #undef LTTNG_TRACEPOINT_EVENT_CODE
 #undef LTTNG_TRACEPOINT_EVENT_MAP_NOARGS
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE_NOARGS
index 085b61cd769069cfba657318d9ab5dda26b57e25..2c20f79e74c0a6e314c4cc34ec1298125a6a8434 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-/* Reset macros used within TRACE_EVENT to "nothing" */
+/* Reset macros used within LTTNG_TRACEPOINT_EVENT to "nothing" */
 
-#undef __field_full
-#define __field_full(_type, _item, _order, _base)
+#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields)
 
-#undef __array_enc_ext
-#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)
+#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields)
 
-#undef __dynamic_array_enc_ext
-#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)
+#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
+#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args)
 
-#undef __dynamic_array_enc_ext_2
-#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)
+#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
+#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)
 
-#undef __dynamic_array_len
-#define __dynamic_array_len(_type, _item, _length)
+#undef TP_PROTO
+#define TP_PROTO(args...)
 
-#undef __string
-#define __string(_item, _src)
+#undef TP_ARGS
+#define TP_ARGS(args...)
 
-#undef tp_assign
-#define tp_assign(dest, src)
+#undef TP_locvar
+#define TP_locvar(...)
 
-#undef tp_memcpy
-#define tp_memcpy(dest, src, len)
+#undef TP_code
+#define TP_code(...)
 
-#undef tp_memcpy_dyn
-#define tp_memcpy_dyn(dest, src, len)
+#undef TP_FIELDS
+#define TP_FIELDS(args...)
 
-#undef tp_strcpy
-#define tp_strcpy(dest, src)
+#undef _ctf_integer_ext
+#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, \
+                       _user, _nowrite)
 
-#undef __get_str
-#define __get_str(field)
+#undef _ctf_integer_ext_isuser0
+#define _ctf_integer_ext_isuser0(_type, _item, _src, _byte_order, _base, \
+                       _nowrite)
 
-#undef __get_dynamic_array
-#define __get_dynamic_array(field)
+#undef _ctf_integer_ext_isuser1
+#define _ctf_integer_ext_isuser1(_type, _item, _src, _byte_order, _base, \
+                       _nowrite)
 
-#undef __get_dynamic_array_len
-#define __get_dynamic_array_len(field)
+#undef _ctf_integer_ext_fetched
+#define _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, \
+                       _nowrite)
 
-#undef TP_PROTO
-#define TP_PROTO(args...)
+#undef _ctf_array_encoded
+#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, \
+                       _user, _nowrite)
 
-#undef TP_ARGS
-#define TP_ARGS(args...)
+#undef _ctf_sequence_encoded
+#define _ctf_sequence_encoded(_type, _item, _src, _length_type, \
+                       _src_length, _encoding, _base, _user, _nowrite)
 
-#undef TP_locvar
-#define TP_locvar(...)
+#undef _ctf_string
+#define _ctf_string(_item, _src, _user, _nowrite)
 
-#undef TP_code
-#define TP_code(...)
+/* "write" */
+#undef ctf_integer
+#define ctf_integer(_type, _item, _src)
 
-#undef TP_STRUCT__entry
-#define TP_STRUCT__entry(args...)
+#undef ctf_integer_hex
+#define ctf_integer_hex(_type, _item, _src)
 
-#undef TP_fast_assign
-#define TP_fast_assign(args...)
+#undef ctf_integer_oct
+#define ctf_integer_oct(_type, _item, _src)
 
-#undef __perf_count
-#define __perf_count(args...)
+#undef ctf_integer_network
+#define ctf_integer_network(_type, _item, _src)
 
-#undef __perf_addr
-#define __perf_addr(args...)
+#undef ctf_integer_network_hex
+#define ctf_integer_network_hex(_type, _item, _src)
 
-#undef TP_perf_assign
-#define TP_perf_assign(args...)
+#undef ctf_float
+#define ctf_float(_type, _item, _src)
 
-#undef TP_printk
-#define TP_printk(args...)
+#undef ctf_array
+#define ctf_array(_type, _item, _src, _length)
 
-#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print)
+#undef ctf_array_text
+#define ctf_array_text(_type, _item, _src, _length)
 
-#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print)
+#undef ctf_sequence
+#define ctf_sequence(_type, _item, _src, _length_type, _src_length)
 
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args)
+#undef ctf_sequence_hex
+#define ctf_sequence_hex(_type, _item, _src, _length_type, _src_length)
 
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)
+#undef ctf_sequence_text
+#define ctf_sequence_text(_type, _item, _src, _length_type, _src_length)
+
+#undef ctf_string
+#define ctf_string(_item, _src)
+
+/* "nowrite" */
+#undef ctf_integer_nowrite
+#define ctf_integer_nowrite(_type, _item, _src)
+
+#undef ctf_float_nowrite
+#define ctf_float_nowrite(_type, _item, _src)
+
+#undef ctf_array_nowrite
+#define ctf_array_nowrite(_type, _item, _src, _length)
+
+#undef ctf_array_text_nowrite
+#define ctf_array_text_nowrite(_type, _item, _src, _length)
+
+#undef ctf_sequence_nowrite
+#define ctf_sequence_nowrite(_type, _item, _src, _length_type, _src_length)
+
+#undef ctf_sequence_text_nowrite
+#define ctf_sequence_text_nowrite(_type, _item, _src, _length_type, _src_length)
+
+#undef ctf_string_nowrite
+#define ctf_string_nowrite(_item, _src)
+
+/* "user" - "write" */
+#undef ctf_user_integer
+#define ctf_user_integer(_type, _item, _user_src)
+
+#undef ctf_user_integer_hex
+#define ctf_user_integer_hex(_type, _item, _user_src)
+
+#undef ctf_user_integer_network
+#define ctf_user_integer_network(_type, _item, _user_src)
+
+#undef ctf_user_integer_network_hex
+#define ctf_user_integer_network_hex(_type, _item, _user_src)
+
+#undef ctf_user_float
+#define ctf_user_float(_type, _item, _user_src)
+
+#undef ctf_user_array
+#define ctf_user_array(_type, _item, _user_src, _length)
+
+#undef ctf_user_array_text
+#define ctf_user_array_text(_type, _item, _user_src, _length)
+
+#undef ctf_user_sequence
+#define ctf_user_sequence(_type, _item, _user_src, _length_type, _user_src_length)
+
+#undef ctf_user_sequence_text
+#define ctf_user_sequence_text(_type, _item, _user_src, _length_type, _user_src_length)
+
+#undef ctf_user_string
+#define ctf_user_string(_item, _user_src)
+
+/* "user" - "nowrite" */
+#undef ctf_user_integer_nowrite
+#define ctf_user_integer_nowrite(_type, _item, _user_src)
+
+#undef ctf_user_float_nowrite
+#define ctf_user_float_nowrite(_type, _item, _user_src)
+
+#undef ctf_user_array_nowrite
+#define ctf_user_array_nowrite(_type, _item, _user_src, _length)
+
+#undef ctf_user_array_text_nowrite
+#define ctf_user_array_text_nowrite(_type, _item, _user_src, _length)
+
+#undef ctf_user_sequence_nowrite
+#define ctf_user_sequence_nowrite(_type, _item, _user_src, _length_type, _user_src_length)
+
+#undef ctf_user_sequence_text_nowrite
+#define ctf_user_sequence_text_nowrite(_type, _item, _user_src, _length_type, _user_src_length)
+
+#undef ctf_user_string_nowrite
+#define ctf_user_string_nowrite(_item, _user_src)
index 5fc4d9f30361168d7fb08d0af1cc20966eca6845..1b7df762b92586b29b90b6301b0f7fbf25b06cf7 100644 (file)
@@ -2,7 +2,7 @@
  * lttng-events.h
  *
  * Copyright (C) 2009 Steven Rostedt <rostedt@goodmis.org>
- * Copyright (C) 2009-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2009-2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
+
 #include <linux/uaccess.h>
 #include <linux/debugfs.h>
+#include <linux/rculist.h>
 #include "lttng.h"
 #include "lttng-types.h"
 #include "lttng-probe-user.h"
  * enforce name-spacing.
  */
 #undef LTTNG_TRACEPOINT_EVENT_MAP
-#define LTTNG_TRACEPOINT_EVENT_MAP(name, map, proto, args, tstruct, assign, print) \
+#define LTTNG_TRACEPOINT_EVENT_MAP(name, map, proto, args, fields) \
        LTTNG_TRACEPOINT_EVENT_CLASS(map,                               \
                             PARAMS(proto),                             \
                             PARAMS(args),                              \
-                            PARAMS(tstruct),                           \
-                            PARAMS(assign),                            \
-                            PARAMS(print))                             \
+                            PARAMS(fields))                            \
        LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(map, name, map, PARAMS(proto), PARAMS(args))
 
 #undef LTTNG_TRACEPOINT_EVENT_MAP_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, map, tstruct, assign, print) \
+#define LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, map, fields)           \
        LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS(map,                        \
-                            PARAMS(tstruct),                           \
-                            PARAMS(assign),                            \
-                            PARAMS(print))                             \
+                            PARAMS(fields))                            \
        LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(map, name, map)
 
+#undef LTTNG_TRACEPOINT_EVENT_CODE_MAP
+#define LTTNG_TRACEPOINT_EVENT_CODE_MAP(name, map, proto, args, _locvar, _code, fields) \
+       LTTNG_TRACEPOINT_EVENT_CLASS_CODE(map,                          \
+                            PARAMS(proto),                             \
+                            PARAMS(args),                              \
+                            PARAMS(_locvar),                           \
+                            PARAMS(_code),                             \
+                            PARAMS(fields))                            \
+       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(map, name, map, PARAMS(proto), PARAMS(args))
+
 #undef LTTNG_TRACEPOINT_EVENT_CODE
-#define LTTNG_TRACEPOINT_EVENT_CODE(name, proto, args, _locvar, _code, tstruct, assign, print) \
-       LTTNG_TRACEPOINT_EVENT_CLASS_CODE(name,                         \
+#define LTTNG_TRACEPOINT_EVENT_CODE(name, proto, args, _locvar, _code, fields) \
+       LTTNG_TRACEPOINT_EVENT_CODE_MAP(name, name,                     \
                             PARAMS(proto),                             \
                             PARAMS(args),                              \
                             PARAMS(_locvar),                           \
                             PARAMS(_code),                             \
-                            PARAMS(tstruct),                           \
-                            PARAMS(assign),                            \
-                            PARAMS(print))                             \
-       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(name, name, name, PARAMS(proto), PARAMS(args))
-
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP(template, name, map, proto, args, print) \
-       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(template, name, map, PARAMS(proto), PARAMS(args))
-
-/* Callbacks are meaningless to LTTng. */
-#undef LTTNG_TRACEPOINT_EVENT_FN_MAP
-#define LTTNG_TRACEPOINT_EVENT_FN_MAP(name, map, proto, args, tstruct, \
-               assign, print, reg, unreg)                              \
-       LTTNG_TRACEPOINT_EVENT_MAP(name, map, PARAMS(proto), PARAMS(args), \
-               PARAMS(tstruct), PARAMS(assign), PARAMS(print))
-
-#undef LTTNG_TRACEPOINT_EVENT_CONDITION_MAP
-#define LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(name, map, proto, args, cond, tstruct, assign, print) \
-       LTTNG_TRACEPOINT_EVENT_MAP(name, map,                           \
-               PARAMS(proto),                                          \
-               PARAMS(args),                                           \
-               PARAMS(tstruct),                                        \
-               PARAMS(assign),                                         \
-               PARAMS(print))
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP(template, name, map, proto, args, cond) \
-       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(template, name, map, PARAMS(proto), PARAMS(args))
+                            PARAMS(fields))
 
 /*
  * LTTNG_TRACEPOINT_EVENT_CLASS can be used to add a generic function
  */
 
 #undef LTTNG_TRACEPOINT_EVENT
-#define LTTNG_TRACEPOINT_EVENT(name, proto, args, tstruct, assign, print) \
+#define LTTNG_TRACEPOINT_EVENT(name, proto, args, fields)              \
        LTTNG_TRACEPOINT_EVENT_MAP(name, name,                          \
                        PARAMS(proto),                                  \
                        PARAMS(args),                                   \
-                       PARAMS(tstruct),                                \
-                       PARAMS(assign),                                 \
-                       PARAMS(print))
+                       PARAMS(fields))
 
 #undef LTTNG_TRACEPOINT_EVENT_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_NOARGS(name, tstruct, assign, print)    \
-       LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, name,                   \
-                       PARAMS(tstruct),                                \
-                       PARAMS(assign),                                 \
-                       PARAMS(print))
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT(template, name, proto, args, print) \
-       LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP(template, name, name, \
-                       PARAMS(proto), PARAMS(args), PARAMS(print_))
-
-#undef LTTNG_TRACEPOINT_EVENT_FN
-#define LTTNG_TRACEPOINT_EVENT_FN(name, proto, args, tstruct,          \
-               assign, print, reg, unreg)                              \
-       LTTNG_TRACEPOINT_EVENT_FN_MAP(name, name, PARAMS(proto), PARAMS(args), \
-               PARAMS(tstruct), PARAMS(assign), PARAMS(print),         \
-               PARAMS(reg), PARAMS(unreg))                             \
+#define LTTNG_TRACEPOINT_EVENT_NOARGS(name, fields)                    \
+       LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, name, PARAMS(fields))
 
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE(template, name, proto, args)   \
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE_NOARGS(template, name) \
        LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(template, name, name)
 
-#undef LTTNG_TRACEPOINT_EVENT_CONDITION
-#define LTTNG_TRACEPOINT_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \
-       LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(name, name,                \
-               PARAMS(proto),                                          \
-               PARAMS(args),                                           \
-               PARAMS(cond),                                           \
-               PARAMS(tstruct),                                        \
-               PARAMS(assign),                                         \
-               PARAMS(print))
-
 #undef LTTNG_TRACEPOINT_EVENT_CLASS
-#define LTTNG_TRACEPOINT_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS(_name, _proto, _args, _fields) \
        LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, PARAMS(_proto), PARAMS(_args), , , \
-               PARAMS(_tstruct), PARAMS(_assign), PARAMS(_print))
+               PARAMS(_fields))
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \
-       LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, , , PARAMS(_tstruct), \
-               PARAMS(_assign), PARAMS(_print))
+#define LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS(_name, _fields) \
+       LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, , , PARAMS(_fields))
 
 
 /*
  * out by the compiler.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
 
 #undef TP_PROTO
-#define TP_PROTO(args...) args
+#define TP_PROTO(...)  __VA_ARGS__
 
 #undef TP_ARGS
-#define TP_ARGS(args...) args
+#define TP_ARGS(...)   __VA_ARGS__
 
 #undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args) \
@@ -192,139 +145,90 @@ void trace_##_name(void *__data);
  * Each event produce an array of fields.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
+#include "lttng-events-write.h"
+#include "lttng-events-nowrite.h"
 
-/* Named field types must be defined in lttng-types.h */
-
-#undef __field_full
-#define __field_full(_type, _item, _order, _base)              \
+#undef _ctf_integer_ext
+#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _user, _nowrite) \
        {                                                       \
          .name = #_item,                                       \
-         .type = __type_integer(_type, _order, _base, none),   \
+         .type = __type_integer(_type, _byte_order, _base, none),\
+         .nowrite = _nowrite,                                  \
+         .user = _user,                                        \
        },
 
-#undef __field
-#define __field(_type, _item)                                  \
-       __field_full(_type, _item, __BYTE_ORDER, 10)
-
-#undef __field_ext
-#define __field_ext(_type, _item, _filter_type)                        \
-       __field(_type, _item)
-
-#undef __field_hex
-#define __field_hex(_type, _item)                              \
-       __field_full(_type, _item, __BYTE_ORDER, 16)
-
-#undef __field_oct
-#define __field_oct(_type, _item)                              \
-       __field_full(_type, _item, __BYTE_ORDER, 8)
-
-#undef __field_network
-#define __field_network(_type, _item)                          \
-       __field_full(_type, _item, __BIG_ENDIAN, 10)
-
-#undef __field_network_hex
-#define __field_network_hex(_type, _item)                              \
-       __field_full(_type, _item, __BIG_ENDIAN, 16)
-
-#undef __array_enc_ext
-#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)\
+#undef _ctf_array_encoded
+#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, _user, _nowrite) \
        {                                                       \
          .name = #_item,                                       \
          .type =                                               \
                {                                               \
                  .atype = atype_array,                         \
-                 .u.array =                                    \
+                 .u =                                          \
                        {                                       \
-                           .length = _length,                  \
-                           .elem_type = __type_integer(_type, _order, _base, _encoding), \
-                       },                                      \
+                         .array =                              \
+                               {                               \
+                                 .elem_type = __type_integer(_type, __BYTE_ORDER, 10, _encoding), \
+                                 .length = _length,            \
+                               }                               \
+                       }                                       \
                },                                              \
+         .nowrite = _nowrite,                                  \
+         .user = _user,                                        \
        },
 
-#undef __array
-#define __array(_type, _item, _length)                         \
-       __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, none)
-
-#undef __array_text
-#define __array_text(_type, _item, _length)                    \
-       __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, UTF8)
-
-#undef __array_hex
-#define __array_hex(_type, _item, _length)                     \
-       __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 16, none)
-
-#undef __dynamic_array_enc_ext
-#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding) \
+#undef _ctf_sequence_encoded
+#define _ctf_sequence_encoded(_type, _item, _src,              \
+                       _length_type, _src_length, _encoding,   \
+                       _base, _user, _nowrite)                 \
        {                                                       \
          .name = #_item,                                       \
          .type =                                               \
                {                                               \
                  .atype = atype_sequence,                      \
-                 .u.sequence =                                 \
+                 .u =                                          \
                        {                                       \
-                           .length_type = __type_integer(u32, __BYTE_ORDER, 10, none), \
-                           .elem_type = __type_integer(_type, _order, _base, _encoding), \
+                         .sequence =                           \
+                               {                               \
+                                 .length_type = __type_integer(_length_type, __BYTE_ORDER, 10, none), \
+                                 .elem_type = __type_integer(_type, __BYTE_ORDER, _base, _encoding), \
+                               },                              \
                        },                                      \
                },                                              \
+         .nowrite = _nowrite,                                  \
+         .user = _user,                                        \
        },
 
-#undef __dynamic_array_enc_ext_2
-#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding) \
-       __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding)
-
-#undef __dynamic_array
-#define __dynamic_array(_type, _item, _length)                 \
-       __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, none)
-
-#undef __dynamic_array_text
-#define __dynamic_array_text(_type, _item, _length)            \
-       __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, UTF8)
-
-#undef __dynamic_array_hex
-#define __dynamic_array_hex(_type, _item, _length)             \
-       __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 16, none)
-
-#undef __dynamic_array_network_hex
-#define __dynamic_array_network_hex(_type, _item, _length)             \
-       __dynamic_array_enc_ext(_type, _item, _length, __BIG_ENDIAN, 16, none)
-
-#undef __dynamic_array_network
-#define __dynamic_array_network(_type, _item, _length)         \
-       __dynamic_array_enc_ext(_type, _item, _length, __BIG_ENDIAN, 10, none)
-
-#undef __dynamic_array_text_2
-#define __dynamic_array_text_2(_type, _item, _length1, _length2)       \
-       __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, __BYTE_ORDER, 10, UTF8)
-
-#undef __string
-#define __string(_item, _src)                                  \
+#undef _ctf_string
+#define _ctf_string(_item, _src, _user, _nowrite)              \
        {                                                       \
          .name = #_item,                                       \
          .type =                                               \
                {                                               \
                  .atype = atype_string,                        \
-                 .u.basic.string.encoding = lttng_encode_UTF8, \
+                 .u =                                          \
+                       {                                       \
+                         .basic = { .string = { .encoding = lttng_encode_UTF8 } } \
+                       },                                      \
                },                                              \
+         .nowrite = _nowrite,                                  \
+         .user = _user,                                        \
        },
 
-#undef __string_from_user
-#define __string_from_user(_item, _src)                                \
-       __string(_item, _src)
-
-#undef TP_STRUCT__entry
-#define TP_STRUCT__entry(args...) args /* Only one used in this phase */
+#undef TP_FIELDS
+#define TP_FIELDS(...) __VA_ARGS__     /* Only one used in this phase */
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields) \
        static const struct lttng_event_field __event_fields___##_name[] = { \
-               _tstruct                                                     \
+               _fields                                                      \
        };
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print) \
-       LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, PARAMS(_tstruct), PARAMS(_assign), \
-                       PARAMS(_print))
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields) \
+       LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, PARAMS(_fields))
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
@@ -334,169 +238,76 @@ void trace_##_name(void *__data);
  * Create probe callback prototypes.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
 
 #undef TP_PROTO
-#define TP_PROTO(args...) args
+#define TP_PROTO(...)  __VA_ARGS__
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields) \
 static void __event_probe__##_name(void *__data, _proto);
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields) \
 static void __event_probe__##_name(void *__data);
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
-/*
- * Stage 3.9 of the trace events.
- *
- * Create event descriptions.
- */
-
-/* Named field types must be defined in lttng-types.h */
-
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
-
-#ifndef TP_PROBE_CB
-#define TP_PROBE_CB(_template) &__event_probe__##_template
-#endif
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)     \
-static const struct lttng_event_desc __event_desc___##_map = {         \
-       .fields = __event_fields___##_template,                         \
-       .name = #_map,                                                  \
-       .kname = #_name,                                                \
-       .probe_callback = (void *) TP_PROBE_CB(_template),              \
-       .nr_fields = ARRAY_SIZE(__event_fields___##_template),          \
-       .owner = THIS_MODULE,                                           \
-};
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args) \
-       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-
 /*
  * Stage 4 of the trace events.
  *
- * Create an array of event description pointers.
- */
-
-/* Named field types must be defined in lttng-types.h */
-
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map) \
-               &__event_desc___##_map,
-
-#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args) \
-       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)
-
-#define TP_ID1(_token, _system)        _token##_system
-#define TP_ID(_token, _system) TP_ID1(_token, _system)
-
-static const struct lttng_event_desc *TP_ID(__event_desc___, TRACE_SYSTEM)[] = {
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-};
-
-#undef TP_ID1
-#undef TP_ID
-
-
-/*
- * Stage 5 of the trace events.
- *
- * Create a toplevel descriptor for the whole probe.
- */
-
-#define TP_ID1(_token, _system)        _token##_system
-#define TP_ID(_token, _system) TP_ID1(_token, _system)
-
-/* non-const because list head will be modified when registered. */
-static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = {
-       .provider = __stringify(TRACE_SYSTEM),
-       .event_desc = TP_ID(__event_desc___, TRACE_SYSTEM),
-       .nr_events = ARRAY_SIZE(TP_ID(__event_desc___, TRACE_SYSTEM)),
-       .head = { NULL, NULL },
-       .lazy_init_head = { NULL, NULL },
-       .lazy = 0,
-};
-
-#undef TP_ID1
-#undef TP_ID
-
-/*
- * Stage 6 of the trace events.
- *
  * Create static inline function that calculates event size.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
-
-/* Named field types must be defined in lttng-types.h */
+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
+#include "lttng-events-write.h"
 
-#undef __field_full
-#define __field_full(_type, _item, _order, _base)                             \
+#undef _ctf_integer_ext
+#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _user, _nowrite) \
        __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
        __event_len += sizeof(_type);
 
-#undef __array_enc_ext
-#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)       \
+#undef _ctf_array_encoded
+#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, _user, _nowrite) \
        __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
        __event_len += sizeof(_type) * (_length);
 
-#undef __dynamic_array_enc_ext
-#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\
-       __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(u32)); \
-       __event_len += sizeof(u32);                                            \
+#undef _ctf_sequence_encoded
+#define _ctf_sequence_encoded(_type, _item, _src, _length_type,                        \
+                       _src_length, _encoding, _base, _user, _nowrite)         \
+       __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_length_type)); \
+       __event_len += sizeof(_length_type);                                   \
        __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
-       __dynamic_len[__dynamic_len_idx] = (_length);                          \
+       __dynamic_len[__dynamic_len_idx] = (_src_length);                      \
        __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx];       \
        __dynamic_len_idx++;
 
-#undef __dynamic_array_enc_ext_2
-#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\
-       __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(u32)); \
-       __event_len += sizeof(u32);                                            \
-       __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
-       __dynamic_len[__dynamic_len_idx] = (_length1);                         \
-       __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx];       \
-       __dynamic_len_idx++;                                                   \
-       __dynamic_len[__dynamic_len_idx] = (_length2);                         \
-       __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx];       \
-       __dynamic_len_idx++;
-
-#undef __string
-#define __string(_item, _src)                                                 \
-       __event_len += __dynamic_len[__dynamic_len_idx++] = strlen(_src) + 1;
-
 /*
- * strlen_user includes \0. If returns 0, it faulted, so we set size to
+ * ctf_user_string includes \0. If returns 0, it faulted, so we set size to
  * 1 (\0 only).
  */
-#undef __string_from_user
-#define __string_from_user(_item, _src)                                               \
-       __event_len += __dynamic_len[__dynamic_len_idx++] =                    \
-               max_t(size_t, lttng_strlen_user_inatomic(_src), 1);
+#undef _ctf_string
+#define _ctf_string(_item, _src, _user, _nowrite)                             \
+       if (_user)                                                             \
+               __event_len += __dynamic_len[__dynamic_len_idx++] =            \
+                       strlen(_src) + 1;                                      \
+       else                                                                   \
+               __event_len += __dynamic_len[__dynamic_len_idx++] =            \
+                       max_t(size_t, lttng_strlen_user_inatomic(_src), 1);
 
 #undef TP_PROTO
-#define TP_PROTO(args...) args
+#define TP_PROTO(...)  __VA_ARGS__
 
-#undef TP_STRUCT__entry
-#define TP_STRUCT__entry(args...) args
+#undef TP_FIELDS
+#define TP_FIELDS(...) __VA_ARGS__
 
 #undef TP_locvar
 #define TP_locvar(...) __VA_ARGS__
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields) \
 static inline size_t __event_get_size__##_name(size_t *__dynamic_len,        \
                void *__tp_locvar, _proto)                                    \
 {                                                                            \
@@ -504,12 +315,12 @@ static inline size_t __event_get_size__##_name(size_t *__dynamic_len,           \
        unsigned int __dynamic_len_idx __attribute__((unused)) = 0;           \
        struct { _locvar } *tp_locvar __attribute__((unused)) = __tp_locvar;  \
                                                                              \
-       _tstruct                                                              \
+       _fields                                                               \
        return __event_len;                                                   \
 }
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields) \
 static inline size_t __event_get_size__##_name(size_t *__dynamic_len,        \
                void *__tp_locvar)                                            \
 {                                                                            \
@@ -517,300 +328,318 @@ static inline size_t __event_get_size__##_name(size_t *__dynamic_len,         \
        unsigned int __dynamic_len_idx __attribute__((unused)) = 0;           \
        struct { _locvar } *tp_locvar __attribute__((unused)) = __tp_locvar;  \
                                                                              \
-       _tstruct                                                              \
+       _fields                                                               \
        return __event_len;                                                   \
 }
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
+
 /*
- * Stage 7 of the trace events.
+ * Stage 4.1 of tracepoint event generation.
  *
- * Create static inline function that calculates event payload alignment.
+ * Create static inline function that layout the filter stack data.
+ * We make both write and nowrite data available to the filter.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
-
-/* Named field types must be defined in lttng-types.h */
-
-#undef __field_full
-#define __field_full(_type, _item, _order, _base)                        \
-       __event_align = max_t(size_t, __event_align, lttng_alignof(_type));
-
-#undef __array_enc_ext
-#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)  \
-       __event_align = max_t(size_t, __event_align, lttng_alignof(_type));
-
-#undef __dynamic_array_enc_ext
-#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\
-       __event_align = max_t(size_t, __event_align, lttng_alignof(u32)); \
-       __event_align = max_t(size_t, __event_align, lttng_alignof(_type));
-
-#undef __dynamic_array_enc_ext_2
-#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\
-       __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding)
-
-#undef __string
-#define __string(_item, _src)
+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
+#include "lttng-events-write.h"
+#include "lttng-events-nowrite.h"
+
+#undef _ctf_integer_ext_fetched
+#define _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
+       if (lttng_is_signed_type(_type)) {                                     \
+               int64_t __ctf_tmp_int64;                                       \
+               switch (sizeof(_type)) {                                       \
+               case 1:                                                        \
+               {                                                              \
+                       union { _type t; int8_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_int64 = (int64_t) __tmp.v;                   \
+                       break;                                                 \
+               }                                                              \
+               case 2:                                                        \
+               {                                                              \
+                       union { _type t; int16_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_int64 = (int64_t) __tmp.v;                   \
+                       break;                                                 \
+               }                                                              \
+               case 4:                                                        \
+               {                                                              \
+                       union { _type t; int32_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_int64 = (int64_t) __tmp.v;                   \
+                       break;                                                 \
+               }                                                              \
+               case 8:                                                        \
+               {                                                              \
+                       union { _type t; int64_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_int64 = (int64_t) __tmp.v;                   \
+                       break;                                                 \
+               }                                                              \
+               default:                                                       \
+                       BUG_ON(1);                                             \
+               };                                                             \
+               memcpy(__stack_data, &__ctf_tmp_int64, sizeof(int64_t));       \
+       } else {                                                               \
+               uint64_t __ctf_tmp_uint64;                                     \
+               switch (sizeof(_type)) {                                       \
+               case 1:                                                        \
+               {                                                              \
+                       union { _type t; uint8_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_uint64 = (uint64_t) __tmp.v;                 \
+                       break;                                                 \
+               }                                                              \
+               case 2:                                                        \
+               {                                                              \
+                       union { _type t; uint16_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_uint64 = (uint64_t) __tmp.v;                 \
+                       break;                                                 \
+               }                                                              \
+               case 4:                                                        \
+               {                                                              \
+                       union { _type t; uint32_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_uint64 = (uint64_t) __tmp.v;                 \
+                       break;                                                 \
+               }                                                              \
+               case 8:                                                        \
+               {                                                              \
+                       union { _type t; uint64_t v; } __tmp = { (_type) (_src) }; \
+                       __ctf_tmp_uint64 = (uint64_t) __tmp.v;                 \
+                       break;                                                 \
+               }                                                              \
+               default:                                                       \
+                       BUG_ON(1);                                             \
+               };                                                             \
+               memcpy(__stack_data, &__ctf_tmp_uint64, sizeof(uint64_t));     \
+       }                                                                      \
+       __stack_data += sizeof(int64_t);
+
+#undef _ctf_integer_ext_isuser0
+#define _ctf_integer_ext_isuser0(_type, _item, _src, _byte_order, _base, _nowrite) \
+       _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite)
+
+#undef _ctf_integer_ext_isuser1
+#define _ctf_integer_ext_isuser1(_type, _item, _user_src, _byte_order, _base, _nowrite) \
+{                                                                             \
+       __typeof__(_user_src) _src;                                            \
+       if (get_user(_src, &(_user_src)))                                      \
+               _src = 0;                                                      \
+       _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
+}
 
-#undef __string_from_user
-#define __string_from_user(_item, _src)
+#undef _ctf_integer_ext
+#define _ctf_integer_ext(_type, _item, _user_src, _byte_order, _base, _user, _nowrite) \
+       _ctf_integer_ext_isuser##_user(_type, _item, _user_src, _byte_order, _base, _nowrite)
+
+#undef _ctf_array_encoded
+#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, _user, _nowrite) \
+       {                                                                      \
+               unsigned long __ctf_tmp_ulong = (unsigned long) (_length);     \
+               const void *__ctf_tmp_ptr = (_src);                            \
+               memcpy(__stack_data, &__ctf_tmp_ulong, sizeof(unsigned long)); \
+               __stack_data += sizeof(unsigned long);                         \
+               memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void **));         \
+               __stack_data += sizeof(void **);                               \
+       }
+
+#undef _ctf_sequence_encoded
+#define _ctf_sequence_encoded(_type, _item, _src, _length_type,                       \
+                       _src_length, _encoding, _base, _user, _nowrite)        \
+       {                                                                      \
+               unsigned long __ctf_tmp_ulong = (unsigned long) (_src_length); \
+               const void *__ctf_tmp_ptr = (_src);                            \
+               memcpy(__stack_data, &__ctf_tmp_ulong, sizeof(unsigned long)); \
+               __stack_data += sizeof(unsigned long);                         \
+               memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void **));         \
+               __stack_data += sizeof(void **);                               \
+       }
+
+#undef _ctf_string
+#define _ctf_string(_item, _src, _user, _nowrite)                             \
+       {                                                                      \
+               const void *__ctf_tmp_ptr = (_src);                            \
+               memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void **));         \
+               __stack_data += sizeof(void **);                               \
+       }
 
 #undef TP_PROTO
-#define TP_PROTO(args...) args
+#define TP_PROTO(...) __VA_ARGS__
 
-#undef TP_STRUCT__entry
-#define TP_STRUCT__entry(args...) args
+#undef TP_FIELDS
+#define TP_FIELDS(...) __VA_ARGS__
 
 #undef TP_locvar
 #define TP_locvar(...) __VA_ARGS__
 
-#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print) \
-static inline size_t __event_get_align__##_name(void *__tp_locvar, _proto)    \
+#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields) \
+static inline                                                                \
+void __event_prepare_filter_stack__##_name(char *__stack_data,               \
+               void *__tp_locvar)                                            \
 {                                                                            \
-       size_t __event_align = 1;                                             \
        struct { _locvar } *tp_locvar __attribute__((unused)) = __tp_locvar;  \
                                                                              \
-       _tstruct                                                              \
-       return __event_align;                                                 \
+       _fields                                                               \
 }
 
-#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print) \
-static inline size_t __event_get_align__##_name(void *__tp_locvar)           \
+#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields) \
+static inline                                                                \
+void __event_prepare_filter_stack__##_name(char *__stack_data,               \
+               void *__tp_locvar, _proto)                                    \
 {                                                                            \
-       size_t __event_align = 1;                                             \
        struct { _locvar } *tp_locvar __attribute__((unused)) = __tp_locvar;  \
                                                                              \
-       _tstruct                                                              \
-       return __event_align;                                                 \
+       _fields                                                               \
 }
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
 /*
- * Stage 8 of the trace events.
+ * Stage 5 of the trace events.
  *
- * Create structure declaration that allows the "assign" macros to access the
- * field types.
+ * Create static inline function that calculates event payload alignment.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
+#include "lttng-events-write.h"
 
-/* Named field types must be defined in lttng-types.h */
+#undef _ctf_integer_ext
+#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _user, _nowrite) \
+       __event_align = max_t(size_t, __event_align, lttng_alignof(_type));
 
-#undef __field_full
-#define __field_full(_type, _item, _order, _base)      _type   _item;
+#undef _ctf_array_encoded
+#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, _user, _nowrite) \
+       __event_align = max_t(size_t, __event_align, lttng_alignof(_type));
 
-#undef __array_enc_ext
-#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)  \
-       _type   _item;
+#undef _ctf_sequence_encoded
+#define _ctf_sequence_encoded(_type, _item, _src, _length_type,                        \
+                       _src_length, _encoding, _base, _user, _nowrite)         \
+       __event_align = max_t(size_t, __event_align, lttng_alignof(_length_type)); \
+       __event_align = max_t(size_t, __event_align, lttng_alignof(_type));
 
-#undef __dynamic_array_enc_ext
-#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\
-       _type   _item;
+#undef _ctf_string
+#define _ctf_string(_item, _src, _user, _nowrite)
 
-#undef __dynamic_array_enc_ext_2
-#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\
-       __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding)
+#undef TP_PROTO
+#define TP_PROTO(...)  __VA_ARGS__
 
-#undef __string
-#define __string(_item, _src)                  char _item;
+#undef TP_FIELDS
+#define TP_FIELDS(...) __VA_ARGS__
 
-#undef __string_from_user
-#define __string_from_user(_item, _src)                \
-       __string(_item, _src)
+#undef TP_locvar
+#define TP_locvar(...) __VA_ARGS__
 
-#undef TP_STRUCT__entry
-#define TP_STRUCT__entry(args...) args
+#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields) \
+static inline size_t __event_get_align__##_name(void *__tp_locvar, _proto)    \
+{                                                                            \
+       size_t __event_align = 1;                                             \
+       struct { _locvar } *tp_locvar __attribute__((unused)) = __tp_locvar;  \
+                                                                             \
+       _fields                                                               \
+       return __event_align;                                                 \
+}
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print) \
-struct __event_typemap__##_name {                                            \
-       _tstruct                                                              \
-};
-
-#undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print) \
-       LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print)
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields) \
+static inline size_t __event_get_align__##_name(void *__tp_locvar)           \
+{                                                                            \
+       size_t __event_align = 1;                                             \
+       struct { _locvar } *tp_locvar __attribute__((unused)) = __tp_locvar;  \
+                                                                             \
+       _fields                                                               \
+       return __event_align;                                                 \
+}
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
-
 /*
- * Stage 9 of the trace events.
- *
- * Create the probe function : call even size calculation and write event data
- * into the buffer.
+ * Stage 6 of tracepoint event generation.
  *
- * We use both the field and assignment macros to write the fields in the order
- * defined in the field declaration. The field declarations control the
- * execution order, jumping to the appropriate assignment block.
+ * Create the probe function. This function calls event size calculation
+ * and writes event data into the buffer.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
-
-#undef __field_full
-#define __field_full(_type, _item, _order, _base)                      \
-       goto __assign_##_item;                                          \
-__end_field_##_item:
-
-#undef __array_enc_ext
-#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)\
-       goto __assign_##_item;                                          \
-__end_field_##_item:
-
-#undef __dynamic_array_enc_ext
-#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\
-       goto __assign_##_item##_1;                                      \
-__end_field_##_item##_1:                                               \
-       goto __assign_##_item##_2;                                      \
-__end_field_##_item##_2:
-
-#undef __dynamic_array_enc_ext_2
-#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\
-       goto __assign_##_item##_1;                                      \
-__end_field_##_item##_1:                                               \
-       goto __assign_##_item##_2;                                      \
-__end_field_##_item##_2:                                               \
-       goto __assign_##_item##_3;                                      \
-__end_field_##_item##_3:
-
-#undef __string
-#define __string(_item, _src)                                          \
-       goto __assign_##_item;                                          \
-__end_field_##_item:
-
-#undef __string_from_user
-#define __string_from_user(_item, _src)                                        \
-       __string(_item, _src)
+/* Reset all macros within TRACEPOINT_EVENT */
+#include "lttng-events-reset.h"
+#include "lttng-events-write.h"
 
-/*
- * Macros mapping tp_assign() to "=", tp_memcpy() to memcpy() and tp_strcpy() to
- * strcpy().
- */
-#undef tp_assign
-#define tp_assign(dest, src)                                           \
-__assign_##dest:                                                       \
+#undef _ctf_integer_ext_fetched
+#define _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
        {                                                               \
-               __typeof__(__typemap.dest) __tmp = (src);               \
-               lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__tmp));        \
+               _type __tmp = _src;                                     \
+               lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__tmp));\
                __chan->ops->event_write(&__ctx, &__tmp, sizeof(__tmp));\
-       }                                                               \
-       goto __end_field_##dest;
-
-/* fixed length array memcpy */
-#undef tp_memcpy_gen
-#define tp_memcpy_gen(write_ops, dest, src, len)                       \
-__assign_##dest:                                                       \
-       if (0)                                                          \
-               (void) __typemap.dest;                                  \
-       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest));       \
-       __chan->ops->write_ops(&__ctx, src, len);                       \
-       goto __end_field_##dest;
-
-#undef tp_memcpy
-#define tp_memcpy(dest, src, len)                                      \
-       tp_memcpy_gen(event_write, dest, src, len)
-
-#undef tp_memcpy_from_user
-#define tp_memcpy_from_user(dest, src, len)                            \
-       tp_memcpy_gen(event_write_from_user, dest, src, len)
-
-/* variable length sequence memcpy */
-#undef tp_memcpy_dyn_gen
-#define tp_memcpy_dyn_gen(write_ops, dest, src)                                \
-__assign_##dest##_1:                                                   \
-       {                                                               \
-               u32 __tmpl = __dynamic_len[__dynamic_len_idx];          \
-               lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(u32));  \
-               __chan->ops->event_write(&__ctx, &__tmpl, sizeof(u32)); \
-       }                                                               \
-       goto __end_field_##dest##_1;                                    \
-__assign_##dest##_2:                                                   \
-       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest));       \
-       __chan->ops->write_ops(&__ctx, src,                             \
-               sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\
-       goto __end_field_##dest##_2;
-
-#undef tp_memcpy_dyn_gen_2
-#define tp_memcpy_dyn_gen_2(write_ops, dest, src1, src2)               \
-__assign_##dest##_1:                                                   \
+       }
+
+#undef _ctf_integer_ext_isuser0
+#define _ctf_integer_ext_isuser0(_type, _item, _src, _byte_order, _base, _nowrite) \
+       _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite)
+
+#undef _ctf_integer_ext_isuser1
+#define _ctf_integer_ext_isuser1(_type, _item, _user_src, _byte_order, _base, _nowrite) \
+{                                                                             \
+       __typeof__(_user_src) _src;                                            \
+       if (get_user(_src, &(_user_src)))                                      \
+               _src = 0;                                                      \
+       _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
+}
+
+#undef _ctf_integer_ext
+#define _ctf_integer_ext(_type, _item, _user_src, _byte_order, _base, _user, _nowrite) \
+       _ctf_integer_ext_isuser##_user(_type, _item, _user_src, _byte_order, _base, _nowrite)
+
+#undef _ctf_array_encoded
+#define _ctf_array_encoded(_type, _item, _src, _length, _encoding, _user, _nowrite) \
+       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_type));        \
+       if (_user) {                                                    \
+               __chan->ops->event_write_from_user(&__ctx, _src, sizeof(_type) * (_length)); \
+       } else {                                                        \
+               __chan->ops->event_write(&__ctx, _src, sizeof(_type) * (_length)); \
+       }
+
+#undef _ctf_sequence_encoded
+#define _ctf_sequence_encoded(_type, _item, _src, _length_type,                \
+                       _src_length, _encoding, _base, _user, _nowrite) \
        {                                                               \
-               u32 __tmpl = __dynamic_len[__dynamic_len_idx]           \
-                       + __dynamic_len[__dynamic_len_idx + 1];         \
-               lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(u32));  \
-               __chan->ops->event_write(&__ctx, &__tmpl, sizeof(u32)); \
+               _length_type __tmpl = __stackvar.__dynamic_len[__dynamic_len_idx]; \
+               lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_length_type));\
+               __chan->ops->event_write(&__ctx, &__tmpl, sizeof(_length_type));\
        }                                                               \
-       goto __end_field_##dest##_1;                                    \
-__assign_##dest##_2:                                                   \
-       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest));       \
-       __chan->ops->write_ops(&__ctx, src1,                            \
-               sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\
-       goto __end_field_##dest##_2;                                    \
-__assign_##dest##_3:                                                   \
-       __chan->ops->write_ops(&__ctx, src2,                            \
-               sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\
-       goto __end_field_##dest##_3;
-
-#undef tp_memcpy_dyn
-#define tp_memcpy_dyn(dest, src)                                       \
-       tp_memcpy_dyn_gen(event_write, dest, src)
-
-#undef tp_memcpy_dyn_2
-#define tp_memcpy_dyn_2(dest, src1, src2)                              \
-       tp_memcpy_dyn_gen_2(event_write, dest, src1, src2)
-
-#undef tp_memcpy_dyn_from_user
-#define tp_memcpy_dyn_from_user(dest, src)                             \
-       tp_memcpy_dyn_gen(event_write_from_user, dest, src)
-
-/*
- * The string length including the final \0.
- */
-#undef tp_copy_string_from_user
-#define tp_copy_string_from_user(dest, src)                            \
-__assign_##dest:                                                       \
-       if (0)                                                          \
-               (void) __typemap.dest;                                  \
-       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \
-       __chan->ops->event_strcpy_from_user(&__ctx, src,                \
-               __get_dynamic_array_len(dest));                         \
-       goto __end_field_##dest;
-
-#undef tp_strcpy
-#define tp_strcpy(dest, src)                                           \
-__assign_##dest:                                                       \
-       if (0)                                                          \
-               (void) __typemap.dest;                                  \
-       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \
-       __chan->ops->event_strcpy(&__ctx, src, __get_dynamic_array_len(dest)); \
-       goto __end_field_##dest;
-
-/* Named field types must be defined in lttng-types.h */
-
-#undef __get_str
-#define __get_str(field)               field
-
-#undef __get_dynamic_array
-#define __get_dynamic_array(field)     field
+       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_type));        \
+       if (_user) {                                                    \
+               __chan->ops->event_write_from_user(&__ctx, _src,        \
+                       sizeof(_type) * __get_dynamic_len(dest));       \
+       } else {                                                        \
+               __chan->ops->event_write(&__ctx, _src,                  \
+                       sizeof(_type) * __get_dynamic_len(dest));       \
+       }
+
+#undef _ctf_string
+#define _ctf_string(_item, _src, _user, _nowrite)                      \
+       lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(*(_src)));      \
+       if (_user) {                                                    \
+               __chan->ops->event_strcpy_from_user(&__ctx, _src,       \
+                       __get_dynamic_len(dest));                       \
+       } else {                                                        \
+               __chan->ops->event_strcpy(&__ctx, _src,                 \
+                       __get_dynamic_len(dest));                       \
+       }
 
 /* Beware: this get len actually consumes the len value */
-#undef __get_dynamic_array_len
-#define __get_dynamic_array_len(field) __dynamic_len[__dynamic_len_idx++]
+#undef __get_dynamic_len
+#define __get_dynamic_len(field)       __stackvar.__dynamic_len[__dynamic_len_idx++]
 
 #undef TP_PROTO
-#define TP_PROTO(args...) args
+#define TP_PROTO(...)  __VA_ARGS__
 
 #undef TP_ARGS
-#define TP_ARGS(args...) args
+#define TP_ARGS(...)   __VA_ARGS__
 
-#undef TP_STRUCT__entry
-#define TP_STRUCT__entry(args...) args
-
-#undef TP_fast_assign
-#define TP_fast_assign(args...) args
+#undef TP_FIELDS
+#define TP_FIELDS(...) __VA_ARGS__
 
 #undef TP_locvar
 #define TP_locvar(...) __VA_ARGS__
@@ -830,12 +659,14 @@ __assign_##dest:                                                  \
 #endif /* TP_SESSION_CHECK */
 
 /*
- * __dynamic_len array length is twice the number of fields due to
- * __dynamic_array_enc_ext_2() and tp_memcpy_dyn_2(), which are the
- * worse case, needing 2 entries per field.
+ * Using twice size for filter stack data to hold size and pointer for
+ * each field (worse case). For integers, max size required is 64-bit.
+ * Same for double-precision floats. Those fit within
+ * 2*sizeof(unsigned long) for all supported architectures.
+ * Perform UNION (||) of filter runtime list.
  */
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields) \
 static void __event_probe__##_name(void *__data, _proto)                     \
 {                                                                            \
        struct probe_local_vars { _locvar };                                  \
@@ -845,8 +676,10 @@ static void __event_probe__##_name(void *__data, _proto)                 \
        struct lib_ring_buffer_ctx __ctx;                                     \
        size_t __event_len, __event_align;                                    \
        size_t __dynamic_len_idx __attribute__((unused)) = 0;                 \
-       size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)] __attribute__((unused)); \
-       struct __event_typemap__##_name __typemap __attribute__((unused));    \
+       union {                                                               \
+               size_t __dynamic_len[ARRAY_SIZE(__event_fields___##_name)];   \
+               char __filter_stack_data[2 * sizeof(unsigned long) * ARRAY_SIZE(__event_fields___##_name)]; \
+       } __stackvar;                                                         \
        int __ret;                                                            \
        struct probe_local_vars __tp_locvar;                                  \
        struct probe_local_vars *tp_locvar __attribute__((unused)) =          \
@@ -865,24 +698,34 @@ static void __event_probe__##_name(void *__data, _proto)                \
        if (__lpf && likely(!lttng_pid_tracker_lookup(__lpf, current->pid)))  \
                return;                                                       \
        _code                                                                 \
-       __event_len = __event_get_size__##_name(__dynamic_len, tp_locvar,     \
-                               _args);                                       \
+       if (unlikely(!list_empty(&__event->bytecode_runtime_head))) {         \
+               struct lttng_bytecode_runtime *bc_runtime;                    \
+               int __filter_record = __event->has_enablers_without_bytecode; \
+                                                                             \
+               __event_prepare_filter_stack__##_name(__stackvar.__filter_stack_data, \
+                               tp_locvar, _args);                                    \
+               list_for_each_entry_rcu(bc_runtime, &__event->bytecode_runtime_head, node) { \
+                       if (unlikely(bc_runtime->filter(bc_runtime,           \
+                                       __stackvar.__filter_stack_data) & LTTNG_FILTER_RECORD_FLAG)) \
+                               __filter_record = 1;                          \
+               }                                                             \
+               if (likely(!__filter_record))                                 \
+                       return;                                               \
+       }                                                                     \
+       __event_len = __event_get_size__##_name(__stackvar.__dynamic_len,     \
+                               tp_locvar, _args);                            \
        __event_align = __event_get_align__##_name(tp_locvar, _args);         \
        lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len,  \
                                 __event_align, -1);                          \
        __ret = __chan->ops->event_reserve(&__ctx, __event->id);              \
        if (__ret < 0)                                                        \
                return;                                                       \
-       /* Control code (field ordering) */                                   \
-       _tstruct                                                              \
+       _fields                                                               \
        __chan->ops->event_commit(&__ctx);                                    \
-       return;                                                               \
-       /* Copy code, steered by control code */                              \
-       _assign                                                               \
 }
 
 #undef LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print) \
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields) \
 static void __event_probe__##_name(void *__data)                             \
 {                                                                            \
        struct probe_local_vars { _locvar };                                  \
@@ -892,8 +735,10 @@ static void __event_probe__##_name(void *__data)                         \
        struct lib_ring_buffer_ctx __ctx;                                     \
        size_t __event_len, __event_align;                                    \
        size_t __dynamic_len_idx __attribute__((unused)) = 0;                 \
-       size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)] __attribute__((unused)); \
-       struct __event_typemap__##_name __typemap __attribute__((unused));    \
+       union {                                                               \
+               size_t __dynamic_len[ARRAY_SIZE(__event_fields___##_name)];   \
+               char __filter_stack_data[2 * sizeof(unsigned long) * ARRAY_SIZE(__event_fields___##_name)]; \
+       } __stackvar;                                                         \
        int __ret;                                                            \
        struct probe_local_vars __tp_locvar;                                  \
        struct probe_local_vars *tp_locvar __attribute__((unused)) =          \
@@ -912,30 +757,121 @@ static void __event_probe__##_name(void *__data)                       \
        if (__lpf && likely(!lttng_pid_tracker_lookup(__lpf, current->pid)))  \
                return;                                                       \
        _code                                                                 \
-       __event_len = __event_get_size__##_name(__dynamic_len, tp_locvar);    \
+       if (unlikely(!list_empty(&__event->bytecode_runtime_head))) {         \
+               struct lttng_bytecode_runtime *bc_runtime;                    \
+               int __filter_record = __event->has_enablers_without_bytecode; \
+                                                                             \
+               __event_prepare_filter_stack__##_name(__stackvar.__filter_stack_data, \
+                               tp_locvar);                                   \
+               list_for_each_entry_rcu(bc_runtime, &__event->bytecode_runtime_head, node) { \
+                       if (unlikely(bc_runtime->filter(bc_runtime,           \
+                                       __stackvar.__filter_stack_data) & LTTNG_FILTER_RECORD_FLAG)) \
+                               __filter_record = 1;                          \
+               }                                                             \
+               if (likely(!__filter_record))                                 \
+                       return;                                               \
+       }                                                                     \
+       __event_len = __event_get_size__##_name(__stackvar.__dynamic_len, tp_locvar); \
        __event_align = __event_get_align__##_name(tp_locvar);                \
        lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len,  \
                                 __event_align, -1);                          \
        __ret = __chan->ops->event_reserve(&__ctx, __event->id);              \
        if (__ret < 0)                                                        \
                return;                                                       \
-       /* Control code (field ordering) */                                   \
-       _tstruct                                                              \
+       _fields                                                               \
        __chan->ops->event_commit(&__ctx);                                    \
-       return;                                                               \
-       /* Copy code, steered by control code */                              \
-       _assign                                                               \
 }
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
+#undef __get_dynamic_len
+
+/*
+ * Stage 7 of the trace events.
+ *
+ * Create event descriptions.
+ */
+
+/* Named field types must be defined in lttng-types.h */
+
+#include "lttng-events-reset.h"        /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
+
+#ifndef TP_PROBE_CB
+#define TP_PROBE_CB(_template) &__event_probe__##_template
+#endif
+
+#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
+#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)     \
+static const struct lttng_event_desc __event_desc___##_map = {         \
+       .fields = __event_fields___##_template,                         \
+       .name = #_map,                                                  \
+       .kname = #_name,                                                \
+       .probe_callback = (void *) TP_PROBE_CB(_template),              \
+       .nr_fields = ARRAY_SIZE(__event_fields___##_template),          \
+       .owner = THIS_MODULE,                                           \
+};
+
+#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
+#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args) \
+       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)
+
+#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
+
+/*
+ * Stage 8 of the trace events.
+ *
+ * Create an array of event description pointers.
+ */
+
+#include "lttng-events-reset.h"        /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
+
+#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
+#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map) \
+               &__event_desc___##_map,
+
+#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP
+#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args) \
+       LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map)
+
+#define TP_ID1(_token, _system)        _token##_system
+#define TP_ID(_token, _system) TP_ID1(_token, _system)
+
+static const struct lttng_event_desc *TP_ID(__event_desc___, TRACE_SYSTEM)[] = {
+#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
+};
+
+#undef TP_ID1
+#undef TP_ID
+
+/*
+ * Stage 9 of the trace events.
+ *
+ * Create a toplevel descriptor for the whole probe.
+ */
+
+#define TP_ID1(_token, _system)        _token##_system
+#define TP_ID(_token, _system) TP_ID1(_token, _system)
+
+/* non-const because list head will be modified when registered. */
+static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = {
+       .provider = __stringify(TRACE_SYSTEM),
+       .event_desc = TP_ID(__event_desc___, TRACE_SYSTEM),
+       .nr_events = ARRAY_SIZE(TP_ID(__event_desc___, TRACE_SYSTEM)),
+       .head = { NULL, NULL },
+       .lazy_init_head = { NULL, NULL },
+       .lazy = 0,
+};
+
+#undef TP_ID1
+#undef TP_ID
+
 /*
  * Stage 10 of the trace events.
  *
  * Register/unregister probes at module load/unload.
  */
 
-#include "lttng-events-reset.h"        /* Reset all macros within TRACE_EVENT */
+#include "lttng-events-reset.h"        /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
 
 #define TP_ID1(_token, _system)        _token##_system
 #define TP_ID(_token, _system) TP_ID1(_token, _system)
index d0b5cf297367ce3c209b69ecb491e969ec321270..dc6cca1ba0037521e73756da831a5d6c4b4da4a9 100644 (file)
@@ -38,6 +38,10 @@ long lttng_strlen_user_inatomic(const char *addr)
                char v;
                unsigned long ret;
 
+               if (unlikely(!access_ok(VERIFY_READ,
+                               (__force const char __user *) addr,
+                               sizeof(v))))
+                       break;
                ret = __copy_from_user_inatomic(&v,
                        (__force const char __user *)(addr),
                        sizeof(v));
@@ -52,3 +56,4 @@ long lttng_strlen_user_inatomic(const char *addr)
        set_fs(old_fs);
        return count;
 }
+EXPORT_SYMBOL_GPL(lttng_strlen_user_inatomic);
index c7b70ac8e49b4134600b2eda29e7286a792e48db..39c0f3714aecc621be2c2d30670e2a52df403ade 100644 (file)
 #define _LTTNG_INSTRUMENTATION(...)
 #endif
 
-#define LTTNG_TRACEPOINT_EVENT(name, proto, args, struct, assign, print) \
+#define LTTNG_TRACEPOINT_EVENT(name, proto, args, fields) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_CODE(name, proto, args, _locvar, _code, tstruct, assign, print) \
+#define LTTNG_TRACEPOINT_EVENT_CODE(name, proto, args, _locvar, _code, fields) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_MAP(name, map, proto, args, tstruct, assign, print) \
+#define LTTNG_TRACEPOINT_EVENT_CODE_MAP(name, map, proto, args, _locvar, _code, fields) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_FN(name, proto, args, struct, assign, print, reg, unreg) \
+#define LTTNG_TRACEPOINT_EVENT_MAP(name, map, proto, args, fields) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_FN_MAP(name, map, proto, args, tstruct, assign, print, reg, unreg) \
-       _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_CONDITION(name, proto, args, cond, struct, assign, print) \
-       _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(name, map, proto, args, cond, struct, assign, print) \
-       _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, map, struct, assign, print) \
+#define LTTNG_TRACEPOINT_EVENT_MAP_NOARGS(name, map, fields) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE_NOARGS(name))
 
-#define LTTNG_TRACEPOINT_EVENT_CLASS(name, proto, args, tstruct, assign, print)
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _tstruct, _assign, _print)
-#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _tstruct, _assign, _print)
+#define LTTNG_TRACEPOINT_EVENT_CLASS(name, proto, args, fields)
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE(_name, _proto, _args, _locvar, _code, _fields)
+#define LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS(_name, _locvar, _code, _fields)
 
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE(template, name, proto, args) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE_NOARGS(template, name) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE_NOARGS(name))
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT(template, name, proto, args, print) \
-       _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP(template, name, map, proto, args, print) \
-       _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION(template, name, proto, args, cond) \
-       _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
-#define LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP(template, name, map, proto, args, cond) \
-       _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(_template, _name, _map, _proto, _args) \
        _LTTNG_INSTRUMENTATION(DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)))
 #define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map) \
This page took 0.320682 seconds and 4 git commands to generate.