[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