From nobody Thu May 2 15:13:49 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2045.outbound.protection.outlook.com [40.107.20.45]) (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 2DFAB7C for ; Mon, 5 Dec 2022 12:35:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bHh+NOQ3PSLRGjbGFwJXIuT3b8GGAndbiQdNkupM01o6uJO6ZLXhF/1uNo1qLUqVCnMSXlbw+q8OG1FmIOp7+FXS/TWf/cu58jj3hVgYDx4xK2BsEYFsL8x3El2VCgtoSTCHXGsSVD8vTaAVYWRbr49g17+S6P4YWShEdxSnhFg/vh5hhMY7XdB1PYwHBl4lFBz95azN/voKgSBLIg9y7ynw2lzCkR+PUhZsexiiItvvFhQdc+3HyYDg6LdqCqnZLwpiN59BFHCEY4wCR9q1h8T6phQZ7bIBAVatAXLXkYH11dJWzEploFakk+u48XAvFP+0UXlgzawOOy916WwOyQ== 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=ogFG4MFh7lXBdFWDXL+0sahxRYESbSOk5d5DuEG54U0=; b=n1dS8rCoksCOOLwpBLpsOexxEiUdymdHl9FnahYdkuqr2hXx9Ij3RxFvZPGKTELZlQsjV+cye/t2WX72xRxKipCLIEbwKc4tgm6t56xxoAgfTosBaStCb/2TlWDXuslW80FeO4vHRE6sp6Aglqi75YXc1LCtOXWGQ8/FfyHm+5y8eIp+JkdzA461aQYYLzuYtMAj4CLGWFy80/lBMrU+ge7jetQB3/6t6y9hIp0CRtqHNQywn7uDgOOQW4NdQ5w/OfVQaVwTDn3PtOceLdxCyliLIW4Df5uoBrqgUTBsde0XRfznp+UajE6DDoDrr7E1vd78jOGjFq152NXJvx7HfQ== 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=ogFG4MFh7lXBdFWDXL+0sahxRYESbSOk5d5DuEG54U0=; b=KlV9TxiU53pmTwRV7X5OfYcOrLU2PHYH3JELKEBk7IXoF6XQmL9dt0dVXNrniyTQr1myIAb9tqlSkm4bXWQRQ5uVY0vqgeIq5TEKT1568UZmgf09BbR0I165KzzJJkSg9D/YRzUeYffl01Y/zXhe5FzlJyJztdpbii0wqozXM4Sfki8nt2NuFOhxDsQf7x2KH8WM52K0BJCwlcx39EiNDKN/tOcq20GJ80o0nsjTTJy2LweAX5vnRFMgHIAHaUhFVu7AduKuou+pOyAXRVxy5lZi1AuzDvvCp3Z1v1vayp4LgJtxlYTJSPTHkzUJCw9zwHaI5JmbXBFktspDbD6prg== 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 DBAPR04MB7224.eurprd04.prod.outlook.com (2603:10a6:10:1a8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.11; Mon, 5 Dec 2022 12:35:38 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b847:ffc7:deed:c700]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b847:ffc7:deed:c700%3]) with mapi id 15.20.5880.014; Mon, 5 Dec 2022 12:35:38 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 1/2] Squash to "mptcp: use get_send wrapper, v22" Date: Mon, 5 Dec 2022 20:35:21 +0800 Message-Id: <4b463a0bf0729201b6d61e26877f1fc4550b7585.1670243225.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0185.apcprd01.prod.exchangelabs.com (2603:1096:4:189::19) 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_|DBAPR04MB7224:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d6d54bc-a265-41be-b0d5-08dad6bd368d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: R90ZMMa/ClEy/ScLi/EztVApyfLhph5JI2lRXR+//IAZSp90w7Zawxxi+9ZfKxJULtomMd2yOfEgUDxAnSEOXuYjsrcGyWotwMD6zySQhQoQzts2nj+2dFraJ4oP970mYijm/vd9uEpAejE7MWhuvAcs5d33zgKGflBGKo1C4w/5700zERnqbJOa9iVmbI/H1d1U1MM2e7eOwGgU0bVOMmvSHvSjkjYqLG8EJHHJRaGt6ZyAwR/uvSmdVzlYjuMgqHAGvTWDUxAJwtv5HePBLZ2jGvVaorpK9aEn0lVNZqHj3MEpX30cY/hwJxrPVfT2TWoQoh6gpP31PbpzCFPnpKtdHBgiJIZJB4ZU3N6gtBmg2OD+l9ANfrZc2TYh1nMa3DF18J0lSXGtaZaOPztIVtPPA3EqpRLUEo9eZvuVtlgAWCw9bs2/FpLSkcYa5pfoOEIIUy3kZ7sEJeIAXjd/fpe7AMHYzz1c26UmiFHqHhYh5yV1UzgvXoCr/Cw6zlNnRXucjpRyhVq9fS0ZzVdkgpDozgNoDDoKKnWTbGM/6Lu1FL5lRNd2ZCLsxDmJtCxqElTLTbWIm0VxJn2Uc8lRalRW9vH+e2rPgdTYHD1jD/D0Kum/WKBMvFok7fKQ278/xX0HlJvh8K09zhfpb6hPSg== 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)(39850400004)(346002)(376002)(396003)(366004)(136003)(451199015)(107886003)(6486002)(66946007)(6666004)(66476007)(66556008)(8676002)(38100700002)(478600001)(26005)(6512007)(44832011)(2616005)(6506007)(186003)(41300700001)(6916009)(86362001)(83380400001)(4326008)(4744005)(36756003)(5660300002)(8936002)(316002)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/+d1VjnNpZ9AqOmVseVrgouOZDzJ8BJn/bgDBRIBRGWKggmJ40D1KHW8b1qC?= =?us-ascii?Q?VmcePubPpZC8tPjd8WWQNY/vCYm/C8jLDhFC1C3xzkTgwqQkllOgDDb3mVKm?= =?us-ascii?Q?7520In7colJZbefWWU/NNxyDtGy2SoyacnPefQV+8eCfV6VHT9c0P7IH0Ohv?= =?us-ascii?Q?KpJNhzC0hmaTXnmAHWl6mxU7NtMOtBscCNynmo4gyygSwfpKFN8Am+fLGHSq?= =?us-ascii?Q?XLGHB3s6cJB8dePEBe81i5PljACOhgSqxUMU4HoO2UaEfs9DjTaSTkTRvJVS?= =?us-ascii?Q?LokCn75/VH/4/mhXLSXkM/8Et6guu/s1a2wIPoZm1X9deVF/BRl6CITlLYeh?= =?us-ascii?Q?EZ9DEYGCuvC8J43zGE++jQVXICW68WH7lH476caq85PPrUhTIdK8C7v9/aY+?= =?us-ascii?Q?UZ21IEoDqBAtet7vZTgte5bFfIccuKPO3s9jzVUa37CNXHZ/8m6+fLw1OySL?= =?us-ascii?Q?AVYVQbJviDP+3PHqWTD1e9XG/xn8lSuFnY5Jr1jGksLDEBKHBdvPYwqxW9E3?= =?us-ascii?Q?ZnZx+FfzAvZhh+rk2a2fT4ljWYbptOffjwQSmzfWAWenU6uH6AeAsMYH1LOz?= =?us-ascii?Q?Hfjszb1UWH0FRaUtNNBVZyKNE5aRwJ08ZyNKztLm1kXTLY13V2AnPfTDvZek?= =?us-ascii?Q?kjfEVfXQfhmDAdGObXBGIcofJ2wFltuENfMmHoMUyGNdC12Omw8DV7CXXQW1?= =?us-ascii?Q?vWQZGNMNGtVNNffH8ZRmts/tsC7TBgqksNedKhGy0xIZlQWF0RCf4gSaSI2B?= =?us-ascii?Q?tGNDDwMkBL9TBQQLDHGeLXItmU4h+aE5cYN3fFLgHfxVNOgWEF28BJlJOXky?= =?us-ascii?Q?FFYdEkMLBt+3hFXYNDMwCTXG/cY1Ehh8TFsrPHZXdYmqeZe5HbpnVMFg0BWT?= =?us-ascii?Q?DuqY+R0VElnpzQlJq40okFIUf5iYe/NycXyfGkbmPwefficATEFw+uSFJZBj?= =?us-ascii?Q?diiKRFx9A1I0vAc3UhuqT950FksAroTe4o1OXFYiKfjYjKvbk75mJSTiZJVU?= =?us-ascii?Q?jEhnnmce+aSdh0S0T2sn5k8HwdwZLNDsNvI4hwSDoZKM1k07bptHx9LCs7ql?= =?us-ascii?Q?S5nPY1xjBe72tJmvt7VJct8pOJmfMaaCEsqQIXQBrbXkUFC3TyfS9HU3pP4B?= =?us-ascii?Q?R7un3iB4sW64I4WtmsDil2elmOd/1V5oBcGA0nJB0K7eDBxs6BJEAgvEQSbm?= =?us-ascii?Q?hGomlHEvygvVNdLe8EWic5ELkgv7Ueq+DZhEq5WErvPjEylEgiUECi9wF0go?= =?us-ascii?Q?IMtvOEoJPshyOP4gSqkJgIVcftJ5+RJwGxuKCMCa+TtWwkQ6VEiS8mTUVbx2?= =?us-ascii?Q?oMKULfcdAk4B6HLPFJw+eCEsG3A69T/Wi0Sary2j7MvXxb00/7zyROlrdprw?= =?us-ascii?Q?1glstbjnrGgIe4Ox+HNdr6AIysYA+4LovjvT9ZoeXDzQ5cg/+9qJhS6P+nVR?= =?us-ascii?Q?Q/9QFmiXziFOc0tTdKIMSeJMX1GYyPCMAdOQcvJ+hemhjKVmw2DjbkKkTBsc?= =?us-ascii?Q?57dSug/vQsgD3aoBi3rVsKYhVliNvjcTn5tZotEMLhV7u6MxD4kdFBIJVEl7?= =?us-ascii?Q?Y32rZWADdwIO2JFOPb8CI8FtCee6mffvB3ZKAjCE8r4IiH/NUGHef0jCz+qg?= =?us-ascii?Q?LQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d6d54bc-a265-41be-b0d5-08dad6bd368d X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2022 12:35:37.9702 (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: 4IiZMtiShfiDi/mj7aFfD274H0DjA6DHPH7TnSZN2rVsRTslItWAeBjZQ8alk1JbUMzvfCRLAOB0gvM5keEQzQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7224 Content-Type: text/plain; charset="utf-8" Cleanup. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 712b183fd80e..ea2e48a74772 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1565,7 +1565,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int ret =3D 0; =20 if (mptcp_sched_get_send(msk)) - break; + goto out; =20 push_count =3D 0; =20 @@ -1605,6 +1605,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) } } =20 +out: /* at this point we held the socket lock for the last subflow we used */ if (ssk) mptcp_push_release(ssk, &info); --=20 2.35.3 From nobody Thu May 2 15:13:49 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2065.outbound.protection.outlook.com [40.107.20.65]) (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 EB07E7C for ; Mon, 5 Dec 2022 12:35:45 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OzqPUsc9C4JKY80MtAMrFLfLbaGs00F0XuY1yKTK+N0uNbByjJnPYnCnmaOsEgPhqkQXdvTIYhg8QBR9D3RferiH1hr8h7O8yBIkCB/CaSTkO6vxCY3PonU3v5WkkWoAcAXNRzv1YOnzQen8fYLcfmVt4RUmpd0Ue0ijuunQXO8mYz20vmckOBBf+/M0IOtRb2++lmq0PJ9tnxGq4nmG2SWslMgD1UV1GpIfMBll3u3cLq1f8IAbUz+2/xA35jOjrz41VYoyV+pQ37w/ChPcqFtOgE276FhQWEGTXhhuyduZVMNFnmXqFjVY/rK4sIE3xVw8F81kVJx0VHl+IgOd7A== 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=wuWm9L60AYs4RMfPOjYA/rXRCbGjqgv3Bh8StkJ0tU8=; b=C5kOXsZ5qIzDYZCJ/iT4Uw0l+Qwg1JqneWBl9G804Y6sIryR7RgK8loV1v/Bprubq8/q3rEpjE3gfIzfKl+ZQXV/OkopTyYpVE51UB9tIw1yIrcUR7zM8S6mignE9ufbxK1MhU4za0eX48Un6TznEq5yHoO3kQuEFVnrro8XzYAu1Ou+sYjmdwTQvheyV51dzfkVP6puuH6OitLDVXkU0ZblqtodVKf1z1sC0AKbTjweg1LInABsnX+V4eS+qgueXpFpJqa/fjsVLzQyZ+SKOyW+5rWjRxRn+pC8i8ticoxiBFyV5awdBBwVppwqIX0p4tjINM5MRL0Odb6JA0zKaQ== 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=wuWm9L60AYs4RMfPOjYA/rXRCbGjqgv3Bh8StkJ0tU8=; b=Uaj1m1svihz8LjxVBlH8IrN0MYjamHojzQ8IvZAkDl7llETN3QSfRjG6gFT2qMdtDiEk24JkWlF5hSSDl3oA1zuEALRmEOGAKED0AF+mALr9JPj8Y+fDb2WvdXOEt4al4g0eK5NAX1YopdEg/BYwArXDJzS0Ve7NB51YWtz6zQ92ZdmpEltgoV+Ep4R599o742zJUQtyId1HKDGLkjJS3CeiP8i2vvA2/QiRp+14c6nYKR5R9q1ZmXAySniiEAWNAvOhSfRVZoII+aivitDZqyWGjv96fJ7AtxVieDLkkgkUBKDXgtjHWnJMjhCta1e2RyZ9DzV2Q4E2D8Nw2yMgzQ== 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 DBAPR04MB7224.eurprd04.prod.outlook.com (2603:10a6:10:1a8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.11; Mon, 5 Dec 2022 12:35:43 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b847:ffc7:deed:c700]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b847:ffc7:deed:c700%3]) with mapi id 15.20.5880.014; Mon, 5 Dec 2022 12:35:43 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 2/2] mptcp: retrans for redundant sends Date: Mon, 5 Dec 2022 20:35:22 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0185.apcprd01.prod.exchangelabs.com (2603:1096:4:189::19) 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_|DBAPR04MB7224:EE_ X-MS-Office365-Filtering-Correlation-Id: 21ba9df4-cd5d-4cf5-5537-08dad6bd39cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DerxQqEYtlwuAUHBqpx22xIibPcF6c9lLYUxuxZKt4GV5cX3D5ofFtnhvTmW7eclsQihX1+jXxTKijLAasza6BGKUxTd7Uk8sNqTi5yCbHCOCQbuRTXmhwAm2sXISCfi1/Q7HIJGNZFoNu1U9C6Dad39nQtpUJkweT43Wci2+0YyKWDBpFMcZB7Fy7W+mKULR/VArrAOIvmKbdWjRyGnNf8Rx2AmpnsUpsBbtHjAPdZDZ6qibtjDEEsXk/YujhMlGqXTKiQqQRyXG7Omkhb83GDCyAKR/csyxthxMGG3wVSvHNSGhIqDxocleKloqqQ6Hdxzc/SAMal/iUlabo4DTUlVNbOqQMb1G1yrr1itPrOY0B6NijjXA5m0wqNFzQvUgOA9ohls8aZ+K6R7moyVa2hGZHhwmHbxcipEoPwh1abk73EQ4gFNAsqAAJ0lAtG30GstcKOkpCZQq4I+JzIiqfYHad8w1RvjMY+cxTuD/Y6rkFdMY3z9hkqFFuzxoIH6Ycqj6epYsXDP0PWVZVPadMwk5LtgycJdINDyZNuV1CS7eu9m8Knql/rDzX/ld0mKcps8VNin06BUQh/i7ENO3i8dkjjnKp93+1QUpvzeUiBgWlL0K+2ETFiqfWqEynyH4L90gSG+1wHJXH8wFkeJKA== 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)(39850400004)(346002)(376002)(396003)(366004)(136003)(451199015)(107886003)(6486002)(66946007)(6666004)(66476007)(66556008)(8676002)(38100700002)(478600001)(26005)(6512007)(44832011)(2616005)(6506007)(186003)(41300700001)(6916009)(86362001)(83380400001)(4326008)(36756003)(5660300002)(8936002)(316002)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7X338lJ6+USWr3p0P5gY3xmrg44Pk0BN6N718yiMGVuq2GgDTRU8LbZPeyAn?= =?us-ascii?Q?OAmkdgCfdfJYnhhS9U0jzCuAJupxGIuXezqdWAQnlxQ5gTzP1ucn30jjeqn3?= =?us-ascii?Q?D0fD2+LNw+Jx2qoKdvF5MOjO0ogljRJv+sG0kzfZpvljh5fueMkeu4p7++m1?= =?us-ascii?Q?ExttdIZAGgAB53dc4U3m5N0CqigKMnKSgWJiLmqTYyC0orMqy2nRZQfObtTD?= =?us-ascii?Q?IQrgjDXpb3eHwxZbBJ1bZrTLwYk68OL5X5Fu5U4IKEgsgehHIySTuwwr5MJ0?= =?us-ascii?Q?a5HBt6NmdJRRC51Dxa0vplETIkPB2z1BfViJAVKWzXmbGNtxSOGQrade1nhE?= =?us-ascii?Q?MYoKNRDatOEE/KDqriahoLt1kzxhtseNHUs1Qle/Yx+f1i3GyK0FFSj0wzDH?= =?us-ascii?Q?59ZIiP97IR+pF6XyupmtiYoIx4VNBxM90Itf75fsb7EX4CH/JsfXDi5069ON?= =?us-ascii?Q?uCeA2aOxOJ4HoQN8BjWO4rZ7BR+Jj71ldPW2wSPhy4snOCv5g8gmCtBglYZ5?= =?us-ascii?Q?D3ZP5nJ7B12vKkVKnsaix2GO4PwV8TZ/9/MDa0c82Q+ONAR51JFWvnLIBIjB?= =?us-ascii?Q?dOkwCfd0M0Jt8I7hLiSuZPBx3+kpmlJmWOTPlWLdMqGsXO064F/T13js07E4?= =?us-ascii?Q?AyxAcCZgKkwZs28H/zWrjKAGJKBfrnLebTiswPoReetIoIkIW2VRrXjgyoqk?= =?us-ascii?Q?qG6lFzFJdjvDVtKTjcbookdv2EY2yQjiCh98V8t0ZWK1mRN76quwkoQ1RU2n?= =?us-ascii?Q?2JMD3PXQzk9OsaeX15k/OUq4i9274NnT+2vLAuo+z5cNazsHkPTccpXKux+a?= =?us-ascii?Q?GMKQS3K5LcLqI7BB3jDqsJDF7f9tIBHGfgoMUYIxrm2YCqp1Nk9kV69lL8XY?= =?us-ascii?Q?PFcWj5x9quzZA185arwLsVem53GMBTsLMytW/NcjDV1+8QNk2qOPgp6sOL4J?= =?us-ascii?Q?dFwqzgDMELxEFZ7moWEgD5+PEw6yPLCF+wwM8Zz+5U3Whfc6J/uw5yumb8MM?= =?us-ascii?Q?VJuWglA8I7uUls6pp42DHwM07E7rL8/iQMoIv9FhmBmlH+w7IUusxTf+/JiK?= =?us-ascii?Q?cJ4T1yYJY09tsC2KRUfqzXX5C237IPPS/Ly9IGn8TWHrvjl4Q6TDk+ZVQnT/?= =?us-ascii?Q?BM1MAhjtWlbFRXv90vG3ga8ustWFl7enqNTdjho4dMex84bhyRCXl1DrFrRR?= =?us-ascii?Q?In+2HAUO+Z3UweNV3MmxTsu4tGNhnOvf43zLTB1R61vS0svtnEBr6W4uSjK1?= =?us-ascii?Q?vzrIcwtY3Pu/hElXsypWpms0fVH1KgLf86/qekWDmA3iXSc0yTlVxNHi5R0C?= =?us-ascii?Q?VWrKSIbnplUP2jpA2OfJ3WhPMmh9uWj5moj8okwzjpfvVODB6o59w0JKWG6V?= =?us-ascii?Q?eyvJw+8DK5ke9ctewrbhGzlJsFHYkzx/Uk3s9qooAYBFAdSCLPhagFlbFEUS?= =?us-ascii?Q?Y6P3YoVxSddn+8nZcrX3jJZdRPoPDj8iN1yDx3CaXJ8XDnu1UlLRVg34QNgg?= =?us-ascii?Q?xAj/LjXEtl+s2Z2tBXgWUcfoi8dTaJer9W2RCMmArDwFIa84wjNMEi+x2wsV?= =?us-ascii?Q?aaLhNKaXD2eJBK8SRBNMesKq6el3jArxIGPTXO3UWrL2qa1eh8QtuQ3tZ1k/?= =?us-ascii?Q?BA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21ba9df4-cd5d-4cf5-5537-08dad6bd39cb X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2022 12:35:43.6105 (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: MxUWxyX871GPkPun+tIL6U8fTxJecRv+tncb1UuEN026/AumZaCYuOnfDF5NGbU8CUEXPNYQF4hxVRbGo6fOPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7224 Content-Type: text/plain; charset="utf-8" Redundant sends need to work more like the MPTCP retransmit code path. When the scheduler selects multiple subflows, the first subflow to send is a "normal" transmit, and any other subflows would act like a retransmit when accessing the dfrags. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 42 +++++++++++++++++++++++++++++++++++++++--- net/mptcp/protocol.h | 1 + 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index ea2e48a74772..545b29c0e01c 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -997,6 +997,8 @@ static void __mptcp_clean_una(struct sock *sk) break; =20 if (unlikely(dfrag =3D=3D msk->first_pending)) { + if (msk->retrans_redundant) + break; /* in recovery mode can see ack after the current snd head */ if (WARN_ON_ONCE(!msk->recovery)) break; @@ -1013,6 +1015,8 @@ static void __mptcp_clean_una(struct sock *sk) =20 /* prevent wrap around in recovery mode */ if (unlikely(delta > dfrag->already_sent)) { + if (msk->retrans_redundant) + goto out; if (WARN_ON_ONCE(!msk->recovery)) goto out; if (WARN_ON_ONCE(delta > dfrag->data_len)) @@ -1473,7 +1477,8 @@ struct sock *mptcp_subflow_get_send(struct mptcp_sock= *msk) =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); + if (info->mss_now) + tcp_push(ssk, 0, info->mss_now, tcp_sk(ssk)->nonagle, info->size_goal); release_sock(ssk); } =20 @@ -1555,14 +1560,19 @@ 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_subflow_context *subflow; + struct mptcp_data_frag *head =3D NULL; struct mptcp_sendmsg_info info =3D { .flags =3D flags, }; bool do_check_data_fin =3D false; int push_count =3D 1; =20 + head =3D mptcp_send_head(sk); + if (!head) + goto out; + while (mptcp_send_head(sk) && (push_count > 0)) { - int ret =3D 0; + int ret =3D 0, i =3D 0; =20 if (mptcp_sched_get_send(msk)) goto out; @@ -1571,6 +1581,14 @@ void __mptcp_push_pending(struct sock *sk, unsigned = int flags) =20 mptcp_for_each_subflow(msk, subflow) { if (READ_ONCE(subflow->scheduled)) { + if (i > 0) { + if (!test_and_set_bit(MPTCP_WORK_RTX, &msk->flags)) + mptcp_schedule_work(sk); + WRITE_ONCE(msk->first_pending, head); + msk->retrans_redundant =3D true; + goto out; + } + prev_ssk =3D ssk; ssk =3D mptcp_subflow_tcp_sock(subflow); =20 @@ -1598,6 +1616,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) push_count--; continue; } + i++; do_check_data_fin =3D true; msk->last_snd =3D ssk; mptcp_subflow_set_scheduled(subflow, false); @@ -1621,16 +1640,21 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk, bool { struct mptcp_sock *msk =3D mptcp_sk(sk); struct mptcp_subflow_context *subflow; + struct mptcp_data_frag *head =3D NULL; struct mptcp_sendmsg_info info =3D { .data_lock_held =3D true, }; bool push =3D true; int copied =3D 0; =20 + head =3D mptcp_send_head(sk); + if (!head) + goto out; + info.flags =3D 0; while (mptcp_send_head(sk) && push) { bool delegate =3D false; - int ret =3D 0; + int ret =3D 0, i =3D 0; =20 /* check for a different subflow usage only after * spooling the first chunk of data @@ -1652,6 +1676,14 @@ static void __mptcp_subflow_push_pending(struct sock= *sk, struct sock *ssk, bool if (READ_ONCE(subflow->scheduled)) { struct sock *xmit_ssk =3D mptcp_subflow_tcp_sock(subflow); =20 + if (i > 0) { + if (!test_and_set_bit(MPTCP_WORK_RTX, &msk->flags)) + mptcp_schedule_work(sk); + WRITE_ONCE(msk->first_pending, head); + msk->retrans_redundant =3D true; + goto out; + } + if (xmit_ssk !=3D ssk) { /* Only delegate to one subflow recently, * TODO: chain delegated calls for more subflows. @@ -1660,6 +1692,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk, bool goto out; mptcp_subflow_delegate(subflow, MPTCP_DELEGATE_SEND); + i++; msk->last_snd =3D ssk; mptcp_subflow_set_scheduled(subflow, false); delegate =3D true; @@ -1672,6 +1705,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk, bool push =3D false; continue; } + i++; copied +=3D ret; msk->last_snd =3D ssk; mptcp_subflow_set_scheduled(subflow, false); @@ -2593,6 +2627,7 @@ static void __mptcp_retrans(struct sock *sk) } } dfrag->already_sent =3D max(dfrag->already_sent, len); + msk->retrans_redundant =3D false; =20 reset_timer: mptcp_check_and_set_pending(sk); @@ -2724,6 +2759,7 @@ static int __mptcp_init_sock(struct sock *sk) WRITE_ONCE(msk->csum_enabled, mptcp_is_checksum_enabled(sock_net(sk))); WRITE_ONCE(msk->allow_infinite_fallback, true); msk->recovery =3D false; + msk->retrans_redundant =3D false; =20 mptcp_pm_data_init(msk); =20 diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index adfb758a842f..e6bebde2f3ab 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -290,6 +290,7 @@ struct mptcp_sock { bool use_64bit_ack; /* Set when we received a 64-bit DSN */ bool csum_enabled; bool allow_infinite_fallback; + bool retrans_redundant; u8 mpc_endpoint_id; u8 recvmsg_inq:1, cork:1, --=20 2.35.3