public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* [Bug tapsets/16659] New: On kernels >= 3.13, the __ip_sock_daddr() tapset function no longer compiles
@ 2014-03-04 21:21 dsmith at redhat dot com
  2014-03-04 21:24 ` [Bug tapsets/16659] " dsmith at redhat dot com
  0 siblings, 1 reply; 2+ messages in thread
From: dsmith at redhat dot com @ 2014-03-04 21:21 UTC (permalink / raw)
  To: systemtap

https://sourceware.org/bugzilla/show_bug.cgi?id=16659

            Bug ID: 16659
           Summary: On kernels >= 3.13, the __ip_sock_daddr() tapset
                    function no longer compiles
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: tapsets
          Assignee: systemtap at sourceware dot org
          Reporter: dsmith at redhat dot com

On kernels >= 3.13, the __ip_sock_daddr() tapset function no longer compiles:

####
# stap -p4 -ve 'probe tcp.recvmsg { printf("%s\n", daddr) }'
Pass 1: parsed user script and 100 library script(s) using
184500virt/27784res/2468shr/26000data kb, in 110usr/0sys/113real ms.
semantic error: unable to find member 'daddr' for struct ipv6_pinfo
(alternatives: saddr, cork, opt, recverr, rxopt, sndflow, tclass, rxpmtu,
daddr_cache, dontfrag, mc_loop, pmtudisc, __unused_1, __unused_2, flow_label,
ipv6only, srcprefs, frag_size, hop_limit, mcast_oif, rcv_tclass, saddr_cache,
ucast_oif, dst_cookie, mcast_hops, pktoptions, ipv6_ac_list, ipv6_fl_list,
ipv6_mc_list, min_hopcount, rx_dst_cookie, sticky_pktinfo): operator '->' at
/usr/local/share/systemtap/tapset/linux/ip.stp:111:63
        source:     return (&@cast(sock, "inet_sock",
"kernel<net/ip.h>")->pinet6->daddr)
                                                                               
 ^

semantic error: unable to find member 'daddr' for struct ipv6_pinfo
(alternatives: saddr, cork, opt, recverr, rxopt, sndflow, tclass, rxpmtu,
daddr_cache, dontfrag, mc_loop, pmtudisc, __unused_1, __unused_2, flow_label,
ipv6only, srcprefs, frag_size, hop_limit, mcast_oif, rcv_tclass, saddr_cache,
ucast_oif, dst_cookie, mcast_hops, pktoptions, ipv6_ac_list, ipv6_fl_list,
ipv6_mc_list, min_hopcount, rx_dst_cookie, sticky_pktinfo): operator '->' at
:111:63
        source:     return (&@cast(sock, "inet_sock",
"kernel<net/ip.h>")->pinet6->daddr)
                                                                               
 ^

semantic error: unable to find member 'daddr' for struct ipv6_pinfo
(alternatives: saddr, cork, opt, recverr, rxopt, sndflow, tclass, rxpmtu,
daddr_cache, dontfrag, mc_loop, pmtudisc, __unused_1, __unused_2, flow_label,
ipv6only, srcprefs, frag_size, hop_limit, mcast_oif, rcv_tclass, saddr_cache,
ucast_oif, dst_cookie, mcast_hops, pktoptions, ipv6_ac_list, ipv6_fl_list,
ipv6_mc_list, min_hopcount, rx_dst_cookie, sticky_pktinfo): operator '->' at
:111:63
        source:     return (&@cast(sock, "inet_sock",
"kernel<net/ip.h>")->pinet6->daddr)
                                                                               
 ^

Pass 2: analyzed script: 1 probe(s), 8 function(s), 4 embed(s), 0 global(s)
using 467480virt/152728res/4012shr/149072data kb, in 1490usr/210sys/1889real
ms.
Pass 2: analysis failed.  [man error::pass2]
====

This is because of the following kernel commit:

====
commit efe4208f47f907b86f528788da711e8ab9dea44d
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 3 15:42:29 2013 -0700

    ipv6: make lookups simpler and faster

    TCP listener refactoring, part 4 :

    To speed up inet lookups, we moved IPv4 addresses from inet to struct
    sock_common

    Now is time to do the same for IPv6, because it permits us to have fast
    lookups for all kind of sockets, including upcoming SYN_RECV.

    Getting IPv6 addresses in TCP lookups currently requires two extra cache
    lines, plus a dereference (and memory stall).

    inet6_sk(sk) does the dereference of inet_sk(__sk)->pinet6

    This patch is way bigger than its IPv4 counter part, because for IPv4,
    we could add aliases (inet_daddr, inet_rcv_saddr), while on IPv6,
    it's not doable easily.

    inet6_sk(sk)->daddr becomes sk->sk_v6_daddr
    inet6_sk(sk)->rcv_saddr becomes sk->sk_v6_rcv_saddr

    And timewait socket also have tw->tw_v6_daddr & tw->tw_v6_rcv_saddr
    at the same offset.

    We get rid of INET6_TW_MATCH() as INET6_MATCH() is now the generic
    macro.
====

-- 
You are receiving this mail because:
You are the assignee for the bug.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug tapsets/16659] On kernels >= 3.13, the __ip_sock_daddr() tapset function no longer compiles
  2014-03-04 21:21 [Bug tapsets/16659] New: On kernels >= 3.13, the __ip_sock_daddr() tapset function no longer compiles dsmith at redhat dot com
@ 2014-03-04 21:24 ` dsmith at redhat dot com
  0 siblings, 0 replies; 2+ messages in thread
From: dsmith at redhat dot com @ 2014-03-04 21:24 UTC (permalink / raw)
  To: systemtap

https://sourceware.org/bugzilla/show_bug.cgi?id=16659

David Smith <dsmith at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from David Smith <dsmith at redhat dot com> ---
Fixed in commit eafde9d.

-- 
You are receiving this mail because:
You are the assignee for the bug.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-03-04 21:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-04 21:21 [Bug tapsets/16659] New: On kernels >= 3.13, the __ip_sock_daddr() tapset function no longer compiles dsmith at redhat dot com
2014-03-04 21:24 ` [Bug tapsets/16659] " dsmith at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).