From nobody Tue Jun 23 13:09:52 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 C66E7C433EF for ; Fri, 4 Mar 2022 06:34:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238452AbiCDGfa (ORCPT ); Fri, 4 Mar 2022 01:35:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40602 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236024AbiCDGfN (ORCPT ); Fri, 4 Mar 2022 01:35:13 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CAF558BF0F; Thu, 3 Mar 2022 22:34:25 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 2240ZbHQ028323; Fri, 4 Mar 2022 06:33:23 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=Oq9mum8fMreT2svMzyXF+djffbtkANnYZ05MWHcPROw=; b=hlzRaWUv94UaoPJPXjbByz2w7akw9FSf04y2ysRtxzmfXKdCtXPD1/p8sSEUx2nHq/NU FEpKkhTF3CIIU8p0VmHidZj/eB7Ymt9RMbQGDKlYB/sOm5HJFO4joTFs/s74hOr40zk9 j/HSAkuAcClnulJXMqATWGLfGzzh7ns/neVMk9zsdaojb6r3VWsnTuaMUHLzWaxLamE9 VhYu9loDWRu2dVNphZTZPi30tlvl5SaMQcSBXrbVmd0XWYvCcQBpTuVI/pzdRv2YlmG9 RAhgzgQxZuG8T85IJXLAG8D6OpzuIElx8awQB7PlceYlFTwv8jSwPuSdM0d89kndB1op lg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3ek4hw0xg4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:23 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 2246VBvL010489; Fri, 4 Mar 2022 06:33:22 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2170.outbound.protection.outlook.com [104.47.59.170]) by aserp3020.oracle.com with ESMTP id 3ek4j8drrs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OHXiIR82fY92pBn1hGpm9OYYUPkIbTzJW1wKuuzXkjO5cEO6BcWKwBIrjKEB/4OG8VsWq5eMuuPZhVRg5rEL3AGgWji45frOHlU89IAqApt1dNPrMNKCttuAxQzv5ZHsbNDFVInzEgE9TqXpnMm5KSquqA6c+16o3gXvd+PuIZ7gjv12lhg5dBoj8j6j8MT/eB4zwQDfe1kfM+E2OfOVfsgvS1RL9g2MzzfU1gksNoKuWkYnubVFMgaYQ0ga0+zongPZARbb/FWRNdBVPclhWnMBJRmwmf75jfemnCtig//KPGQYrXfFruDaysmgYtg54dUOz1AGCVc2zN7hqv6KAA== 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=Oq9mum8fMreT2svMzyXF+djffbtkANnYZ05MWHcPROw=; b=oHDg9SVgup7/Vaaq/k6x7gkOHSWxeWzzQ0SJbz0y7dPS5PEt06FAuUiH0lQpADLucqQUWu5XBzd3tc2wYe5IB7HFO4YKL2dvSkMAKwAjw5Jf+u5a49BlHwesGH+2C910PWdorZiZBxTIUqtVZYXBVnURVY8RdBShWxeg6MGg+TJH+5my/27upqG2Ub+Xzq6K1J4lML8nvwcdjpp+lfjigJSZJd4q4EbygV/QugQa7QTEM5YmAbNASDln6x+SAvse5cFiQmKxS/2gOp/gVfKYHUz1wEJ/xZOdIAbTK+kvsIVGn6tvFdWFih4DYGbbXxpVwENRrFvwwImwJsWh6hBxtg== 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=Oq9mum8fMreT2svMzyXF+djffbtkANnYZ05MWHcPROw=; b=v0ediqGDsrI214WIKR5/DzH35f1E1jhkqb1NRCqZYQbObaLxG70HBsUw+YZ7TyGCgK/TrtUktpfoF01cjRTlZ6oALwY7+XTiTYcNnirfbjqczODD66CzBMDUf3Gw3Q93UNsf6jroq7LFpl9Z/3xljZl1FVjH9ski2UZcm8ACTdI= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by SA2PR10MB4603.namprd10.prod.outlook.com (2603:10b6:806:119::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Fri, 4 Mar 2022 06:33:20 +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.5038.017; Fri, 4 Mar 2022 06:33:20 +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 v5 1/4] skbuff: introduce kfree_skb_list_reason() Date: Thu, 3 Mar 2022 22:33:04 -0800 Message-Id: <20220304063307.1388-2-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220304063307.1388-1-dongli.zhang@oracle.com> References: <20220304063307.1388-1-dongli.zhang@oracle.com> X-ClientProxiedBy: DM6PR01CA0018.prod.exchangelabs.com (2603:10b6:5:296::23) 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: 6ea7f0c6-a43d-450f-d175-08d9fda8dff5 X-MS-TrafficTypeDiagnostic: SA2PR10MB4603: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: 9t2fGFv7VgCMybkQsRQBLiqTEgKeOvGDfxw7zwzhpu/8M4jqb/encnL3r5hwLEPrs7QEifP4vON+fPfXNoYASp51iwJ7WKqEe2TDYKq8k73X73nldmgjVGrJyw78QiYiVxpT62hICoJ+IQA27AHtKRHxxMtrzSLjEsLLPyqqH080030qmJVmD/pzF29sGuozZBFy8m3uqBhRCtg/2nUM42yUS0u4E0YLqGruuId2LPRTpjzNXCJjR7cskV2xBtuYMYF6xq869VNx4PFeMaAhUgaUHGxkR8Eiz6CECsrSu23cPWYDCCqEBH9MQGRme3Ktsp60BXjTlwAme0M6EDT4LSEKSnAwFX96ZeI1Jzjem0xJYByMj0apttmsUp4O2uSFjUGl0FhfKwOuFIq2HogDSdOZdl/JBZlx9tbGPLJBBWCrPsHxSahc5iLjWOBvb1VVgnnMo9JDL8vpRIyrnplA/ds/bdsCgLj90wW7+zChj7GC5wCCZZT56cQzi4k56+0EfDutS3/VzbQQkVYenTp2DZDM6nThz5nHgfT2zyFfBbjllT6EHq2tAGzOTsGO24rXnDrzy9lcoq0YNue+xXC9Hk1Td6yKUpdA46Azk9/QNVy5AQaSUbhNG90SCLh+5iAzGN8NS5rUYqE98q/t5X6+PKSztGvO0MnIcZWbsmflVwhU0pR5Tq9uLAOAKmnCumES64oEMKHZ9C9Wlr0/Nk8t/w== 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)(4326008)(8676002)(66946007)(66476007)(66556008)(1076003)(5660300002)(8936002)(7416002)(52116002)(6506007)(6512007)(508600001)(83380400001)(6486002)(86362001)(6666004)(2906002)(38350700002)(38100700002)(26005)(186003)(36756003)(2616005)(44832011)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6wQr9ddA3sEA8GGmz5qVwxuXqbQu2gyHekyAYGTias6wNEW/xB3vYOvAMIsO?= =?us-ascii?Q?qQFqKaTyIN+gM7gZTxz0L5nGVfSjMoC1nrtWZGqS4Vk+QILsSoVVU7dpAPEx?= =?us-ascii?Q?j5PsxEUsWs5lO80+n4buQYfK4+evBe7fAj0JCMLt8mcy8kRG9j2QrmEryIi0?= =?us-ascii?Q?N3uLZD193isAS3zWyZ58sE8aIph+/j90IZBHav1OHpUYAQCM99lH8aJFaHw6?= =?us-ascii?Q?yaAfm1MPHfVXwaKKjWiU7Z5Pe2MM0a3kCizFxa4T3FP2EA1E/jdfufLrU7Ws?= =?us-ascii?Q?fXV1tuZF6bcuAFpf1f6Wo9Wa0w842uO0mGBjuEccPKYWsi7C9fYajTMdMba6?= =?us-ascii?Q?T44vhH/KNO6oZuo2IONmeFh3vqItxnSd9VbX2bFU0jC05qyzrpgpC+2ND+za?= =?us-ascii?Q?HgIappasgTBpNfi9SBbPkkM4Tx3YgP27ITI/ge2+gzY16IRWKemQ9l9SRgj3?= =?us-ascii?Q?GjEAjLTdwT02eFBldivGbVwmYHIs3defnJ/IxrgHYwigDHNW3wL6M1TzVTlY?= =?us-ascii?Q?Am2BFvRv+iTlxP8EG0iiWo6uYXztkSOOtFeTo2nUpfKHcwz+D10Dmf0X7pxw?= =?us-ascii?Q?4no1iSPrCBSI2VW6QsEaaeqLr8nXshCaBruDwBB2RJA3vidrxH12V+/sSBC4?= =?us-ascii?Q?W0fkHBPjYlCaqoO5VvqTnj6XNr+9zV3AmeJyMSRnsNjox49S5sy1QI3zc1FU?= =?us-ascii?Q?oXe8nK99d18YHd8xX9t4C6gCYj+zJxl+AmGdvfh65JndC6UUvR0RxqRYVY6z?= =?us-ascii?Q?S51bxbhe5LGyOvPLnaQvId6XDRwtpVhyoxoaVwNliyilDAZ9dc+M2xdjOB18?= =?us-ascii?Q?ctl7PBsErrwXD1lVPRDvNV5EFg4dNXSQDTi4kWBePWyJxFi3JeNHK2krpxBD?= =?us-ascii?Q?wsdxVDf63rzSa9L4xFEHWmwAjEuLZf7uyV+6XL6qSUjZiKpB562hPiAHt5QC?= =?us-ascii?Q?MrKQSAuAbCcOplhxSgZPf0a9il9QV5Uv8E5dS1+lh3T4/7De0CRuwWVSTDQP?= =?us-ascii?Q?B6aB+WlQJ9AA2LUY72sgXcG8X4Cw4VtXDfFs+aDoHmnu/T7uOS39Ljmf2zuo?= =?us-ascii?Q?lgeaJMeXe9BBe6ca9FYXLFU2ykyg7q9YcmIIEuNVSCjMFuppsMVzHeu9zRA0?= =?us-ascii?Q?0LUScTu56LrUKaF+TAeXM8ulWQRloXHYI/o+JPYYus9tx2r4Srvu8cBPkoD7?= =?us-ascii?Q?j5r86WCukEoChZjxqxLmKTEMIKRoImsMKEZpD1q66ukxQJY/596UHq+wr8Mc?= =?us-ascii?Q?FxDs9aCuy6HZPT5s6G5Tw9ymrIOINWVrqXi20HxvQUourIF6Hva00S9Ic23U?= =?us-ascii?Q?yqmQ4M/7fH1dWo/ofJoZ2wZ1ROQmCDg4rgoilDFv/+nPLbXaK4wYKmS9rE9m?= =?us-ascii?Q?auOCTHpcy5f3fHQ8Ly2eccXpZvxo6lOq+QVFJIy/acIarOqgknKMJDm6t4RX?= =?us-ascii?Q?laKYvZvOXZx1in8ovtDkoWa+gfapbB7d3hTczMVwQdhq83VRxOMihIke0YkQ?= =?us-ascii?Q?xlHQ6nCYsVQfkmy9dwcT4CJHEBQN/eDyZpf8dARYFw9xLF2aLqhJjzSVYYM8?= =?us-ascii?Q?EDNe/wpnSPfr4w3Jk7B2KdAE0sCfSTCF3nX2y62Dxg1tRwTpZLUG6yl6waGR?= =?us-ascii?Q?EnJhW2kHXEZeFkL5sxjzy2Y=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ea7f0c6-a43d-450f-d175-08d9fda8dff5 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2022 06:33:20.4647 (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: 6xL1jOzqCw5oFQ9Jhm7WhdwSFU9QgEk1xwOR2fDxTRDRGWKn3+04ikBIHRVVf/DPCHdrXpXO0Cpb/yd9sobTfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4603 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10275 signatures=686983 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203040031 X-Proofpoint-ORIG-GUID: gQo5RDZ0Px2zwT6aED24JPdP6EFtxfbY X-Proofpoint-GUID: gQo5RDZ0Px2zwT6aED24JPdP6EFtxfbY 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 --- Changed since v4: - make kfree_skb_list() static inline include/linux/skbuff.h | 8 +++++++- net/core/skbuff.c | 7 ++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 5445860e1ba6..bb00f86791e0 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1201,10 +1201,16 @@ static inline void kfree_skb(struct sk_buff *skb) } =20 void skb_release_head_state(struct sk_buff *skb); -void kfree_skb_list(struct sk_buff *segs); +void kfree_skb_list_reason(struct sk_buff *segs, + enum skb_drop_reason reason); void skb_dump(const char *level, const struct sk_buff *skb, bool full_pkt); void skb_tx_error(struct sk_buff *skb); =20 +static inline void kfree_skb_list(struct sk_buff *segs) +{ + kfree_skb_list_reason(segs, SKB_DROP_REASON_NOT_SPECIFIED); +} + #ifdef CONFIG_TRACEPOINTS void consume_skb(struct sk_buff *skb); #else diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 23f3ba343661..10bde7c6db44 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -777,16 +777,17 @@ 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); +EXPORT_SYMBOL(kfree_skb_list_reason); =20 /* Dump skb information and contents. * --=20 2.17.1 From nobody Tue Jun 23 13:09:52 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 F18ECC433EF for ; Fri, 4 Mar 2022 06:34:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238436AbiCDGfS (ORCPT ); Fri, 4 Mar 2022 01:35:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40606 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236206AbiCDGfN (ORCPT ); Fri, 4 Mar 2022 01:35:13 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08E258F637; Thu, 3 Mar 2022 22:34:26 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 2240ePKp028305; Fri, 4 Mar 2022 06:33:25 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=2DWjt5HPOE/iGb2pLyFQOVu7deB+DUCKw27oSHEgmmE=; b=W9BihdJCXARuEoKbUjoqI4j1I2FZkTh6i8YVMAdg5DOQHu3whF97Hncc5ANV5FXsvshI Pi9ZfNFqZQofV4CZfBGVt7RVSxe0NWD1tgwFRE5t6J+ibyZJWopi+Oho/sWlxgDsHm9n MZfXvC46Ux/mOo5MKsIBsrpTXNzMZDgfi5f6gvTInc+KnE/UwAowbVtmGI8VvuNY5NQM KYujCsn9aTboN9d/NpjiNLuKrjTBDDEn1clgHV0ghHeVemBVXsTyHKzZrL6g6ssQEA4S +luMqrZXEqPPER4cjfuqll9hXGq2TGb7VslfXSFvydOfK/H2wiRgdhF22o6R+t0pykMH oA== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3ek4hw0xg6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:25 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 2246Vef1004202; Fri, 4 Mar 2022 06:33:24 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169]) by aserp3030.oracle.com with ESMTP id 3ek4jge39t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nuU79s3pmGIo6JdejGeY0STgK8kW9ZIacUzSZenb7trUvce+/bo7qzEjOQyVV37XsADH5HfjX0E52sp4e0tEtWBReyCykT3ImdyvrqEjwAAicKQf1FVBNGPxEk3zAkcc+OSOek2GUzpOF2rT4fENXsGCAE2WXmp6tVlmZl07Q65E8X1u6JGBVwujP/dzD7o8wtXDpDgV85RzQHOoV1TZNxRAIghP7Mpad+oenaWWjH+WZn2mYDzx6d29lU52MkydA97bPHr/7lK6JqnTZ+Wmhuw28wLXTLcG6T+MVVaaJcdjkfABwHAeFUPOjyNuy7FSznfA43ipGvdow3cEXXpjxA== 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=2DWjt5HPOE/iGb2pLyFQOVu7deB+DUCKw27oSHEgmmE=; b=OMPynYidZJxXBNDm4V6RP2PcUN20cu5WXIks0Hr9TzsQcS2wjAXBYwZkJf+ckAe8VxKibq0VfC91efa+cTT2uJ16OyaLX7x749941PqgSF11r6+RRwZfzYkvciY0DYm6zzRSw8pkPtLtBYxweJS1Mno7mez0POtsXEXgGAKeKkkG2w+y2EqSl6bKtUcL30fUzZiEbg+WPiOUiREwfLuF/wuYYD1CUVOHBS3Q0LzraWkBjY/4ZFCMTcgBjqqpZI/NMV07msF4pqBMvs8J13qlX/wNvPU7gJrEfK87apHJDYp9RevJ3od97eBdUcJAhKumqHIS7bN4IRBkNK/Xsjae+A== 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=2DWjt5HPOE/iGb2pLyFQOVu7deB+DUCKw27oSHEgmmE=; b=H77DVXKUpBYU+jeuX2M+mrTJulXx5GX+3YE0i0pzjDlydY2FXL0Az5HBF4XNN6EjS2SZqNWs2FAZlnRuafD0xy8/VgJBBG3+8FwYedFgqRkXj1NVEK4tbyHRQqQW65soguPwP5NGdfIEYi+KpCrH/1SV/m+IBFiEgpBNqdWto7k= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by SA2PR10MB4603.namprd10.prod.outlook.com (2603:10b6:806:119::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Fri, 4 Mar 2022 06:33:22 +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.5038.017; Fri, 4 Mar 2022 06:33:22 +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 v5 2/4] net: tap: track dropped skb via kfree_skb_reason() Date: Thu, 3 Mar 2022 22:33:05 -0800 Message-Id: <20220304063307.1388-3-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220304063307.1388-1-dongli.zhang@oracle.com> References: <20220304063307.1388-1-dongli.zhang@oracle.com> X-ClientProxiedBy: DM6PR01CA0018.prod.exchangelabs.com (2603:10b6:5:296::23) 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: 1d84bde0-36c7-4abc-bf98-08d9fda8e10c X-MS-TrafficTypeDiagnostic: SA2PR10MB4603: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: a3vT/YiZIgXafMvxA3dtDf0r0Hp9bloUVnDxlHcUOt2v7Vi23h2zLJNFLWMpR/MJOPhreUxdFtO1jnhlIA/3GMwbtZWUc3rZ9wk7cFBWeubyiXzmmbkYmmCSGARsBZOWZP01G8yMqYg8VbyqLR3EmCBqQoxCb+eLnHyunCRsSi2vywIJAcIvhjAzEt+xulCRBdYI9Sob1I3/DXDoVDS4hIF3ELYwJKpf7SOfwBcWzFqcIxOtoalar8hugjq83oWdFimE0zSnkCFXmdV6BUe4nGIEVf92loEh56jyzNv6lCysFKzBuEgbSPlrNh5CnHVLtfSv3G4ZWeijY6s55undWqfN4LRaOJUcwFSJl0e5THbAjBg0+xq701WjMQ3JehTT4XBanN3T6orclrG9eNayFv4/yube9M3l5fGL0TgzdI8a5nMqnTF9cAG3KUkgBmzS7GHTOwN2o31BKdlaEANSz+0bEq2B9nT7df4XKiA/p4RoT+i/G2nTFFU4zJMaC4eYYrgxCqqmToxWXZA2SQq3oMc5R1MlP7gs0Pu+v6H1aIfB7FnytGsPrN+GEnNhb5/TFVU5QmWdLw0n0ey2bnq7pX8zAaBNNN8fU+MFD9tcdrHBBcFJU5SCBYPcDCXE28yEK7mqxoyRzbouPEEee17sTiG+tpbQKvG4Wg6BcBFHUstt4Y4bGyUikilYlCuIMFEGecPV/bQ/QAqtcLGHx/okKA== 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)(4326008)(8676002)(66946007)(66476007)(66556008)(1076003)(5660300002)(8936002)(7416002)(52116002)(6506007)(6512007)(508600001)(83380400001)(6486002)(86362001)(6666004)(2906002)(38350700002)(38100700002)(26005)(186003)(36756003)(2616005)(44832011)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wvgoLWuePYptnIroTFXjMs2trM7wheiEFVFOq57XWq+RUM6gs+p6BC3NOsCb?= =?us-ascii?Q?oZUgjlYwM5Ft96eSfG6Ozg69GpiUJ+cW7sGKx5y1VB/QC+lwdpIFHxP14Kdm?= =?us-ascii?Q?VSYZjWstTCnfTsgXIQXhIm1vW/tdb0ymqblmdKn+nDIi2EI3ai44HwaGoANE?= =?us-ascii?Q?6MC6oUgYjskekFCD2PRuDBmP+vzA1iUzJHOwmu1D7FbQseXV5kMT03n0NneM?= =?us-ascii?Q?xTLl9HGUW6BTzn4jkpzxsiy6TWqrtkG//4dTRqr3MXzYbe+T30Q8SgjGyslo?= =?us-ascii?Q?IbEj9Eg2pJ9vi1i0m+ouvl+K0nsL3NPWm9wd6jPsoYjaxVbqy4IORoA+CyNp?= =?us-ascii?Q?e2vJx1q+dvFunuFmK09AFNd1a24fhvn8dXGBrHBMRMMnfBreWUb4CO8jqjAp?= =?us-ascii?Q?VfHITecOSkU+u2gw0qHX4ygjs2oHADD/27ytse6xy9XuKS9ehwimTteZA1iq?= =?us-ascii?Q?o/HSu8SJ90XrY8jqm/eXC3a4pv9wdJr/E72ZSVnnZ/26o0h7RMrmPbtEqtz1?= =?us-ascii?Q?bgzrcBLVYfvODXL2DJUbw7lZKwNwrYq6+KleZZLE/kBcQo3uI4VkGbxJjIy4?= =?us-ascii?Q?sEursTfiLYfl5dMHZSggYFvPmDYTx4fv9REwZrvih04lpg+pWh9kLWa2uQUH?= =?us-ascii?Q?UzeFzR+ECpwzikwTcuKwEZh/R7FyK9bNp5wbHag6Q/4pZ7RQSmQTIg1F74Em?= =?us-ascii?Q?6ryhJovZUyjwxSvgz2DEM4lLif8RUgor02n9OpGx0Hi25j97KLNnzp+wagn+?= =?us-ascii?Q?ueE+ripxVn0MWirhcEeMFt7hYSQ/Wgr95XDwlI0nB+HTe6XA8C4v56UJt4Eu?= =?us-ascii?Q?lsSoy0Knji8Swk8hxlNXs9AsOlIQcU1V00nu3a3VKDrOEzDXvuSkLPHcz5fS?= =?us-ascii?Q?HhR+FpUCNCRWkMBN0flSgLa4ZpvhiM3tCbbQDJvOuI60qzVrkMTct/ZYyH+h?= =?us-ascii?Q?G/NTK7Ze7XjzlnwvZP82IdOx3tjCy1wJqwNRGd5MkkiN5+Oy1pGV+cHLXVda?= =?us-ascii?Q?P+lYjkCq9a0OU//+oxkxipvn2MvITRgRpNjbd2oRTag9nrJKhIq3lW1yQgxU?= =?us-ascii?Q?ox7Xd05noNkqJft3u1PZN+dtuT+Bb1lbL1QUBjYdJDyHpH31gpxp0dU4hx28?= =?us-ascii?Q?SvQM04ruyFW3NsxVOuzvk6KgutF1I8ce6VTpAk8mLj//ppMxSINoxXyX8Ugx?= =?us-ascii?Q?8o+5FPZ37hEStlJuqA4W+8CirhJdLV3l+OCQcrngcB45TLFpI0WoMse74lnX?= =?us-ascii?Q?DOiW4pLR+c3Z6y4Gs9jesq3b7dGoZLUNoBY97eme2mC5d9t9t3yuo7JO7Dhn?= =?us-ascii?Q?LgPYdJ0FweULD1qf4rV3V7e3XhPrOlxnDXDI3fB2Jloy26IJXouu58kXSCRu?= =?us-ascii?Q?GEycvMzRpBJdRN+3fSw2dWV+k3GZQ6dOI8r6Nc0XS82iPRsvOa5V287pRM3s?= =?us-ascii?Q?w92Yl8irmFvgCnr3pRtDNbFCCD83fa4UOF6uQXraPyy1psDpcVBU0YHyn/7S?= =?us-ascii?Q?wDPVCvA2DFpc74x44yHIkt89l5+BqNBwWbLEV4bEzDg8p3KNRQUR1Vtb+l/I?= =?us-ascii?Q?KJfjU8hHik1ws5ERXeM291zezvqMW6BiD53Bz2JYDEKwC43R30jab2zOxySt?= =?us-ascii?Q?pAIW/rxLptOSWwt1omwtTbY=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d84bde0-36c7-4abc-bf98-08d9fda8e10c X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2022 06:33:22.3240 (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: Ff4q/TRW/jX5lwgvXvx+jzfIG82APFiAsIHYOrzk4g7Mq2XXld8c5lcj2xou5kcsJdxlxC91WP6kzpj/iGbLbw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4603 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10275 signatures=686983 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 mlxscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203040031 X-Proofpoint-ORIG-GUID: 5nMh1HXMf75N2yo2w1GoiqOhgPhB40Zn X-Proofpoint-GUID: 5nMh1HXMf75N2yo2w1GoiqOhgPhB40Zn 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_GSO_SEG - SKB_DROP_REASON_SKB_UCOPY_FAULT - SKB_DROP_REASON_DEV_HDR - SKB_DROP_REASON_FULL_RING Cc: Joao Martins Cc: Joe Jin Signed-off-by: Dongli Zhang --- 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 Changed since v4: - add 'computation' to SKB_CSUM comment - change COPY_DATA to UCOPY_FAULT - add 'metadata' to DEV_HDR comment drivers/net/tap.c | 35 +++++++++++++++++++++++++---------- include/linux/skbuff.h | 13 +++++++++++++ include/trace/events/skb.h | 5 +++++ 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/drivers/net/tap.c b/drivers/net/tap.c index ba2ef5437e16..c3d42062559d 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_UCOPY_FAULT; 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 bb00f86791e0..e5d5371a543b 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -394,6 +394,19 @@ enum skb_drop_reason { * entry is full */ SKB_DROP_REASON_NEIGH_DEAD, /* neigh entry is dead */ + SKB_DROP_REASON_SKB_CSUM, /* sk_buff checksum computation + * error + */ + SKB_DROP_REASON_SKB_GSO_SEG, /* gso segmentation error */ + SKB_DROP_REASON_SKB_UCOPY_FAULT, /* failed to copy data from + * user space, e.g., via + * zerocopy_sg_from_iter() + * or skb_orphan_frags_rx() + */ + SKB_DROP_REASON_DEV_HDR, /* device driver specific + * header/metadata is invalid + */ + 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 1977f301260d..9d91ec9755b8 100644 --- a/include/trace/events/skb.h +++ b/include/trace/events/skb.h @@ -45,6 +45,11 @@ EM(SKB_DROP_REASON_NEIGH_FAILED, NEIGH_FAILED) \ EM(SKB_DROP_REASON_NEIGH_QUEUEFULL, NEIGH_QUEUEFULL) \ EM(SKB_DROP_REASON_NEIGH_DEAD, NEIGH_DEAD) \ + EM(SKB_DROP_REASON_SKB_CSUM, SKB_CSUM) \ + EM(SKB_DROP_REASON_SKB_GSO_SEG, SKB_GSO_SEG) \ + EM(SKB_DROP_REASON_SKB_UCOPY_FAULT, SKB_UCOPY_FAULT) \ + 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 13:09:52 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 2163EC433F5 for ; Fri, 4 Mar 2022 06:35:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235800AbiCDGfn (ORCPT ); Fri, 4 Mar 2022 01:35:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231503AbiCDGfO (ORCPT ); Fri, 4 Mar 2022 01:35:14 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 104C1182BEC; Thu, 3 Mar 2022 22:34:28 -0800 (PST) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 2240VeIJ017370; Fri, 4 Mar 2022 06:33:27 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=dQYmymtcbQDv4rr4vMNkQ0DaSEZx37fpH01/Rb0H9zs=; b=XjRhTTseATKOXgk7TcGolbFODHCsW8g9uVstS5Hc5bFg4PGvIv5CvN0cmprKP184dve8 YVnr2WOPt/o+uA81zuYlB2tOqM6I5GHK6mmo2xOP+hb/2H5fi3cMhlj417QZ1im/rCzs nqF7QqJlW/Wm7pue6DE8kYioyAdAKiO+FCsv7tT2m+yEuVdW+t8HEm9xu3jTpAaR0iQy a1iwVO28G/oQEzn6vxEzBLfUBwxnao17cLWXHS5c8NI8rwPAkUaHDeSWP2hH7cLXUEer H17TYVMUWib2L5FtbY5jqelAqzkP0yvDvMxaTstGnQwwEXbL+appaKwiB8P3mOB3dvSu kA== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ek4hvgxaw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:27 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 2246VUfO172737; Fri, 4 Mar 2022 06:33:26 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169]) by userp3020.oracle.com with ESMTP id 3ek4jgbr3v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AIKnMFceVPDLI0IqsI37njyPKLBQmOqYv2jGHtYvZfXo7GGMxleJl2qAKtwqEBi0ZVkK9jLUGUDdpMhNYsuXwQwcP4VtbJTCrtAtzjYPo5pq9f47zM4XHpgfDlfEuRlT9SMQqia5vxFVqk9VS6oQBTxfKJ1IU9CM1yPwVcFANZ4sYaVWEh6jA/3rgCOkYI7XzvQ8Y/HEymby1ybbngmJVpS4ZaN691xsvyTtlejyDtnnbTmG9gBbU6quYKZrVRXRQGIHI0EqyvQU76eCrjHbr2W4FjyztBEQOtyaFPUpexE+8iMP6T8rTbwCELVdJ5sUu7KlJdP3VzzWUN2/4oB8LA== 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=dQYmymtcbQDv4rr4vMNkQ0DaSEZx37fpH01/Rb0H9zs=; b=IOjDLHmccjY4fDhc3MihfI0tkaL5iJVyrf4Glbd/K9R33+74sWFpvrukAe04ZsBWXp1sYb4Lz/SNhbMKAmK1jHj3GyIQ6wXGa10eLWgvdehDXQ1cqrmaK4DZIxv/arxvINnWDHj7XKAy61PwQox2SlN2nc9+Z1RA56bY0IlilmkSSHtzdq8P8HUm72tk29/zKQW8A9BOX3oer4aHsX5Kb9cjo4By9lf2ncixeLcjX6JtNd7PuvJGRll8g8cC46EPYMS7jJDSzUvG5In1Izr9HZvyMmHWTsT4OZCxroHH7O/zndSjGQmsK3RTThLbWuyf7HmHk2VEwbpwR4J8q9CjHQ== 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=dQYmymtcbQDv4rr4vMNkQ0DaSEZx37fpH01/Rb0H9zs=; b=KZe4UI1Vr2lEuZdqgZ9rD/dVAXf8lMbNkzQpAKda+1TlakYRG6uXxWb4PYw0LfVk2Wayh03w0n67h6UhayzBNDM37eN6JDXY8JWvO3is4oJvl8pMCX3pCbfd33pEU7euagx1kriDQ3C5HI6JClWKLqI124GymkAl5I211lw6pKA= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by SA2PR10MB4603.namprd10.prod.outlook.com (2603:10b6:806:119::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Fri, 4 Mar 2022 06:33:24 +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.5038.017; Fri, 4 Mar 2022 06:33:24 +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 v5 3/4] net: tun: split run_ebpf_filter() and pskb_trim() into different "if statement" Date: Thu, 3 Mar 2022 22:33:06 -0800 Message-Id: <20220304063307.1388-4-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220304063307.1388-1-dongli.zhang@oracle.com> References: <20220304063307.1388-1-dongli.zhang@oracle.com> X-ClientProxiedBy: DM6PR01CA0018.prod.exchangelabs.com (2603:10b6:5:296::23) 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: 8848afcb-7c76-43e4-0ff7-08d9fda8e226 X-MS-TrafficTypeDiagnostic: SA2PR10MB4603: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: tGHY2FGIwBKPt0mZwussoFh+QQAY/awZ6O9K2BksrSD+RD701mQu91lvIh0i4nNrpTzSTfqMYU/q+bAb5KUv+mTEaMUkv9xIe0sNPIB7TBpFVwBR5diV6AJ4qkKd264gWyty1C+TWwpmtUW4rPCTwjFzPqbi3zEWjTJ3Le4dfqTyA6P79L/UQgbiVSW0oV6bSD29tuU//PZod9DCbocEQ+SOZ7P5M2fInEauFPZsJHgiXF0CMLOAOCDM4vwEBqj2axIridmiBiCpIy03lVDviI+eEzcKMwqZFJXlQePMVo8L3f0gXMB63n+ea1Wh784aB8KVd6RHo6lJ3hztp84TEQaeNjvw+mulc08LeQwbs0AowzPLBBl0B7BoljwuO7rO4A1+BgTCvfKQLq/BdolLQIvBpYOmVf5d6hJg08B+p6/u2a6dPIWjQOX5QShH2wXup2HUxkTmQANVpUTUaNcjdki7lrLJNA/PTa0ZWUi12GfARqllldDbgtsoFl24z8APUWx+GrQpwzw/7hCjpy9ui0ONbmboqe556peSSK0hPklYmYDS6KKyGWO/2MDGIcVG51xw70hQ5KVjI8cQuZTeDsKAxX9A/UQvOTpO739uFAKuNMdUXWxmFV04kmgg9CUM6yFmHCyV36DC4UmbdHQzfgNB4PahQtrc1pM7tuujrJDAdBI6q2NTS628ypnOaRMFx/tvCqM+/dFR4ZMcVf9RjQ== 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)(4326008)(8676002)(66946007)(66476007)(66556008)(1076003)(5660300002)(8936002)(7416002)(52116002)(6506007)(6512007)(508600001)(83380400001)(6486002)(86362001)(6666004)(2906002)(38350700002)(38100700002)(26005)(186003)(36756003)(4744005)(2616005)(44832011)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Lnccs5Le+KPfAlSQXSun1NQufsOBcp3hrDWzSzGT3J45JTSpu0LbTu0OpuLl?= =?us-ascii?Q?0BLSVE1MAkMOsvl/0Ua3r3MMFO/yWco7EnbdTgwxI6KZX+iwEfOv7KN/1Jcw?= =?us-ascii?Q?kFm0TxhbEFasqg30wE7gBN8LkpXEYYEPSCfdSp8wwkt1pbEzfiTtj70p58Zu?= =?us-ascii?Q?3BOpeNaDV7LZJSx1v1AmT/6hl5g900AOBd9fHkUYRbK2qNfEa7wLn0U08PlR?= =?us-ascii?Q?L4SapoyM80AIiKBFXMqaajpM0Qmf3lNNP2xwvY8mqNJH91rmYZ32D7YmBhJR?= =?us-ascii?Q?N2zOXb+O34LK7LPiYDLJT+0P1K7c1jxC/eB/PFZlksJO/3oDo86lE4kyryte?= =?us-ascii?Q?qnmTDMcrMiG534IeMwGFfQGmR1WNt5ouivoNxZh/OENnU1AAo9ZwpFihTa/u?= =?us-ascii?Q?Q7hOoSQS4aePLp/5tGq0MmypnvV43jQR6Oip0EtZ0aeLVsmXK0WklS0k4cwg?= =?us-ascii?Q?1WjCvIYfue9whnlKTgvg384TLqln34332L6pLlpv2ybX2Bl5/xHXCrXFE7pk?= =?us-ascii?Q?no6UyqHXrQVB7E8US9OEkX4mQH7n+aHRvLBI6IkrEz4ib56nCMFtJnaNZm2V?= =?us-ascii?Q?YGScZZL4Z6rKkp1UcMEw/ItzU/JbhtfsAx9elT5usaC5ZjOfm9lJMfqf0lwH?= =?us-ascii?Q?V8OQCzEQoC5cLhbgCxy+RL7vsHwMqVjyEAm6jqU7Vm/J7FWqZEntwLqOXx+C?= =?us-ascii?Q?OII7bA+e6a7AAHkUMB19mLN0Jw0YtGkHE1cP0PeyDJ2Asoo/EIdvFIa6693s?= =?us-ascii?Q?fFzuNtWS4WNsd9jIcCL9873IkAlgPVpeaO2k85NVma1P0uq9gqKN4N8g7BDi?= =?us-ascii?Q?kkmSyf1EjseYabpWifIezO1JIDaBVD84zU/YIT9mzw6QmX1rjZhOiZBUdHLC?= =?us-ascii?Q?UOUSmBCxxA10kMRPhl6VyqzrejOJvXjHcQ256DTRW0qwEcbS/dfRdTfuFQ0+?= =?us-ascii?Q?mW1okJInwf9+Y3YMP/Uly1iHYpVtSKIGgr9DaJNmHxE41LO1ichFPXTLOaal?= =?us-ascii?Q?Jwd5k/NEjTD5VafyBAw44jJBiJFMwh5dOnSVWYGteeKvzv+f+XHhVVW/kNG/?= =?us-ascii?Q?/3s548HNt+r+1TEHPV2kBbHif57Z+Ah9t5M4p9v+rf2bh6/NHtHTVEVjWuW6?= =?us-ascii?Q?cfa/nvrQM0BSuIZNGUMqPib3GNJYVL6W0rdzaWQxZLa2+qy6QQL6xyEpMU7G?= =?us-ascii?Q?79x3tf5eii8HY6XqpSRc49Uor7fcGzMCLihi9Yx1tC92b9sAe4KHpRTaZbgX?= =?us-ascii?Q?2wQ1r0hGQ2gAk26CoFuV7899/jIbtKBkKOyqJjPpgL68UVMu+0VhFsZrVoRa?= =?us-ascii?Q?htlwOxxvAjxPpnrsz8Lj35t5eI24ejQHIXoxaRQMZNOumusJrwd3gJ9kJ8xq?= =?us-ascii?Q?ZRyAIg5VDoIav9c3ytA+Am3IBE6BOI18rmSeKRSHJ0v4iGTOTvrukVjp2+3l?= =?us-ascii?Q?CWaRseYBba0QvY4fUDDJJoR97RsT+TmSQLAIjl6QMNA95X2eUxBtaBH0nypm?= =?us-ascii?Q?8M30kmq8ZNMCbPMFVlycMoYbgrd5mmn98lb6cqZBfVM0yO7vUdX0bzP/DxQ5?= =?us-ascii?Q?sxGmIaxSnb6dtHEGDUK/uqyH6D9kDrxs4CQyforTj/kflS8Y3/zh0QUrF9/D?= =?us-ascii?Q?ttY7XGFa6ry2AjCPpGgkjvo=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8848afcb-7c76-43e4-0ff7-08d9fda8e226 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2022 06:33:24.1676 (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: XmFSJoy4TcwcXC17qIuzGhxPyeadjE7nbSz0y7a2aDeF4fgsn0yKzyKho00LStI91u8nzK5J2kQfC4mTxfDSbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4603 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10275 signatures=686983 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 adultscore=0 spamscore=0 phishscore=0 suspectscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203040031 X-Proofpoint-ORIG-GUID: QbMb5efpAHGzbiaOyn8E2S7zRXjs4EUE X-Proofpoint-GUID: QbMb5efpAHGzbiaOyn8E2S7zRXjs4EUE 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 2a0d8a5d7aec..6e06c846fe82 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 13:09:52 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 729B3C433F5 for ; Fri, 4 Mar 2022 06:35:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231503AbiCDGft (ORCPT ); Fri, 4 Mar 2022 01:35:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40820 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237244AbiCDGfQ (ORCPT ); Fri, 4 Mar 2022 01:35:16 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07A388BF0F; Thu, 3 Mar 2022 22:34:29 -0800 (PST) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 2240gE8R013345; Fri, 4 Mar 2022 06:33:29 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=DG6UUJ7EYxEboQwhbz38ZsHU6Z8ES+htolFLAMlQBvA=; b=RTWfKY4/bjxf01ZSX2K3HgtN56slLLhjiGIA7qbiJUlXhAkYyEFKkjuiOHa96OwlJ+Ue qus+29qgxk3lQg6xCcS1F18abcqY3tQPpNpi/2OYVXAiKpY7s4rH4vgmLgLdsl9uLe4L 3oChHh7uDM7Db3cdkBw2Xdi4hS/B6Gd1vLd3Hw0aF37U6TNAHh4CI0UlMAf6YWmUQPP/ BmkwEPoljKOXyFtqc+roncxBx8t45V8fanGeTQCAq39LCZHJ+xv72MDyqKvsu0Is7Uay DElfIMRdwkcYB0DBPYjrsbZJokgpyIrCp8lD5j2yf1ExXNMpXARhAyl8I9MtA3XwPhUI CQ== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3ek4hv0ws5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:28 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 2246V0CV010220; Fri, 4 Mar 2022 06:33:27 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169]) by aserp3020.oracle.com with ESMTP id 3ek4j8drxb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Mar 2022 06:33:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Luhu78rOFzeNDW+0jStGUO4G/s6TPJfEAarkAf4MmcAD1F8XFm2xZn5VYffSqvzWPNeP4sx/ZLW7FNfZLHGg5w2SIA4cK58lp4HNHgIgIEA4oTdkmBhS1GYpx7XULEdXOLoVOUmg2hUzme9aqF9QBO5tVWacoUHIRP+pctSh6NRkqIp9cPSqEZ6og0MTr9dM6zGXJa//0fg0RjJsS+x4mN33sUnTmBKG4ajn2YDtDbA4i+0ytD7bSGjUONJZGaLThIXgqcfiwd4YksiwoWdvurchieMTOZTQMRTBTZ6a+htIIlj4Xfl+6cFykb5l8/Sq2ouTjWh3oCU4m39DpQC7Ig== 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=DG6UUJ7EYxEboQwhbz38ZsHU6Z8ES+htolFLAMlQBvA=; b=mZrG0UGYrxujUnoi0qQdnl2x1bxQslJrnxY2cczsTXtGN8pMY8brLYRuobRo3kYDQ99xc2rCquyifjiypyDsVhlC5ONVAafeLzJ1nrDKDJWJ5ShTRaEhVkT1xGRWUkYl/ujqc0/Ul0n4Fv+CeU93fu40QIxvxyL4vuHDIpZl7oQalyE9Q+OoNzxMGhFn/U2z2PxC0w2z4VyD81btOsgD94BJqJYeejcYBfh0Ktq3XNl3i7TsbhPHGTp61UGYwIHZ9cZyaYxyqYbJtbKsCzFtohLPr8W8UOQHLq58dZezqeVPU4ddWaE3pmNOPMf24XH9Aldbp4i1xg1CpWTXVqqPTw== 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=DG6UUJ7EYxEboQwhbz38ZsHU6Z8ES+htolFLAMlQBvA=; b=xcH55u04II5nObxyyG2qah8Yxinx3VlHt4VtvJ8yMfPyazMTX2KK8wSei9Ew6sfZrIJvhMI8xbgAJykisNYmmrjiCzWDiwgBPMF/3Qcz+20Y8g+CN6B2+CWfethao18+bg/dPfHJC58tmqkkfBNR/4gA/AmKxP2Y42BhwTwTBxA= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by SA2PR10MB4603.namprd10.prod.outlook.com (2603:10b6:806:119::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Fri, 4 Mar 2022 06:33:26 +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.5038.017; Fri, 4 Mar 2022 06:33:26 +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 v5 4/4] net: tun: track dropped skb via kfree_skb_reason() Date: Thu, 3 Mar 2022 22:33:07 -0800 Message-Id: <20220304063307.1388-5-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220304063307.1388-1-dongli.zhang@oracle.com> References: <20220304063307.1388-1-dongli.zhang@oracle.com> X-ClientProxiedBy: DM6PR01CA0018.prod.exchangelabs.com (2603:10b6:5:296::23) 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: 96bcaa28-a64f-4a2d-fe23-08d9fda8e33c X-MS-TrafficTypeDiagnostic: SA2PR10MB4603: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: JCy96By8DygNRgmD4Ilch7a1NZ7IPXoqob2GqWLye8MYBwDjq2SZIVEXqDO8s2vHRkvo8KT2g9Wh3j2+6EoIHDrMmaRsSR+6gFIHbFEMDjATm3soSMim5bSpVrGH5Vno7TNCqypnxuR1WX4qGoe8eIRNxevjMOTJMtAVwlZzKId3fg+BZ/L3q4i9I07A7eikbt5N9VAwAhDAQ5uQxbLRAFE05tstAJxS29Mj2aO6afwAskgvqXMeZwHGX/+DOIXKRQKBCcc7Vjn79yDzZ9ykb7Gd07yZnko8I9u8829fHm6CTIa6RlWEZAPVbTfFGcw5nvzTfLA3Eqj7ZhO872mBwwhQwSTi4NcHN0Dz+wFn9xuZLsNUL1DeVr9lO9SAygpvn7WHZ6kLgOJJJ7La7Z18KVfVtqb8A2nFHm0BTxdtnry6j7+fFwOyHZ6PsK2gH6acgpNRuzbnhhQ77xhYnifA0pPf5v0PMxyiEHDsEHssiwjhW6LDQvugnDUKBtNRuKGCwO2L+C9Xwy6snXxF6+ZMGFsEqAx+1TAwjug9JCV/z5vz/gL8jPuSY4jRFDOPwOJVYvfuJ83Ze839RGFaFXX39QXxNLu/5r7OAx/DiPpcAR9M0Bv4sGlydW76iLM4hdPRCdw6E2RPiJyDn+GN2SDlBT9efLOhlF6hEHu/koZ8M/tkwIGVrwCTQNLo9MrxDX4OfXFP6a75UBY6LJIxrEDvrg== 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)(4326008)(8676002)(66946007)(66476007)(66556008)(1076003)(5660300002)(8936002)(7416002)(52116002)(6506007)(6512007)(508600001)(83380400001)(6486002)(86362001)(6666004)(2906002)(38350700002)(38100700002)(26005)(186003)(36756003)(2616005)(44832011)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2/9IdlanHcCm1e4L1hmsMHcgUWPWkRyJEzfvJNKfn2tRNWx6mkMgqoOB+VTG?= =?us-ascii?Q?nro73qocQ6t9vZrul8CHltONu9f4LlzYhwZxYNv+RTdeS/7ARAypK7ESj7yP?= =?us-ascii?Q?KKdn7LZSyLHT8aQGBc+hOA2I3jVdharlsHqrFL0ZLGJYte/dQu1qcX8h6Aus?= =?us-ascii?Q?7YrkH1zLdNTUSbBxKBaprK1P/wA2fPwcyP6Hi1ckYCIcGnhI2GeFSE2aLgNx?= =?us-ascii?Q?ihwvvWiq3ratJvyC8Njjf95SkqQMfCC/5CkG717qFZtaRecprBvBmwnuV7lP?= =?us-ascii?Q?LA4ngt346TQw0NF+/hywJxtXY8OQeIWIwDoxTrSbZEAy2ABj+e562H+w6j+N?= =?us-ascii?Q?1udAoeR7MQ/VtBBuPZN0zXfz5di2Unw81cHUWQU+Y7hcYapNsNoaP3to8e+o?= =?us-ascii?Q?WnwN/JTvi+VBR8G58MivYv0w+dQ5ZfnfI67mx3MMj5PhWjG70DZy2vjl8kxb?= =?us-ascii?Q?DGxf8XGNG9SEMglX4qcAyjm0pdR4KQGsrBw2MdVa6s34QSxQs0t5O8P7gVJl?= =?us-ascii?Q?vdc4FtoIHEgNCzqDVlqjkGiQJjq4TFVLbQ7C2QiD8eUScHKuI1cIUJGtx1EW?= =?us-ascii?Q?R7BhriCz9VlM5bDM5XaN2RCZQI7at1N/8dv9fKnjSpZj7RPi5vHOffFv0EGP?= =?us-ascii?Q?9ptYHbVUS/u6x4R/psSBJpLACZwz9DxBiT6GWbkosS9ducCWBW+MscY58dZK?= =?us-ascii?Q?c4p0CE/s8XneIjSy+pzaYP+scoFPnltL9fpQ/eqTWz6ZI5lIGLn8M13DcOMP?= =?us-ascii?Q?bKoCKrpYNmB0mmgNpTL21T+q2+ujh4HJLTUc37c+yFmpqoom8bEgu7iL2anu?= =?us-ascii?Q?/K1iP1saB0Xr+tgzUdx09TLXckQAyXqCToVCyMqPrjJlS3eWqC7IdPnA8Ctc?= =?us-ascii?Q?yLMoNtfsIQy8BlO/4WiUuJhN3ObCsUFW58vgjOmrOfG4/Jx+5aybPr2B+qGh?= =?us-ascii?Q?TRSQxo9yfHts4vyqwFLhW3lh7b5HtXD2gjBTgsLR4j1DYf156jayYK9OY+YO?= =?us-ascii?Q?wFcg6dqCkQBD50QFoscTMeGALfyIeeTnco3JTTqtS1GTaOEAsIxGV6AWUZlh?= =?us-ascii?Q?k75+kyPQ2KK7EiAcys3R8CPUbtn0jkCmDNoUg5bU45dILUbh52E+NPFbo/UK?= =?us-ascii?Q?vweCezjshRpvinGTZPAkaMQF7Hu7YsnK/m89TAH2xqPl3ngXI24HW23SI9kU?= =?us-ascii?Q?c8W3FTTh8NTuK3vnaJ1LOkrcXZC3eVF1TedLwuRlG3DPO0AZajcl4Wz7i8jm?= =?us-ascii?Q?ey7ua5lm/KIRWqPuDLyRLDxiofyxtwtTVe9nQUzRn+l10JCg7Mb6BJkLn2aD?= =?us-ascii?Q?77EaA7acktq06dDUNe0vsizupKXx1sN4X96i2NCqaSrfyZw2W+Ap3Ctb9l0u?= =?us-ascii?Q?EU6E4qp1LQZuxJ+35rdXewOR7Hxn5qUzFmVzYNMj1hSz4tcPftVyokcJ7zpG?= =?us-ascii?Q?Cr//5rhSswZEnmnfVbovLtRI5FCYfR52zohQ31xtlZmNOU24lruK5bC9xuzR?= =?us-ascii?Q?OQnogb9XDouWsWWhP02YfBE+VojKSgBCI5SLW799pexCMTPrqdfdKSvx1KSS?= =?us-ascii?Q?3KouYfGnLSM7qTOjcUosdlScNxwby3iZ5NVuBd+be49qcrDzx5DpMWaIJlyn?= =?us-ascii?Q?mInE5UncYxySPD5CBKlF79A=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96bcaa28-a64f-4a2d-fe23-08d9fda8e33c X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2022 06:33:26.0112 (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: mRfB7xDpJse0cYJxC/aOzwwmH2dxDpY1WAzIteCp7ybDZ46ofj57N+5ryz8nuzkf8TObBwfhDQPyPWTnFa6uqw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4603 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10275 signatures=686983 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203040031 X-Proofpoint-GUID: quM5ieBm3W7nlr0Jt3hbg_D0-29Co6ZI X-Proofpoint-ORIG-GUID: quM5ieBm3W7nlr0Jt3hbg_D0-29Co6ZI 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_DEV_READY - SKB_DROP_REASON_NOMEM - SKB_DROP_REASON_HDR_TRUNC - SKB_DROP_REASON_TAP_FILTER - SKB_DROP_REASON_TAP_TXFILTER Cc: Joao Martins Cc: Joe Jin Signed-off-by: Dongli Zhang --- 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() Changed since v4: - expand comment on DEV_READY - change SKB_TRIM to NOMEM - chnage SKB_PULL to HDR_TRUNC drivers/net/tun.c | 37 ++++++++++++++++++++++++++++--------- include/linux/skbuff.h | 18 ++++++++++++++++++ include/trace/events/skb.h | 5 +++++ 3 files changed, 51 insertions(+), 9 deletions(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 6e06c846fe82..bab92e489fba 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_NOMEM; 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_UCOPY_FAULT; 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_UCOPY_FAULT; 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_HDR_TRUNC; 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 e5d5371a543b..4e5b725302ca 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -406,7 +406,25 @@ enum skb_drop_reason { SKB_DROP_REASON_DEV_HDR, /* device driver specific * header/metadata is invalid */ + /* the device is not ready to xmit/recv due to any of its data + * structure that is not up/ready/initialized, e.g., the IFF_UP is + * not set, or driver specific tun->tfiles[txq] is not initialized + */ + SKB_DROP_REASON_DEV_READY, SKB_DROP_REASON_FULL_RING, /* ring buffer is full */ + SKB_DROP_REASON_NOMEM, /* error due to OOM */ + SKB_DROP_REASON_HDR_TRUNC, /* failed to trunc/extract the header + * from networking data, e.g., failed + * to pull the protocol header from + * frags via pskb_may_pull() + */ + 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 9d91ec9755b8..e167a6657748 100644 --- a/include/trace/events/skb.h +++ b/include/trace/events/skb.h @@ -49,7 +49,12 @@ EM(SKB_DROP_REASON_SKB_GSO_SEG, SKB_GSO_SEG) \ EM(SKB_DROP_REASON_SKB_UCOPY_FAULT, SKB_UCOPY_FAULT) \ 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_NOMEM, NOMEM) \ + EM(SKB_DROP_REASON_HDR_TRUNC, HDR_TRUNC) \ + 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