From nobody Wed Jun 26 17:42:04 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130085.outbound.protection.outlook.com [40.107.13.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17E13EA2 for ; Wed, 28 Sep 2022 09:47:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dwav3IW833T0Q+miYIq+kyNGkJw+IhN07nV9F6IGzI+Q72+ZVU6qtKOBo2P2bra8Hy5bM4JvuFvbLZ0lM1RWN2MnSgOL+R1D3WLpRLJ+ii7hTp/S9+Ue2KphSh2eMioeMJShFfU5ahAtlEQwFvAyL5Z9bf3J4ay0wjKDhQCxoIiTujf9KBQ7IgQCOXaSl2e+mALwGMN0sW/jTVqg+ZVAN4Yf77LGQMFZCsvwcoPguoH4LhEGPFecVvLLsgNxPul85BLQi6rZkQNwsDnfnnOx6aZZtXGfL4EMXNjoFsVpo5CHWEUu97WUlayrpwxv2dgMU222/+IrNxsn+SU1PWD+SQ== 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=9SMmhEwME6WeULjt7BkPB3jfR482LNdwK66n/ddcdFM=; b=GED/WaoyZ8VFngUFwYLHwVxD4HHJOZNfx2hg5wLg+qVRpEnHL3SrnhQkdI7+sONhA5AJzfxLfJUvaJMhIC5vUz49c85O+0g4E1iM/AhWtuiaqvWzp4Tjp3LZNVsr+XY3HAUx97q6gmgq7Sxi0NzYtAVjSHkDj/cFY2JNedu1lFeyYc9CbX9CWAkRP3EgxI1GECIA0LQrvycqNCLyqcycW3z/0ylldZiyYSjTvRumJScHejPPo7Hor75kqj7sRLZSzxbkjCYtKdlZ26WjU5m7if4kGSNDV/bZvdAeYgNUutsADiF5sy7RAAtgl6thJwk+ttidfLOjuetbtyCAzqpRog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9SMmhEwME6WeULjt7BkPB3jfR482LNdwK66n/ddcdFM=; b=4V+EkswN7mhusc+xjSmNWTBRyKi7Bm2QZtCvapMyNQdo2iBSl8jK4hiRurJezRQTJOcSekcyDoSwiVP5L6KTBJEs3zSSiOV/O1jHD3LHUW4k0pUdFMw0q90fRDHxw//b9k8F9Vu0/a2gIzW/JHadGyN3CJYpj+ornt+Swhew+XfGAGz/3OnI//8SZG4Sj9BOt6qdRmgF50iF74SHIJlvIjHbqrSQ7oO6L7WbltsIR5BiJbU0BoGuVAsgdnNv6ELri30n6GU4hkQZhrPTn59vyPAKrnVlmLhNin/eoGRkthlY5NVrGnq0QrBAy06aiUtnjPh9Fz9TeQYNQvdHAxozng== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Wed, 28 Sep 2022 09:47:37 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907%6]) with mapi id 15.20.5654.025; Wed, 28 Sep 2022 09:47:37 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 1/4] mptcp: update __mptcp_push_pending Date: Wed, 28 Sep 2022 17:48:03 +0800 Message-Id: <0b90e9ec304d919c833863e056f8e6c7b62d0dc2.1664358100.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SGBP274CA0003.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b0::15) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR0402MB3503:EE_|PA4PR04MB7502:EE_ X-MS-Office365-Filtering-Correlation-Id: cb594a39-890c-477f-27d0-08daa13679cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9YfBeFuQulNXxYj3M7eiAji1aJwwQExhhw+MhcjUAtFl1D4WcEK4i+58o2r0tfR8672zPWUJFiNBMzSrz1fRLDBPFBX0fmHz9wVHQjJKyI7Z9fYaya+b7BC1wILpWVCIxK2ibjQogUZ85pEmvfov0o9uxeTpqQLw49jMyyYRO1SA40UPVgbh1OC7uKffsBm1NZjj+8yLEYRclc69K/CAe+GwkSSK5JSITXLM5Xo8jd9Vrg5OgJ8bOwukb0uXGUYFd8LUzVRKdoAXVmqcjtVG1jBHgULyGzDIJKlmCVyfx65q4/g8Rw3xmDBn4X0FWjY+szzuYwsWsk00+7t4YOze96YA/qjsz25/AQvUSZT1uS1uctI4T4l9Dbq2OgDfZZUm/vGZOgdlE2lnnAS8O00p4fv1ZjTwlVtPbC8bCOquZ6QFhXRfvCMCRP/tk2gOTJvYjiascY6pNXKdJeObgUtVkwKBzvP48qfRDRqHy56CjdZNEr5/96XJRBKBxPsnJ2HTs5LGVUwaDkHKH2/Edl71pr7wmDJSXCJEkqnHsuqhMp96Vn7Pu1y1prTgEh00iHJZ/pj+kgh0YJUyIODB9h8joAxpbuHSMA1nWjMCAQEpKFjK0dClke4rZwDtyMtBuvqLQxokw3gqX+1g+vaBupIRkHFcESYiShUgWaIiAF/8mNj7pP0gH5r5vX25vanGhHCqT/7cUnG0F7F7nQ2S+B7Klg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(366004)(396003)(39860400002)(376002)(136003)(451199015)(26005)(6512007)(6506007)(38100700002)(8676002)(6916009)(66556008)(66946007)(66476007)(86362001)(316002)(36756003)(4326008)(478600001)(6666004)(107886003)(2616005)(186003)(15650500001)(8936002)(6486002)(44832011)(83380400001)(41300700001)(2906002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RztDDrmLy+Z5VCRiUSImdmYdo9mWxkYWtBlwi4Zg0kX0aAYAy8p0cM4Evg5g?= =?us-ascii?Q?PjNQBH71byClSe3bctoRHPqm4swwdrEh1sTfXM6q0mUHz7Tu/UnVvarY6bjE?= =?us-ascii?Q?Jk08FyiGzgZnn2a01G4/4ChhWoO2q5Vc8KcJTPGd7J1cqNhH68sZgWuAiH7g?= =?us-ascii?Q?VwJHXijqxwAM+mdZl8soj4nugUhjIneoyLMoHMjtNjB7ZRpodAOxrlCUMrrE?= =?us-ascii?Q?V8cdDLQ7F/iXjwPHhNjHsW7mwMePzpL4hbmrQ08adLzOEskxZy6anjE8Up4h?= =?us-ascii?Q?spxbB1MlKiYPe+FzANSig3zvz4cq/E2XvPrdObAQgK3iyRDh9h9AZSom9vlL?= =?us-ascii?Q?I02KPwy53EpUI/mMswfRFVMGButZDvnMk1Hl2w4IfVpJjJK6/ePwq3ZAY/Yg?= =?us-ascii?Q?cX0zjJ+Z1xdS1Otdce/rbNVwqlF7jpP5jRe12Fkkoq3mOm2AF+VUNdx5ysmP?= =?us-ascii?Q?AP3xRCgFVQnMP775GgnbekbpHXw8XyG83tRom13zrrBMlPa+6IL4m8jG3vMU?= =?us-ascii?Q?8uYy+Zy4WWFNJzMTBA3ufhziMms54HWxdw3AwZEzaPnh0duogY1CON/hMQyg?= =?us-ascii?Q?nbbHLUelfYG3fnnv1DsiU94EqtSEBwW57NL349O7NX1S7VyQd4+xAvGiTRdh?= =?us-ascii?Q?tEDyKsFs1rnsfbsC3Iwa0vTm9vFqAKBZkGZXPaxLJJAiCj2kPU6yvbPsKaRK?= =?us-ascii?Q?d6couxJDOWaUN4P4adYS/bbRPK4OVkcqGUZOsSMgxVrFTZEySXt03QuTWXRY?= =?us-ascii?Q?2b+ollFcvvnHDfB9o7uXFMYL17GfyWtfMIMFzF4nBHzhup+3IEySMK0URMhm?= =?us-ascii?Q?VfpbHLAk51N56ssKFeHItb2EleKYeixb/NB496s2FnvN50skGqmtE/ZT7XrP?= =?us-ascii?Q?bxl6eRItvCxrYL03IzYYqCNdtt1/DwS90uOTcIrgWBs7IZ2NxUF0rV9cRNNa?= =?us-ascii?Q?XMOriWnMF0uKuVbZy9HN+guqplgzJhdeiBfxpygrZK58kBI1OjPunuoFHHVb?= =?us-ascii?Q?QPaOtC256Yaj84cktqr62plUoPLeEGfyQ5ijjNdo27SkkAcyHblZl9ZrTL5O?= =?us-ascii?Q?3c4gL4gQEBQiw4ZqMcwd0t1jlJ3ZtB9Wx+WJqioPqmyj183s99xD0Q/Fw6kp?= =?us-ascii?Q?Yd+B1g9ETwMCGZDltNreHX5OsERkyrNHl+xg3NNAptt2yrhFvXNZRkcsWft1?= =?us-ascii?Q?72hXHNmJ7Ars+b2+9qfOOFJvRDP9/HxtsY2KEjcmen5/NmskyzJ6dFdxIUab?= =?us-ascii?Q?+X3zbdzqyrj4xsG6OeZnRV0IahGN+2fqtKyvUwtbz1DmboZxT3WVKkKtC19A?= =?us-ascii?Q?8mTcIz1NYST0aYyHwOnnSsmd9h1HHbJU4bhhTFebRbluVguJdMDyla3YME54?= =?us-ascii?Q?ymUFP46jO4EOGqKYJlPBtgXo7rMQW+eeMVY9BvWyc/7gu5rBuTpt/Yf7VNK+?= =?us-ascii?Q?ywNJPhHzlLGQvbKICZWLDaUPyqhfXIuM+HImhgDxxElaydoEUWjGdyoPjFvq?= =?us-ascii?Q?YEmbA8B/RNZ0Usam0UGHOVpYMdxbQh1zkDcqTiUfKet1SW8E0sgtIPycgsRH?= =?us-ascii?Q?VYl9Vme7iULeDX2PzVlbsI6gbH6kHfNJKQ1rU2n6?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb594a39-890c-477f-27d0-08daa13679cb X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2022 09:47:37.1571 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OyYYW9ZT7MtxPjnBmZbjN7N/4Bq6dSVHv1UE83ocgmbLQb4j3iN7oQVrKZfBiTmkv5YqDTPTeMXHvNQTq2KE7A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7502 Content-Type: text/plain; charset="utf-8" To support redundant package schedulers more easily, this patch moves the packet scheduler out of the dfrags loop in __mptcp_push_pending(), invoke mptcp_sched_get_send() only once. And update the socket locks correspondingly. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 7ca21915b3d1..fc972d56926e 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1530,15 +1530,24 @@ void mptcp_check_and_set_pending(struct sock *sk) =20 void __mptcp_push_pending(struct sock *sk, unsigned int flags) { - struct sock *prev_ssk =3D NULL, *ssk =3D NULL; struct mptcp_sock *msk =3D mptcp_sk(sk); struct mptcp_sendmsg_info info =3D { .flags =3D flags, }; bool do_check_data_fin =3D false; struct mptcp_data_frag *dfrag; + struct sock *ssk; int len; =20 + ssk =3D mptcp_sched_get_send(msk); + if (!ssk) + goto out; + + if (!mptcp_send_head(sk)) + goto out; + + lock_sock(ssk); + while ((dfrag =3D mptcp_send_head(sk))) { info.sent =3D dfrag->already_sent; info.limit =3D dfrag->data_len; @@ -1546,24 +1555,6 @@ void __mptcp_push_pending(struct sock *sk, unsigned = int flags) while (len > 0) { int ret =3D 0; =20 - prev_ssk =3D ssk; - ssk =3D mptcp_sched_get_send(msk); - - /* First check. If the ssk has changed since - * the last round, release prev_ssk - */ - if (ssk !=3D prev_ssk && prev_ssk) - mptcp_push_release(prev_ssk, &info); - if (!ssk) - goto out; - - /* Need to lock the new subflow only if different - * from the previous one, otherwise we are still - * helding the relevant lock - */ - if (ssk !=3D prev_ssk) - lock_sock(ssk); - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); if (ret <=3D 0) { if (ret =3D=3D -EAGAIN) @@ -1581,9 +1572,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } =20 - /* at this point we held the socket lock for the last subflow we used */ - if (ssk) - mptcp_push_release(ssk, &info); + mptcp_push_release(ssk, &info); =20 out: /* ensure the rtx timer is running */ --=20 2.35.3 From nobody Wed Jun 26 17:42:04 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130070.outbound.protection.outlook.com [40.107.13.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 290BFEA2 for ; Wed, 28 Sep 2022 09:47:46 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Gzd2cNTCUUFh3DeH8+UFq0JCE6ZspIABUsL5+H/xC5KV6miY3B1lbCeMXovq7WoOTp0xJbls+iHnojnGx4f+aIkLWRFIyR0iSn2POrhtoIUYS5bg2lI58NscZdLyyppVYvXzhZs0PeziaUWXfJDVf57yEObetebsLPBtBDPJep3sijCTzIOEC53/WmBhWsMG3E1xfiAgDB61d82aA2yumQxcf/6e3jNHIfMvqu3gqOO9IaKv9RJ1jw4f+DBWSq8wW/klBph4dVCGQSSLUFgQWFzaNSxYQOtnPVAti9Lh+1BHXNdu5o+tmScnhpzJ2hp777v9sNUTrlmzCtJGwvagBg== 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=OCkuO3Laf3lD8xSPXN54B6Us71k9k8EWkgrouJt1/VQ=; b=jc0g30AjWAknFyGIkE/Teil7pA57sMUxNYHOKdU4VD4C2fn8vM6yolyVolZ0piIWT6R882npHthK3ihzrKHM8+4+DyIFnXGuEoKB/BYy/f9nQYLijo/ku2x5CnOWKrDbrugOXbEluTMVi548SA01f+rAD/QuVlYc2gRWzVVHPuevhRCR3fOF3beN2sqFJOIuZuR7ZUU6lx3i8xuQWBvTa26D6tBZ/gXB6nPbnknv3DdU6JMELbeh9whf0CY934rbpcRD9KEItTEvhr9+RsP7lapix4s1g43AXiBY8FX6zRdofaLuoAFDnwZJPYORL1B4Eot1v7hgb+93MqPp3bHttw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OCkuO3Laf3lD8xSPXN54B6Us71k9k8EWkgrouJt1/VQ=; b=P+rMH9C6scA0jgtK/S3MzWHf+fdPKRwUlWUvZl6knECUZv19irS6M0o1w56CLtIx9WTJdUgCCKo5EjlscIWUyWoZJ79eyY+ahBhWIsXRk+DuVaBMAUEHH87lVcoLq1QELeE3hecCeOdcw5QXUPPES8tkoRF8RBlUEwDGKVpcCJGbDRxJqChPhKDJ9lvBH3hgo8W+YMgVnpLZ0A5sop0n/TWUcwApzpe0XmaOkuWyy03FVT2OZBISmkgJ98uSI8ZrvwN0EilViJiuiczq22p6rZ0mrj1UC2a9uJEWlz60CZTCi/YS3M6Oqln1rW8A72ihncpEZORvhCOtudZdDKWx7Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Wed, 28 Sep 2022 09:47:43 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907%6]) with mapi id 15.20.5654.025; Wed, 28 Sep 2022 09:47:43 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 2/4] mptcp: add do_push_pending helper Date: Wed, 28 Sep 2022 17:48:04 +0800 Message-Id: <7966e127ebfcb2feff439464845d9608861f8eec.1664358100.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0009.apcprd01.prod.exchangelabs.com (2603:1096:4:191::18) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR0402MB3503:EE_|PA4PR04MB7502:EE_ X-MS-Office365-Filtering-Correlation-Id: bf464105-bd6e-4f5b-4be5-08daa1367dad X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eiI+i0+edBVpBsMV1dztMpEJynE2K7UZYKgWCYuJC4ASTHY30SF1zDaJEeZYSr/u/PZSqifYMKnKvWPDx96IWiWrLzZ9UJxMGt5eyClbLhVmT3cUzKgQcln1hTjZ9FJU2UuzKoixtREnK9kuRULVa2iuiQ08CQYTRgRrr7uPWDzDmquZ8Puf4ejLowpiom4P5rJdP3DcLehV0MsoT8J3oma5HnNaummEWgem1rTuUKUFePs4b4tbVlU5BEJ7bO3OlHcks659wcE4383Vv2vPT+4s6ubao02Ke4zQ2ZuiLEUn13PlrNrXtJcmjlBWPTtCxJTBWmGuGPWMm9hEb8A6pFtF3AJ7mEhvWpaXP6Bf3Ixiqr62UsnPBd/uzMENmsni4vn3kNR0zsq1dKtpvEzu/YCAhxlSprYaCzr+JPUNSjpDgNOXYkC7XbHUY5XUI/xuyRo/6rFb4RyXjdefhyIxZAdRwsifRv22xkRclkba8xbIoslJeBzqtPHiuiZakxW+e4Y8/lFHoflGP+pR1X3899AoV3OUvajW2Vd9jnI8Etza9s3w+eFrUSH5YayvQt02XTOGHjvxoTvNdrO0BCTo+mu2pWnKM6Ljhre1X+OFjHHn7Tge6P9s51DUwmBpT+eOdXMWCiieG8JC2tlr/CO3aZsFWEzaO2IwutM2FKxvWsgX6xMkCdRImP7AH4vQwEBTvScZ6t3DUXkv3Aicxq+kMQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(366004)(396003)(39860400002)(376002)(136003)(451199015)(26005)(6512007)(6506007)(38100700002)(8676002)(6916009)(66556008)(66946007)(66476007)(86362001)(316002)(36756003)(4326008)(478600001)(6666004)(107886003)(2616005)(186003)(8936002)(6486002)(44832011)(83380400001)(41300700001)(2906002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0VzHZtGAqaKNdO1d0TFqyR31MtxXimcmcY5xJEmnF2OBEuxJkGGkH00+urCc?= =?us-ascii?Q?sgK3xi589RPGEEtTpDNeHwME/FD27P5wUbWMWI8St2IMCKa1/2+3X4WgIchu?= =?us-ascii?Q?sNu942Vu6XrAKqRIJGwF3+Pv+w5DOeHaWgYsjjenxTrAXqG7SFlp9df/9Bfm?= =?us-ascii?Q?hc6aT+HEcCZ/XFAwWqlk+E7VawvF2Gn4FvsQBIVgiE1njd/upKhiSjPcUefq?= =?us-ascii?Q?kRLaHm6dXfI0GZFRYf29DFlK6baYiVv6m4zV/fi3/KQiyJM4CdfK1DkOJcXh?= =?us-ascii?Q?UfuxU23LtYDWhi0PyZ1Rc3AFMd9AcS1i1lvj9g6v3HdQD/ivli0rGWJzFkGu?= =?us-ascii?Q?IeUP1WhT7aW1hBf0ogTXDUAikYt1oTaF0knwCQiKHgUCFlbhh7+vr17588qF?= =?us-ascii?Q?HSu77XySIbcH2bz7SBNNuOd6Qtjf6vFNUnPNF3ght2dEPqeddTJqV5x3fKvu?= =?us-ascii?Q?Lf2Ay/ekkyiEq8b2fqJIsL1KuDUS/Kft8L2EzW4+UtY1eUFwYPL/DZUs83DF?= =?us-ascii?Q?3p9Qyn1tDB1wxBXKdXHiFlyvxF0ip99vN4bkcTiO+k7JngcQNv40QAAPn6P0?= =?us-ascii?Q?9EiAUwvLDEyF+NXcAluYcd0omqKq7zuB0j32XhaL+fE32vMq7Q/u4YBvAJLB?= =?us-ascii?Q?Tgsd55IEUp1mzZ3rD5mdmRVHO/uwUaPl5kMeY+Ln6llGvbphB1EzG7BImR2E?= =?us-ascii?Q?wZ+jPgQSva5Ucc5LRwi1YYoFksXGX60A3FkMG40+CvH3ny2x1IoSisEMbfZu?= =?us-ascii?Q?GVAcUjft/gpTyAgWkqqIekv01b/fn0ZkImclbHGUEnXWBRsuYNBO8qg4xx3a?= =?us-ascii?Q?wFcRe9EfWdzDUjzimI+WIqokoILuGwcEsUVkEPzeRp5Eo4hb55YymYWUxdtq?= =?us-ascii?Q?GABkiNu5Y6ixmaHef0QldaGDlyrlJ+qtLsQdSRp8IaodYxzcvHgzD9VK7Vt9?= =?us-ascii?Q?fWBY6vrEh4M4HEXuHOzLzcCB7OVJJg1qQX7tjgHO3M1AaJFkPx+/0DsfetVF?= =?us-ascii?Q?UgfCgU7MJ5s03CxvlJcEsJPYVP+f2BdTBshd+rmEDvmfkC1iOd/wI6EaCA0f?= =?us-ascii?Q?Qyl75KTj/UYQ9FGFCuNRz6FbRyt8lWnKWJrzjxpizU7ipKS4w5TAC9Shuatu?= =?us-ascii?Q?aDyNSophlLa7CsoSowrlQQcOYnGs3Yg3avwhm0WjNXGq3p5d09Hi01I8sGq8?= =?us-ascii?Q?aTtOGxrFHbgju1i/2UFnyRQiA1GpKoz01x4ZYYr4R8Ry+z9+SV803rHX5ZWr?= =?us-ascii?Q?4ZdKoWVPkE/8xykdaU/1m4jVgMY4u2awqHk7HdEztaOCVBKUsDtuJo/JLznW?= =?us-ascii?Q?KCSg5si6lcJ/v9Dd9agPk6GOVsiv50f8014Qt5l/8gZ7AoNO03PQQ0UZxQMv?= =?us-ascii?Q?EWK78a5gmIOfKZ/YjoBJ44HG55fn+TQtvw8TmYlLOsiCQ0FEvgDNLmx4Ck9x?= =?us-ascii?Q?270Mu+UdNionvJTVgpAJ8A6auMeOS1hGySpqFM53x3a4QtOdcOYjj53uRJqC?= =?us-ascii?Q?NDlk0gByJ+D0qGoA3D38ds19bD8z5NSmWFRzRSX2tjht3hBc3fI1xQnB6EMD?= =?us-ascii?Q?/vtUsWFhNPIm/LJKK4Qe97itjuU4h7pcjv2qgLMk?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf464105-bd6e-4f5b-4be5-08daa1367dad X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2022 09:47:43.6723 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TuSmUxSj6DNL61Wvk6wApK0JTz8QIkqsjM3QqAGIsFGFMylQZABvJarTy444kcBUB5mANXUZgOjvfn1S1lgqTA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7502 Content-Type: text/plain; charset="utf-8" This patch moves the duplicate code from __mptcp_push_pending() and __mptcp_subflow_push_pending() into a new helper function, named __do_push_pending(). And simplify __mptcp_push_pending() by invoking this helper. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 65 ++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index fc972d56926e..6a20a000622f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1491,12 +1491,6 @@ struct sock *mptcp_subflow_get_send(struct mptcp_soc= k *msk) return ssk; } =20 -static void mptcp_push_release(struct sock *ssk, struct mptcp_sendmsg_info= *info) -{ - tcp_push(ssk, 0, info->mss_now, tcp_sk(ssk)->nonagle, info->size_goal); - release_sock(ssk); -} - static void mptcp_update_post_push(struct mptcp_sock *msk, struct mptcp_data_frag *dfrag, u32 sent) @@ -1528,43 +1522,29 @@ void mptcp_check_and_set_pending(struct sock *sk) mptcp_sk(sk)->push_pending |=3D BIT(MPTCP_PUSH_PENDING); } =20 -void __mptcp_push_pending(struct sock *sk, unsigned int flags) +static int __do_push_pending(struct sock *sk, struct sock *ssk, + struct mptcp_sendmsg_info *info) { struct mptcp_sock *msk =3D mptcp_sk(sk); - struct mptcp_sendmsg_info info =3D { - .flags =3D flags, - }; - bool do_check_data_fin =3D false; struct mptcp_data_frag *dfrag; - struct sock *ssk; - int len; - - ssk =3D mptcp_sched_get_send(msk); - if (!ssk) - goto out; - - if (!mptcp_send_head(sk)) - goto out; - - lock_sock(ssk); + int len, copied =3D 0; =20 while ((dfrag =3D mptcp_send_head(sk))) { - info.sent =3D dfrag->already_sent; - info.limit =3D dfrag->data_len; + info->sent =3D dfrag->already_sent; + info->limit =3D dfrag->data_len; len =3D dfrag->data_len - dfrag->already_sent; while (len > 0) { int ret =3D 0; =20 - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, info); if (ret <=3D 0) { if (ret =3D=3D -EAGAIN) continue; - mptcp_push_release(ssk, &info); goto out; } =20 - do_check_data_fin =3D true; - info.sent +=3D ret; + info->sent +=3D ret; + copied +=3D ret; len -=3D ret; =20 mptcp_update_post_push(msk, dfrag, ret); @@ -1572,7 +1552,34 @@ void __mptcp_push_pending(struct sock *sk, unsigned = int flags) WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } =20 - mptcp_push_release(ssk, &info); +out: + if (copied) { + tcp_push(ssk, 0, info->mss_now, tcp_sk(ssk)->nonagle, + info->size_goal); + } + + return copied; +} + +void __mptcp_push_pending(struct sock *sk, unsigned int flags) +{ + struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_sendmsg_info info =3D { + .flags =3D flags, + }; + int do_check_data_fin =3D 0; + struct sock *ssk; + + ssk =3D mptcp_sched_get_send(msk); + if (!ssk) + goto out; + + if (!mptcp_send_head(sk)) + goto out; + + lock_sock(ssk); + do_check_data_fin =3D __do_push_pending(sk, ssk, &info); + release_sock(ssk); =20 out: /* ensure the rtx timer is running */ --=20 2.35.3 From nobody Wed Jun 26 17:42:04 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130049.outbound.protection.outlook.com [40.107.13.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FA1EEA2 for ; Wed, 28 Sep 2022 09:47:53 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gLPLoiVsUvP/Lmnx+4qraHhzYkxkDJBYWzfgfSiY5eXiNPdM1GupszwEf9DRH/8psApqlQCNWmYWuRZNfy3kcy88ShVHtmqzdj1RDiHSqufeLzeDSXn2SZEkbAoHSUqFJSpmkoEevavXKIX3ONXxB7MDUe2LbWOmyC2r9uSS6bahlg86P5/vdiYHuD5XypgqJ/IyQqmkdeKp5sKzyBOu1ttenx8tfJWeYfnDhfZiTNzHx5q0C/BPYBt4qGGSuL3Kl06tEYmjfKkoU56kSXGFJDi5roiip8a8h1f+MQt7AGhyEe6Q+H5nstzrPdbXjvKWPtdBtCkmiC9y0aQePNyOzg== 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=6Fg3YRfwPbPrHkyygRHCfJokZihsWmBXcwj4I+gr+/M=; b=g13HAPiQ9gr4xP++46mS3ZBLGyInk6Ng9Ifr/cOMJVh+JbK7DbCsrMhnR660uUmEWZIh12IWwXXfvR+j8Uu4JzDynIeZhXSvfWgQxSmuyX8MMIcLv7Bg7+0Zpq2VwxHCZyPDmKu3oot6rDwviZO56f/t1Gm7vB+pCJJ4PwHe7ztbbyheiDQGoFQqr0sUL92z0E4bVBJW/jcFyR+IqeySnEHnaAI9+M576zPwq9KsIuVWxIEsR3rCljGJ3WOHZq74e4VG7785XiAMvPGGyEaATPnBnbJRp9/DN0HNC8ISN07pQRFxBrokCj/TVjNEFQTkDnm5J53q7QSi5XtiTyMzcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6Fg3YRfwPbPrHkyygRHCfJokZihsWmBXcwj4I+gr+/M=; b=SoLVb9ARHbSWyDGvfz99DRAywVJjtgZsMHJDxmK4LQE0l2t7naejOakIZdtzuzmn1RU+jos5MbLTKag8qpABNuvuAUYNbJXWLQLotN+yi+tdhMyYtPlX9wptTS95KVDQ7PyAJgn2O93IonPIbhmsAkxykCMo8ZK3KpWXL7Xc8XydltUBMXkGxMW/YytneWWv4LLVpAH/bHLKsuTdbQBKyXg2riGYOdUQFtD4twDOSo66cifwHHFUcyQ3TfZaU2bMh3fJH4ldOKZ6S0O856cny0fMRoUi50r7CIACp4dU5a5N8kJfSSW8Kqhpx+AafgXphGj4oMBDDOTyCF1zw8xq8A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Wed, 28 Sep 2022 09:47:50 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907%6]) with mapi id 15.20.5654.025; Wed, 28 Sep 2022 09:47:50 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 3/4] mptcp: update __mptcp_subflow_push_pending Date: Wed, 28 Sep 2022 17:48:05 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0016.apcprd01.prod.exchangelabs.com (2603:1096:4:191::20) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR0402MB3503:EE_|PA4PR04MB7502:EE_ X-MS-Office365-Filtering-Correlation-Id: 89f94768-f4f9-42d5-599a-08daa13681ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dH3VjOwPPJ1z+fYYS6CCBbk8G/B6MxaN6/aG/mxuTnIR+SAl1RgyyX3IeNhwcpjb2J2SiaWzDn9BR7xm7xPlqnDQu2wsmfRKjODH0di2saRk9QZtPMhmbnf6VXeb2vkNmNtQWYh5JwNJryC7cuFocThYel/AIsMDIdaBPaNeHlbndYIHKtIk+NxY/9Bp9cm22XWgiwb8wVSMrd6I8QsRIs51qJ8JVJ9nN/ELhPAtuWQHRrT1dBD53thaEImBNM2QfR1P+4qCZGLyjkb6R2vyM+w+1gRKRy7NuyRxj1JutuUruyqYq4a531kzp5x+QIjSvuNAVsT9cmBakPCNbc7ZluhBdotRqLB4pvBSDSn424Xlx5JLFi1GXNMpITUuclCZ4495lcJRZxBuyD6ST77wjUI7Y8b1bkxV0ltW2X6Csddq9iBUUh9BlLD55XwHbs4cuwrdk2dMzJpfAfA3DjNZ0Qk2ApjnuL1QTogaXrxLThZXNIVyiUhzb91nsikQcUbCn8Mi8yZs1xQxhTNpC0FPSiXlKScKOVJwiVKJcb0wPeUTh16R85FhAEGXbfttX8Xin/1xdjjTcJV87VU5CHM/h06RgKmhhKeDtzBx6owK4ryx/2Vqoh5JuYjq0vxGFsPP2F36lYildsWQcZ1FnijXCIG3NP3vacN34j7PHwuEeEgzO27UNF/iOSAfTaj2EOfrhNIjPvszCHrJBTGqiaH0IA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(366004)(396003)(39860400002)(376002)(136003)(451199015)(26005)(6512007)(6506007)(38100700002)(8676002)(6916009)(66556008)(66946007)(66476007)(86362001)(316002)(36756003)(4326008)(478600001)(6666004)(107886003)(2616005)(186003)(8936002)(6486002)(44832011)(83380400001)(41300700001)(2906002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LMfBCK7+yfs3uFQhVxDySQUzoWUn6FEbTtDILGoaCl3OkMcyscxYmxJ8m6OK?= =?us-ascii?Q?2F0L3Z9Bz/ZGdIwFgeQ8HljuyFqP61LZXoORFzBFkyCjB80/9OnTBnsj5a4O?= =?us-ascii?Q?sM1ulCJpk1LGmvRsTA+T8igAFgREjjPpHd9vjjErCahaUmVZ1QvLLBTDgyhR?= =?us-ascii?Q?8/XvD4cYOFIFhrrSmqEYuf9HJIDBiFTvfs+L4QLgwZj++8U6gRTP0kwUNnVj?= =?us-ascii?Q?wDln6trZKtG7PIzjDIWkTd3hTFTPGQtJCSMJBZU/DNKC3idklSh2Ycr+ZA4F?= =?us-ascii?Q?dDXYPAqgONb6IYUoo8tbHqNnBT37HB5zP6zaYx04iTcVfNr0gr2+k9tq678Q?= =?us-ascii?Q?0rMctI+1yFdzcWva3+Bil49REMUX4zFOPNW4zQYGP6NkKsN853wRwi3sEtdE?= =?us-ascii?Q?UqZl3+RIXrjvxOAnhuv7twK1tkLfY0raGC8oQtDpDqeRWgzZDRwzx1suykHO?= =?us-ascii?Q?nHpvOqvq7ctE5XKljnddBNXsxelA7BLL/D0frFrWP/ZWcLuOTeeP83qPHP5i?= =?us-ascii?Q?EeNor2Es2fjUf8uEQxrGtw9mxPcK4FO9vw/uZ2tJDQVtUj5XuVbMLACLnk0r?= =?us-ascii?Q?wJqpWWO8x23dOGlN+PGDQxG3vKwTatimWVwVwn0ahFybpjI7Lz2dambXJRbO?= =?us-ascii?Q?sV/MLx2hodY56PofLrGjylOsNCsEdSAcWQzoOKZ/fPHka0XJ/cObjKaNngEx?= =?us-ascii?Q?YO12JEuXnUcR6seegJ1gaHYXGzA2MAlgQoDUaEGBXsk8CCBgXVQEh3H7TTpL?= =?us-ascii?Q?7QWdExB0S3FLfG3ZHKGIi99pvA0FEmZ4GZ6oSqmpY9kcOKx+2QpXutOkYYr7?= =?us-ascii?Q?z3G7vs8/huxPZi7eRiv+yUCBFVm05Eu1h+4v35u+X4DYb34y6h/yWBV7Omw3?= =?us-ascii?Q?QgfeRWpdGWAN2uzMWDfPeyeXmi7I0EukpfhCW12J2iPwQRbdF0jAdJFoYR/z?= =?us-ascii?Q?6a55CGLtIL1dFpk85QZlNFEO/vT+KmJeW6DKV0v/N0H3QlNo4N+UU1FWOCFq?= =?us-ascii?Q?lCzvvi+juxflrFEHJKb46o1x2eRbc++cdU9VUiYSklEubFh38OvAgvmiNzI+?= =?us-ascii?Q?VOzobp6BVZMQk+1B7OyamPUvtVsunzkuF8OxSpEc4gC94dRNV8DYYhf/oib9?= =?us-ascii?Q?FxaF6nm3k8okozvZh4rawpBIfbWv4UKgee8sFAI4urpMrYusEWkzYLrSpWgP?= =?us-ascii?Q?luDDbiYq2jlgwEmfk1JHNN4TWfIkyr8yaw3K3NsYortDWG4qlWe4wify71Ri?= =?us-ascii?Q?8+SeuufbynVWjDPbrH7RNhZTdL/LYeKuulqBD9WzJObm4K5CkebkVoq6B1h1?= =?us-ascii?Q?wE42fTRdk/RjUNehehN8lXpNYCg0fIaLcHjYIlF+WXvcrjlRiVn8M5dCl0k5?= =?us-ascii?Q?hrrENeZfO4Jkq3raR93DmLPh3As6PJ+Toy0gMfOZ4Q9S8bpsB/BZ1dLS6DVL?= =?us-ascii?Q?J8TqrQbcp4A61hZUn6yjKiV+JoRZQH8gT7WAUW39hLTHSFZh0FMerrBBU3FM?= =?us-ascii?Q?FTmGvK/gZq8fh+Na38BV1nmI2zJIxUQXEwRhBgcUWmiSjnIvzoL8C1i5mrDQ?= =?us-ascii?Q?pn/8KaBxSWSeaQTKUYMjjGR/NV5WCQ7loUs3mQ2h?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89f94768-f4f9-42d5-599a-08daa13681ba X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2022 09:47:50.5157 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: P/g4WZGsnnOFVPfk+a/0dXB9San/Saypn26Aip0QqAboB/VgZCwX2F1I/8AW+kgUNja01HXm7gpdIzqddgLDow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7502 Content-Type: text/plain; charset="utf-8" Move the packet scheduler out of the dfrags loop, invoke it only once in __mptcp_subflow_push_pending(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 6a20a000622f..550fc375a7a6 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1598,7 +1598,15 @@ static void __mptcp_subflow_push_pending(struct sock= *sk, struct sock *ssk) struct mptcp_data_frag *dfrag; struct sock *xmit_ssk; int len, copied =3D 0; - bool first =3D true; + + xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); + if (!xmit_ssk) + goto out; + if (xmit_ssk !=3D ssk) { + mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), + MPTCP_DELEGATE_SEND); + goto out; + } =20 info.flags =3D 0; while ((dfrag =3D mptcp_send_head(sk))) { @@ -1608,19 +1616,6 @@ static void __mptcp_subflow_push_pending(struct sock= *sk, struct sock *ssk) while (len > 0) { int ret =3D 0; =20 - /* the caller already invoked the packet scheduler, - * check for a different subflow usage only after - * spooling the first chunk of data - */ - xmit_ssk =3D first ? ssk : mptcp_sched_get_send(mptcp_sk(sk)); - if (!xmit_ssk) - goto out; - if (xmit_ssk !=3D ssk) { - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), - MPTCP_DELEGATE_SEND); - goto out; - } - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); if (ret <=3D 0) goto out; @@ -1628,7 +1623,6 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) info.sent +=3D ret; copied +=3D ret; len -=3D ret; - first =3D false; =20 mptcp_update_post_push(msk, dfrag, ret); } @@ -3191,16 +3185,10 @@ void __mptcp_check_push(struct sock *sk, struct soc= k *ssk) if (!mptcp_send_head(sk)) return; =20 - if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); - - if (xmit_ssk =3D=3D ssk) - __mptcp_subflow_push_pending(sk, ssk); - else if (xmit_ssk) - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), MPTCP_DELEGATE_SEND= ); - } else { + if (!sock_owned_by_user(sk)) + __mptcp_subflow_push_pending(sk, ssk); + else __set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->cb_flags); - } } =20 #define MPTCP_FLAGS_PROCESS_CTX_NEED (BIT(MPTCP_PUSH_PENDING) | \ --=20 2.35.3 From nobody Wed Jun 26 17:42:04 2024 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60043.outbound.protection.outlook.com [40.107.6.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 166ACEA2 for ; Wed, 28 Sep 2022 09:48:01 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ob/phC29O+ESriCKSx/JCSCr74IKPNdSzggz00rvTkKGxxer/ThBuNZq0j7egRXdi4luFe557IlV1Q+ZFux3iH3LAyaZz1q7d9vwZPr+eYITE3d+5mfUKQG+SVkmwtVq4Pha0krDi5sM1iYZIfo9YltVs2fxNGtCzTYRPEuMBFiaNxFJhv4EU+1PWunFCxsfNdteo+Xmc0UkJoOtO+VDSfLXGnP/wh1xhzqUgBRt7ITrSPV69OVH0zME7tZO550Ol9jwEdx+WR2MH+/9VDapmmL50DsikSX5ShZTjo22Apus35xz7/4fbJ21t6x2uEk+vrp8c3YoqJkvakdAR6sPiA== 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=GXjjtOFfr2J+ajRDOoV76WS8DUa0iEdQ35alSHyFAmQ=; b=G5oMH9NcSP0aqxapxTHxteuCsuObxajG/BdJzff318g11izLxARn/03aLbJkshK6SfUL/F3AIr5lmfXIorfNobQjenLDCz8e/jS3rDyMlO9+CBgFkomUBC5foIbtWVrRlxGARwGA4tcYoirnT+e2rh0IWvsW2fgQmnpAbGlUx4709dWjwfhwBre1TsZjeEKeYlSlYfG7SOpENEZxKZPvRJwiOJft04l6BS3Fpnz9Tlmis3TNDT2G7gJmC72lkh+2R3fYPBMJItfRkNrlfnFS3CRGU8go+6undlySgTHzRSY4TbZD1TJqnvPTaJTPEMZVMtqynA7py3fo66UOROWWCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GXjjtOFfr2J+ajRDOoV76WS8DUa0iEdQ35alSHyFAmQ=; b=E2dFr/jI35bMsfatoFXvj5coG8YzL86eXeOEYduFKc+hJmQK8YX1DlUqrTx60hR3jApEo3RT5/jm/s4whpAybW7LS5o5W5wfrJwebvoyc3UTk28yjcZZ/suqowZwmvhjXIaHACj7uB911HBNpFeIS57H6gToGvSnhopHHCgzGJJmA9+XtJknRfjYAAlNnlDqqBUFWPkIzNKWdMhCR8nUG18ZTf71GKLvOKWkDoBetGvvFb79nYyjk6Td5xaok0TLfdFyznvEMmx48ADLa9Gb8Pg0TjJVHMJk7cy9hQkhpn/LmdYxuVlr4nLU2Yp3ejOJ9H39pYOnZcuZFRV9wssOjg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Wed, 28 Sep 2022 09:47:59 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::247c:645d:3f4e:d907%6]) with mapi id 15.20.5654.025; Wed, 28 Sep 2022 09:47:58 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 4/4] mptcp: simplify __mptcp_subflow_push_pending Date: Wed, 28 Sep 2022 17:48:06 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0032.apcprd02.prod.outlook.com (2603:1096:4:195::12) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR0402MB3503:EE_|PA4PR04MB7502:EE_ X-MS-Office365-Filtering-Correlation-Id: 58f4474c-1201-4ac9-ba01-08daa13686c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nyOg1cf9IS0wbD1XSRskBwEZ5+B6M1fya9Dh89eIme02pCRf7jtqC/r+kdwKKPk2GXnM78uzLo2uSO1hLwFJ8ZgpOp+gJOq4/TA3h2ygiwN02XwooEaAwVCLMYtyP+H2hm9NpgDk9fmGKwVy5ytLLNjXeWJY1GtXxGcEzymnKSptzxmuugxYqnY0PCLb+vngmp9ucWGXwie33OCV5YS0vw3XZxFzB9wUlelCmfM47ygI93pIWDxVfKb6jhInVXOv98ykZ3Zzd7r3M7GlO/vFd6ueXUPvrzEAmX1sGwQ5UNsWV0kr2MfU4H4/ew+LUxYxqTlgd+uFc6atrDcYeP/su7piM8JLK615+67v4qDo40w/e6QoovvYjFrYG4bpLtqfASy0gM+cko+Y3JyZx/SBETy/Eg13oLGR4Xf5LlHnQDplysGdbYMMfHnqcGPU2ZUafixAJ+XgkEZbSW7VLf6l746mJB9HcYV39rk3L8AlBJk+zupfE9MHQQ7i2dEMg5DUj4ZrOgvlo496fGIL5DxwQ0ku0dN6fGpGGklf7LHlahKxv1NFK0GpSYcQbHmPVmc+hpgmiT1co0rcyhebTgfiejIxjim47i/TGhFxPkoWz6gRqQyi+0B2R8tmolBhN8VXolDXCuJaSC+XCZj75VDzdTawwgG3Ky+10tUpPuGTrhQL0zRVsqTLDVClNKH8dhqWus9EaH4gmLdhIhM/VfbFBw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(366004)(396003)(39860400002)(376002)(136003)(451199015)(26005)(6512007)(6506007)(38100700002)(8676002)(6916009)(66556008)(66946007)(66476007)(86362001)(316002)(36756003)(4326008)(478600001)(6666004)(107886003)(2616005)(186003)(8936002)(6486002)(44832011)(83380400001)(41300700001)(2906002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yrFk2vN4r6X7LF1G9x08QqXOrzHXUplpknjfLVPEW/HJtSBbowAU1Aq3R8A7?= =?us-ascii?Q?5+NIeQFjnUb69dyDEgYMhy1H6fH5jz6fQd/Kc6z8Ix2xk1tCfMDehzXGQyOA?= =?us-ascii?Q?uAYMEnvQroOeElNwLufeXxvBE0R3RR7KCjbL8tnybJGctJhAl6ogWafV7Z6Q?= =?us-ascii?Q?mrMXQnDSHUYLIJBnFJDKV2wJPFQdav8qvIh9pCnNj86XDEQiYmVCPf98miBp?= =?us-ascii?Q?jQEFcSnNT3wDbPlE4soDEXbF/z6XCfVmAaueDpPe1afHLquFSY5lPcAR8a6I?= =?us-ascii?Q?/44KA2PqYYmUT5qBmPtqWsLdu1HdU+1ZCI0wtqpZS84Lu90ByOU5MzFBb6I0?= =?us-ascii?Q?+ZdCODluAuP2qO5DY0EXYDpDk56IQIZVEzoEptZF9z5fbKxHk1qL3h5J9RYK?= =?us-ascii?Q?Y4OAqTm+Q9Hn3iBynDuWfAs1wF+IAh9LRwI7370Eg8PmQl55Hy6QsijAQZk8?= =?us-ascii?Q?+Ymc4Qed7TwBkBPQOfgl4RBe98Bdxy0hnuUAODllwt/sXBRqx/40CDK1VOY2?= =?us-ascii?Q?kS29qOqE0MS/25pqZx7A5w8REpXpSsUJAxko+6AQ71pOmVdfJMugX+Cbs4ye?= =?us-ascii?Q?gM9DG1j+X2aHhYX5tjW+80PtM69S09Bt75fQfQeRH4pZbH8wBDc7L84pElVj?= =?us-ascii?Q?uqGtwpcZwEZefKOzeJpRsSwJn4LUhhILhD6ZDPhCPBVcwAYPhRkCvG0eqzb8?= =?us-ascii?Q?4JJfrBwdrPfCS2PfPQTOIoanopxQuMqijWe3nE63QtFXooLJU3l8MSFxXaVD?= =?us-ascii?Q?oFzAgZqztcoBmrtiDApuERW/J7oHX6eUUNw1szi3AHGVX8RcSB7cLgIIRjZo?= =?us-ascii?Q?EGjqHHtpuMFrA7JKkrtZv9q+GEQ+uyln1dqJVuSKlloMXZB0R2A/zvKfMF4S?= =?us-ascii?Q?oc84VPiVwRPA9M1Vj5/6RTyzJFMzM2O/dclL1Z90DMsGwuMRp6BTar9hgFDH?= =?us-ascii?Q?WVLpU0emAVtIUnWEEt/WNGtdZU7VkyqIJKH0Ydh+Oi4jgpulQRr4DlQxTvgw?= =?us-ascii?Q?ezbgexXEeFJK7UIvQ5nvej5y7wPhkBTqthKQutrVUGFHA0KyRbBXLjk9tNFl?= =?us-ascii?Q?5Ztwje1ZDTSwqf4PUgJpvZbcshwO6Se+OyRh7TgDE/SNAuewNbeTEKGjC+1P?= =?us-ascii?Q?SUg9tedqO0Yh2NaMCCPmTl+Qw10NZvalpJgMAqe9sWNSA+ysF2LvF/9WeDUX?= =?us-ascii?Q?3co9f6IUERu/+jAqzDW+0wIhPx8922u4NjtYyCdM3MyTZldhFy9v9X22bHQM?= =?us-ascii?Q?OltNeQvQjM6EWrbnQL1KOSzuIDlai5Fc2+Hq9bw2DGlmCiMUv81HZ5RT/q85?= =?us-ascii?Q?Yaw55nYEimHWp3dwNUU+VWicPEInqHvz2rb3cu5fxwQKS7j6LbiPUa3Br4ct?= =?us-ascii?Q?hp5Q9FOqyQzbLO29YFLb0yhZVBfB1gvm6/cE7vvmPWJ7xcVF2AGZ2Q2J3KEc?= =?us-ascii?Q?mF+45XfAJBy5/uK94nTdvl9AdU7y4TTgyyk/RuFxcM2SyV7soc0ktfFwstUg?= =?us-ascii?Q?qjHwvnXlSE9w/VR96M79NGSvHgc36gZvUccjdDsLDMRVhxPgWCUqEnV4ppEV?= =?us-ascii?Q?Bt5mVNC5b0I81krwOtw8883xATYq/mTGiVjW7DWJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58f4474c-1201-4ac9-ba01-08daa13686c1 X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2022 09:47:58.8901 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bx9cDkPi4brC0a7FSd8tT9E/ciRp+vaBdpjPbNMWqdbNyUGXPnnHnPeaV2DF2Z9puHmm15wX2UHeorBqd7rvAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7502 Content-Type: text/plain; charset="utf-8" This patch simplifies __mptcp_subflow_push_pending() by invoking __do_push_pending() helper. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 550fc375a7a6..779794f42137 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1593,11 +1593,11 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk) { struct mptcp_sock *msk =3D mptcp_sk(sk); struct mptcp_sendmsg_info info =3D { + .flags =3D 0, .data_lock_held =3D true, }; - struct mptcp_data_frag *dfrag; struct sock *xmit_ssk; - int len, copied =3D 0; + int copied =3D 0; =20 xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); if (!xmit_ssk) @@ -1608,34 +1608,13 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk) goto out; } =20 - info.flags =3D 0; - while ((dfrag =3D mptcp_send_head(sk))) { - info.sent =3D dfrag->already_sent; - info.limit =3D dfrag->data_len; - len =3D dfrag->data_len - dfrag->already_sent; - while (len > 0) { - int ret =3D 0; - - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) - goto out; - - info.sent +=3D ret; - copied +=3D ret; - len -=3D ret; - - mptcp_update_post_push(msk, dfrag, ret); - } - WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); - } + copied =3D __do_push_pending(sk, ssk, &info); =20 out: /* __mptcp_alloc_tx_skb could have released some wmem and we are * not going to flush it via release_sock() */ if (copied) { - tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, - info.size_goal); if (!mptcp_timer_pending(sk)) mptcp_reset_timer(sk); =20 --=20 2.35.3