From nobody Sun Jun 28 09:03:11 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 927EEC433EF for ; Mon, 21 Feb 2022 05:38:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344591AbiBUFiZ (ORCPT ); Mon, 21 Feb 2022 00:38:25 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:51922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233752AbiBUFiW (ORCPT ); Mon, 21 Feb 2022 00:38:22 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C4FE40A1E; Sun, 20 Feb 2022 21:37:59 -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 21L4oXCd024603; Mon, 21 Feb 2022 05:35:15 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=CBHyDs3SS2Drrr+S9+OVEQm1MZOBD8sNV5RCnFu9JrA=; b=fE8x8FqeGcaw7gXGrAFoRMdUnkT1DF7mnq405Um5xccYlfX9kyV8v87Bn73J4I8iwqtA 89PF/kkIE9D05llGclJNaBLa90gWtuH8iK3IloYTYHxP+pJPyUiKbXJKP5FpKr5/j9D6 c5zYlsq7rqbw+Ju7Ya/J/dywE92bb767H1jb9/6zUgmAqlOoJr2VdOsYrNnjrkALZKD2 unE6nNRBp87b8o12DmYJBfc0QGWl6sod0B28s4dRWx+21tjcnLSjJsB802X7Gf2VKRqZ LMV+X/ve8HiljjWyKSkYNDMJfn8/xl/A4QOgBrgQ12lVaDhnZkfjuV2DLG71Vr0A9r9+ Bg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3eaqb3b4jy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:15 +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 21L5WNA3077278; Mon, 21 Feb 2022 05:35:14 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2042.outbound.protection.outlook.com [104.47.51.42]) by aserp3020.oracle.com with ESMTP id 3eb47y8ntk-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B5emhA4c2wjYkdD3VeNK71ZSdkqm44PStlvfkkavZbF7Xb/cf4WmCObaI0uyHXd4RpRHw0h+2yBxHWjgycfBCr9LTp/OJ5Y4dwaCH4zGfT0jJ2oGr4il8ooW27LrWO/FJyvgXojdCT/lug6m5uYp9GIslOzZ7P0VNgPaL2Q0RaLNa12NvUra+yuZ7q5lRrajZiWB53GVxMYpNwTBGNLnIcKGLE+AX0fGKYj7NHP5usbS2mb7zmnKBCoA76XYcJTZncThkJyLTnARKuss4mGFoSbC8P6p18LRANIdMfpiX+3CzOELSk9ljnBKSdSu/T7h6hoJQidp4PbeFDKCeI/MVg== 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=CBHyDs3SS2Drrr+S9+OVEQm1MZOBD8sNV5RCnFu9JrA=; b=GM5FddXkULF/zk180Rt1JQDbIz/m/56LQ8pAlQw9mBp43PB44D9+ttkDwpFW0awBTc8DIBIlvF0OSBUIRJtukgWnh6/bC+C3CnoWhdPpHhlRUchYZcByGDg8JsJcVYxkeZSpRFhGOp4wOLaZwzKIgXUtyFgMYVu4fQFOcKPhxdo11RDBOY6cUtUK7hmoW4vVe99WdsDERoZtY+ktf9M5UfhHV3z6grZiAOz7EA0d5qgRsDhS3bjF14oIBTGSOfIhGbicNvSsP+pUuSEGHDT2+7I8/4eX6G5RBNTP5rru4zv9cT2r66jFAz2auMqnW0c642dVs8JI6cy3Xn8nPhX1pA== 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=CBHyDs3SS2Drrr+S9+OVEQm1MZOBD8sNV5RCnFu9JrA=; b=diSGyDAJOU5mPVcw7sui0bAO2oncYa0HZpC/93dKTUxZ3eLsfrRkv+pn+gc75QflwEnjJcAA/NrXap8p8PL/hihDJtMIkMjFAnxql+i/uKKfLcCoCDz8yW56mVJDd5In3h+ch/XvtqXaQK+l4LDU8r6ZmuCbTL+JXlTIPN9cngg= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by MWHPR10MB1533.namprd10.prod.outlook.com (2603:10b6:300:26::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.17; Mon, 21 Feb 2022 05:35:13 +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.4995.027; Mon, 21 Feb 2022 05:35:12 +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 v3 1/4] skbuff: introduce kfree_skb_list_reason() Date: Sun, 20 Feb 2022 21:34:37 -0800 Message-Id: <20220221053440.7320-2-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220221053440.7320-1-dongli.zhang@oracle.com> References: <20220221053440.7320-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SA1P222CA0020.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::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: 582e49bd-d6a6-49b2-287c-08d9f4fbeea4 X-MS-TrafficTypeDiagnostic: MWHPR10MB1533: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: dtqLkAYQ93cGnW2/Z8ZsMZG4Q3Ttq3pbDmFB4fjwxCgHXzxIVq4euY3D99crYcCDVZzQ2hhr7mmlJH/mWYFRC6QT0sfWO69vjnh5WNp+4cgtJsZ0Mxoj04QS70/eh9o5lDhX6r4UXAyMvF4GR8HinaYdW/2qdsnkQvUtwJFnG2dSOfJtEzHw3or7WCdWqYN7g6NDFW+eiTZZvLl8OQSjkBoQpmXB1AXGnpXF7EZStqTTuGL6PitRYHElnkiqi2Ad6ldP2m4LNP6SqC39lVJsa3tC4ByPn8VmJgHMiIH/XsyNA405VJr2iC8W7i2XIMAk839vrrLc8scUZuzIacH7bmC0naxApuczLpb8oDTDYWd6h+0rcsAGmHdBmf0LEnv5oOgVnd6kQ0tl0Ss8t8ftPNj6kS7P7qQvAn4hIz7EO0F8i+6JCuIxKkbZp16lJ2abTqwN6VDmuzqDgzSdDT5vDi2Ln1usiwAPAuRMUSv3mymacdt3F0lrfQENPts7oK9nvNI2H8zPYMhuy+DtBEkQ82egqzH1LlxCXCLQtWjZ/WfdvFW8ljzPXnkJ9ilraj+uqOkZjjYPm7Qd7cLU211WU0QeM96y1dnZO0Um1NJbefTCklD3fnyJxqPTeoObTja2gSDr9t9G2qZu2Ddmk02zHM5l6o53j7RscJAsEuFUY2gQUsQ814YBa4+sKqmYQQaue8q20fpiC27jT3itDgRm+A== 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)(38100700002)(38350700002)(83380400001)(36756003)(7416002)(44832011)(5660300002)(2906002)(8936002)(2616005)(8676002)(6486002)(6506007)(26005)(52116002)(186003)(66946007)(66556008)(6512007)(1076003)(66476007)(6666004)(508600001)(316002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8KLX3vpcIBAE0ys5Ggr68GdLjrBN1LR5mXP+1lbTQ21FREvV8XCumwc/t2B7?= =?us-ascii?Q?2QDJvuTfhSZ9BCwXeT1JlDJkDJChieGmXuwF3FzI3a7lVJ6JaL0XMa2noyHs?= =?us-ascii?Q?LL/sCVARu4IOPNbGPTjn1YVznqpE6TmWqsCKyKrxT9/AFCaaOXHrCO5lArKI?= =?us-ascii?Q?8u/74h0gQjU5IqdbH99O1oZn7fKveIZitu0N46oX57zKjHzsnM5PE2X3A9cu?= =?us-ascii?Q?/kkIOuwnGXb72OMtXmzKMSW+8HKSMerlYe6NVjgrCkaR8Li0+HxfOkgsYOzE?= =?us-ascii?Q?qYjiPWYQ9/9k6C6Ue+vKittk6Y+FQoUbrcbCWuLoKDNtqFlT7GtIRZyDR1xf?= =?us-ascii?Q?L7re556kaSgrGx662GiR80CQ0cz4NQe0BodrxTLOW/ZeZGh9+ynm1/72HF8U?= =?us-ascii?Q?ZCh/lmCqolghVLCXzOy+nxsNg/suLkDFpLk0wV84GYoesmBIWF7O3uSN36Mi?= =?us-ascii?Q?tzKMBOXwHr9U3NW0kWqpn4Hh+9PSxXhLmgYyjdf8/CBwvrvdABIj2esVWGca?= =?us-ascii?Q?IqdOZYVGGsh+KoBAF0lG2+2NPJ42YGDeB6E7TLqQ9cC+lo2SMWzVbVduI2EX?= =?us-ascii?Q?KRucdIxG9ixWCckrNa7JhAEKaJ8CQQhmA+uZfb9maF1yIODU5pcIC/4lnZcn?= =?us-ascii?Q?p0d1Dto3+POWH8LOtPLNNOjXj9S6YnOJ4xTSpo5FZYFjJ5MfrI/UE475AnvX?= =?us-ascii?Q?5NhTDB3ENPGghfyeRsNMzxyflUqlGRsdHpr5eIx1pWsGJN+jES92adBQlrlc?= =?us-ascii?Q?I8yAWYXGz8LrYOX/c4tolpG8RrmVRrWs0lSlnixbS9dW+a8Gt9IuPDUoaSQx?= =?us-ascii?Q?qjIlJiJ+SU9vDfX9InIQECcFRPJL6fuCiMcluZROi5xaYN/uwT+qZBtNr3Nr?= =?us-ascii?Q?MGne6faYNhCOa891KQVktVSVb+e3bR7pAV29+lamCtE8qzmuv1Hpookl8Hk3?= =?us-ascii?Q?7Kbd5Vsya4rFGWncoGd/Y0isFnkapcxwUV3Bk5iR2R8jgwz6MuhFOUPVsC0Y?= =?us-ascii?Q?ZYOlFW/XVRCIAQI3Oqzuc3fc6J0GCUjjtyjpDsdJhe7eVndIyjlNR4l8LRs8?= =?us-ascii?Q?94XbO+rETp8wKvL18oPN5ds2zwfbC6IMtr0fRyhC7jrgiTybRaLwfXy8FQNA?= =?us-ascii?Q?zmWTB1aapDSZpwGzKNZa+6/Fs3HmEW106cTqVS9GS8QrzeZgnXC0xii0ghYx?= =?us-ascii?Q?/F/Ebdkfr/zIekuatLiD+CnClQPJcvq9kOOVTA1qT/KjVvFFHOWT1NsOLw4T?= =?us-ascii?Q?ut3JC+12x4HWdhiH+fl+46KW0l8j900fzto2AIN6+fBZMB8+ZpeWYE6D4MGL?= =?us-ascii?Q?mRhwW+luf1vH/Ovw/U5LBeRUfEyAI1R18cJTA5GeRkb8O9I352huI0dWfbUI?= =?us-ascii?Q?tUD09e8SA6HFilrVRyoJyiU0zVU5FmDQqg9RG/i4v9yz5jdac0jLfp4dGi0Y?= =?us-ascii?Q?Lfr08+JzLo/PrC+PkCNW8yJnJDmID38sjI06joLhBAF7UmMJINKnvMWpJig4?= =?us-ascii?Q?suPlcfVB3//W5NUa8u2GYQcHNAPoDo2ZI1yAtxBSialOGwOOs8yef1UHiGao?= =?us-ascii?Q?kyRaEcHqjF5P9m3x+6bDkNjTGdfKtj2phKyLbWrLXli7DadUJgGxZ83uJoD1?= =?us-ascii?Q?rKvpVwASG3CCPMfqopZc0Zc=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 582e49bd-d6a6-49b2-287c-08d9f4fbeea4 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2022 05:35:12.9058 (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: kGAUHMp0NMuAES2KogcT7/DIpglo87IVHved4f+DwBCttbfarFauF1Td6kBRdVgBlKhV68bz9+Ii/OfX7YZ1qA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1533 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10264 signatures=677614 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202210034 X-Proofpoint-ORIG-GUID: jhvBI8MgqPoZR5iJkRNeG5hbW_xJp4aO X-Proofpoint-GUID: jhvBI8MgqPoZR5iJkRNeG5hbW_xJp4aO 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 a3e90ef..87ebe2f 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 9d0388be..dfdd71e 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 1.8.3.1 From nobody Sun Jun 28 09:03:11 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 B2868C433EF for ; Mon, 21 Feb 2022 05:38:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344632AbiBUFit (ORCPT ); Mon, 21 Feb 2022 00:38:49 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:52408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344603AbiBUFia (ORCPT ); Mon, 21 Feb 2022 00:38:30 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 804DD40A33; Sun, 20 Feb 2022 21:38:07 -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 21L4k2eM024949; Mon, 21 Feb 2022 05:35:18 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=d5V6bqFTVChzaWkL7iyTuWVDTsodaQaSgjo1ckTJ4sg=; b=MSNAEmIVbnTNKw/WTtMo0yUCOTOgofQ0X7n3kz6jcq/VsgIyTBKfZyEGdEFtl3Ch7tIj 5QY4dcYER/mYRzX7UmVhtjW5zrUS/4HspOg2vBgA4iUyFNtUgBVg4pJbkPOFFWFKsQ4T pI1yzt79TB0lurxLJTOXPyLjLnLrtaOugHbZ5vai77TgGxwpK53j8rTypaieBRWZrjg8 Y/Ek0DF7dB72HBy0GDFx3e4bWWsSdHE0MG66gbILaqAPVN1OUifw5Mkg5LmBT7zuUxYA rHO5tMIK7ZcIjY8tI50TOvSvCGwNkZL4rqr/knQMKRBLiDoqmd5s+0nJ3mvOB6per9Lo SA== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3eaqb3b4k0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:18 +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 21L5UkVZ019493; Mon, 21 Feb 2022 05:35:17 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2045.outbound.protection.outlook.com [104.47.51.45]) by aserp3030.oracle.com with ESMTP id 3eapke8nxk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iXwdwmRqCHACRCfWmf3ZDmpcXgQ3CL8vMqvbnrnrOU/nroTt8sOxqqz8HqT4ubLGOFZUhvhuWiYkD4zWxwnWqO1I9thwcVVZL3pSas5oKcivFSg/S2VWUaJfGxFu429KzkXhdxmf7mJn6MvJYaRdXH8Sfxxxe2lph2y8vxBpxWkwrsA5FB6O7vFe4xE5xBohzz2L/GAsCzRHqZIfWUqKlhdIVk1/DVU1d+sJip16is5qSrAvs4gkkq5CMA8jH4W5hzR5UnSg/nSx0tXIFLAVsjWo6/0D5WNWUaNrUwSJrvXTiC4JESA3VCTOVQ/m+6Ol74sqLuWsx3zY1UpVCpBzBg== 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=d5V6bqFTVChzaWkL7iyTuWVDTsodaQaSgjo1ckTJ4sg=; b=hXMMSwkXfLlaLRIF29WEEcCobd1y+ZOBRzHnsLPX36JBd4nMizj8tyE4tJvjnHRDoA53yCNrCS6W3RBO5jv5g9C7EsHbKo01z7RF1GydVv3zBGAI6XHG4B2F/WhAMs8ww/SDIqtV/yZrZRAyYaNTD2qbcuxiGoo+Q4B6RYvcC6WxxithzT7Eb4hPCwNMTFyJKgIAUNFWlPFUqAPC1+hhQ5zZD5H6a0H20gM2/jOW+BjmURHR/o61wx/EHVFtmdEwqMwpIsZthbYQ7naibZYyEzopcBDdZpoSr2jQowGxsXHneSpHOXzUFEN4hqNYU4DCRF7+rsutXQV5EkQGCJ5/og== 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=d5V6bqFTVChzaWkL7iyTuWVDTsodaQaSgjo1ckTJ4sg=; b=kxbCGVVHeRDStijb7teQ/SxcbxizSCJoGSjXI7nuQuNfqr0CE4V9+rPwQ3JlEupf225lVYhlGtJm9l7vU47GIgsnwPdP7o9jceYBnCkztx14sT1/3dDn/lXbucj0lDShL/WYvShQE3AzhahAYLyXMSJ5BS9D4MxBMw59Whmdu5Q= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by MWHPR10MB1533.namprd10.prod.outlook.com (2603:10b6:300:26::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.17; Mon, 21 Feb 2022 05:35:14 +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.4995.027; Mon, 21 Feb 2022 05:35:14 +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 v3 2/4] net: tap: track dropped skb via kfree_skb_reason() Date: Sun, 20 Feb 2022 21:34:38 -0800 Message-Id: <20220221053440.7320-3-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220221053440.7320-1-dongli.zhang@oracle.com> References: <20220221053440.7320-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SA1P222CA0020.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::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: 7fc895a0-a1e4-4031-a1f5-08d9f4fbefa5 X-MS-TrafficTypeDiagnostic: MWHPR10MB1533: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: YVZ1P4+mPWq7PTmr/0ALIT8P5pbooGf05CsSrjNfIfM10ZXJUCkSJSiC19IU0I4ETAA6OWmmftmqf8QzgtczCbrE0NuIO200MX/gCC9Wfc6YXB4DSMzas7827XI96GnFl7Dk1rgAe++nW6/U9/3Rb4qqXoiM+ffBV8T/WdBxngLghxMLhHXkR3bYYmudS5Egx0rJOEq6ImKbN5GiGghJHz//Lri0udGZrflRy7GlOARmWYJGkEBh/uRN/mpCVsxScXOW+envMyUpCGW8ohTnsiKMDyY1SR9O/o20GI0/Te5iMLlZTzQSdAirHMOiXXd5NNgKHzJNMS5rWGKCXkfK++f1Cx1TCyv+fK4sAkX/JVQ3ssFO6yXY3/4q8+0fbtM6tVY8aj+TneHvtEgEMuPRshz1V1hnPiMWnUmotzoHhnemBzH9gJfKgOxZyOLfVkaz2D1gx9rQlCSS/j4IrktPwphcaAKMC+SJgZkSPeX38CFjbm12yyWpDjOt4dI3yrLsNSTbtsFXwfCGGMlEZHsjatzt0mCMEkXuMGWtqaSe5RI0iwrGmq5PNZHqWvp50s4pAkhHRcq16B9fMjO1FOHqMbBJ4dNZYmkn0s1xFF6ISLNivs19dfIb8x82drcmBDMzB5nFgN73UEF0gf1yR9v8zexEAn7lJ5dJVkMHlMANpX5FR0yDS3dEixl30k48faz3zaWSfNkNE7HM9y5loOn7tQ== 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)(38100700002)(38350700002)(83380400001)(36756003)(7416002)(44832011)(5660300002)(2906002)(8936002)(2616005)(8676002)(6486002)(6506007)(26005)(52116002)(186003)(66946007)(66556008)(6512007)(1076003)(66476007)(6666004)(508600001)(316002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XxQEqoia+5sTg8kplKikVc2cAXv2LGNRoRbChrn9Ri1uh59il+aIYL+HFjVC?= =?us-ascii?Q?vJ/iVSJC8MnFomTAzhdyplK43s+au6zZSol3HTFpbzTPkPDvPobyXA11J/Gy?= =?us-ascii?Q?LbjVXSyA+pLA7Kcqq7jH0dsNo52mB59Robvon2mScSTKmaJtGiNQzjXqeW7D?= =?us-ascii?Q?OruxkdXJ9GSpWUliPLKlYZ1kU3SEm1SOB8wJER4BcHUByBYW/OBvmCWnBkzc?= =?us-ascii?Q?VOPIyA0T+xaKuMow1MSrAiFcmAqP9T6qlAAdSD8NI2NFMn6RsFlL3HK1E5HQ?= =?us-ascii?Q?3IGzz41THe9NfWUpmDmFmA58Q/YBR5Mjjz9+s5eRLe0C5hKzmnybV7v2bTwS?= =?us-ascii?Q?NnFPhB0+CWAs6LvVeN7WLC4KRN0vRDZ+oQJkQFSQR38kcXUV0G70fn8dPjFv?= =?us-ascii?Q?HM3GP1ZWlsppJZS1CPN2jF6svyvEjp6DsleXDqZQYtGovk8k/3hfIRzEd3+1?= =?us-ascii?Q?APtxhFbeyLnSJebULgO6I522v0+2UQ9sAQr4OzHauwQ3bMzmcueuJc06fICv?= =?us-ascii?Q?PPwv+Ik9iEONlTK5ZimTLx86w1SbcrR2eR5kWOr6chvOlPZJUQjS7uUVu+Ad?= =?us-ascii?Q?dmUgdnco+QesigWPjxMs0U9rZ14PHFFUNHV2NlNAEaC2usUc7IW07fOEt4wh?= =?us-ascii?Q?Lav3q6Syi/exKNiL56gulJQSngYaliTXChLJFcrRB3xH41ZRkvYMTU3ledw5?= =?us-ascii?Q?as3W9j2UCzY+DOkh4fpeZhAFims3irE9u4wcX3NmKfOqP1yQXXkDTD3L0A5M?= =?us-ascii?Q?IA7exhjjDEjQpRyaxC2BiDUEfFf42Qa9R5bBxocUI7KUAyhfoCwDmb2GkcVd?= =?us-ascii?Q?b2U8iMPSnM/MzXHyavdgIbSfAuhb0tfUwvNiOexI2ejWGRGP3lxfA6WZL2Pp?= =?us-ascii?Q?2ck0LZAzc3CPcGH2PF/k53JJ6T2nD7bhopksOb9D8vHGoh7rUQIGrUAfI1Qe?= =?us-ascii?Q?HrEprE41908tkCio9siidcNnQhzoL46jANfryySe0w3k20Tg5u6X8WUty54e?= =?us-ascii?Q?ARTu/vRnzAsoEa+NUIt9j20aBbX2y5K8AkcgLRlUb9fIwyq9YoP2Lbjv5+d8?= =?us-ascii?Q?AgMPNrD7zq5KjecmVHE3waprHUam0aQUsap7nIEiNuWGnaS3XpYI2ZHdOHLW?= =?us-ascii?Q?Bpw1w7gkarnYBTw7w00t+I7dmCDy4q6RAZT38n1lmEq/gS+Bjtu8MfgxpDzC?= =?us-ascii?Q?VgWjsxivDw9JiObvfzu3/CHAQyruMWnBsKDNknD+eRarI193hPLzRJ9GGmYq?= =?us-ascii?Q?cZuauVgMdGnJZlGz3zrhLQP6R6UQnBPd3hfCw9MPCaDLyXx9w6bnhkSE7sY+?= =?us-ascii?Q?5GzPyOEVD9BptdtnpZ0FSk5Wr51yFApqX7TqGgB9kyxdcr1MJiQx5T7uz5hU?= =?us-ascii?Q?/Mxo7Jpun8zPJzkucmYUqEIbPKrdWAKRoSOrICs3pOSRR/t/eYyDkZ9mDpd8?= =?us-ascii?Q?2Dgr95VANfVaW8e71IUoKrTdHI2jNGX0xT2ct0gEZTuUNNJ8jsB0v38oYZKD?= =?us-ascii?Q?xsJxkc7FsadSrth4AhU8ampRIoNit2gycmqXsJlykMAF5q1mNMHnPC3wYYdr?= =?us-ascii?Q?yCBn7afDgGNMgJUJ5rbTYopn73YExiCk7Qvf5sSOC8ikdw6LfZQwpZIDMSo1?= =?us-ascii?Q?pDJKzrMPISsFnU/5hMqudD4=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fc895a0-a1e4-4031-a1f5-08d9f4fbefa5 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2022 05:35:14.5932 (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: JCRUmmTKd6xBJRQ3LPgdleUY8FyjmoN4OXjFVEGMC9RvxQ8fwYvbdPFvURrBvxhdf07DaNsYwT2aHOhTvji/CA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1533 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10264 signatures=677614 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202210034 X-Proofpoint-ORIG-GUID: HbhJjSoTUd1daD8alR_4WhWEL3pOsTXK X-Proofpoint-GUID: HbhJjSoTUd1daD8alR_4WhWEL3pOsTXK 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 8e3a28b..b48f519 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 87ebe2f..52550c7 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 2ab7193..5b5f135 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 1.8.3.1 From nobody Sun Jun 28 09:03:11 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 6747CC433EF for ; Mon, 21 Feb 2022 05:38:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344600AbiBUFi3 (ORCPT ); Mon, 21 Feb 2022 00:38:29 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:52034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244147AbiBUFiX (ORCPT ); Mon, 21 Feb 2022 00:38:23 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E92540A2E; Sun, 20 Feb 2022 21:38: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 21L5403Q023560; Mon, 21 Feb 2022 05:35:19 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=N1cLy4kzTKIJrAOO0ot5ovD1x2Zpu3q24Lnj5DxmZG8=; b=DrbezGE1jrsFJVwwxYv2IUzCY1a2hvZKfJU/9HDOKN+cQ3MU1RHGhnYSq7uowClu/3ll GY9lr0YIcmjjzQjR0MOdndtFIVyb+QHLzeqhaL5G1miM8yncCcC6AHvUz+pF0Dhs0i8k 5qvCAqVC/D5Jh4MQLVywq0earzcGM51E6xe/7Fj2MP7FaPK8WcrJm73WvWeqOSH4PajO 5v3pdI7sQWNIH6duXMyYmXjANNhFxrsrht2DNk83IDstpmt8Op1PRNWAuCwjrixH7b+B fASeNRzk3HDILLQzAuvG47uGYlOOr7tpleThPI2aeA0jzXdXmNK2E50A484FNHThJlhC oA== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3eaqb3b4k2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:18 +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 21L5UkVa019493; Mon, 21 Feb 2022 05:35:18 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2045.outbound.protection.outlook.com [104.47.51.45]) by aserp3030.oracle.com with ESMTP id 3eapke8nxk-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sbw/mKQaMXst1Ruza291Z0iCrItSfVMJFHA5tYvBPDCKYNW+K+uIi0C3hE2Fq20uE1aZSd/5N5hpSwx2QPacQ3xJtyARKJRQNQz7s3zbzlxF8osz4LyvLePGhTdTp/mBVTn+yFDvOPmGSAjDX/kJfWjHemrHaG0dxUgB27xqSD3nf5gIpFPnmvahgy9BoUebF9JEtnQ3f5DdGQ20cFdMWitcqg96kBxTAmYx0lD0CPiTfnI1DkhRt+e1kvJhVu0/vFAidieNrw68J7L6zegYiyn8w3JRn+omISR3tb4IP1IqFIPRDEbehj5O+lFSwtrdBW1S/UtGjXXZ1QzM03TWAg== 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=N1cLy4kzTKIJrAOO0ot5ovD1x2Zpu3q24Lnj5DxmZG8=; b=A5sSBL/hY0Qu7ZZs7FyWNh60wmtzzYpIhcwLjUQI0uNaGmIgsF1/YiTIJd1I9v4SZNeYGoj2cnOzX+DP8/YWJOAmrYt/jALbIEqE/u8el2AbLO85wBMHc2lkvoaPYosEbi1/QRZ3wyPEyX/WAwjBWgUnxQbREY/0mplY97SE7A7RhspAk7haIg2Y2BMqyA+dKDfQ/nIqHu3qBunntjHLgriArQpeXl1oHlbwkub/WhTVVFKgtdp8i7uMwrVY9Fr8Dx97wGWbpXR07ja0Uj0Hz06Pwr71VIHdZG7Fz+9m3muz0MgOJDYhOIrGA4Z/yNYbIl2TCVz+OPGWZBohIOCdLw== 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=N1cLy4kzTKIJrAOO0ot5ovD1x2Zpu3q24Lnj5DxmZG8=; b=fPODCU923J2cnSiO9pGvhDI/b9VEFqpFYE7dWkj0bCNJBYSkVwAVB+mQGWMebaMwyTqeIp4oeX0963Fm8KupzJNFxBCp4xQNtyORbMhpX8eEOgkXspYOagohSJ+FYWw+3fkF6WHlL1ji6VH3ohPzA0BF3dWVGJUxV3xvXwTILm8= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by MWHPR10MB1533.namprd10.prod.outlook.com (2603:10b6:300:26::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.17; Mon, 21 Feb 2022 05:35:16 +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.4995.027; Mon, 21 Feb 2022 05:35:16 +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 v3 3/4] net: tun: split run_ebpf_filter() and pskb_trim() into different "if statement" Date: Sun, 20 Feb 2022 21:34:39 -0800 Message-Id: <20220221053440.7320-4-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220221053440.7320-1-dongli.zhang@oracle.com> References: <20220221053440.7320-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SA1P222CA0020.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::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: 5e6bbdc2-9474-44b2-1b6f-08d9f4fbf0a7 X-MS-TrafficTypeDiagnostic: MWHPR10MB1533: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: ll9iJE6LSXx5twcoYsuzSwl1MI8vmsWgDyEPiWZ4HXa4EwaHLTq3zmQpz3qUCbPHBrN/nGWS3KwvRIiWmAF9nDYLpw22v2kNx98Ef21u+b/p0oOU6AoVV/SA7GQ8Rm+wf/OXeAKJRv63oNzTT4UB47gR1UJsS5mfjYvWFnrKbcca9vvTkLqEo1WloXrL3jKS37eyJZLNJRw1wpKNP61WCPvXtToEfQQgeIOzVhDBrX6XdvA/OvA5AmfQdL1HWRG/ZKHoYAfSkZtCTg2hAPw8TvZo93skmytgjn3OGTcziy1DkDFVNc7aKfV+RqRoeogJbS+ljC4hvj0E4YmjBFvakkEOvN2cbpEP9/BbiJjD4q+LLIKsXj7XHtYmE5gAeHFUYxAsLQrYEY4irDnj1mgvw1+qIwi+icXzMRPL28ErGmEmi+O6X5E967xLR2YBszrMbNizWClSPukJF3Sx2tV4dN4s1uonRxZh6Fdkct6eSWOIT1Tj1b0SuhMa3j+gaStzsBmRhDt2AYynzoxOB8AB/18D6AhGNEhL++K/4Cvqxyaml2740nV0Cb7Dj5msd511H8UmIAAOwRCKRcuMkPjfFb3DCbUVvMEqbidN0VCfhH/hC5eJG/6sWVc95UG0gnCN5/ZNxQUtWnRM0fpKzUYpPxU/AHPnjfmE/RyxxWuAxcR/bseQOajTOeHWJeAxnjt3G6of13nE8TXqcflrOxgQfg== 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)(38100700002)(38350700002)(83380400001)(4744005)(36756003)(7416002)(44832011)(5660300002)(2906002)(8936002)(2616005)(8676002)(6486002)(6506007)(26005)(52116002)(186003)(66946007)(66556008)(6512007)(1076003)(66476007)(6666004)(508600001)(316002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?D8gArPugwwYqdubGUIoKYLMOCZGXTrgeTO2Z305lz6vHlNqhkQfwAL2AoGpH?= =?us-ascii?Q?ahrUROXB4VZh10quymuvXQJrvZwRX2OVeNaodNA4F8Cq4AdCi/HiQrlbI57g?= =?us-ascii?Q?sUl4HaM2r0ggHSLWeZ1lLXb/t6mx1ILX/LzuL+fCJ9cYtMpm5Nj4l2F8czhS?= =?us-ascii?Q?74JpRvdcT8sLChrUaUl2QLeJAdt4hRwsgAA7gGtZGdDIIyubYhUfhPBmFFtu?= =?us-ascii?Q?/zEbiU3kA3Gg9F9yePGDD4buphoGsSJJrjfZiAIy1Fz/J/cvjvtz7GK/gaeB?= =?us-ascii?Q?9BMdFRzNSqKDoqKpBEwHx8Owd4AkwYOxjj+u0ZNhdmrP+0p20yWfgDrNQVv5?= =?us-ascii?Q?uVjrNEg9rtd4Ix1booIoYJnGMbEIgyvthy4GGmIoxTVVWJ34VwP6jsYR6c/v?= =?us-ascii?Q?3nY8eQoAMlHgrm3243hU0+PeBURyq8BM55LpgIlccOgnLtuzPSsAY5vyD/SY?= =?us-ascii?Q?prB9wArww2S8Zn2IVHs9N6wUwN49k7Osu4ui2DxWRLN+WQe6tIrRqscHLKPL?= =?us-ascii?Q?JnkbD/v2EUi6srw0rCmLNu6jMxcZUySkJNLIAjMFDzg9yZmHUNvdAqxdn+SU?= =?us-ascii?Q?EVPoMXuNrh6WhU5yBpWlKjIcFVaI1f8wIhLNzeomh+Ox+vEqHsyy5csKh7/r?= =?us-ascii?Q?HBbpOe8PmLmeUdIfBq56Q9Fqe/c+NvU+yB1AkP6thG/m7afi0tt+Mpbgllki?= =?us-ascii?Q?qHoVEGSHf9G7zJD23U7RgCctJBTKrq1T1I4tt77WdzaywKowAXBwkclcLBsK?= =?us-ascii?Q?9WkiT00UyLy07bZNkzljPqhyOSoJa6j8cTVO+dLT9QEbU3S+G7b5Q0BoSuIW?= =?us-ascii?Q?h/v7OWXp69QCOnojxdAosDNm8a9W3MovEzYBDHvoxywCE4SoCYmL6T9MAnsM?= =?us-ascii?Q?sNc1YloTcjjrSQhXHOv2+Ofw2DvVoPg6TONCWoJbE4Eyz2erGqxbW6rgOhGm?= =?us-ascii?Q?wsacdYF4PIkdzO+kHcHRlUK8LDe8O4Z00dlDc19bmwp1PO+v1NZsrPu92s66?= =?us-ascii?Q?/BGyrRXPXOzvstkJng/nMXmaXCZdQgm9plNZ894lf/8EUn7CzQ90wq3OntBt?= =?us-ascii?Q?5vQ1cMV2DqeO53IdxxyY5IaryI/RXxnBgZPxCwsZLhrvLAPA5fZlQ5yffqQ6?= =?us-ascii?Q?BJ9iyquhHBT+sVt4lHW/z3fvU0oFRZWc+TS6NSPZ9DLAhrSh8A8OT17ClQ1y?= =?us-ascii?Q?kex4HlD7JhM61mprjQys1BvZYS1UZyPOpQOYDY1IJZlGwPHmJ9fUUegVEAGG?= =?us-ascii?Q?Q+Fc0ox/0pCN9QdbGD7kvjocqbEFqZtmVfIHFXRMctw2KHiYzK331PAyYwLp?= =?us-ascii?Q?oaDt37ikZ2amOzGwPrLF59cD4whRK8xd4v1JD9LcYBmtmVx8NSe4laJCNhRf?= =?us-ascii?Q?WRW57sRKzkom5a5b4j9XliGqbjravrUhLGk8IKODa2Qymcw5HY+IjqVdn05U?= =?us-ascii?Q?SbthKX4xAgfzYy6oZ3prrGfq7wP7cIh2bQsupkF4awBkmMZopK7iUg4den/9?= =?us-ascii?Q?wvTWKMd1PjrSsdT+1/Op4Mfr2sypdmbsfgE4sy0T4qHmfvAosWDEiehLzSFF?= =?us-ascii?Q?wkibwhVuBjYQ1WT1I8MST4RKGlVzAEVUukhgyhJ3P1lur08IFSW7/3q66o1q?= =?us-ascii?Q?OfHEo7FDpqRNQ7T14OvFC+g=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e6bbdc2-9474-44b2-1b6f-08d9f4fbf0a7 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2022 05:35:16.3275 (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: aXecv/aqjkO4C8+RbMVtyNgwFj4GejkOuMNiSLeT8bn8J+wb7jP09gfDsz52NkjOTgrfMPuN4m1rRN2ieEBEqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1533 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10264 signatures=677614 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202210034 X-Proofpoint-ORIG-GUID: fUPzTuBSxCMZQn7KL0Vy8ba_LHgC2vYB X-Proofpoint-GUID: fUPzTuBSxCMZQn7KL0Vy8ba_LHgC2vYB 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 fed8544..aa27268 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 1.8.3.1 From nobody Sun Jun 28 09:03:11 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 74654C433EF for ; Mon, 21 Feb 2022 05:38:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344620AbiBUFii (ORCPT ); Mon, 21 Feb 2022 00:38:38 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:52356 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344602AbiBUFi3 (ORCPT ); Mon, 21 Feb 2022 00:38:29 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A61A40A1E; Sun, 20 Feb 2022 21:38:06 -0800 (PST) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 21L0CsM6022621; Mon, 21 Feb 2022 05:35:21 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=2V4pm+/5XfXTQKhgjJa/3xlubbMV8Yz7huhFBZlSrt4=; b=J/WO7dN3iWm3bwzvGdO/O1CiEVYGYINBjQkFoso3jGGog5T32jobwwKJmSzbIBbQr5Gx 8YcO55dL2qEpMend57s8iRBrisB5i5ZDcTpoNFpoJyPMsrcKj7HniORGi+Toihv7aO4G NjROJzDoEu8KcPvl98b4P6YlYkgBmDs7QNyLN45gFYscODNvDtUixCq1HijB8Z/y8E0n 2FkJ5rwK7Yf5tIsDHkAXtpjOKOgYHWW3lTG9Cw5Uiu4QTq9HVi6UhuBlM9bIULEzeyMo LEVjMy+lmEdQ0GBJucO+ucPE03li3UTi2Ro8FlVqaQ/WiETLNrIRieKNdOZTXAvKnM66 uw== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3ear5t316a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:21 +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 21L5UpLM019684; Mon, 21 Feb 2022 05:35:20 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2048.outbound.protection.outlook.com [104.47.51.48]) by aserp3030.oracle.com with ESMTP id 3eapke8nys-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Feb 2022 05:35:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OlgdviWKOHdJI2QmcUIaejxV9j8slpY6Q6JBZYGoZbkDODdBYH1Dc95N8iAK5KLgFqL1ZTJ33C85rBdktcfEy57HGGQWJ5XQzuQaISca7QeXoUsPUOsnZrhSZqeBPVt6hIc8kp5NNT6V/ZzewnnFbw+0ctgvHfk29xlBniAqzixRbBSDAtDVL4u6ctDsQXqubhwmH7qXkwiZHmXJUKC6pLfQ1MIdOUKHNOZS063rpNpHv9HnVp/D4c1msCMEpyUwvbZsecpwBN5Tq0aJcTs8Cky6xf2B/Fqblc7pFfkaHWTMML2HrSohhBqEjv8SWSJ0HQrFQjuDBpUG2u+Gk2J4hA== 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=2V4pm+/5XfXTQKhgjJa/3xlubbMV8Yz7huhFBZlSrt4=; b=F5walVXAOaGaO6fTaSRuLgLmAL0StRaqXvYcKp2RCAmbK2asxbZ4rojweA5UKztIoirN5/y7Sb6j2hE1SY38mMRSh3g/z0E0pXK58zrE6qSjJgseyGaeiBavx78nHFVzGRLNzEETSEwC86KWEUzEgzWNVaAfJwiA56LPH+6n9NNcwL6V/QOg1CPLU+hZ0gIHOyGuGpvE8P8Ova2YT5/6L0CGAakImGIyafZ2uqDoeJaeipBpzpFYDkqltORFqQDt/ehuEDi9FdVnOFzxZDwWNI5jDmLgeOz2nPJ7CJZ3yj7OsZuqVZfS+BJaA/ELrM3h1UoFDA3dHMg3wwW1trdOYw== 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=2V4pm+/5XfXTQKhgjJa/3xlubbMV8Yz7huhFBZlSrt4=; b=VSHGvYoQf7jeCOcEfd6m55YpgR3VDpI/sXfOkrAVNWDn7OhTSK9pyRKHwMIcf+0E11xHHRa+9en44ks9NnjOJ5wIglLrhhrj7qB5onBxTvPlcYRjH9/smOYdXF25oRNdViilbEySdQXIuKR4rydzwxR54IyIuNF3HA+hzmRYfTU= Received: from BYAPR10MB2663.namprd10.prod.outlook.com (2603:10b6:a02:a9::20) by MWHPR10MB1533.namprd10.prod.outlook.com (2603:10b6:300:26::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.17; Mon, 21 Feb 2022 05:35:18 +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.4995.027; Mon, 21 Feb 2022 05:35:18 +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 v3 4/4] net: tun: track dropped skb via kfree_skb_reason() Date: Sun, 20 Feb 2022 21:34:40 -0800 Message-Id: <20220221053440.7320-5-dongli.zhang@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220221053440.7320-1-dongli.zhang@oracle.com> References: <20220221053440.7320-1-dongli.zhang@oracle.com> X-ClientProxiedBy: SA1P222CA0020.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::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: 98e9f90d-252c-45f8-f721-08d9f4fbf1aa X-MS-TrafficTypeDiagnostic: MWHPR10MB1533: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: LNkA/tg4DvwQ7D9iQgtaUzKvLuLg6lxEu9Jn6lOGxn+35FCDgwy09k1IO4Km9HZoRsLQgJasKy+LuM9X69U8WIAdTBb6kVt7p8p7vyizeFFL+KfEfSg55m1eyL6lAmHtQRsYMu55vk4xVQX+PDqrtVzEtRZx9WOelorWddqIz9+Vx/WwBAI9AdLhCFTuyiSvDYkYUrFFva5cj3I60BVgXBR7g6YG50z34QPpezR6JC92u269O7pGCboB6QodQhIY34zxq+e+qhJZ/zq9FjyUr+LH8uPe2Jw4mepmfoU6o3mzqDwwpvGX6SxHPEOOd9j0e2eDBr7py6nrWtZGDN/ZqmbdFoiab/s29KmKosD/5afkEyQGRnOGDry4WS9TNX7v6w61DK5FqomW8+2C53qUfb3pfqi+ezUvEcehmMX7Meheq9ikSjstmcRZ/cSMeVWC1p+gOVdn4BFd6flT/y190LAsZlo90gZvxzKZkH/rBAMr9UfZ6kyjP0OpTUPxveSTgJae4MyzsAyvwDF4+ArPSx+8hyarUD1O9s+H8wSQqk5zxxXehEfoDj2+e2GNPApli52l+IyCJj4FlTcrjJb5er0XgJf2E0wxpQSiPpi6Cc8AUP/n42awP/H4H7F8Ekp/SrP3Tcs7F8oWwN+zIHQz7kvlEWWeXV/9mjAsjaqMwrd91EFy+hQHsvIMjqZaGvieUViDhRZjNulY1UO+1YsIBg== 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)(38100700002)(38350700002)(83380400001)(36756003)(7416002)(44832011)(5660300002)(2906002)(8936002)(2616005)(8676002)(6486002)(6506007)(26005)(52116002)(186003)(66946007)(66556008)(6512007)(1076003)(66476007)(6666004)(508600001)(316002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Z80nM9MrPf/g6OGTfERU4EICgh/esPsYcZWRk6K4BpNlSY94ButS5p1d5iSs?= =?us-ascii?Q?L/bCdn/W3chD3y3gpQx/llAgzrY7SPk36BeOQgh4x2f+ty6jxyXixlT2fXNA?= =?us-ascii?Q?jwuKa7DCdGvXK4C1q3p+G3u2EP1a5VHT2IEfRdxCfIXFzBQms9io327dyP63?= =?us-ascii?Q?6Shi6soaOZbFsRfnI+iyvMzMJQt6ejTdBiCrdpQcfUmejXUpdKoXKkeexKSk?= =?us-ascii?Q?qY9RT+XQ75EoVoCifHKk/IhKxC4z6ppnMRygVVPA/UZrctGT5QZvhxchUICe?= =?us-ascii?Q?Qon+dlALADpxXh43C9nomgL11s24MSSBMAX3AN5K0BrsySgjGchzX2h9Yigo?= =?us-ascii?Q?F6/ux2cHzp0s3AuGBeFtYJ2fV8bZUNI2C8GMjqT72TIq2gwSqCquBTE2iVUy?= =?us-ascii?Q?/rEzEmI9Lcu6kZoOzx/xj2+Q2Y1tJN0JSCYqvGE5PItkbLC9zt8E0/ZDF1Rd?= =?us-ascii?Q?UJXKD3ZI8UVhxeV6Jsq9mSg4O7HXbsbhykS0VpwUnHCI9CbuWqnwPFROAZjz?= =?us-ascii?Q?F5IH3bkO+968jeduL+TXpxErxTB4Efa28L3XtOdaCDlECsuEz9sOd/Ze3ZFK?= =?us-ascii?Q?6NerTcQ3ahEa/vY+So5eG5Ls1PFYnUCz2f0VOYO6Sk1piWFvXkjyYINHJKH+?= =?us-ascii?Q?Vdr2nraAXkU1pQQ/YiHLf6oUj/rpWp8JaPhlKZHXgdBrnvTaaIavUQBnBYsU?= =?us-ascii?Q?puQXIjBzP8T8kDl2OCta3Yq6jCpzUvGvbAr225SXdqL7ff7pkWbw0RPT2I7F?= =?us-ascii?Q?YFRtqKe62/iW5i7EsahGNO3bOyN2sNiDiCkRj5GyN/awBDKU7uTZYeFZynRD?= =?us-ascii?Q?RB3Mw8tmwtHl1Umtgk0bW3EuqkvZEtw/8PvNgeNAv1DUSGOwGHtjfS0WYn3G?= =?us-ascii?Q?Ivc2ULh4z4p8AErdXHeA69UHZbYKoXl2h8jiyLN7W1mbNDMXr9B3p70kd058?= =?us-ascii?Q?KC65eomANFQmgrTPoi8zWUeyNeweQMs2bsTkTtn216uoUbH4naY5AaCxWAhN?= =?us-ascii?Q?Rjj7xLSVBBb960zay+CVX8q+hC3D2X3pII984jvR+3y75mZalmxna6zTEyp3?= =?us-ascii?Q?XJlBOX0FED3XSuiTYrEuf5h8G0aDwd3xs/d7+yKpI1E6UCwtD+VUc1cMbIyX?= =?us-ascii?Q?jiaMZpxPA2VVEjrycgdJGoaY7G2ruw3KbiXNTRnCXVqihL6IGKkaFpoC0ki3?= =?us-ascii?Q?w5PVSgG6aKbUmn6iYtm+7K1batlRo6nplwoW2KVXe7GSVlUhqDc/SeDuCdTw?= =?us-ascii?Q?7wBdaM1LtBLcAPmpVhi5jLAQRmpF0vl2XN9Zgb2hc73UJJfJIJfY9cR3NOZ5?= =?us-ascii?Q?SK38eNsLflEK9AuHcZEfhQz3mwDVpkmDRW/dv5cUxKJKig6+8h2TDMJOvVQy?= =?us-ascii?Q?E6fFw/efWegUpmB+oYOZXyIdvnmaeHwIHp1eJK2cgfm/km3jbrBJXwNou7Xc?= =?us-ascii?Q?HjV49M+MPI0nooMYJTDs6Ds7pkdRMqAF66A+fbcd6CaFAz2VBnIt7NnKB31D?= =?us-ascii?Q?+0Ac+aebvBlUPAYR9BUfoD60K/uP83fFnvw9B5tmv1w8afPTeJbTEi2emDai?= =?us-ascii?Q?g9db3VoWUCLWThAeJy2ag23p3yQkx9R+3sAeCfURtDdDlEviBbJ/pZQy+IQF?= =?us-ascii?Q?CxKQkjnxRLzJxPOc+oYUsmo=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98e9f90d-252c-45f8-f721-08d9f4fbf1aa X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2663.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2022 05:35:17.9836 (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: 8p3B1Yl168ei5OtBnVjZzT/SnG9hxbwmqqOvUq9YJgKCY2pUpMubYqHEUVZvgw+c6duHDnrVbnSY0EDGvGSnYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1533 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10264 signatures=677614 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202210034 X-Proofpoint-GUID: ZlRw-uzGXpjLDa9nEqTH6g6tr9XU3QV2 X-Proofpoint-ORIG-GUID: ZlRw-uzGXpjLDa9nEqTH6g6tr9XU3QV2 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_DEV_FILTER - SKB_DROP_REASON_BPF_FILTER 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" drivers/net/tun.c | 37 ++++++++++++++++++++++++++++--------- include/linux/skbuff.h | 7 +++++++ include/trace/events/skb.h | 5 +++++ 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index aa27268..bf7d8cd 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1062,13 +1062,16 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb= , struct net_device *dev) struct netdev_queue *queue; struct tun_file *tfile; int len =3D skb->len; + enum skb_drop_reason drop_reason; =20 rcu_read_lock(); 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_DEV_FILTER; 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_BPF_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 52550c7..5850590 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -385,10 +385,17 @@ 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_DEV_FILTER, /* dropped by device driver + * specific filter + */ SKB_DROP_REASON_FULL_RING, /* ring buffer is full */ + SKB_DROP_REASON_BPF_FILTER, /* dropped by ebpf filter */ SKB_DROP_REASON_MAX, }; =20 diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h index 5b5f135..0db0962 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_DEV_FILTER, DEV_FILTER) \ EM(SKB_DROP_REASON_FULL_RING, FULL_RING) \ + EM(SKB_DROP_REASON_BPF_FILTER, BPF_FILTER) \ EMe(SKB_DROP_REASON_MAX, MAX) =20 #undef EM --=20 1.8.3.1