[DTrace-devel] DTrace-ized 5.1.14 and 5.2-rc6 pushed to oss.oracle.com and github
Nick Alcock
nick.alcock at oracle.com
Sun Jun 23 12:16:21 PDT 2019
Tests passed on x86-64 and AArch64 with dtrace-utils 1.2.1.
Pushed to <https://github.com/oracle/dtrace-linux-kernel> and
<https://oss.oracle.com/git/gitweb.cgi?p=dtrace-linux-kernel.git>.
Changes to 5.1.14 since 5.1.12 are partially 5.2-rc changes being pushed
back and partially a bugfix to an uninitialized-error-return bug
triggered by recent code motion in the IPv6 code:
16: d2b5785638d4 ! 16: 5248e0dc8cae dtrace, arm: arm64 port
@@ -1164,7 +1164,7 @@
+++ b/arch/arm64/include/asm/syscall.h
@@
- typedef long (*syscall_fn_t)(struct pt_regs *regs);
+ typedef long (*syscall_fn_t)(const struct pt_regs *regs);
-extern const syscall_fn_t sys_call_table[];
+#if IS_ENABLED(CONFIG_DT_SYSTRACE)
@@ -2020,11 +2020,11 @@
+++ b/arch/arm64/kernel/sys.c
@@
#undef __SYSCALL
- #define __SYSCALL(nr, sym) [nr] = (syscall_fn_t)__arm64_##sym,
+ #define __SYSCALL(nr, sym) [nr] = __arm64_##sym,
-const syscall_fn_t sys_call_table[__NR_syscalls] = {
+CONST_SYS_CALL_TABLE syscall_fn_t sys_call_table[__NR_syscalls] = {
- [0 ... __NR_syscalls - 1] = (syscall_fn_t)sys_ni_syscall,
+ [0 ... __NR_syscalls - 1] = __arm64_sys_ni_syscall,
#include <asm/unistd.h>
};
17: 2d0ff7bbd34c ! 17: 73ae67563f72 dtrace: add SDT probes
@@ -2537,7 +2537,7 @@
+ err = -ENOBUFS;
+ goto error;
+ }
- extra_uref = !skb; /* only extra ref if !MSG_MORE */
+ extra_uref = !skb_zcopy(skb); /* only ref on new uarg */
if (rt->dst.dev->features & NETIF_F_SG &&
csummode == CHECKSUM_PARTIAL) {
@@
@@ -2549,11 +2549,15 @@
}
if (transhdrlen) {
@@
- if (unlikely(!skb))
- err = -ENOBUFS;
+ 2 * sk->sk_sndbuf)
+ skb = alloc_skb(alloclen + hh_len,
+ sk->sk_allocation);
+- if (unlikely(!skb))
+- err = -ENOBUFS;
}
- if (!skb)
-+ if (!skb) {
++ if (unlikely(!skb)) {
++ err = -ENOBUFS;
+ dropreason = "out of memory";
goto error;
+ }
Changes to v5.2-rc6 since v5.2-rc5 are just the bugfix portion, since
the other changes are already present since v5.2-rc3:
16: 509175b11221 = 16: 8c637fe6845c dtrace, arm: arm64 port
17: 111c6902e5e3 ! 17: 90de1917f3a9 dtrace: add SDT probes
@@ -2548,7 +2548,7 @@
+ dropreason = "out of memory";
+ goto error;
+ }
- extra_uref = !skb; /* only extra ref if !MSG_MORE */
+ extra_uref = !skb_zcopy(skb); /* only ref on new uarg */
if (rt->dst.dev->features & NETIF_F_SG &&
csummode == CHECKSUM_PARTIAL) {
@@
@@ -2560,11 +2560,15 @@
}
if (transhdrlen) {
@@
- if (unlikely(!skb))
- err = -ENOBUFS;
+ 2 * sk->sk_sndbuf)
+ skb = alloc_skb(alloclen + hh_len,
+ sk->sk_allocation);
+- if (unlikely(!skb))
+- err = -ENOBUFS;
}
- if (!skb)
-+ if (!skb) {
++ if (unlikely(!skb)) {
++ err = -ENOBUFS;
+ dropreason = "out of memory";
goto error;
+ }
More information about the DTrace-devel
mailing list