From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC729C282D4 for ; Wed, 30 Jan 2019 07:31:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 883AC2084C for ; Wed, 30 Jan 2019 07:31:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="cT9KpL8n" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729954AbfA3Hbr (ORCPT ); Wed, 30 Jan 2019 02:31:47 -0500 Received: from mail-eopbgr20078.outbound.protection.outlook.com ([40.107.2.78]:22912 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725819AbfA3Hbr (ORCPT ); Wed, 30 Jan 2019 02:31:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C5XvzoxfKbFfDbckl8Q34CxuaytK9Trid4C8MJrryUI=; b=cT9KpL8n0ndpHloZ52yoyWuhLlksyxMGY+N+lZ67FU/8i64gUyDR8L4Z03w8ay2olvniSjj5ekBFNLPHicyxZSR6KJ1pDAl7rHF84PkzI8YsY/0yptpYK9RSJq3gzZDpk/oJnB3R+dV4v0MukUdcir6L9VrfC1P5imPXcA90cwE= Received: from DB7PR04MB4252.eurprd04.prod.outlook.com (52.135.131.26) by DB7PR04MB5114.eurprd04.prod.outlook.com (20.176.235.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.18; Wed, 30 Jan 2019 07:31:44 +0000 Received: from DB7PR04MB4252.eurprd04.prod.outlook.com ([fe80::579:53a:ce74:16d7]) by DB7PR04MB4252.eurprd04.prod.outlook.com ([fe80::579:53a:ce74:16d7%3]) with mapi id 15.20.1558.023; Wed, 30 Jan 2019 07:31:44 +0000 From: Vakul Garg To: "netdev@vger.kernel.org" CC: "borisp@mellanox.com" , "aviadye@mellanox.com" , "davejwatson@fb.com" , "davem@davemloft.net" , "doronrk@fb.com" , Vakul Garg Subject: [PATCH net-next] strparser: Return if socket does not have required number of bytes Thread-Topic: [PATCH net-next] strparser: Return if socket does not have required number of bytes Thread-Index: AQHUuG3ZD9Qv/lSOLEybfnxy0LoxGQ== Date: Wed, 30 Jan 2019 07:31:44 +0000 Message-ID: <20190130072933.23281-1-vakul.garg@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: PN1PR0101CA0023.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00:e::33) To DB7PR04MB4252.eurprd04.prod.outlook.com (2603:10a6:5:27::26) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vakul.garg@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.13.6 x-originating-ip: [92.120.1.70] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB7PR04MB5114;6:WYkBsG4nOqFw354Y8ajpra8S6TJSrRCMclCnlUeW/Bw+ZAMSCJdaiwR9AyoTqk8Z1tNor/yiqUGYE7+BiCeeIIFTPO0G1OAYQi+ZX5drUXxKSrB1bARKMXztmzH2xosrvvzAH+kKVDvh9R6iDrHrE2y2506qigC6lRD4pj9LUzJVnzvaqpF2zvbNHMGLqkW/GQBZJxTHEv5ZEIWIiI7DDuPHKEOImK8GvFOEC3lass3GI/g+uUFLLG3XkJY1mJsILSbXjpo+0HlusXsDR589HBRGI5zzhxDAtt9kz1ZJ79go++lJk8m3K+yXHOOAxUPt88F4sNMtUP58oxKplgpvlkfij7YH7zyS+omDPLk/uhNr8E+w0NAjYBpElbHEdJuEs4x4BOU+0lKiFetIYEK6bfNfHKU4HX/egwtYxEPILeAPu/jFGsDD+GbH/Ka3T4wqsn8KdGkz09JpYI/C2tnD/w==;5:pHhICCw9T0G174LhAHRrwaZps7MrqWDZauws4Tc0KKUBgNhIK9kVUvSR/e5NE2kr6H+y5PX5PHvxDNJsVErYAQwp9KffFZganUkBw3px+jJC0twcVgA5n9Te5NTFT+gs2n4s2QOGp7W8i21sVU4JNmqmh1hue8b/8CUHEq7FZUAUUD380OGBD8iZDRNJj0ylowHXXz3GL9+0qmYrzIRSag==;7:NrZSqjkAao+XsRAapSjkp19oeS7p2+ThcBcJAENTU46+fq3pHf6RMt984+IFfBnasKRLkjcAT0OOk4rcTUd/48Dekq6NR2zUYJaYuTfVcBj3kyB8eACaSplXyHiWKJs+x9P5bWNG99NLOMkOt7jlUQ== x-ms-office365-filtering-correlation-id: dded787f-5a1a-4367-1bc7-08d68684fbbe x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020);SRVR:DB7PR04MB5114; x-ms-traffictypediagnostic: DB7PR04MB5114: x-microsoft-antispam-prvs: x-forefront-prvs: 0933E9FD8D x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(136003)(346002)(366004)(376002)(396003)(189003)(199004)(316002)(6512007)(36756003)(71200400001)(97736004)(71190400001)(6436002)(478600001)(2351001)(486006)(86362001)(14454004)(5640700003)(476003)(2616005)(105586002)(14444005)(256004)(6486002)(1076003)(106356001)(44832011)(7736002)(81156014)(1730700003)(66066001)(8676002)(386003)(305945005)(8936002)(6506007)(25786009)(81166006)(6116002)(186003)(3846002)(4326008)(52116002)(6916009)(2501003)(53936002)(2906002)(68736007)(26005)(54906003)(50226002)(99286004)(102836004);DIR:OUT;SFP:1101;SCL:1;SRVR:DB7PR04MB5114;H:DB7PR04MB4252.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 3ZUeA9yvZG8fo9wBWwsZOj6aB1asEhjzcWuNEWb9ez0MqceTBiBRm50sdh/meFz+ZbjhogULP0ItE6Op/njVMzsOHCJBgjWjPJgfrIVusEF8TbErE8jRaZhKwt7i0oDtDiRanpS8zkYAhHSzE/0MeGmUeti0vKUTEtGaU8sPRbbC4+wxwjwymftRjNHB36k9oXSb3NIZec3UyUXkmm3jb+KskWt4N7bsELESzILGAUgBmSv2/ZJCZgDw8rfgoR8zYMRL6vRvZ6ztqwQBddWv9TkKahxzWIPBuFbWD0x1WAuneVUGniEjjoZZhHWa0gVP+9Vw/uwGhtyRiYUIANQjJP7kiHivS/TkpZJZsEND+ywR8gAhQq8STyYKlD6aFN5/TPOUT2dzpSfiAwxMoUtiGsuPfSoYhilG9H1qdXcdG3s= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: dded787f-5a1a-4367-1bc7-08d68684fbbe X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2019 07:31:42.2378 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5114 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Function strp_data_ready() should peek the associated socket to check whether it has the required number of bytes available before queueing work or initiating socket read via strp_read_sock(). This saves cpu cycles because strp_read_sock() is called only when required amount of data is available. Signed-off-by: Vakul Garg --- net/strparser/strparser.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/net/strparser/strparser.c b/net/strparser/strparser.c index da1a676860ca..38f8d8d8f4ad 100644 --- a/net/strparser/strparser.c +++ b/net/strparser/strparser.c @@ -384,6 +384,14 @@ void strp_data_ready(struct strparser *strp) if (unlikely(strp->stopped) || strp->paused) return; =20 + /* If the socket does not contain the number bytes required by + * stream parser context to proceed, return silently. + */ + if (strp->need_bytes) { + if (strp_peek_len(strp) < strp->need_bytes) + return; + } + /* This check is needed to synchronize with do_strp_work. * do_strp_work acquires a process lock (lock_sock) whereas * the lock held here is bh_lock_sock. The two locks can be @@ -396,11 +404,6 @@ void strp_data_ready(struct strparser *strp) return; } =20 - if (strp->need_bytes) { - if (strp_peek_len(strp) < strp->need_bytes) - return; - } - if (strp_read_sock(strp) =3D=3D -ENOMEM) queue_work(strp_wq, &strp->work); } --=20 2.13.6