From nobody Tue Jun 23 21:32:02 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A749FC433EF for ; Sat, 26 Feb 2022 08:51:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230348AbiBZIvu (ORCPT ); Sat, 26 Feb 2022 03:51:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230294AbiBZIvg (ORCPT ); Sat, 26 Feb 2022 03:51:36 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9F4A1B8BD7; Sat, 26 Feb 2022 00:51:02 -0800 (PST) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 21Q4nHA1030174; Sat, 26 Feb 2022 08:49:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=eUO0OS+ETeAg4CuJQcX+O+hhDyPBbXpObmQxWMNMmdw=; b=jFus6xyvc+0/vSfTkBnC78rPEDxGIFqMZ4YrbuNM9Ca1vEljZyu+lmHj4SHyn6t3CTzG Hx3kSnpN6WETquLKV5NyVRRCHpBLKJe2MAULmczXWpRXhKWTQA2cEcaVtZ21lels9xsJ kE+IwbmeCh5IOL9DBL+NCxC3PoMaaY+VnGpCW4nMNIZ35uS02pYIpOMlWJCO1JMcM28Y XTXxDoO3BT+G2vvWl2TOamQYGAHLPaaIh9MwbHgFX6qAiGWl6trVFrz1sB30gIXzuzeN IBZYIX5neFdyBQ+DeJzaB87DFBn6+uuRGrrOx2XqiCmfezFse7OXDhqOnUNEQiExXn3V 3g== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3efamc8ebr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:49:58 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 21Q8kO7p005020; Sat, 26 Feb 2022 08:49:57 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by userp3030.oracle.com with ESMTP id 3ef9askqdw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:49:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DD3OD5dUfSJ+H/TlivgJ07eZstlW93B7nOHnFT7B1ezPnTDCNv5A2UFa8vxhY5yozHD73MHR6jYnPYNLJHFVL2JsITQJfm6hdHI5TGPHbHDqPSkqI2qe2wweIs3j3PbqgR4FGit3e6jLaXY7yd0GlaRxpopBkHiTD+e9ZUynzGTsUsSmGWt4+Ix41Hx8AYf2UUDaWu226bq1Pagvm+jCGxxcbK7Wx+vOJUHqJm/9L8dbRRrO9ytTBFwnmzVAvG13ysu4O+S76AH5mfggfCIQLGBsOVIF9nvCHxyYKGQopfsZUHO3ilvewDabPzP3qp0yDev8xfClQE8Z2KKUhZtuhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eUO0OS+ETeAg4CuJQcX+O+hhDyPBbXpObmQxWMNMmdw=; b=Ix7YT6cnUla9rk1lEkB3ced5EfhimtPBrvqzThlY3YTWdiP346l8xokdfTS24D6xyUjPfzvuKN/dJk1h+zZZ60wIX0gEmF/6cC+p1ks5XNjbdRPsUkx5jA6SaKonjffQ+odRY7d7+xv7tgAqbiOSuvBj40Z7m3JaUYE2++LB3ZaQcrGNBqbxhbI9DHbTMuyglyKLEmjiYFc2ijbWcKRY+MKKCByuaB6w2oBenID2dW+ksGJqzgZww1YApwdkhUOurdkkm8rUzMu/0nIFbUpDyI0S4GLIq2VM8zyNnSTWLB70k0m/WdHW6g3qUrcV7opRdhFdL+ygczgn75FRxAu+6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eUO0OS+ETeAg4CuJQcX+O+hhDyPBbXpObmQxWMNMmdw=; b=RKuIDRFMemerWPpN/apICV17iUPV+MPDJQC/okaYLiIQnC3Vvxd2AN6GkM6nb8Ir0fE2Xv8jpxfwo9PqmKPIGtVWhPUeB2rxQepbxqb1o6grjjpYlp32ZQwyHK9ncWBmAIOAx1X6ksjnqksnnKPrZWRnsHrYaBjB5MFuGQoctUc= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by CY4PR10MB1768.namprd10.prod.outlook.com (2603:10b6:910:c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Sat, 26 Feb 2022 08:49:55 +0000 Received: from BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47]) by BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47%4]) with mapi id 15.20.5017.025; Sat, 26 Feb 2022 08:49:55 +0000 From: Dongli Zhang To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, davem@davemloft.net, kuba@kernel.org, rostedt@goodmis.org, mingo@redhat.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, imagedong@tencent.com, joao.m.martins@oracle.com, joe.jin@oracle.com, dsahern@gmail.com, edumazet@google.com Subject: [PATCH net-next v4 1/4] skbuff: introduce kfree_skb_list_reason() Date: Sat, 26 Feb 2022 00:49:26 -0800 Message-Id: <20220226084929.6417-2-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220226084929.6417-1-dongli.zhang@oracle.com> References: <20220226084929.6417-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0196.namprd05.prod.outlook.com (2603:10b6:a03:330::21) To BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 25a0a032-7ae1-43ac-0827-08d9f904f583 X-MS-TrafficTypeDiagnostic: CY4PR10MB1768:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wLdYbr5DsI2uBZy28r8FiVzCR+4+J+4ZVlznj8JGydh1mnf+eCW2KZFbspT+pgQrxx/MwYvRl+Dj4Um8YvEpGk5y4t2CofaIdqNolZwuBRaZdRkfn9bl8gYEbmBEiVFdSAwEElqBuWDX788+sa8Hn/tM0mUkiZ48s2QswU/eaB4Jp/NRJBQokc3A7C7/RlwFqVQapQ0QAQtmWdUmcPBJbjErT+bP2OfjGsga2DvXUgdeArRydAMldItB8p4aa8J3Sq2tHYQyAAiVUqEMOsqeRT+8xfLqV9biB1moJrEz7rdfoL4uOp5I8hysaahuSo5aQBila2JBVZbixjcE9FcYtT3EsDXKl6ynaYDnoI30Quc5LMN06CajA3ZOHPhT6P7aX6LvX+xGvJjJJKBjpyYaLOV0JxBEzSjcMWj7jmhhBnvrUGCzm7BTIRVzLm+8tJHdIzv3E36l53a9LGhmdrUkLpWzNPANf63E74V4nRz2hwYZh/E7+Nk3Lt+lyfhNd1BQZ7DZstRlbpmTCmoYjdncP6N/2YvI3dkAiPFjitZQUzak4kM3Rd5hHWO+USToevbYWhx1iB8QPa7wcTM+6BUGzhLcXPCZUHvzrlXJPO7WDwKSVi8Fas+GIRSd1Z4/axDV3WcxogM8O2oao1eM+2t0Su8XWdAAtfgtDVn7cFnNTCkxfj5+g+T6X/d1VZvwo1sGd8VZa0rOTvfkaIaU0uy9KA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2663.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(52116002)(316002)(6512007)(6666004)(6506007)(186003)(5660300002)(86362001)(8936002)(44832011)(26005)(7416002)(1076003)(2616005)(2906002)(8676002)(66476007)(66556008)(83380400001)(66946007)(38350700002)(38100700002)(4326008)(6486002)(508600001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UP0MpMH6+5BSBD7zaykMNyNS3QwGh1siQu7ms6+HfjldJcqU6kyR7h8IZJz4?= =?us-ascii?Q?IHRcHQC0FG3c8YM1XzrO2yivWNwVHebse2xrNvt07QJUxGQDrAwYx2GM5ZIc?= =?us-ascii?Q?+kitjff6Saynx0O/toPAY2CEK9gYHGsZg0jdWvgUxh/jI/WRxQ0bw6Tl5657?= =?us-ascii?Q?PrDmJ643caI51fpLMiDeWcbp7iw062AXfgzHnua9hhJJqEjcITVll0SEWKkp?= =?us-ascii?Q?+2D98w5mYvedN4kP0AmrCfTt/1DXL7J4cSQFi7/ot3kM6DXCy0KSpyZR74zE?= =?us-ascii?Q?XnuYu6kuo9x3r+bWYm3EW8BW3VKM2hpGAdouwtIdZaF0Qt0isqx8GkDEUR2j?= =?us-ascii?Q?GE2pcOPkElR1p/G8Am3zv3HSws3s1B/OKU7U4JsjAEbJzvJaYRc5CUJemohO?= =?us-ascii?Q?1no89O61rmRjajAMYSyp8zSTTYDQMjBUUG/cHLbfoagxpE6oeyf9oaAblG8O?= =?us-ascii?Q?NTBu1/I8S+NFON1mEDiawjSR4C4QzV95ZuM5LtoBoFosYd94ak4OgOVTvbpY?= =?us-ascii?Q?P2Z9Wp1QWwyL9dA4MHFnAzuoLmO6QABzs2kS/E/Fbl5/q+671uKHqhyJPiEX?= =?us-ascii?Q?cvkOrmROCYo99Og4veLRWOSMHueStg7tgaXE9ScIAqadu/SO300F7rR8Mvog?= =?us-ascii?Q?/YZFKXEJ0UFwLc+En+PeLvxkPRBFwUVKCr8VXv3UU0ulXnHWui4B6sVY+kZz?= =?us-ascii?Q?DUfOVVsgwBPswnxdLC/SShQ0HZXlKq8j5ZDjXaYgtrr1U7Xc9brLIgIEdG8J?= =?us-ascii?Q?WhQPnTdD8fHqbkeMBj13idQYWwyiPc0gRl5DaobG7v57lDx7cI2bX3x/gQPE?= =?us-ascii?Q?BLjJTd7IaZkH+LKIxVDdzNuq6MsU/RGAjDKMbRt4wM1C/UtsbkA5R0zNaYf0?= =?us-ascii?Q?ezhBY3BOERTEzsRMe9OBCEb+1BCTca1zKyZGW+/232z0ZAafQDO6BmGuhWrd?= =?us-ascii?Q?g6lFgkKI5b4e71Xbh5/y//gKpxEdWHpUj3/I95pkptgTFwriO5LKzgWaMAUE?= =?us-ascii?Q?9528a1Enpthl9Csbtx8PBmDLm3U6CafWoDqqTCaV8PJG4p/CuUUkt/x3DztN?= =?us-ascii?Q?2mX6f3yE4xWhCYEHhkIwo9vACpw2QurSNm/lW1v97PjmNnsYqy7iw8yJkxuD?= =?us-ascii?Q?CSoXV5uHsoEvcduyv2QUXGL3xCfGmHVidPfsgpSqviTOiNGc2MGjMg5L9Ptm?= =?us-ascii?Q?TmmQp/drVmyZWxAHqM1G+BHnlVMWFVAmNc4x9Jtla131AMGbOlcaO0rvC+Fz?= =?us-ascii?Q?1qtZwG469v/uI9YPey9NhP21tjUUrp8PixdIKXmVXN4PijxAIu5TCRuN1HCw?= =?us-ascii?Q?RH+KR4b1UgKw50w1kTkGRf0dis5lai/YcIL0dI5irtmx63TlTgep0xO7O51C?= =?us-ascii?Q?Z7UEEZNZdW0osYKyT6HEAzLHqGFvFgl6Wx57ZQ0VqI5Yj98R7qgNA7ssy4g5?= =?us-ascii?Q?EFdEc9ZJWXLpNlQg8e8BSGcRKRGqGE/SUOg8zJ1V+0fMv6OcG3rYuSt/AdfI?= =?us-ascii?Q?nviRAyhI1LKLk9TqwfxPpPwIVzKVZ0NeyDWGamQcY1YspMltMDBfCLstYryg?= =?us-ascii?Q?m76TkP9ZLIRpi1T2IuXr1dbDV0xl3ia4wTaV5k7yxnEIBeQ46P2ja9KGw7tx?= =?us-ascii?Q?7ND0WROypso2rHMi4tqXwIE=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25a0a032-7ae1-43ac-0827-08d9f904f583 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2022 08:49:54.5857 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CEmAiTJMs3FncURg31E2v2O6sQ+kMBKvpUs7C3UxhNbieEm0G0eSdtkdDHOAI1di/qQSQHOn1mG7HaKkLYf4TQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR10MB1768 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10269 signatures=684655 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202260060 X-Proofpoint-ORIG-GUID: 38jJBqROrvuGxsqWYagK6cRMXdnqA5u9 X-Proofpoint-GUID: 38jJBqROrvuGxsqWYagK6cRMXdnqA5u9 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This is to introduce kfree_skb_list_reason() to drop a list of sk_buff with a specific reason. Cc: Joao Martins Cc: Joe Jin Signed-off-by: Dongli Zhang Reviewed-by: David Ahern --- include/linux/skbuff.h | 2 ++ net/core/skbuff.c | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 31be38078918..bc3f7822110c 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1176,6 +1176,8 @@ static inline void kfree_skb(struct sk_buff *skb) } =20 void skb_release_head_state(struct sk_buff *skb); +void kfree_skb_list_reason(struct sk_buff *segs, + enum skb_drop_reason reason); void kfree_skb_list(struct sk_buff *segs); void skb_dump(const char *level, const struct sk_buff *skb, bool full_pkt); void skb_tx_error(struct sk_buff *skb); diff --git a/net/core/skbuff.c b/net/core/skbuff.c index b32c5d782fe1..b4193eab3083 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -777,15 +777,22 @@ void kfree_skb_reason(struct sk_buff *skb, enum skb_d= rop_reason reason) } EXPORT_SYMBOL(kfree_skb_reason); =20 -void kfree_skb_list(struct sk_buff *segs) +void kfree_skb_list_reason(struct sk_buff *segs, + enum skb_drop_reason reason) { while (segs) { struct sk_buff *next =3D segs->next; =20 - kfree_skb(segs); + kfree_skb_reason(segs, reason); segs =3D next; } } +EXPORT_SYMBOL(kfree_skb_list_reason); + +void kfree_skb_list(struct sk_buff *segs) +{ + kfree_skb_list_reason(segs, SKB_DROP_REASON_NOT_SPECIFIED); +} EXPORT_SYMBOL(kfree_skb_list); =20 /* Dump skb information and contents. --=20 2.17.1 From nobody Tue Jun 23 21:32:02 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69FA5C433F5 for ; Sat, 26 Feb 2022 08:51:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230338AbiBZIvn (ORCPT ); Sat, 26 Feb 2022 03:51:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230292AbiBZIvg (ORCPT ); Sat, 26 Feb 2022 03:51:36 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BF3B37C171; Sat, 26 Feb 2022 00:51:01 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 21Q4n0pP008190; Sat, 26 Feb 2022 08:50:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=KULiEBIbcn9Eo3Ut40u3HCw508xCB4/Jx/reEsrZzC0=; b=AHILOU2vJkR/7plCSGEA/t8i9NtFie8Z5sZBPFLmbq2f8ieE+4PUl+RWKdbHtY27QWAU rPfJ2vENvQFjixeUwGVKJszytAw7Jw+vv96cioKbHCvJVLVIiJm+IcgFlaLxHJNQVg+6 ymfGMdF4jWxZ0c3SDADSn7l+XVy7Ii018SwA/8qIBxGM3Et3kQDSW1ZvDRkpCLScbjm9 MOkJHCji8P8OqCXS228+MkR85YwJ7ASd6llZdmVSqenr1pk5reEu3KEjZSrGpsdOdybx EDXVnFZpYQBgYsgBNVNaUeBo6fh6XBa2EpDvOGuB6cRrzFfCtF7gvNN7Xe7bz3M3ovg4 6A== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3efb02gdu0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:50:00 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 21Q8kO7r005020; Sat, 26 Feb 2022 08:49:59 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by userp3030.oracle.com with ESMTP id 3ef9askqdw-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:49:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K40YzUD+AXWMUA5NCeSaRxCXmGyhBKO3RRKS+Cf+CrAGfs2QRtIF/OGOytAMLYcspS5qTis97KBFR9Vexe62hZr5XtROlbp7N5Hoyfn7h+FWh4b3DfTBzkQbMRpzW3HiOAkdAYnaHFBW4Uvq3mchZEeq8c+TR+KVCzmVZBRJpmOX5LCgNxguKfXYxRSoORU4WZBD+tH7TmNsUM9LwtDcI3GAU8niLWSIBhzBPs4DyQzE0SM1J2OMF2rWWWfniT3+U9PpJc6uXWcjif9q+Hc/MqHwuNL7BICpf6JKquuDUdAZhCker2sNut1Kdc1tGzdpLMc/sxQmV2ORA1kVJmpGqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KULiEBIbcn9Eo3Ut40u3HCw508xCB4/Jx/reEsrZzC0=; b=oElxz/lBUyS9ClWqEJC1KoiSl3osRmcpE/IiSpo6zoLjN8XyKe4N/x7bMgJvAB9W2UpbSO0UBPWjdN9oDHe4sdtrC/mr6fCo/NQHDJ4jeTzLqz5n1YaM10i1reErN20L0l3FfzQJlHbhfn5b9xqxwOV4k0TDAMno/QPIMUlserO9j4Jc3AGQBpsNtIw1MvwpWRAqpOaFUiMRc5BOwEYZptddSmcpDlWVrx/OTPhFYZPlzNLlMdI46A9DrBDW++cynpKEkAGpn++ASRq/X5ZbKAnRc0St1DwAMWhse1AiQpB68/LB7LB9RXa3mprvR8CTob8pkucoDeHZoW3OtfFl4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KULiEBIbcn9Eo3Ut40u3HCw508xCB4/Jx/reEsrZzC0=; b=L0Zizxwykjje2NR/TC4rz2EMQNGo3CwshS4350hS280swduHy29qViYl1ZEndjfYARIcxwb4MSGatNsVhm8CTk8ifM2nKkEWhwagtCqOiE0OzLiFv03U93KVboUg1UWGP8Ocjx5JqwPetv7Zin+Nf7rahB1S6SgJ3QjfWYPBSgg= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by CY4PR10MB1768.namprd10.prod.outlook.com (2603:10b6:910:c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Sat, 26 Feb 2022 08:49:55 +0000 Received: from BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47]) by BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47%4]) with mapi id 15.20.5017.025; Sat, 26 Feb 2022 08:49:55 +0000 From: Dongli Zhang To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, davem@davemloft.net, kuba@kernel.org, rostedt@goodmis.org, mingo@redhat.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, imagedong@tencent.com, joao.m.martins@oracle.com, joe.jin@oracle.com, dsahern@gmail.com, edumazet@google.com Subject: [PATCH net-next v4 2/4] net: tap: track dropped skb via kfree_skb_reason() Date: Sat, 26 Feb 2022 00:49:27 -0800 Message-Id: <20220226084929.6417-3-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220226084929.6417-1-dongli.zhang@oracle.com> References: <20220226084929.6417-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0196.namprd05.prod.outlook.com (2603:10b6:a03:330::21) To BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2b1c431f-d024-420e-6692-08d9f904f5c3 X-MS-TrafficTypeDiagnostic: CY4PR10MB1768:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sNqvK3CRhgEr8xzKfamNaIGI+wC5cWoYOi/g0ufdiEEd4wbGVfHgaGpaiZ5R/x6s3n0vRYSwBLRD+QBMKhuN4Mwno0F7YvFOLwKurlDwjxE1a/3NF2TlAAnvyxzwHCzB8LfutUp4r/AP/NVfE1LnEuX2MLCQzQZL4ykjy5O8jg34B0Mn7hYBZi4aEgxzbl56wn3CFbGctSU2dNqLcti3aotiZhLmL/viQoDF8TMZhRjhXDszmThhjRydWT8qxCUTP1z6ql4Gmk0q29gO7iJYZ9D0bDoHlg6uMNJSALSWqJSCz1TYbjgbnPUgod9QowubT1sSBPupeEqajoFy3Ox/zFFMi7xhAOq62auNPLkOQuEmNoGtuRenGXf+H5G2YGgawzAYWUxeXmq8q8qq0WS4EvJTEnTnfcYmbC0SJqjw39RxyVHwE7vOZx7ysGB+2smmMRzgGjK2O1f2QeAkLbMj9ujVS6rESE9hysKHr07HlWdTKHlmMLjrRNeHVw0rXRHrhpScYoxkLXehQ33nEyy28BeVBin4Utpha+STeyxBnbccU7Ot00t5nx8dyvN4+vAwQK7UPVenSTmAeEpDjNd1Q4xSPp5Lc2TF1TpdtnYXTlnJim5luGLyEtVSXF6nqKiVS3Cani6ApbVgIksY91n8tC4A5mOp5B68lapDxqV3TzEJu+JybbeRcI7TMwnBpUETQQ1d82dYIutREX87+Uskvw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2663.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(52116002)(316002)(6512007)(6666004)(6506007)(186003)(5660300002)(86362001)(8936002)(44832011)(26005)(7416002)(1076003)(2616005)(2906002)(8676002)(66476007)(66556008)(83380400001)(66946007)(38350700002)(38100700002)(4326008)(6486002)(508600001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?X73KnMAgIoNWHepzmwnCxFSmDRoQNK780Tm/qKnI4K1MxXWfWgidtK8yPiqB?= =?us-ascii?Q?96aPwh8ejGwswRrggkUq8OGtc3OxK9jMLUpj6S4y19pjDiJyL11bFsVROxES?= =?us-ascii?Q?Pa7X/j8NLgpR2A2GG64+DYT7+G5TB4TApot/zpgKFT2rJm1zCcRI/zdRwC9B?= =?us-ascii?Q?6MYMLX5Y8rHsb9WfKxwO8SpzT8ZE99XIjQ9ZLZqyyfSb8+IFb5qIqpkETq9B?= =?us-ascii?Q?b73G5u6773dooUnLfmstuTqWNffhbkhRnOMlu/veL7dRBXJNHNM3vtXA+E0X?= =?us-ascii?Q?q9d8iCTPaCop6w7bfatTxO3cnCBf8sh9W0hMLjoiFWpa6EXTxLxq2cpJYdys?= =?us-ascii?Q?ubqkJnRHQ0u9pe9UAiLVsYhPnCyxKYzXZ9C70fRpKNCJCFFpf2Gq4tRssrYm?= =?us-ascii?Q?myzlRdHeZjWe1V0Y+JLapx90mivgiHmbr2nwb9GcKu4mWmL2fU/KadTaRCbL?= =?us-ascii?Q?/DcEHa2vazsIfKU+uUlOevVH2NGerfHMkOwZDId6wZIy5pL/RgMyFWjqB0Ol?= =?us-ascii?Q?6paMB+B9/DCG20mn2qfHAUyXLTPxXl4/lQRZT1KRD5cIXupKJX3jeH7FWBs/?= =?us-ascii?Q?VxLovyNndUOH5txDxKRJWExIb0uee78hnJVu3bavlxSWwGQR/QysAyaq3BvG?= =?us-ascii?Q?AU4+4WA0fgz49ZBINkszQ4TZQUJ0x+xe9GxGT9tNLXKdxWopN5jgUiNClQBr?= =?us-ascii?Q?9SrNz+zanEN4VaXUxNaeID14YqqFqLdD8hfvrdfOWYOQqVRUXp4vH+dLRNEf?= =?us-ascii?Q?MtAtdH5Cw0HUQae5DN4ceRIPC0p4mzm3zl9tqRyPAVf4Rthm/zRoh2PJnu4l?= =?us-ascii?Q?FjBXU9bjbCxBk7SBJ9B+px8SP8OFFnruTIEIxvLjQByvOf3T6dgW2Ts19fHh?= =?us-ascii?Q?QtX3OxIRT2nvDwm8KQPJ617yzWq57aJD6xTM+KKzZNg+I6vl22bSNSwl/0rs?= =?us-ascii?Q?kZJTPa2aOtbRLKYLO/x7xHDEeNohWXu6PiFCsrkVM3v8Gcsd/d0R0PYa4DKK?= =?us-ascii?Q?HUcotRE4a6IiPQNd1nePeSh8DRmZZqgHMQJZMInkrxzMm3Kzs+4lpD928G/6?= =?us-ascii?Q?Uo5NuCOw4HD3K7k+or9UHErd3N/vnp30F2TGKOwehI5+ycC3JpgG+PTDyIVC?= =?us-ascii?Q?ZsLPElMB/KdsnSztkn8HeiWlvqVPkHqvHnG6U/3BfnpwEw9trMg48QXcoCXp?= =?us-ascii?Q?SgfPW75vQ3cvh3ra54td38mZBSkvi3aUValWn9hiEfoPdoQ7QYxTmgmwjpEp?= =?us-ascii?Q?8NELj0kMNvCGcn01l6e7uDV5SFbHOKnW3TgEf4ci5Jmjl6G5rOHDhfwN+7WE?= =?us-ascii?Q?Ll/dPq6r5nrH64MYsj+Bels8dvuTMthQbsY2aVJMJDWhNN5s5dMvePwdlV5V?= =?us-ascii?Q?uETFbZrrYfN/x4bZ7ledg5egJV0cbbB6tT0coS2Ej0LoNu7XxRFkx/sbhk5S?= =?us-ascii?Q?FF3moWCLxIeDjaHnQIOu6sRvKC7HwO8PFCQNmnwjcUdNbRcIAM48uMBAu1a5?= =?us-ascii?Q?7LT6mexsyAHhOXgg3Q+JkPh47PAlMBbpClYes2VEzvD5nXBmCsXK8E1rIZs9?= =?us-ascii?Q?+YN+kzsYxfEaoPzFm1V0LowMYfEwpC2w+qIJJkdxSsdEmyBdRU/xyKDbF6w6?= =?us-ascii?Q?GkkHvjAOK3PS7I7FHI2dwj4=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b1c431f-d024-420e-6692-08d9f904f5c3 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2022 08:49:54.9919 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: X4xOEFrqyr5KhAbucr9NDiG0VjSKdOI2OX9JZBhfnL8OTyJnTh1Xoo83tW6mm1wGtyXuLECpV+gMZb4+zL/QWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR10MB1768 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10269 signatures=684655 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202260060 X-Proofpoint-GUID: dLfnqIzUtmsjzVCU4ACEHqQwQC18JO8J X-Proofpoint-ORIG-GUID: dLfnqIzUtmsjzVCU4ACEHqQwQC18JO8J Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The TAP can be used as vhost-net backend. E.g., the tap_handle_frame() is the interface to forward the skb from TAP to vhost-net/virtio-net. However, there are many "goto drop" in the TAP driver. Therefore, the kfree_skb_reason() is involved at each "goto drop" to help userspace ftrace/ebpf to track the reason for the loss of packets. The below reasons are introduced: - SKB_DROP_REASON_SKB_CSUM - SKB_DROP_REASON_SKB_COPY_DATA - SKB_DROP_REASON_SKB_GSO_SEG - SKB_DROP_REASON_DEV_HDR - SKB_DROP_REASON_FULL_RING Cc: Joao Martins Cc: Joe Jin Signed-off-by: Dongli Zhang Reviewed-by: David Ahern --- Changed since v1: - revise the reason name Changed since v2: - declare drop_reason as type "enum skb_drop_reason" - handle the drop in skb_list_walk_safe() case drivers/net/tap.c | 35 +++++++++++++++++++++++++---------- include/linux/skbuff.h | 9 +++++++++ include/trace/events/skb.h | 5 +++++ 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 8e3a28ba6b28..b48f519fe63f 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -322,6 +322,7 @@ rx_handler_result_t tap_handle_frame(struct sk_buff **p= skb) struct tap_dev *tap; struct tap_queue *q; netdev_features_t features =3D TAP_FEATURES; + enum skb_drop_reason drop_reason; =20 tap =3D tap_dev_get_rcu(dev); if (!tap) @@ -343,12 +344,16 @@ rx_handler_result_t tap_handle_frame(struct sk_buff *= *pskb) struct sk_buff *segs =3D __skb_gso_segment(skb, features, false); struct sk_buff *next; =20 - if (IS_ERR(segs)) + if (IS_ERR(segs)) { + drop_reason =3D SKB_DROP_REASON_SKB_GSO_SEG; goto drop; + } =20 if (!segs) { - if (ptr_ring_produce(&q->ring, skb)) + if (ptr_ring_produce(&q->ring, skb)) { + drop_reason =3D SKB_DROP_REASON_FULL_RING; goto drop; + } goto wake_up; } =20 @@ -356,8 +361,9 @@ rx_handler_result_t tap_handle_frame(struct sk_buff **p= skb) skb_list_walk_safe(segs, skb, next) { skb_mark_not_on_list(skb); if (ptr_ring_produce(&q->ring, skb)) { - kfree_skb(skb); - kfree_skb_list(next); + drop_reason =3D SKB_DROP_REASON_FULL_RING; + kfree_skb_reason(skb, drop_reason); + kfree_skb_list_reason(next, drop_reason); break; } } @@ -369,10 +375,14 @@ rx_handler_result_t tap_handle_frame(struct sk_buff *= *pskb) */ if (skb->ip_summed =3D=3D CHECKSUM_PARTIAL && !(features & NETIF_F_CSUM_MASK) && - skb_checksum_help(skb)) + skb_checksum_help(skb)) { + drop_reason =3D SKB_DROP_REASON_SKB_CSUM; goto drop; - if (ptr_ring_produce(&q->ring, skb)) + } + if (ptr_ring_produce(&q->ring, skb)) { + drop_reason =3D SKB_DROP_REASON_FULL_RING; goto drop; + } } =20 wake_up: @@ -383,7 +393,7 @@ rx_handler_result_t tap_handle_frame(struct sk_buff **p= skb) /* Count errors/drops only here, thus don't care about args. */ if (tap->count_rx_dropped) tap->count_rx_dropped(tap); - kfree_skb(skb); + kfree_skb_reason(skb, drop_reason); return RX_HANDLER_CONSUMED; } EXPORT_SYMBOL_GPL(tap_handle_frame); @@ -632,6 +642,7 @@ static ssize_t tap_get_user(struct tap_queue *q, void *= msg_control, int depth; bool zerocopy =3D false; size_t linear; + enum skb_drop_reason drop_reason; =20 if (q->flags & IFF_VNET_HDR) { vnet_hdr_len =3D READ_ONCE(q->vnet_hdr_sz); @@ -696,8 +707,10 @@ static ssize_t tap_get_user(struct tap_queue *q, void = *msg_control, else err =3D skb_copy_datagram_from_iter(skb, 0, from, len); =20 - if (err) + if (err) { + drop_reason =3D SKB_DROP_REASON_SKB_COPY_DATA; goto err_kfree; + } =20 skb_set_network_header(skb, ETH_HLEN); skb_reset_mac_header(skb); @@ -706,8 +719,10 @@ static ssize_t tap_get_user(struct tap_queue *q, void = *msg_control, if (vnet_hdr_len) { err =3D virtio_net_hdr_to_skb(skb, &vnet_hdr, tap_is_little_endian(q)); - if (err) + if (err) { + drop_reason =3D SKB_DROP_REASON_DEV_HDR; goto err_kfree; + } } =20 skb_probe_transport_header(skb); @@ -738,7 +753,7 @@ static ssize_t tap_get_user(struct tap_queue *q, void *= msg_control, return total_len; =20 err_kfree: - kfree_skb(skb); + kfree_skb_reason(skb, drop_reason); =20 err: rcu_read_lock(); diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index bc3f7822110c..9f523da4d3f2 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -380,6 +380,15 @@ enum skb_drop_reason { * the ofo queue, corresponding to * LINUX_MIB_TCPOFOMERGE */ + SKB_DROP_REASON_SKB_CSUM, /* sk_buff checksum error */ + SKB_DROP_REASON_SKB_COPY_DATA, /* failed to copy data from or to + * sk_buff + */ + SKB_DROP_REASON_SKB_GSO_SEG, /* gso segmentation error */ + SKB_DROP_REASON_DEV_HDR, /* there is something wrong with + * device driver specific header + */ + SKB_DROP_REASON_FULL_RING, /* ring buffer is full */ SKB_DROP_REASON_MAX, }; =20 diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h index 2ab7193313aa..5b5f1351dcde 100644 --- a/include/trace/events/skb.h +++ b/include/trace/events/skb.h @@ -37,6 +37,11 @@ EM(SKB_DROP_REASON_TCP_OLD_DATA, TCP_OLD_DATA) \ EM(SKB_DROP_REASON_TCP_OVERWINDOW, TCP_OVERWINDOW) \ EM(SKB_DROP_REASON_TCP_OFOMERGE, TCP_OFOMERGE) \ + EM(SKB_DROP_REASON_SKB_CSUM, SKB_CSUM) \ + EM(SKB_DROP_REASON_SKB_COPY_DATA, SKB_COPY_DATA) \ + EM(SKB_DROP_REASON_SKB_GSO_SEG, SKB_GSO_SEG) \ + EM(SKB_DROP_REASON_DEV_HDR, DEV_HDR) \ + EM(SKB_DROP_REASON_FULL_RING, FULL_RING) \ EMe(SKB_DROP_REASON_MAX, MAX) =20 #undef EM --=20 2.17.1 From nobody Tue Jun 23 21:32:02 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9616FC433F5 for ; Sat, 26 Feb 2022 08:51:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230327AbiBZIvr (ORCPT ); Sat, 26 Feb 2022 03:51:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230300AbiBZIvg (ORCPT ); Sat, 26 Feb 2022 03:51:36 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BF0912F414; Sat, 26 Feb 2022 00:51:02 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 21Q4n0pQ008190; Sat, 26 Feb 2022 08:50:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=/Qgbgk7RygSEFtZ9CbmgcKa+pLOuDiBUYoKyAp/54ok=; b=yQggVUP7ltBbyl+3ZC3hniYjE4OCJ7OBDckMbr+xBdhoA71WsrLtYbc1T3aUuitxCavF BddcbspNMtyCOpmxN6OEDm/fb/60bZ1U+uMgteV1xAyjPtvfyU3ngexLDHuOjUN7MRfX ZA7sxxe9kbw19I9LED+XDpD5fSkspacMpIikMoPqUaQTVW3tXSRg2T+eWQbA9TEmKCyc Sp5ma11ngQBmQnrEzvTuay8sB0aBlcuxlG1ttAHWzkkpt93ElN2zGaTGVQS4hreyxRuk zFWr3ENsOhV0kZSt265AclpcR1IjE2NaiuuqwHgMoY4vNOwNWb5VDUAECrsYzZXAkw9c CQ== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3efb02gdu2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:50:01 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 21Q8kO7s005020; Sat, 26 Feb 2022 08:50:00 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by userp3030.oracle.com with ESMTP id 3ef9askqdw-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:49:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h4OpiIRyYt1J3YB3tnAKATVJJ2Rhs94R8HpkO7bkRNXNq9+3LYVZ2IWt2ZPsmA3trGCUtlKuXldiaYBJnRTQW8HuubkJhRDpTQuM6Bwi0jlDHmx0bmNqTowjrAbdZjm/G0//XlxLA3Wd61vYa3T/3rtSy2JCiV9hnRJPEFyqZR3SIqUwgjG/lCKX3ngDIkl6YbSg3C96JUmY+nHmetkjEfDSii226Zv6m3QZSVQKCCc/Bywb3u4bRzka247IDKPdxbtxk0kxcLsBeQbA+rFsaZkRQanlQE6LjJe5HS98S2NGgjrQrQrHdI1T4Afc7J9+0TjM8DwnWyovu99nKa1m3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/Qgbgk7RygSEFtZ9CbmgcKa+pLOuDiBUYoKyAp/54ok=; b=HyR6BLWprrjvrX0DijzBwP8keByMMTFZK4gvkUbheo9id2QJHJylwFttVVoC18ZIWFUOXXf2eh8PYQJh0bLFudN/wkIf+oT6nFyQMUWqLDwxMka1P5Co0k3sCd2nLkLogT8to6r9z5c33Fu3Ao53fsXxTfRTs4QJ2aKR3hoIEIHUvj6fnvHMetEUegLPYZld1WfxxRs4gPNOs280Wz+Qnvdm9fKpU5wsBl+jQ1ZeLwETrtjTuM+7wQtOem31p71+TL2tJP1SaljR1H9BSXiFExdefqv+qQ72gNubbDUw4Hf9qYk+WBGLs0Ob3zAiPkCAV/9zAw7weNTQUScut3hv6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/Qgbgk7RygSEFtZ9CbmgcKa+pLOuDiBUYoKyAp/54ok=; b=RqqNl6AcoSRCau5b4TCEJyoYOeQKcRSyWK4SXg7AaKAxcPsMFE8eXZn38nRzHFKw21WVjrbuSS39uhn8aaIhpQEtkObl695ZwgLV6xhzNfb8Y+NzQbz1XM76Wd8IQAtI7ibSoJKyuiOfp6yWuFTBZve98MjzakfXpKqkX4nyjNM= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by CY4PR10MB1768.namprd10.prod.outlook.com (2603:10b6:910:c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Sat, 26 Feb 2022 08:49:56 +0000 Received: from BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47]) by BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47%4]) with mapi id 15.20.5017.025; Sat, 26 Feb 2022 08:49:55 +0000 From: Dongli Zhang To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, davem@davemloft.net, kuba@kernel.org, rostedt@goodmis.org, mingo@redhat.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, imagedong@tencent.com, joao.m.martins@oracle.com, joe.jin@oracle.com, dsahern@gmail.com, edumazet@google.com Subject: [PATCH net-next v4 3/4] net: tun: split run_ebpf_filter() and pskb_trim() into different "if statement" Date: Sat, 26 Feb 2022 00:49:28 -0800 Message-Id: <20220226084929.6417-4-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220226084929.6417-1-dongli.zhang@oracle.com> References: <20220226084929.6417-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0196.namprd05.prod.outlook.com (2603:10b6:a03:330::21) To BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a79b842a-38d8-4f7f-0034-08d9f904f5ff X-MS-TrafficTypeDiagnostic: CY4PR10MB1768:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5uuOq1b9yUKxhN4Z4Eo1M3cKyltOLNXxjQZ6g+2zWrV8voxD5MM/vHDHIK5Gx+Vvx3p2wE9BM8Of07mmAwjrOJ8mwiBtmaBMpHydHqYrRDRVteno4sA2/DghAUOhaoX0Fqy4yPXz3pdDwGDUEsljxnTu4YTXMXn+O2kEavYQ3PoDwfkT8RrXXA4ajhCqwYzPN4sEnhWJaSxOvk6GafeWHMIu4Cel/HqBroMTO5kZ3U7d15WYyhXaG5AAL42Wy9wzfE2R++IzEaEV5chaWIGsYTAZgfcy2D0OVQmbGbfhAdaeQFJE6bl6v+Le0Bkp0ZRU0Wklz7XztuETTYcwNvTiVR9sScT3Bnmc648HwppV4tojiaM4x1l7BNoRYEBHWhGUOtTytW3rwthFLKEiJFtWv4e7RL9H2273zJ16YdQD8BmIGVjxsFGudPS1I71VjXwYEpYl+bQUy+yJdeCAh8TpLeTqUXBZRw9Ox4OhoZR+POpy+ReKY+Xc2vZ+DA/U8Q7LJfSt2D6MCSZ1D/nwH0tjiFs7lALVbg6dsJ65zrK8FUucTzQHtpCX8XzwZNpcwugilyXruMsur4bB9t44NV8DeGL9fmiEEvdoYBNlRlxWbm9tw1JOE04NE4ebw1NSFI7i0raJb+JYjn5vGZ/Q5GSCnQpJmC4BOdhY1I9vYvkX6xXIxeBT2s/l/M/13KbJd7I/zK3gO2jsOs1Yk0W0C37UcQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2663.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(52116002)(316002)(6512007)(6666004)(6506007)(186003)(5660300002)(86362001)(8936002)(44832011)(26005)(7416002)(4744005)(1076003)(2616005)(2906002)(8676002)(66476007)(66556008)(83380400001)(66946007)(38350700002)(38100700002)(4326008)(6486002)(508600001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Vec/eKXrOt3ZOMSxASoYDDuYOKqGM62LNlk6U1cJKCa8VPphljUxhd/eNYxn?= =?us-ascii?Q?Rky47AsD/lz6lvBC2AT3sna9SJ9KR1SADBE8bUa8GETLMcoLXVXzuemEoeTZ?= =?us-ascii?Q?2dUqcLechyxIsUq/yqBZ8FhTp5/qNwkHCkdnc/OFqfUdpyaOtdpXV/nEflfm?= =?us-ascii?Q?FZ9uyhvSihdil2uEEC7nYmOoKOs1p+9bjq+993xBn8w6/KJN10vDTsHLaJk0?= =?us-ascii?Q?EtMQx/ce+OKUKL9+8vASUL/kc1YZ5yLMHOhGQ8m5eKAzh5FCNvx64TNo/wlc?= =?us-ascii?Q?jrm6WnSjIfpReilLISIpRZ6YJmV7j+sRzgDvbQLTZ7tvlaxEHk6r+e+w6Kt2?= =?us-ascii?Q?9ecF1k+dZXOV6LUkz0YXnjqbiZciohvlR1mEZyCCcoM+2UT/mAcbOLUprdK0?= =?us-ascii?Q?ftEshc/KvptTPFl09W94rfOyK+sM0TKX6gQHqZoTlfcDh/tVNr5Amu7osIT3?= =?us-ascii?Q?AelNXaoAJ5lF5vbeFeaaVYQTccYhqoS/TDWtcqhZwqmDAQ5yxUAGJPWbdWJO?= =?us-ascii?Q?fXUMtNEg/p1y/cMt0PxVwuJz0tpUkKssi6hFpFBi3+FPdkqo9EQ2gQxkebww?= =?us-ascii?Q?3mLgllfpIIk8GAKlVr8CJjmq+CmodKLwu1tO0O5kyMmzaZyEGSYPHj/Ms4mf?= =?us-ascii?Q?Ugt2mkCZJ2JcvoFa1kXle1KeKfJZKL9vzFkRzWmwWHzW96PK4GKHhbMT7Eet?= =?us-ascii?Q?Qp/6ebtYzy+fWqvbrNbrjl8Edbq4eKPQRyeFJHYlcVzk44FvZM7qVwgTSH4p?= =?us-ascii?Q?t8Qwe2nRD1Shjdt8oJtMIpdHw39vMchSjBMGdlq7OcNNt8aTCx+oMTOv0gXE?= =?us-ascii?Q?nxXsnmiS0gNqlkEYFEQgvtFwYEHbNLcne3iYoxG2/FIevA+uBZCOhuQFNhKo?= =?us-ascii?Q?/2FnwAysR67IrdKkaeoth1A13CBWBVEisSJaZkD/P2+rJZUTANy5cQPNrJls?= =?us-ascii?Q?pOor5r2PvqFWmbiPczHfiPn944jyZoF7hyGra1l/+k2idYhrHTJs8UUjz9ut?= =?us-ascii?Q?fJN9N2b78x3B8Dr+yLSiPTK2nCiB0NhOAvUucaFGXyQkW8AMdmchVG+W0zBU?= =?us-ascii?Q?/B2J3fY8Z3k/D/sAEhz79BEFGwyX2tmKsARwH4WkNqd5tQZd3uMRLWAqg8aC?= =?us-ascii?Q?Pcyz0ZLNAtZHa3P1ji+ChKjHG9skX7VB149cAa3hAdr4cNT/bMgxXpPDwkcD?= =?us-ascii?Q?K+73jPDm7q7tV/rMdMTligWcxM0EIoBNAqeep1+JR1LT+3nWRq3jm0/CItB6?= =?us-ascii?Q?a69FrpJ44Nw1artODEM/DRLHlhxQpcoEphogXqCAeWOgN/frYzPH/MlWLy/N?= =?us-ascii?Q?oZ8hw4XdF/HAhCtKeAytYWj0OEblH6q7VMM4GQria0k7VAmsq4HybkTAjt3c?= =?us-ascii?Q?QV7QFlbbqt7V+86ZVSIPs/34PevH8HfJgpwJWVe8G1D0kbCpK1wfL3/MyI29?= =?us-ascii?Q?SrxoQ+FUu3J4uHnHt83a+jQ4DElBtGt3N/OQ0j5Ylh5zfTCXNklLnOXaeqvs?= =?us-ascii?Q?IHaBTJMl+bIdiEYd8cYdudw0nHdNlWJ1g2Lg9aYqFoUG8gYZ0clw162q+HJO?= =?us-ascii?Q?Ing63NO3WaK5cTaUUDi5VPYCrq7Z9GoEwqVCkM4rH8r0H2T8MZgq+iAUGLvu?= =?us-ascii?Q?pnc2Ju71TwE3QnxXHd8qVtM=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a79b842a-38d8-4f7f-0034-08d9f904f5ff X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2022 08:49:55.3825 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5csJDBsqmOjHo/5nmZQAPK2yebFI8Nh7LjpPKs+cQqmV2kCyUxiFx4iCEjd48l52xdsKUn2th0a+BtJbzpTC8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR10MB1768 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10269 signatures=684655 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202260060 X-Proofpoint-GUID: wuXO2kE-YC48DFrPHzJHcW-SrSLipK2Y X-Proofpoint-ORIG-GUID: wuXO2kE-YC48DFrPHzJHcW-SrSLipK2Y Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" No functional change. Just to split the if statement into different conditions to use kfree_skb_reason() to trace the reason later. Cc: Joao Martins Cc: Joe Jin Signed-off-by: Dongli Zhang Reviewed-by: David Ahern --- drivers/net/tun.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index fed85447701a..aa27268edc5f 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1086,7 +1086,10 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb,= struct net_device *dev) goto drop; =20 len =3D run_ebpf_filter(tun, skb, len); - if (len =3D=3D 0 || pskb_trim(skb, len)) + if (len =3D=3D 0) + goto drop; + + if (pskb_trim(skb, len)) goto drop; =20 if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC))) --=20 2.17.1 From nobody Tue Jun 23 21:32:02 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 183DFC4321E for ; Sat, 26 Feb 2022 08:51:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230317AbiBZIvj (ORCPT ); Sat, 26 Feb 2022 03:51:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229455AbiBZIvg (ORCPT ); Sat, 26 Feb 2022 03:51:36 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 17E23888FB; Sat, 26 Feb 2022 00:51:02 -0800 (PST) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 21Q4nBDN030117; Sat, 26 Feb 2022 08:50:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=lWoLkNbmCRYkrhzFNc2KLmkNx5lb9VRFv/GA2vfSrRk=; b=fPc7vDXjfWjIbwnSdXosya6wV5ydFYR9Tsk49PDSLv2NLygtFtm0ps2xMjBV6Et9a6tO DsJXFmUWo8S/mB9opdZ17roN9MFzA3CDWq+mXvFgWge+6fL2vWyGq1TyS0jRS2GVcow1 tr0KjqKf4bKTnMZ2HxvJ4j5ptdcCq2ui6OZoVs3xFEmml4qXKIv895aej2GwYT4nMngI X6tNjkRD4k9mgMAThwl3V8rkffOwNnOeMVmaGNtlAPDN/PxHk4A1rZkXYqiy/EHmDr9J 5ew2bBPTs/h4OekkLxYCrPa+RccWgw9f/5QZFx9YRrYrUntiSP3ZUTeaew8nmz0LvATq zA== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3efamc8eby-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:50:02 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 21Q8kO7t005020; Sat, 26 Feb 2022 08:50:00 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by userp3030.oracle.com with ESMTP id 3ef9askqdw-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 26 Feb 2022 08:50:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LtO4bBUnVPP7uFtOb1SBOWh8Q4ubZVg0vYwY5Z7HMz80PwdNypoyUYvgKLyhmvXuW/t6Wsh6bS06eKYfQ235gAeoluFd4Dz2hCS0oKIcrOlM49FMP3poD4vXw76h61rwFtc1VjPP6ja3dZyHWcwLwG1+cKzgD1Q2yJ77VOY0xfoL1mLUylwF93BJbKpxmxSqBUKxwnLBMUfPwsJngr8aZEmSqdsL1i7I2DdqWmsrNl6IBDP7aPAnhOcVnQ6Q1smK3aLT6N0uOzCokl/hGop2+f1ohIAvfiNMh4pT668UnmSUSuzpL2QyRB48LKQZt7MjZ+ECllC7LXFGiS1TBBBLpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lWoLkNbmCRYkrhzFNc2KLmkNx5lb9VRFv/GA2vfSrRk=; b=ktvaAyTFdbs+ilNgQ8N7iQOOX9FjLbJfcRAh7u0AF6D8juJpsETUZH4+gPnRevEE5YE/5vTd6TJiSAH+oRD1vbr2YlJDsIyFxIA+c5PsSKl/LYAz9ar2Qdzx2F1DF2xeAhdY2E4XzHKfoAnnL/bHu7BO649vW+1BTEWq7Zv+9GyvGrC3J87MNVExj4D2pKkm8fMMZ+xgcCSwS7Ea1IrZJvIze28eDzoLS1/akattukSKGRA3T+Pkgh+TZfbbNNvvBYRZkg5nQvDK/13ZbSQyy/1HaBQBorVZfhSF2lUStvKb5q0GJOlmorvrduoeD9xREDnmWdJgmP0z+X/Gwwronw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lWoLkNbmCRYkrhzFNc2KLmkNx5lb9VRFv/GA2vfSrRk=; b=pjv47OVz4XU/fqo94/HtFT8ZOoVPztppHeeCUxl5PHiiJcShoDeDgZYVf9WFBK1u/U5JaazgzdhOKHiqvGim2XFlvA2C+CzoB8BXWWz/RpgOIIqSC/GO7zznVVtTx9iJ8WOtQScYdgodOGvpCUxIFiZMNoNWnRyLOxpZtPBNCII= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by CY4PR10MB1768.namprd10.prod.outlook.com (2603:10b6:910:c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Sat, 26 Feb 2022 08:49:56 +0000 Received: from BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47]) by BYAPR10MB2663.namprd10.prod.outlook.com ([fe80::a0d5:610d:bcf:9b47%4]) with mapi id 15.20.5017.025; Sat, 26 Feb 2022 08:49:56 +0000 From: Dongli Zhang To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: linux-kernel@vger.kernel.org, davem@davemloft.net, kuba@kernel.org, rostedt@goodmis.org, mingo@redhat.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, imagedong@tencent.com, joao.m.martins@oracle.com, joe.jin@oracle.com, dsahern@gmail.com, edumazet@google.com Subject: [PATCH net-next v4 4/4] net: tun: track dropped skb via kfree_skb_reason() Date: Sat, 26 Feb 2022 00:49:29 -0800 Message-Id: <20220226084929.6417-5-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220226084929.6417-1-dongli.zhang@oracle.com> References: <20220226084929.6417-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SJ0PR05CA0196.namprd05.prod.outlook.com (2603:10b6:a03:330::21) To BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4b761cc9-2df6-4641-99e7-08d9f904f63a X-MS-TrafficTypeDiagnostic: CY4PR10MB1768:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: duMATBpFf+QDz4f5uYoqQfVruNYNs2RweqN5EAbEoA/aS11QLZptWC32rs4NBjAJgVkbY2Ok8W6yuSZ+mXe+NTAOoenucCY9AyLhxXhul98nkAIvPQxfg4060obzX8+RImOnL8/qZsoYgO/eENzVLI78HLfocfOeTWq2iBMz3WnrXuf0LuIwETStMF+aO6nGkn6zKYmt3fe2m8yPU/FGCkcUI4TLLF39H8qAvS1Y5aSAJRV6X4IaPyxkew6hzYeCOzsK7trHmiOt5ENdjA113MZ5KNAT7ocbIgONH3km1g4pykCqnVYS1IJ2nbs2bPxCXKuPb6XWDi40Sidmb0IqXayHiG5xazHk3esX6OsI3I8Nd8Y5ApSjoRO2CCGT9mp/dUQguULnSbjcF9rC5flYr2Dluoel+JPJjAn8vRsXqDj/9kmYQcMA9cFg9s4icc2RQV0IZ/Jobo5rXBFo10D4il81YdpTkQ4LE3fJ4Ta5GKR9HRPthKRb+wOqVVfVz96KUCqX1k3ugDPR5popC1cKi6uf6dI6Qp9XEeE5hh1VsJaijwIBa61WugjBcosnBrCi+1Ulyz560eDPUWcaB1Ca16dfwi7FS2QDYSzm0ghTh20tc66OF1lDfayQtsSekmItVENZNLdE8rAKcWetbdPJLi1MOxN6pIB3u5+ILj8OBBgjX+JSWKUSnv6GWpa6yzw37uaAEJjC4PqKEB11UJe+Rw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2663.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(52116002)(316002)(6512007)(6666004)(6506007)(186003)(5660300002)(86362001)(8936002)(44832011)(26005)(7416002)(1076003)(2616005)(2906002)(8676002)(66476007)(66556008)(83380400001)(66946007)(38350700002)(38100700002)(4326008)(6486002)(508600001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GCX1iIIDEF3yQFh6gZTkGAmR0TMYRhneHfk7w8r8XAAAEv07cMtpuuJYRRTp?= =?us-ascii?Q?UcU4/X87lIodT4z3Hl7PQmnKpHRZFZvhGAql5U3ReF9FvYjWFKjBVEbAyndx?= =?us-ascii?Q?55/l2kEKY1qSlQ5JMJ0ouOag4uDm9K11sVQc9yqvaVQe3MORHgqSnDEHudj4?= =?us-ascii?Q?k/2HDSw+hpR809obfWLww5WFA9U8ygEYj6X6VLkHD3WijfhDy9j0jtgAmJhU?= =?us-ascii?Q?/aWSrOj4CtGVUANe3+mYUH+3rII6aqNMavhJSqxeQ/9VQYVd/lyIATJy9wKQ?= =?us-ascii?Q?VQBtHGt+WMGabRXpylqa2Xzbwx6Yxi0gOj1duYYTCUehX0QdFOSOORBqLMq4?= =?us-ascii?Q?nNbFSbm2b7jCpsHvL77IaNGHYx/YK+77b7idbXcIU5bU8br7gZgtzlsqIf/R?= =?us-ascii?Q?DlFiixQQmstBtlmV6oGowDBhzYq3hDi0pk1N9OiSZGHSSXcDjZ0jscmOl7zt?= =?us-ascii?Q?auj86/O0tn+1pJ3VlumjeoCarIc9hVtW6c3hGVHxqf5MYtBhEFDnPJOvCTq6?= =?us-ascii?Q?0JwsYtQK8abS/KZ792vv+lQsOgyBWl4AozbSKNEkWesx+peCoaCML9jdY948?= =?us-ascii?Q?GBNJ/FCs2Vr3AsswkGbh1LOSw1cjFsr8XZ1s+wPga5blcK5e6doxzLU2wkXT?= =?us-ascii?Q?MtyA40dhEFM6KOgpCKLEBFiAhbPT7ksT6VloWWXNr05Buoy12pOcPzKRHrK8?= =?us-ascii?Q?HanXF4JWpu20SfhrVf/ghdTlymGzY7DwANKtmHbMjXuhJByegl6a2zu6P+HD?= =?us-ascii?Q?q7g3lc3MHmGJhZKMz8ioHDrI5jr/Qqr7zeDBki+jeu47rTFOyhK/DVtaViOg?= =?us-ascii?Q?uezlpivEv7NEyEcjGoKpd4bf4+4VAAnJCZW4udg5hbQf6bC+8cgIoudKSfNx?= =?us-ascii?Q?YbxNGJLezso4Eer3EK49Cbh5Vv7eMmlfHlH9LWpSZd4qDV/iMUN/lcDP4lfB?= =?us-ascii?Q?/IFclvuxIkRDiaYh9LuCnf2GOtx/qgkzriFDYEdKGh8OdXv3rb/gYI1lJCb9?= =?us-ascii?Q?/d2rBEv4ensNjwOksCiGMvcpQ2v2knERVTLEcttQPFniKjYE8u6CBLkQMuqL?= =?us-ascii?Q?H3fGojAieRaJ57mWBFdSQ83prD+MK/KyE9dUVlzurtlKhZbbpqB5hFinMii/?= =?us-ascii?Q?Tfk1DUzTtSOKVDD1C463yC18/ogNkC3FTnV+QZbJHx2LAOMxT6JsSIAm0WyD?= =?us-ascii?Q?PbCHPwRzic2/bo4ipyWGxCu1odxpPfibHbshlVPDV+YO9LM3btb+hDnATFkA?= =?us-ascii?Q?y/sBk5wRGmtgmk+Nt9jLbVOpShm3rN3nN6+qgO2KMwjQ5+7Bu1VANXgobp34?= =?us-ascii?Q?IPrNwxEhSruykZu1Wo+9x+yknuMb3LFRw2VqcjqtSbU1aGsbVQhpMnv4J+v2?= =?us-ascii?Q?+A5gmALysex5ZEHXFN2DP8xZ3h8pyA+6OvAp+O9ZjGhu5rSFTJ/5wLRhMWWw?= =?us-ascii?Q?8RI+jRlR31xwnb32XGsEfJKL59AS2711fPUqjvdJRgtRvUItZyaTzMeFlcK4?= =?us-ascii?Q?Eascl3s8NS3FOWCn9F984QYvVkxIuRMDlrlR942OHBUh3/axqJv29MdXAo5w?= =?us-ascii?Q?VPWiCGVbjw9AeC1cibCtCoBf5Lm1X1ERaeEJYe2dtaO+cPzjLACoSi30gPqZ?= =?us-ascii?Q?S0uZD5pRU8/YmVMhb2RclrQ=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b761cc9-2df6-4641-99e7-08d9f904f63a X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2022 08:49:55.7419 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2TSOmg3mRZZCTvXGfLs2Nill7ChPst2bocZVykLDRyJ2gEUUlhKcIb5HA1QgKlkks/OEz4OmCSeEXDud34oGPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR10MB1768 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10269 signatures=684655 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202260060 X-Proofpoint-ORIG-GUID: r6v3zIlrAYhklAweXJ4_AtLcag9pUhiA X-Proofpoint-GUID: r6v3zIlrAYhklAweXJ4_AtLcag9pUhiA Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The TUN can be used as vhost-net backend. E.g, the tun_net_xmit() is the interface to forward the skb from TUN to vhost-net/virtio-net. However, there are many "goto drop" in the TUN driver. Therefore, the kfree_skb_reason() is involved at each "goto drop" to help userspace ftrace/ebpf to track the reason for the loss of packets. The below reasons are introduced: - SKB_DROP_REASON_SKB_PULL - SKB_DROP_REASON_SKB_TRIM - SKB_DROP_REASON_DEV_READY - SKB_DROP_REASON_TAP_FILTER - SKB_DROP_REASON_TAP_TXFILTER Cc: Joao Martins Cc: Joe Jin Signed-off-by: Dongli Zhang Reviewed-by: David Ahern --- Changed since v1: - revise the reason name Changed since v2: - declare drop_reason as type "enum skb_drop_reason" Changed since v3: - rename to TAP_FILTER and TAP_TXFILTER - honor reverse xmas tree style declaration for 'drop_reason' in tun_net_xmit() drivers/net/tun.c | 37 ++++++++++++++++++++++++++++--------- include/linux/skbuff.h | 10 ++++++++++ include/trace/events/skb.h | 5 +++++ 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index aa27268edc5f..73ad2bb5e8ae 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1058,6 +1058,7 @@ static unsigned int run_ebpf_filter(struct tun_struct= *tun, static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *de= v) { struct tun_struct *tun =3D netdev_priv(dev); + enum skb_drop_reason drop_reason; int txq =3D skb->queue_mapping; struct netdev_queue *queue; struct tun_file *tfile; @@ -1067,8 +1068,10 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb,= struct net_device *dev) tfile =3D rcu_dereference(tun->tfiles[txq]); =20 /* Drop packet if interface is not attached */ - if (!tfile) + if (!tfile) { + drop_reason =3D SKB_DROP_REASON_DEV_READY; goto drop; + } =20 if (!rcu_dereference(tun->steering_prog)) tun_automq_xmit(tun, skb); @@ -1078,22 +1081,32 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb= , struct net_device *dev) /* Drop if the filter does not like it. * This is a noop if the filter is disabled. * Filter can be enabled only for the TAP devices. */ - if (!check_filter(&tun->txflt, skb)) + if (!check_filter(&tun->txflt, skb)) { + drop_reason =3D SKB_DROP_REASON_TAP_TXFILTER; goto drop; + } =20 if (tfile->socket.sk->sk_filter && - sk_filter(tfile->socket.sk, skb)) + sk_filter(tfile->socket.sk, skb)) { + drop_reason =3D SKB_DROP_REASON_SOCKET_FILTER; goto drop; + } =20 len =3D run_ebpf_filter(tun, skb, len); - if (len =3D=3D 0) + if (len =3D=3D 0) { + drop_reason =3D SKB_DROP_REASON_TAP_FILTER; goto drop; + } =20 - if (pskb_trim(skb, len)) + if (pskb_trim(skb, len)) { + drop_reason =3D SKB_DROP_REASON_SKB_TRIM; goto drop; + } =20 - if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC))) + if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC))) { + drop_reason =3D SKB_DROP_REASON_SKB_COPY_DATA; goto drop; + } =20 skb_tx_timestamp(skb); =20 @@ -1104,8 +1117,10 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb,= struct net_device *dev) =20 nf_reset_ct(skb); =20 - if (ptr_ring_produce(&tfile->tx_ring, skb)) + if (ptr_ring_produce(&tfile->tx_ring, skb)) { + drop_reason =3D SKB_DROP_REASON_FULL_RING; goto drop; + } =20 /* NETIF_F_LLTX requires to do our own update of trans_start */ queue =3D netdev_get_tx_queue(dev, txq); @@ -1122,7 +1137,7 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, = struct net_device *dev) drop: atomic_long_inc(&dev->tx_dropped); skb_tx_error(skb); - kfree_skb(skb); + kfree_skb_reason(skb, drop_reason); rcu_read_unlock(); return NET_XMIT_DROP; } @@ -1720,6 +1735,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, s= truct tun_file *tfile, u32 rxhash =3D 0; int skb_xdp =3D 1; bool frags =3D tun_napi_frags_enabled(tfile); + enum skb_drop_reason drop_reason; =20 if (!(tun->flags & IFF_NO_PI)) { if (len < sizeof(pi)) @@ -1823,9 +1839,10 @@ static ssize_t tun_get_user(struct tun_struct *tun, = struct tun_file *tfile, =20 if (err) { err =3D -EFAULT; + drop_reason =3D SKB_DROP_REASON_SKB_COPY_DATA; drop: atomic_long_inc(&tun->dev->rx_dropped); - kfree_skb(skb); + kfree_skb_reason(skb, drop_reason); if (frags) { tfile->napi.skb =3D NULL; mutex_unlock(&tfile->napi_mutex); @@ -1872,6 +1889,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, s= truct tun_file *tfile, case IFF_TAP: if (frags && !pskb_may_pull(skb, ETH_HLEN)) { err =3D -ENOMEM; + drop_reason =3D SKB_DROP_REASON_SKB_PULL; goto drop; } skb->protocol =3D eth_type_trans(skb, tun->dev); @@ -1925,6 +1943,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, s= truct tun_file *tfile, if (unlikely(!(tun->dev->flags & IFF_UP))) { err =3D -EIO; rcu_read_unlock(); + drop_reason =3D SKB_DROP_REASON_DEV_READY; goto drop; } =20 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 9f523da4d3f2..9a0a15a31591 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -385,10 +385,20 @@ enum skb_drop_reason { * sk_buff */ SKB_DROP_REASON_SKB_GSO_SEG, /* gso segmentation error */ + SKB_DROP_REASON_SKB_PULL, /* failed to pull sk_buff data */ + SKB_DROP_REASON_SKB_TRIM, /* failed to trim sk_buff data */ SKB_DROP_REASON_DEV_HDR, /* there is something wrong with * device driver specific header */ + SKB_DROP_REASON_DEV_READY, /* device is not ready */ SKB_DROP_REASON_FULL_RING, /* ring buffer is full */ + SKB_DROP_REASON_TAP_FILTER, /* dropped by (ebpf) filter directly + * attached to tun/tap, e.g., via + * TUNSETFILTEREBPF + */ + SKB_DROP_REASON_TAP_TXFILTER, /* dropped by tx filter implemented + * at tun/tap, e.g., check_filter() + */ SKB_DROP_REASON_MAX, }; =20 diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h index 5b5f1351dcde..e8dcf784ac17 100644 --- a/include/trace/events/skb.h +++ b/include/trace/events/skb.h @@ -40,8 +40,13 @@ EM(SKB_DROP_REASON_SKB_CSUM, SKB_CSUM) \ EM(SKB_DROP_REASON_SKB_COPY_DATA, SKB_COPY_DATA) \ EM(SKB_DROP_REASON_SKB_GSO_SEG, SKB_GSO_SEG) \ + EM(SKB_DROP_REASON_SKB_PULL, SKB_PULL) \ + EM(SKB_DROP_REASON_SKB_TRIM, SKB_TRIM) \ EM(SKB_DROP_REASON_DEV_HDR, DEV_HDR) \ + EM(SKB_DROP_REASON_DEV_READY, DEV_READY) \ EM(SKB_DROP_REASON_FULL_RING, FULL_RING) \ + EM(SKB_DROP_REASON_TAP_FILTER, TAP_FILTER) \ + EM(SKB_DROP_REASON_TAP_TXFILTER, TAP_TXFILTER) \ EMe(SKB_DROP_REASON_MAX, MAX) =20 #undef EM --=20 2.17.1