mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 09:01:34 +00:00
SUNRPC: Add source address/port to rpc_socket* traces
The rpc_socket* traces now show also the source address and port. An example is: kworker/u17:1-951 [005] 134218.925343: rpc_socket_close: socket:[46913] srcaddr=192.168.100.187:793 dstaddr=192.168.100.129:2049 state=4 (DISCONNECTING) sk_state=7 (CLOSE) kworker/u17:0-242 [006] 134360.841370: rpc_socket_connect: error=-115 socket:[56322] srcaddr=192.168.100.187:769 dstaddr=192.168.100.129:2049 state=2 (CONNECTING) sk_state=2 (SYN_SENT) <idle>-0 [006] 134360.841859: rpc_socket_state_change: socket:[56322] srcaddr=192.168.100.187:769 dstaddr=192.168.100.129:2049 state=2 (CONNECTING) sk_state=1 (ESTABLISHED) Signed-off-by: Pierguido Lambri <plambri@redhat.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
6ff9d99bb8
commit
4b0c359b81
@ -794,6 +794,9 @@ RPC_SHOW_SOCKET
|
||||
|
||||
RPC_SHOW_SOCK
|
||||
|
||||
|
||||
#include <trace/events/net_probe_common.h>
|
||||
|
||||
/*
|
||||
* Now redefine the EM() and EMe() macros to map the enums to the strings
|
||||
* that will be printed in the output.
|
||||
@ -816,27 +819,32 @@ DECLARE_EVENT_CLASS(xs_socket_event,
|
||||
__field(unsigned int, socket_state)
|
||||
__field(unsigned int, sock_state)
|
||||
__field(unsigned long long, ino)
|
||||
__string(dstaddr,
|
||||
xprt->address_strings[RPC_DISPLAY_ADDR])
|
||||
__string(dstport,
|
||||
xprt->address_strings[RPC_DISPLAY_PORT])
|
||||
__array(__u8, saddr, sizeof(struct sockaddr_in6))
|
||||
__array(__u8, daddr, sizeof(struct sockaddr_in6))
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
struct inode *inode = SOCK_INODE(socket);
|
||||
const struct sock *sk = socket->sk;
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
|
||||
memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
|
||||
memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
|
||||
|
||||
TP_STORE_ADDR_PORTS(__entry, inet, sk);
|
||||
|
||||
__entry->socket_state = socket->state;
|
||||
__entry->sock_state = socket->sk->sk_state;
|
||||
__entry->ino = (unsigned long long)inode->i_ino;
|
||||
__assign_str(dstaddr,
|
||||
xprt->address_strings[RPC_DISPLAY_ADDR]);
|
||||
__assign_str(dstport,
|
||||
xprt->address_strings[RPC_DISPLAY_PORT]);
|
||||
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
"socket:[%llu] dstaddr=%s/%s "
|
||||
"socket:[%llu] srcaddr=%pISpc dstaddr=%pISpc "
|
||||
"state=%u (%s) sk_state=%u (%s)",
|
||||
__entry->ino, __get_str(dstaddr), __get_str(dstport),
|
||||
__entry->ino,
|
||||
__entry->saddr,
|
||||
__entry->daddr,
|
||||
__entry->socket_state,
|
||||
rpc_show_socket_state(__entry->socket_state),
|
||||
__entry->sock_state,
|
||||
@ -866,29 +874,33 @@ DECLARE_EVENT_CLASS(xs_socket_event_done,
|
||||
__field(unsigned int, socket_state)
|
||||
__field(unsigned int, sock_state)
|
||||
__field(unsigned long long, ino)
|
||||
__string(dstaddr,
|
||||
xprt->address_strings[RPC_DISPLAY_ADDR])
|
||||
__string(dstport,
|
||||
xprt->address_strings[RPC_DISPLAY_PORT])
|
||||
__array(__u8, saddr, sizeof(struct sockaddr_in6))
|
||||
__array(__u8, daddr, sizeof(struct sockaddr_in6))
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
struct inode *inode = SOCK_INODE(socket);
|
||||
const struct sock *sk = socket->sk;
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
|
||||
memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
|
||||
memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
|
||||
|
||||
TP_STORE_ADDR_PORTS(__entry, inet, sk);
|
||||
|
||||
__entry->socket_state = socket->state;
|
||||
__entry->sock_state = socket->sk->sk_state;
|
||||
__entry->ino = (unsigned long long)inode->i_ino;
|
||||
__entry->error = error;
|
||||
__assign_str(dstaddr,
|
||||
xprt->address_strings[RPC_DISPLAY_ADDR]);
|
||||
__assign_str(dstport,
|
||||
xprt->address_strings[RPC_DISPLAY_PORT]);
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
"error=%d socket:[%llu] dstaddr=%s/%s "
|
||||
"error=%d socket:[%llu] srcaddr=%pISpc dstaddr=%pISpc "
|
||||
"state=%u (%s) sk_state=%u (%s)",
|
||||
__entry->error,
|
||||
__entry->ino, __get_str(dstaddr), __get_str(dstport),
|
||||
__entry->ino,
|
||||
__entry->saddr,
|
||||
__entry->daddr,
|
||||
__entry->socket_state,
|
||||
rpc_show_socket_state(__entry->socket_state),
|
||||
__entry->sock_state,
|
||||
|
Loading…
Reference in New Issue
Block a user