From patchwork Fri Jan 5 06:42:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 855933 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="fzZRT6bm"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zCZqk3wy3z9sNr for ; Fri, 5 Jan 2018 17:43:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751319AbeAEGnB (ORCPT ); Fri, 5 Jan 2018 01:43:01 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:32943 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751235AbeAEGnA (ORCPT ); Fri, 5 Jan 2018 01:43:00 -0500 Received: by mail-pg0-f65.google.com with SMTP id i196so1690254pgd.0; Thu, 04 Jan 2018 22:42:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=wrb0wzZLKy5wLQ7AGArwWhU9lRx2pc2xd9m/kiHglZ4=; b=fzZRT6bmXk5PjYqnruG1z8ZcidIjSylicR0kWpzAQ7oYob5hjgM654MjziDj19ZXiV amDzkFIEhuEU8RS3Y8NAyLNN/cEtH2vtQ0h9vfcEwkwjlUuKyIyQh0CaovGcQAiQPWaW hVv0M4mcYIBoqjBHcu7zaIkfLG7zCnBqd+zgSIps80067NaQ/a4IQpHEtxHds/Kvouz/ z8vZN3FsQ0EdRmA7glVQBl+uawMxEhlOnU8j4u6Kwozio7RmFhFJ2a5GgYC3fVboKK0R Ph1ShDqmL/4eQB96WDfkj/M1NbmdOiqH5rENA7MBfl+KkfzXq/BAb1DMHMCaM7N0mP+X 3AOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=wrb0wzZLKy5wLQ7AGArwWhU9lRx2pc2xd9m/kiHglZ4=; b=ba6O4JkKkcNuF4FbSzJrufh6cXI7hqVAjUfh/+e7z07XkA9H1Dgzl0R7pUqk96U0zT 5l1gDjGACV40GMRyOojNhyciTyVyiQ8BTSlLD9I0G5BSlBTdpsntFjRDHgvM1D6eCmT9 atAePz7xPvcP/S+sjYgtacA3la1UK0DO2gyiLqw2ilwQkHuEkNzj9NUaKJuUbEgGCd/q EsY8pu87RTKQkvIZx67nZ+/kjk4y1dd6ZQRJP/Llmj9nNigCZTeOFvzze4MRmZxPp+Eg WSfVA7nx9q373oCkwk69Gys+6FOxb5LaA1d3tFqxMPikyFgZ5upUTGLt2hvq8aNZ0XT6 9A2g== X-Gm-Message-State: AKGB3mLLYBa9YLQvwu/2dhbnt5N3WcAGWdBo+UnzzwUcuackw2Q/kJRX eUXq+/zNEnqO3kAsK7359Xo= X-Google-Smtp-Source: ACJfBov9Uagu3/lkhvAmAK4r+qSqRnpp+fc3T3CWu+gvq6X8faWSqh1cWyC66Q6AvjON8nyBeXrx8g== X-Received: by 10.99.6.202 with SMTP id 193mr1178109pgg.356.1515134579435; Thu, 04 Jan 2018 22:42:59 -0800 (PST) Received: from li1588-6.members.linode.com (li1588-6.members.linode.com. [139.162.104.6]) by smtp.gmail.com with ESMTPSA id q74sm10610485pfd.134.2018.01.04.22.42.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jan 2018 22:42:58 -0800 (PST) From: Yafang Shao To: davem@davemloft.net, brendan.d.gregg@gmail.com Cc: songliubraving@fb.com, marcelo.leitner@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH net-next] net: tracepoint: adding new tracepoint arguments in inet_sock_set_state Date: Fri, 5 Jan 2018 14:42:49 +0800 Message-Id: <1515134569-23812-1-git-send-email-laoar.shao@gmail.com> X-Mailer: git-send-email 1.8.3.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org sk->sk_protocol and sk->sk_family are exposed as tracepoint arguments. Then we can conveniently use these two arguments to do the filter. Suggested-by: Brendan Gregg Signed-off-by: Yafang Shao --- include/trace/events/sock.h | 24 ++++++++++++++++++------ net/ipv4/af_inet.c | 6 ++++-- 2 files changed, 22 insertions(+), 8 deletions(-) -- 1.8.3.1 diff --git a/include/trace/events/sock.h b/include/trace/events/sock.h index 3537c5f..c7df70f 100644 --- a/include/trace/events/sock.h +++ b/include/trace/events/sock.h @@ -11,7 +11,11 @@ #include #include -/* The protocol traced by sock_set_state */ +#define family_names \ + EM(AF_INET) \ + EMe(AF_INET6) + +/* The protocol traced by inet_sock_set_state */ #define inet_protocol_names \ EM(IPPROTO_TCP) \ EM(IPPROTO_DCCP) \ @@ -37,6 +41,7 @@ #define EM(a) TRACE_DEFINE_ENUM(a); #define EMe(a) TRACE_DEFINE_ENUM(a); +family_names inet_protocol_names tcp_state_names @@ -45,6 +50,9 @@ #define EM(a) { a, #a }, #define EMe(a) { a, #a } +#define show_family_name(val) \ + __print_symbolic(val, family_names) + #define show_inet_protocol_name(val) \ __print_symbolic(val, inet_protocol_names) @@ -108,9 +116,10 @@ TRACE_EVENT(inet_sock_set_state, - TP_PROTO(const struct sock *sk, const int oldstate, const int newstate), + TP_PROTO(const struct sock *sk, const int family, const int protocol, + const int oldstate, const int newstate), - TP_ARGS(sk, oldstate, newstate), + TP_ARGS(sk, family, protocol, oldstate, newstate), TP_STRUCT__entry( __field(const void *, skaddr) @@ -118,6 +127,7 @@ __field(int, newstate) __field(__u16, sport) __field(__u16, dport) + __field(__u16, family) __field(__u8, protocol) __array(__u8, saddr, 4) __array(__u8, daddr, 4) @@ -133,8 +143,9 @@ __entry->skaddr = sk; __entry->oldstate = oldstate; __entry->newstate = newstate; + __entry->family = family; + __entry->protocol = protocol; - __entry->protocol = sk->sk_protocol; __entry->sport = ntohs(inet->inet_sport); __entry->dport = ntohs(inet->inet_dport); @@ -145,7 +156,7 @@ *p32 = inet->inet_daddr; #if IS_ENABLED(CONFIG_IPV6) - if (sk->sk_family == AF_INET6) { + if (family == AF_INET6) { pin6 = (struct in6_addr *)__entry->saddr_v6; *pin6 = sk->sk_v6_rcv_saddr; pin6 = (struct in6_addr *)__entry->daddr_v6; @@ -160,7 +171,8 @@ } ), - TP_printk("protocol=%s sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c oldstate=%s newstate=%s", + TP_printk("family=%s protocol=%s sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c oldstate=%s newstate=%s", + show_family_name(__entry->family), show_inet_protocol_name(__entry->protocol), __entry->sport, __entry->dport, __entry->saddr, __entry->daddr, diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index bab98a4..1d52796 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -1223,14 +1223,16 @@ int inet_sk_rebuild_header(struct sock *sk) void inet_sk_set_state(struct sock *sk, int state) { - trace_inet_sock_set_state(sk, sk->sk_state, state); + trace_inet_sock_set_state(sk, sk->sk_family, sk->sk_protocol, + sk->sk_state, state); sk->sk_state = state; } EXPORT_SYMBOL(inet_sk_set_state); void inet_sk_state_store(struct sock *sk, int newstate) { - trace_inet_sock_set_state(sk, sk->sk_state, newstate); + trace_inet_sock_set_state(sk, sk->sk_family, sk->sk_protocol, + sk->sk_state, newstate); smp_store_release(&sk->sk_state, newstate); }