* [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).