From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7AE74C432BE for ; Thu, 26 Aug 2021 03:19:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4529C610CE for ; Thu, 26 Aug 2021 03:19:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232493AbhHZDUd (ORCPT ); Wed, 25 Aug 2021 23:20:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:43874 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229533AbhHZDUc (ORCPT ); Wed, 25 Aug 2021 23:20:32 -0400 Received: from rorschach.local.home (unknown [24.94.146.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 676B1610C7; Thu, 26 Aug 2021 03:19:44 +0000 (UTC) Date: Wed, 25 Aug 2021 23:19:42 -0400 From: Steven Rostedt To: Eric Dumazet Cc: Zhongya Yan , Jakub Kicinski , netdev , LKML , Ingo Molnar , David Miller , Hideaki YOSHIFUJI , David Ahern , hengqi.chen@gmail.com, Yonghong Song Subject: Re: [PATCH] net: tcp_drop adds `reason` parameter for tracing v2 Message-ID: <20210825231942.18f9b17e@rorschach.local.home> In-Reply-To: References: <20210825154043.247764-1-yan2228598786@gmail.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Wed, 25 Aug 2021 08:47:46 -0700 Eric Dumazet wrote: > > @@ -5703,15 +5700,15 @@ static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb, > > TCP_INC_STATS(sock_net(sk), TCP_MIB_INERRS); > > NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPSYNCHALLENGE); > > tcp_send_challenge_ack(sk, skb); > > - goto discard; > > + tcp_drop(sk, skb, TCP_DROP_MASK(__LINE__, TCP_VALIDATE_INCOMING)); > > I'd rather use a string. So that we can more easily identify _why_ the > packet was drop, without looking at the source code > of the exact kernel version to locate line number 1057 > > You can be sure that we will get reports in the future from users of > heavily modified kernels. > Having to download a git tree, or apply semi-private patches is a no go. > > If you really want to include __FILE__ and __LINE__, these both can be > stringified and included in the report, with the help of macros. I agree the __LINE__ is pointless, but if this has a tracepoint involved, then you can simply enable the stacktrace trigger to it and it will save a stack trace in the ring buffer for you. echo stacktrace > /sys/kernel/tracing/events/tcp/tcp_drop/trigger And when the event triggers it will record a stack trace. You can also even add a filter to do it only for specific reasons. echo 'stacktrace if reason == 1' > /sys/kernel/tracing/events/tcp/tcp_drop/trigger And it even works for flags: echo 'stacktrace if reason & 0xa' > /sys/kernel/tracing/events/tcp/tcp_drop/trigger Which gives another reason to use an enum over a string. -- Steve