<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 17, 2019 at 12:08 AM Naveen Saini <<a href="mailto:naveen.kumar.saini@intel.com">naveen.kumar.saini@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Backport patches from upstream to fix build errors when building with<br>
kernel v5.1.<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">When suggesting a backport like this, we should also be logging and showing test results</div><div class="gmail_default" style="font-size:small">that the newer support patches don't cause issues with older kernels.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">That's why I typically do not backport support for various recipes for kernels newer than</div><div class="gmail_default" style="font-size:small">our reference in any given release. Those backports don't always carry zero risk, and </div><div class="gmail_default" style="font-size:small">there will always be a breaking point where kernels are just to new to work with the</div><div class="gmail_default" style="font-size:small">older releases.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Yes, this is just an offset of one version, but we should still be in the habit of showing that</div><div class="gmail_default" style="font-size:small">testing did include the reference versions (in this case 4.19 and 5.0).</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Cheers,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Bruce</div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Signed-off-by: Naveen Saini <<a href="mailto:naveen.kumar.saini@intel.com" target="_blank">naveen.kumar.saini@intel.com</a>><br>
---<br>
...-create-the-new-vm_fault_t-type-v5.1.patch | 66 +++++<br>
...rapper-definitions-for-obsolete-RCU..patch | 48 ++++<br>
...3-Fix-pipe-stop-using-can_merge-v5.1.patch | 43 +++<br>
...ert-KVM-MMU-show-mmu_valid_gen.-v5.1.patch | 52 ++++<br>
...-and-number-from-syscall_get_argumen.patch | 260 ++++++++++++++++++<br>
.../lttng/<a href="http://lttng-modules_2.10.9.bb" rel="noreferrer" target="_blank">lttng-modules_2.10.9.bb</a> | 5 +<br>
6 files changed, 474 insertions(+)<br>
create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0001-Fix-mm-create-the-new-vm_fault_t-type-v5.1.patch<br>
create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0002-Fix-rcu-Remove-wrapper-definitions-for-obsolete-RCU..patch<br>
create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0003-Fix-pipe-stop-using-can_merge-v5.1.patch<br>
create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0004-Fix-Revert-KVM-MMU-show-mmu_valid_gen.-v5.1.patch<br>
create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-start-and-number-from-syscall_get_argumen.patch<br>
<br>
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-mm-create-the-new-vm_fault_t-type-v5.1.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-mm-create-the-new-vm_fault_t-type-v5.1.patch<br>
new file mode 100644<br>
index 0000000000..12e32e8452<br>
--- /dev/null<br>
+++ b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-mm-create-the-new-vm_fault_t-type-v5.1.patch<br>
@@ -0,0 +1,66 @@<br>
+From 55026979d71852aa2cf5e19bb4adb2db98affd1e Mon Sep 17 00:00:00 2001<br>
+From: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Date: Mon, 18 Mar 2019 16:20:32 -0400<br>
+Subject: [PATCH 1/5] Fix: mm: create the new vm_fault_t type (v5.1)<br>
+<br>
+See upstream commit:<br>
+<br>
+ commit 3d3539018d2cbd12e5af4a132636ee7fd8d43ef0<br>
+ Author: Souptick Joarder <<a href="mailto:jrdr.linux@gmail.com" target="_blank">jrdr.linux@gmail.com</a>><br>
+ Date: Thu Mar 7 16:31:14 2019 -0800<br>
+<br>
+ mm: create the new vm_fault_t type<br>
+<br>
+ Page fault handlers are supposed to return VM_FAULT codes, but some<br>
+ drivers/file systems mistakenly return error numbers. Now that all<br>
+ drivers/file systems have been converted to use the vm_fault_t return<br>
+ type, change the type definition to no longer be compatible with 'int'.<br>
+ By making it an unsigned int, the function prototype becomes<br>
+ incompatible with a function which returns int. Sparse will detect any<br>
+ attempts to return a value which is not a VM_FAULT code.<br>
+<br>
+ VM_FAULT_SET_HINDEX and VM_FAULT_GET_HINDEX values are changed to avoid<br>
+ conflict with other VM_FAULT codes.<br>
+<br>
+Upstream-Status: Backport [<a href="http://git.lttng.org/?p=lttng-modules.git;a=commit;h=2ca0c84f0b4a915c555a0b83102d94ac941619ca" rel="noreferrer" target="_blank">http://git.lttng.org/?p=lttng-modules.git;a=commit;h=2ca0c84f0b4a915c555a0b83102d94ac941619ca</a>]<br>
+<br>
+Signed-off-by: Mathieu Desnoyers <<a href="mailto:mathieu.desnoyers@efficios.com" target="_blank">mathieu.desnoyers@efficios.com</a>><br>
+Signed-off-by: Naveen Saini <<a href="mailto:naveen.kumar.saini@intel.com" target="_blank">naveen.kumar.saini@intel.com</a>><br>
+---<br>
+ lib/ringbuffer/ring_buffer_mmap.c | 12 +++++++++++-<br>
+ 1 file changed, 11 insertions(+), 1 deletion(-)<br>
+<br>
+diff --git a/lib/ringbuffer/ring_buffer_mmap.c b/lib/ringbuffer/ring_buffer_mmap.c<br>
+index 4b1b7b3..6592a82 100644<br>
+--- a/lib/ringbuffer/ring_buffer_mmap.c<br>
++++ b/lib/ringbuffer/ring_buffer_mmap.c<br>
+@@ -32,7 +32,11 @@<br>
+ /*<br>
+ * fault() vm_op implementation for ring buffer file mapping.<br>
+ */<br>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))<br>
++static vm_fault_t lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fault *vmf)<br>
++#else<br>
+ static int lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fault *vmf)<br>
++#endif<br>
+ {<br>
+ struct lib_ring_buffer *buf = vma->vm_private_data;<br>
+ struct channel *chan = buf->backend.chan;<br>
+@@ -65,7 +69,13 @@ static int lib_ring_buffer_fault_compat(struct vm_area_struct *vma, struct vm_fa<br>
+ return 0;<br>
+ }<br>
+ <br>
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))<br>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))<br>
++static vm_fault_t lib_ring_buffer_fault(struct vm_fault *vmf)<br>
++{<br>
++ struct vm_area_struct *vma = vmf->vma;<br>
++ return lib_ring_buffer_fault_compat(vma, vmf);<br>
++}<br>
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))<br>
+ static int lib_ring_buffer_fault(struct vm_fault *vmf)<br>
+ {<br>
+ struct vm_area_struct *vma = vmf->vma;<br>
+-- <br>
+2.17.0<br>
+<br>
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-rcu-Remove-wrapper-definitions-for-obsolete-RCU..patch b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-rcu-Remove-wrapper-definitions-for-obsolete-RCU..patch<br>
new file mode 100644<br>
index 0000000000..9d7fcf217a<br>
--- /dev/null<br>
+++ b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-rcu-Remove-wrapper-definitions-for-obsolete-RCU..patch<br>
@@ -0,0 +1,48 @@<br>
+From 68f073a5cdd89f905cb39895f5c2f160a6585672 Mon Sep 17 00:00:00 2001<br>
+From: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Date: Mon, 18 Mar 2019 16:20:33 -0400<br>
+Subject: [PATCH 2/5] Fix: rcu: Remove wrapper definitions for obsolete RCU...<br>
+ (v5.1)<br>
+<br>
+See upstream commit :<br>
+<br>
+commit 6ba7d681aca22e53385bdb35b1d7662e61905760<br>
+Author: Paul E. McKenney <<a href="mailto:paulmck@linux.ibm.com" target="_blank">paulmck@linux.ibm.com</a>><br>
+Date: Wed Jan 9 15:22:03 2019 -0800<br>
+<br>
+ rcu: Remove wrapper definitions for obsolete RCU update functions<br>
+<br>
+ None of synchronize_rcu_bh, synchronize_rcu_bh_expedited, call_rcu_bh,<br>
+ rcu_barrier_bh, synchronize_sched, synchronize_sched_expedited,<br>
+ call_rcu_sched, rcu_barrier_sched, get_state_synchronize_sched, and<br>
+ cond_synchronize_sched are actually used. This commit therefore removes<br>
+ their trivial wrapper-function definitions.<br>
+<br>
+Upstream-Status: Backport [<a href="http://git.lttng.org/?p=lttng-modules.git;a=commit;h=92da05ce1f73488a57e7fd79e9c03113cefdb76f" rel="noreferrer" target="_blank">http://git.lttng.org/?p=lttng-modules.git;a=commit;h=92da05ce1f73488a57e7fd79e9c03113cefdb76f</a>]<br>
+<br>
+Signed-off-by: Mathieu Desnoyers <<a href="mailto:mathieu.desnoyers@efficios.com" target="_blank">mathieu.desnoyers@efficios.com</a>><br>
+Signed-off-by: Naveen Saini <<a href="mailto:naveen.kumar.saini@intel.com" target="_blank">naveen.kumar.saini@intel.com</a>><br>
+---<br>
+ lttng-events.c | 5 +++++<br>
+ 1 file changed, 5 insertions(+)<br>
+<br>
+diff --git a/lttng-events.c b/lttng-events.c<br>
+index 47431ca..3481bd4 100644<br>
+--- a/lttng-events.c<br>
++++ b/lttng-events.c<br>
+@@ -89,7 +89,12 @@ int _lttng_field_statedump(struct lttng_session *session,<br>
+ <br>
+ void synchronize_trace(void)<br>
+ {<br>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))<br>
++ synchronize_rcu();<br>
++#else<br>
+ synchronize_sched();<br>
++#endif<br>
++<br>
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))<br>
+ #ifdef CONFIG_PREEMPT_RT_FULL<br>
+ synchronize_rcu();<br>
+-- <br>
+2.17.0<br>
+<br>
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-pipe-stop-using-can_merge-v5.1.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-pipe-stop-using-can_merge-v5.1.patch<br>
new file mode 100644<br>
index 0000000000..bc028537fd<br>
--- /dev/null<br>
+++ b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-pipe-stop-using-can_merge-v5.1.patch<br>
@@ -0,0 +1,43 @@<br>
+From 9a203973ad3cbefb67a6032fd66e746d19b2d1c3 Mon Sep 17 00:00:00 2001<br>
+From: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Date: Mon, 18 Mar 2019 16:20:34 -0400<br>
+Subject: [PATCH 3/5] Fix: pipe: stop using ->can_merge (v5.1)<br>
+<br>
+See upstream commit:<br>
+<br>
+ commit 01e7187b41191376cee8bea8de9f907b001e87b4<br>
+ Author: Jann Horn <<a href="mailto:jannh@google.com" target="_blank">jannh@google.com</a>><br>
+ Date: Wed Jan 23 15:19:18 2019 +0100<br>
+<br>
+ pipe: stop using ->can_merge<br>
+<br>
+ Al Viro pointed out that since there is only one pipe buffer type to which<br>
+ new data can be appended, it isn't necessary to have a ->can_merge field in<br>
+ struct pipe_buf_operations, we can just check for a magic type.<br>
+<br>
+Upstream-Status: Backport [<a href="http://git.lttng.org/?p=lttng-modules.git;a=commit;h=d6cd2c9598a06f0ba1ba885bbe754e8836528310" rel="noreferrer" target="_blank">http://git.lttng.org/?p=lttng-modules.git;a=commit;h=d6cd2c9598a06f0ba1ba885bbe754e8836528310</a>]<br>
+<br>
+Signed-off-by: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Signed-off-by: Mathieu Desnoyers <<a href="mailto:mathieu.desnoyers@efficios.com" target="_blank">mathieu.desnoyers@efficios.com</a>><br>
+Signed-off-by: Naveen Saini <<a href="mailto:naveen.kumar.saini@intel.com" target="_blank">naveen.kumar.saini@intel.com</a>><br>
+---<br>
+ lib/ringbuffer/ring_buffer_splice.c | 2 ++<br>
+ 1 file changed, 2 insertions(+)<br>
+<br>
+diff --git a/lib/ringbuffer/ring_buffer_splice.c b/lib/ringbuffer/ring_buffer_splice.c<br>
+index 8d14666..93cad29 100644<br>
+--- a/lib/ringbuffer/ring_buffer_splice.c<br>
++++ b/lib/ringbuffer/ring_buffer_splice.c<br>
+@@ -56,7 +56,9 @@ static void lib_ring_buffer_pipe_buf_release(struct pipe_inode_info *pipe,<br>
+ }<br>
+ <br>
+ static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {<br>
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0))<br>
+ .can_merge = 0,<br>
++#endif<br>
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0))<br>
+ .map = generic_pipe_buf_map,<br>
+ .unmap = generic_pipe_buf_unmap,<br>
+-- <br>
+2.17.0<br>
+<br>
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-Revert-KVM-MMU-show-mmu_valid_gen.-v5.1.patch b/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-Revert-KVM-MMU-show-mmu_valid_gen.-v5.1.patch<br>
new file mode 100644<br>
index 0000000000..0e0ab76509<br>
--- /dev/null<br>
+++ b/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-Revert-KVM-MMU-show-mmu_valid_gen.-v5.1.patch<br>
@@ -0,0 +1,52 @@<br>
+From f65f074de41fcc2c176397d54947f5ae2104671b Mon Sep 17 00:00:00 2001<br>
+From: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Date: Mon, 18 Mar 2019 16:20:35 -0400<br>
+Subject: [PATCH 4/5] Fix: Revert "KVM: MMU: show mmu_valid_gen..." (v5.1)<br>
+<br>
+See upstream commit :<br>
+<br>
+ commit b59c4830ca185ba0e9f9e046fb1cd10a4a92627a<br>
+ Author: Sean Christopherson <<a href="mailto:sean.j.christopherson@intel.com" target="_blank">sean.j.christopherson@intel.com</a>><br>
+ Date: Tue Feb 5 13:01:30 2019 -0800<br>
+<br>
+ Revert "KVM: MMU: show mmu_valid_gen in shadow page related tracepoints"<br>
+<br>
+ ...as part of removing x86 KVM's fast invalidate mechanism, i.e. this<br>
+ is one part of a revert all patches from the series that introduced the<br>
+ mechanism[1].<br>
+<br>
+ This reverts commit 2248b023219251908aedda0621251cffc548f258.<br>
+<br>
+Upstream-Status: Backport [<a href="http://git.lttng.org/?p=lttng-modules.git;a=commit;h=8a88382fb09bbeda443044ee8cdb8f92040636bc" rel="noreferrer" target="_blank">http://git.lttng.org/?p=lttng-modules.git;a=commit;h=8a88382fb09bbeda443044ee8cdb8f92040636bc</a>]<br>
+<br>
+Signed-off-by: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Signed-off-by: Mathieu Desnoyers <<a href="mailto:mathieu.desnoyers@efficios.com" target="_blank">mathieu.desnoyers@efficios.com</a>><br>
+Signed-off-by: Naveen Saini <<a href="mailto:naveen.kumar.saini@intel.com" target="_blank">naveen.kumar.saini@intel.com</a>><br>
+---<br>
+ .../events/lttng-module/arch/x86/kvm/mmutrace.h | 10 +++++++++-<br>
+ 1 file changed, 9 insertions(+), 1 deletion(-)<br>
+<br>
+diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h<br>
+index e3f7abd..71e8b34 100644<br>
+--- a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h<br>
++++ b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h<br>
+@@ -13,7 +13,15 @@<br>
+ #undef TRACE_SYSTEM<br>
+ #define TRACE_SYSTEM kvm_mmu<br>
+ <br>
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))<br>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))<br>
++<br>
++#define LTTNG_KVM_MMU_PAGE_FIELDS \<br>
++ ctf_integer(__u64, gfn, (sp)->gfn) \<br>
++ ctf_integer(__u32, role, (sp)->role.word) \<br>
++ ctf_integer(__u32, root_count, (sp)->root_count) \<br>
++ ctf_integer(bool, unsync, (sp)->unsync)<br>
++<br>
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))<br>
+ <br>
+ #define LTTNG_KVM_MMU_PAGE_FIELDS \<br>
+ ctf_integer(unsigned long, mmu_valid_gen, (sp)->mmu_valid_gen) \<br>
+-- <br>
+2.17.0<br>
+<br>
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-start-and-number-from-syscall_get_argumen.patch b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-start-and-number-from-syscall_get_argumen.patch<br>
new file mode 100644<br>
index 0000000000..53583abaa0<br>
--- /dev/null<br>
+++ b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-start-and-number-from-syscall_get_argumen.patch<br>
@@ -0,0 +1,260 @@<br>
+From bd3fb656df0fedb0f87d1ef3690260a1d4b135e5 Mon Sep 17 00:00:00 2001<br>
+From: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Date: Tue, 9 Apr 2019 14:12:41 -0400<br>
+Subject: [PATCH 5/5] Fix: Remove start and number from syscall_get_arguments()<br>
+ args (v5.1)<br>
+<br>
+ commit b35f549df1d7520d37ba1e6d4a8d4df6bd52d136<br>
+ Author: Steven Rostedt (Red Hat) <<a href="mailto:rostedt@goodmis.org" target="_blank">rostedt@goodmis.org</a>><br>
+ Date: Mon Nov 7 16:26:37 2016 -0500<br>
+<br>
+ syscalls: Remove start and number from syscall_get_arguments() args<br>
+<br>
+ At Linux Plumbers, Andy Lutomirski approached me and pointed out that the<br>
+ function call syscall_get_arguments() implemented in x86 was horribly<br>
+ written and not optimized for the standard case of passing in 0 and 6 for<br>
+ the starting index and the number of system calls to get. When looking at<br>
+ all the users of this function, I discovered that all instances pass in only<br>
+ 0 and 6 for these arguments. Instead of having this function handle<br>
+ different cases that are never used, simply rewrite it to return the first 6<br>
+ arguments of a system call.<br>
+<br>
+ This should help out the performance of tracing system calls by ptrace,<br>
+ ftrace and perf.<br>
+<br>
+ Link: <a href="http://lkml.kernel.org/r/20161107213233.754809394@goodmis.org" rel="noreferrer" target="_blank">http://lkml.kernel.org/r/20161107213233.754809394@goodmis.org</a><br>
+<br>
+Upstream-Status: Backport [<a href="http://git.lttng.org/?p=lttng-modules.git;a=commit;h=1b7b9c650ebb94358365512199559b0ece3e657c" rel="noreferrer" target="_blank">http://git.lttng.org/?p=lttng-modules.git;a=commit;h=1b7b9c650ebb94358365512199559b0ece3e657c</a>]<br>
+<br>
+Signed-off-by: Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
+Signed-off-by: Mathieu Desnoyers <<a href="mailto:mathieu.desnoyers@efficios.com" target="_blank">mathieu.desnoyers@efficios.com</a>><br>
+Signed-off-by: Naveen Saini <<a href="mailto:naveen.kumar.saini@intel.com" target="_blank">naveen.kumar.saini@intel.com</a>><br>
+---<br>
+ lttng-syscalls.c | 57 ++++++++++++++++++++++++-----------------------<br>
+ wrapper/syscall.h | 34 ++++++++++++++++++++++++++++<br>
+ 2 files changed, 63 insertions(+), 28 deletions(-)<br>
+ create mode 100644 wrapper/syscall.h<br>
+<br>
+diff --git a/lttng-syscalls.c b/lttng-syscalls.c<br>
+index 0b980a1..c9dc275 100644<br>
+--- a/lttng-syscalls.c<br>
++++ b/lttng-syscalls.c<br>
+@@ -38,6 +38,7 @@<br>
+ #include <wrapper/tracepoint.h><br>
+ #include <wrapper/file.h><br>
+ #include <wrapper/rcu.h><br>
++#include <wrapper/syscall.h><br>
+ #include <lttng-events.h><br>
+ <br>
+ #ifndef CONFIG_COMPAT<br>
+@@ -374,9 +375,9 @@ struct lttng_syscall_filter {<br>
+ static void syscall_entry_unknown(struct lttng_event *event,<br>
+ struct pt_regs *regs, unsigned int id)<br>
+ {<br>
+- unsigned long args[UNKNOWN_SYSCALL_NRARGS];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, UNKNOWN_SYSCALL_NRARGS, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ if (unlikely(in_compat_syscall()))<br>
+ __event_probe__compat_syscall_entry_unknown(event, id, args);<br>
+ else<br>
+@@ -445,9 +446,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)<br>
+ case 1:<br>
+ {<br>
+ void (*fptr)(void *__data, unsigned long arg0) = entry->func;<br>
+- unsigned long args[1];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, args[0]);<br>
+ break;<br>
+ }<br>
+@@ -456,9 +457,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)<br>
+ void (*fptr)(void *__data,<br>
+ unsigned long arg0,<br>
+ unsigned long arg1) = entry->func;<br>
+- unsigned long args[2];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, args[0], args[1]);<br>
+ break;<br>
+ }<br>
+@@ -468,9 +469,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)<br>
+ unsigned long arg0,<br>
+ unsigned long arg1,<br>
+ unsigned long arg2) = entry->func;<br>
+- unsigned long args[3];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, args[0], args[1], args[2]);<br>
+ break;<br>
+ }<br>
+@@ -481,9 +482,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)<br>
+ unsigned long arg1,<br>
+ unsigned long arg2,<br>
+ unsigned long arg3) = entry->func;<br>
+- unsigned long args[4];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, args[0], args[1], args[2], args[3]);<br>
+ break;<br>
+ }<br>
+@@ -495,9 +496,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)<br>
+ unsigned long arg2,<br>
+ unsigned long arg3,<br>
+ unsigned long arg4) = entry->func;<br>
+- unsigned long args[5];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, args[0], args[1], args[2], args[3], args[4]);<br>
+ break;<br>
+ }<br>
+@@ -510,9 +511,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)<br>
+ unsigned long arg3,<br>
+ unsigned long arg4,<br>
+ unsigned long arg5) = entry->func;<br>
+- unsigned long args[6];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, args[0], args[1], args[2],<br>
+ args[3], args[4], args[5]);<br>
+ break;<br>
+@@ -525,9 +526,9 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)<br>
+ static void syscall_exit_unknown(struct lttng_event *event,<br>
+ struct pt_regs *regs, int id, long ret)<br>
+ {<br>
+- unsigned long args[UNKNOWN_SYSCALL_NRARGS];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, UNKNOWN_SYSCALL_NRARGS, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ if (unlikely(in_compat_syscall()))<br>
+ __event_probe__compat_syscall_exit_unknown(event, id, ret,<br>
+ args);<br>
+@@ -601,9 +602,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)<br>
+ void (*fptr)(void *__data,<br>
+ long ret,<br>
+ unsigned long arg0) = entry->func;<br>
+- unsigned long args[1];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, ret, args[0]);<br>
+ break;<br>
+ }<br>
+@@ -613,9 +614,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)<br>
+ long ret,<br>
+ unsigned long arg0,<br>
+ unsigned long arg1) = entry->func;<br>
+- unsigned long args[2];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, ret, args[0], args[1]);<br>
+ break;<br>
+ }<br>
+@@ -626,9 +627,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)<br>
+ unsigned long arg0,<br>
+ unsigned long arg1,<br>
+ unsigned long arg2) = entry->func;<br>
+- unsigned long args[3];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, ret, args[0], args[1], args[2]);<br>
+ break;<br>
+ }<br>
+@@ -640,9 +641,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)<br>
+ unsigned long arg1,<br>
+ unsigned long arg2,<br>
+ unsigned long arg3) = entry->func;<br>
+- unsigned long args[4];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, ret, args[0], args[1], args[2], args[3]);<br>
+ break;<br>
+ }<br>
+@@ -655,9 +656,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)<br>
+ unsigned long arg2,<br>
+ unsigned long arg3,<br>
+ unsigned long arg4) = entry->func;<br>
+- unsigned long args[5];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, ret, args[0], args[1], args[2], args[3], args[4]);<br>
+ break;<br>
+ }<br>
+@@ -671,9 +672,9 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)<br>
+ unsigned long arg3,<br>
+ unsigned long arg4,<br>
+ unsigned long arg5) = entry->func;<br>
+- unsigned long args[6];<br>
++ unsigned long args[LTTNG_SYSCALL_NR_ARGS];<br>
+ <br>
+- syscall_get_arguments(current, regs, 0, entry->nrargs, args);<br>
++ lttng_syscall_get_arguments(current, regs, args);<br>
+ fptr(event, ret, args[0], args[1], args[2],<br>
+ args[3], args[4], args[5]);<br>
+ break;<br>
+diff --git a/wrapper/syscall.h b/wrapper/syscall.h<br>
+new file mode 100644<br>
+index 0000000..8715f0c<br>
+--- /dev/null<br>
++++ b/wrapper/syscall.h<br>
+@@ -0,0 +1,34 @@<br>
++/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)<br>
++ *<br>
++ * wrapper/syscall.h<br>
++ *<br>
++ * wrapper around asm/syscall.h.<br>
++ *<br>
++ * Copyright (C) 2019 Michael Jeanson <<a href="mailto:mjeanson@efficios.com" target="_blank">mjeanson@efficios.com</a>><br>
++ */<br>
++<br>
++#ifndef _LTTNG_WRAPPER_SYSCALL_H<br>
++#define _LTTNG_WRAPPER_SYSCALL_H<br>
++<br>
++#include <asm/syscall.h><br>
++#include <lttng-kernel-version.h><br>
++<br>
++#define LTTNG_SYSCALL_NR_ARGS 6<br>
++<br>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))<br>
++<br>
++#define lttng_syscall_get_arguments(task, regs, args) \<br>
++ syscall_get_arguments(task, regs, args)<br>
++<br>
++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) */<br>
++<br>
++static inline<br>
++void lttng_syscall_get_arguments(struct task_struct *task,<br>
++ struct pt_regs *regs, unsigned long *args)<br>
++{<br>
++ syscall_get_arguments(task, regs, 0, LTTNG_SYSCALL_NR_ARGS, args);<br>
++}<br>
++<br>
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) */<br>
++<br>
++#endif /* _LTTNG_WRAPPER_SYSCALL_H */<br>
+-- <br>
+2.17.0<br>
+<br>
diff --git a/meta/recipes-kernel/lttng/<a href="http://lttng-modules_2.10.9.bb" rel="noreferrer" target="_blank">lttng-modules_2.10.9.bb</a> b/meta/recipes-kernel/lttng/<a href="http://lttng-modules_2.10.9.bb" rel="noreferrer" target="_blank">lttng-modules_2.10.9.bb</a><br>
index 70a6843263..417c8b1724 100644<br>
--- a/meta/recipes-kernel/lttng/<a href="http://lttng-modules_2.10.9.bb" rel="noreferrer" target="_blank">lttng-modules_2.10.9.bb</a><br>
+++ b/meta/recipes-kernel/lttng/<a href="http://lttng-modules_2.10.9.bb" rel="noreferrer" target="_blank">lttng-modules_2.10.9.bb</a><br>
@@ -15,6 +15,11 @@ COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux'<br>
SRC_URI = "<a href="https://lttng.org/files/$%7BBPN%7D/$%7BBPN%7D-$%7BPV%7D.tar.bz2" rel="noreferrer" target="_blank">https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2</a> \<br>
file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \<br>
file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \<br>
+ file://0001-Fix-mm-create-the-new-vm_fault_t-type-v5.1.patch \<br>
+ file://0002-Fix-rcu-Remove-wrapper-definitions-for-obsolete-RCU..patch \<br>
+ file://0003-Fix-pipe-stop-using-can_merge-v5.1.patch \<br>
+ file://0004-Fix-Revert-KVM-MMU-show-mmu_valid_gen.-v5.1.patch \<br>
+ file://0005-Fix-Remove-start-and-number-from-syscall_get_argumen.patch \<br>
"<br>
<br>
SRC_URI[md5sum] = "09df0ac2e8f245740a2f32411d10c0d1"<br>
-- <br>
2.17.0<br>
<br>
-- <br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">- Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end<br>- "Use the force Harry" - Gandalf, Star Trek II<br><br></div></div>