From nobody Mon May 6 06:27:13 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2056.outbound.protection.outlook.com [40.107.20.56]) (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 7668F2F3D for ; Tue, 11 Oct 2022 12:01:19 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f2d3eVEhhVmzw6mTinWLr+y/r/1hb3R9n1rZfpVdH8TtL5jfckDSjSt7eQd21Kg8KqIYk+ug2LK05FU8CJltaQ93z5/w3EgB6fvgGmyNVbcbqm6rDzyziaQV46dW2LOBqFNTkgG9/pScMzNM099BAmuDqQ8nmBt0TEaOYY2Qcn+rm4N0ZJRkQFjKTvdnfiW/xD/mf4PrsY36qQ/sJdpHPQq25yTQMalQypg8h5SVj8SJK4ifLxwUKgbABOJs9GuKEA86vG4XfoZOfMbn/g+cOMTJCFvl+Hh5rh3ckJY6+0pPFZ4itXtmMw6MmwDU1uUfdPDytShpbL5gy3lI2fhQzA== 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=CxQh1Yb/jTl6VKmqplPmD4ZR07La8WSewUrWkcN1jTE=; b=FOzXuyRVjbo2tnIC4brll8oPCudaETXI/Vx50K9zJF5nWPmkMlLVQGwhmfWaVejQuF9qG+s6gdjH+x2iFeRKCCvny/CLUlFvvRkslPoxC+r34fxFInw1Cf0MfYYN8DqWMWjwvKTY93PaNpmh7nwjC5bAvjYtQGroaP78QD2Faxguz8jVrw3tEY9UkXItNm3wh/rmiw9E+VkF453LTMterNpK9JMOkaYMZ7ElrwUlfxFprFsmsi3GKrrn3Q0iRWVf0FLbr9aFO3MqD27qmCcW4ZyZxZlwqy5h49i3vvy61kb9GGrTnnWncBkGtN8P9qrEXUObrlHKbdiZSC0Fg5nDyA== 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=CxQh1Yb/jTl6VKmqplPmD4ZR07La8WSewUrWkcN1jTE=; b=evSC9pBe4yNQJweWHS7e4xsvrZwW+RocanwkZ4KG0e5aieyBLVpU4C3tK20J22HN8fnUAsVuyCnTmxLNp9ohuQLCIhsrl7QDdT+BHIL1Jl43Q90lnDQyxhFP6puXDbFL7zGRzEUuHEvvffxtqv5f8w2qQskf5DScLlHk5ZzbxS8af+F2pNLgP3vLP+Dj5c4k0RG+herZzAxhAofNvQ3XiM7wgU2A0Oli1nzOpwrz7JlnqFka5WFYU/uxHGNSIl3qKOyyQC1iP1yY2xtXaMi9iq7z9sY8zO1oHrWNL/esyPmKSNjdtR+VQ+jpL2lJEH7YsoTaiwXLzSBipeVia4UnhQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by VI1PR04MB6928.eurprd04.prod.outlook.com (2603:10a6:803:12e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Tue, 11 Oct 2022 12:01:17 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:01:17 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 01/13] Squash to "mptcp: add get_subflow wrappers" Date: Tue, 11 Oct 2022 20:01:25 +0800 Message-Id: <20221011120137.5475-2-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0216.apcprd06.prod.outlook.com (2603:1096:4:68::24) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|VI1PR04MB6928:EE_ X-MS-Office365-Filtering-Correlation-Id: 86c24f5e-2eb6-4736-2b6b-08daab804d58 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NzVVjTMejMUkGJE2I9kZf9+9z74L1yyXxyHfzEugOaLIiCX2hPDuphfZ63sxN3dRYatqVT3vR+Ai6BosUefM7PGMHb5mBkDU6wa7leX5DFCi3jxqaoweUy9a26yVrbQ6tj71yChEOsIe6DZlOiqeismpQ3Ps4aMISYJTWRP2m5mxVV6PEzvRSlMQPkZgW3mkSs0BJhG4bHToDtHD2LnHx6rlPGN4I73dBHL4biQ0din44Y4UkJYrGknr1ZlCZ0/DbGX5oRhZ4HVOKsiectDQmOJMOj9URA37A5av8RNmVvtLpfSPrDQNVkrUwMTYtRl4zzEX7J4jXu0gluG3jiSSrtWbUDWIVY9kycq7gBc3p5emeZI6w1ta+Sd7mnKbyO2HyI4jMxGugbYuzO0eTgM4hEbr+R8MTDQ5RvIR/6+I1CKNrm02nrz6MpI6CAayycLAtoQKAAhFvJtRj0f6rtT2sRSA5IgZuMODXx+L0OvBRVD3Qd42/5cTQCNU4YGBvcQUkTbKD/xDD5z/6mWEvPj3QAF+NehvJ87Praxgfdv4m3Ps6lWeqwB3k0oInI98UMdebDwpyTaS9ugUT0NHvMhg7IRKBbmXmvHzFnZcEFCx3U4b/yVUlaDgaD7lCGmEdk6LWtGbECEe6XZGayaoSzcEZQiLbULjYhSopRzvyJkMaB9hVuhovAE7cim5mv8sYqQfgD+4Bue4s6Icqsnca9ZN8wXRT3SurK1K8Si053LsOkg72CHdNPsPfAHOMWkZUIoZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(366004)(396003)(39850400004)(376002)(346002)(451199015)(5660300002)(41300700001)(8936002)(2906002)(86362001)(44832011)(6666004)(6506007)(107886003)(2616005)(186003)(1076003)(26005)(83380400001)(6512007)(6916009)(66946007)(4326008)(8676002)(66476007)(66556008)(316002)(6486002)(38100700002)(478600001)(36756003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fshtty/046WH1ZBTlAVolm1HrIyVPXlOfrr5XH5Ah7UKjks7zXdlqdH87rSz?= =?us-ascii?Q?zVXj5IZUckZZdliTxi8VxAlY0OoONXK/JN4SeEeImRdW8j9ObwB3e1Nugl4n?= =?us-ascii?Q?eWviKKZvHIKZSx/+TTy2yWbvik6ZK0gJ4VB6dlLVYaM3uKAftwRuVHY3OkeC?= =?us-ascii?Q?ujfC8M3x6xQ2O36ID87yLO3VNz0OTeh7L6Y1RL15A310fBUwRdDMO2jRyFkg?= =?us-ascii?Q?TFaMfC8IM5bTEw1iUMlns2QYMvNtlj+97wyEY+jLKwo8/ulL0aZM4Fxt7TSO?= =?us-ascii?Q?ZCaQTKVNGs6oXputegA9xAkASoa4uK16b+RGC6U3KbounU+kzS7qUdBpDG2H?= =?us-ascii?Q?DnQlGOa6qnORbk6i9RNEj2HF/1whXwKIaKlon4ik2QpjOZP0qPcVjC/s285N?= =?us-ascii?Q?BtM91symYroDY7K5gn9Mbw3k1OZiJVmFtPMBAynLpj6Jwjwj3ugHRhTEVeCY?= =?us-ascii?Q?JNQE687k+cP/vesAsUR4aQuE1N1S98Hr9YBpQ1MeSYTFhTus9FmWB9sEeJv9?= =?us-ascii?Q?hc+XtR5rcCPAcOF0dj55tsSD4BgeyQ24tX8ClJHUghW3OiYYMW6TvSkkvA6t?= =?us-ascii?Q?XJLtPLZ/W4p5YalWN5yHT4uQ7oLkxeH7Cjviunc0J7+17zzwfEHCH0xv3/1t?= =?us-ascii?Q?wsE7cwrjVq1WQEKMqTDwPN76zfNhmllwAsBGmzqHJfDkCBXxa+o7H/2ibCAr?= =?us-ascii?Q?B6Bxx1cs9Mp1P5jFwYFqmONmmEQJhKeiNTt75mLMFQUPxYHxm71RFzw9+S4E?= =?us-ascii?Q?i+DzVad3SE6W7LoFu4+1VDSTB//UngRfGSCQpRZi4gE5Ry62RY4nLpW28Ffg?= =?us-ascii?Q?C/VlARB6+btFtvRcyQeK9SSNq69XatYYdSyL7aAGNn3czJMCTARsMDn3Smbh?= =?us-ascii?Q?wDMM3dAf5W1v1tQP3yLwUnRYJqD7EC7z1Vh9YTRw6ivFaAix7TiVxKpMskM0?= =?us-ascii?Q?kjePaKJV3b6GqwDgi/bBSY8uxs9a6F9vxXkMQXYlmLZBEE3OGYrwId5N3eNr?= =?us-ascii?Q?nbyM6go1Hszf5xn8Ma4JssFM8a3NDnGXP4UytqIeJ6h7Sbcz55FXGL2ZAGT1?= =?us-ascii?Q?GcTfl4IwJQcoRFDZcrZ2Bx7ndC1ZMlyqQEcwdoQeTP72cszzdgdVJfchHc/o?= =?us-ascii?Q?Tj2MV42pY77z4Y5SPRA3jWeVzJcUOKqEVvqXEPA4fqCF3NQehw0P/g+VKKSn?= =?us-ascii?Q?jUiLCF5hjOQfYFzdb+7M7RhtLdsKzRWj+UXKwE5jfKiHX+BAUWJLwCUn8stF?= =?us-ascii?Q?aGHfuiPFBDVyOhLUxCo+X7C2Wpy86EO18lgkFzwe1/DN8rSR3/DN8YJZ1pKh?= =?us-ascii?Q?OwKNOk0MSIbSigIQE+ndwM1WPDnt8ALX0u8LAbFFK04ff9l6PYFbeZiMoXme?= =?us-ascii?Q?wI4BgAWPhDVEoGw7m3dh7b191N5lXt4h6FIWQdbwr2nuc2MeXnJhaU1LEiVN?= =?us-ascii?Q?8nAnqn6cE0NQYe98YECnWhoGf+RoJgdNC3f8edc3r0tRoF4K0tvR/8eyGIKd?= =?us-ascii?Q?S6/600g9p6Vj7gt6EWhf7MrVDvL7y1Ts2P8F48xIGDy0Uf27L60nQzLlNjxD?= =?us-ascii?Q?vW0pzYLKBcjooJh+POmLg52mxumRGaWoOLXne4N3qv9b7Dor+2gA/IoeKl+K?= =?us-ascii?Q?IA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86c24f5e-2eb6-4736-2b6b-08daab804d58 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:01:17.0633 (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: 3hX6f+exIX09ZA66uUZAvsrRsY7sUZ8gpWy2Q+ghw3dovn8Cnb1XU3a7LCAlQ9IYklklCJMtrXNussSur7HVZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6928 Content-Type: text/plain; charset="utf-8" Please update the commit log: ''' This patch defines two new wrappers mptcp_sched_get_send() and mptcp_sched_get_retrans(), invoke get_subflow() of msk->sched in them. Set the subflow pointers array in struct mptcp_sched_data before invoking get_subflow(), then it can be used in get_subflow() in the BPF contexts. Check the subflow scheduled flags to test which subflow or subflows are picked by the scheduler. Move sock_owned_by_me() and the fallback check code from mptcp_subflow_get_send/retrans() into the wrappers. ''' Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 8 +++--- net/mptcp/protocol.h | 4 +-- net/mptcp/sched.c | 61 +++++++++++++++++++++----------------------- 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 1aa940928b4f..9a2253436f50 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1547,7 +1547,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int ret =3D 0; =20 prev_ssk =3D ssk; - ssk =3D mptcp_sched_get_send(msk); + ssk =3D mptcp_subflow_get_send(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1616,7 +1616,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) * 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)); + xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -2481,7 +2481,7 @@ static void __mptcp_retrans(struct sock *sk) mptcp_clean_una_wakeup(sk); =20 /* first check ssk: need to kick "stale" logic */ - ssk =3D mptcp_sched_get_retrans(msk); + ssk =3D mptcp_subflow_get_retrans(msk); dfrag =3D mptcp_rtx_head(sk); if (!dfrag) { if (mptcp_data_fin_enabled(msk)) { @@ -3199,7 +3199,7 @@ void __mptcp_check_push(struct sock *sk, struct sock = *ssk) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); + struct sock *xmit_ssk =3D mptcp_subflow_get_send(mptcp_sk(sk)); =20 if (xmit_ssk =3D=3D ssk) __mptcp_subflow_push_pending(sk, ssk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 18f866b1afda..d44c97bb41db 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -642,8 +642,8 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_c= ontext *subflow, bool scheduled); struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); struct sock *mptcp_subflow_get_retrans(struct mptcp_sock *msk); -struct sock *mptcp_sched_get_send(struct mptcp_sock *msk); -struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk); +int mptcp_sched_get_send(struct mptcp_sock *msk); +int mptcp_sched_get_retrans(struct mptcp_sock *msk); =20 static inline bool __tcp_can_send(const struct sock *ssk) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 044c5ec8bbfb..9b128714055a 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -114,67 +114,64 @@ static int mptcp_sched_data_init(struct mptcp_sock *m= sk, bool reinject, for (; i < MPTCP_SUBFLOWS_MAX; i++) data->contexts[i] =3D NULL; =20 + msk->snd_burst =3D 0; + return 0; } =20 -struct sock *mptcp_sched_get_send(struct mptcp_sock *msk) +int mptcp_sched_get_send(struct mptcp_sock *msk) { struct mptcp_sched_data data; struct sock *ssk =3D NULL; - int i; =20 - sock_owned_by_me((struct sock *)msk); + sock_owned_by_me((const struct sock *)msk); =20 /* the following check is moved out of mptcp_subflow_get_send */ if (__mptcp_check_fallback(msk)) { - if (!msk->first) - return NULL; - return __tcp_can_send(msk->first) && - sk_stream_memory_free(msk->first) ? msk->first : NULL; + if (msk->first && + __tcp_can_send(msk->first) && + sk_stream_memory_free(msk->first)) { + mptcp_subflow_set_scheduled(mptcp_subflow_ctx(msk->first), true); + return 0; + } + return -EINVAL; } =20 - if (!msk->sched) - return mptcp_subflow_get_send(msk); + if (!msk->sched) { + ssk =3D mptcp_subflow_get_send(msk); + if (!ssk) + return -EINVAL; + mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true); + return 0; + } =20 mptcp_sched_data_init(msk, false, &data); msk->sched->get_subflow(msk, &data); =20 - for (i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { - if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) { - ssk =3D data.contexts[i]->tcp_sock; - msk->last_snd =3D ssk; - break; - } - } - - return ssk; + return 0; } =20 -struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk) +int mptcp_sched_get_retrans(struct mptcp_sock *msk) { struct mptcp_sched_data data; struct sock *ssk =3D NULL; - int i; =20 sock_owned_by_me((const struct sock *)msk); =20 /* the following check is moved out of mptcp_subflow_get_retrans */ if (__mptcp_check_fallback(msk)) - return NULL; + return -EINVAL; =20 - if (!msk->sched) - return mptcp_subflow_get_retrans(msk); + if (!msk->sched) { + ssk =3D mptcp_subflow_get_retrans(msk); + if (!ssk) + return -EINVAL; + mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true); + return 0; + } =20 mptcp_sched_data_init(msk, true, &data); msk->sched->get_subflow(msk, &data); =20 - for (i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { - if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) { - ssk =3D data.contexts[i]->tcp_sock; - msk->last_snd =3D ssk; - break; - } - } - - return ssk; + return 0; } --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2073.outbound.protection.outlook.com [40.107.20.73]) (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 477473207 for ; Tue, 11 Oct 2022 12:01:26 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fvQX+AezlEXTGErSHRkbBzrZsR4Kx4ozHsqcrrihMYN37aKKqQyW0hwAmVgTbjfUJXtN3fUC3rmnDf3HQGgMD+KnBd4WPrnzKrc6npsWKb4M/9zrYX4rYImwdl8vPQ1sET81r40nQxfg/FgO7IH4L+P6H65G01Fvgs8a18qQIdbfroc1IaWG8XYF/PM/TefNcEIFPz0OBp0WIg/eL1dpyjwM6AxGWZuW1/XPljXzQU7V/9/hXR4q9+NGVvNQ6w1fMzmBXfLC6M+C6bs8SpgUg8ZWs02NLrFz5Rf4ukVkgHs29xTmmFF+6wUO+gyNaFly6lze/f/BOVZVyOUUg0ZDGQ== 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=wsOnjSqrgkbfkTE6pmyRUwRcDmt/XKW+i4Pe7JdDcAo=; b=dvlMzQqLSOfCNqO6K8Lepn7R9EdvtPNm3ORya+sMUL37wcsSPdZO4eBvPkrp4bTjAnRs/fE2BvjQVdskV1SYxG4fNwek4ydxmERRw6hrkkv3WTFdg8Lg8nyCtJ/p+DorzbaxFnTL+41xyREcH5GcYJ6dnlfok8dKDtppnpUW4Pf+4/LHX71eSkLFCbuqZD1hQlz2Ikrb/OndyERk1FTGoPjPugErubRHOodwtRWNwHXEZygzYllU3KnItyyHLZMpC0S7+5veb0RlhQJWA+VjLZL1bhyT4UnplChvZz3qjDPqLU+WAgh8S7iPducpQznwB4eDi6BE6gDfp4lt4yZv5g== 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=wsOnjSqrgkbfkTE6pmyRUwRcDmt/XKW+i4Pe7JdDcAo=; b=tFnVNyg0eQ+ohvv5+wYLR8uGrsFmuNKccnGsL4lW4jsI3H19diy6ZGJO1TWwBdnLRv7Nvf79rua29SLXQ6KdX3vzHUun4WCLy2z9UvF3feL6TvaIgsVCTFLVOtMk66bNHx/qTFWHRpgssCNNLbK2Pe+hunYDUSuo+UN0C1jIlKPNeLMKqaouc/QyJNmIh9GVIxyOIP+ZvFbsYfC1Ogq3UNn0Prh3I74+ml4yXB/u3vGpcnerGG7Sqr0rRrSUek+TRF6REdQrigB+mgH7+XVTfAsNIjjXIYY++pXsKTNPxCtC2wgFJNF6EZXG59+T6RIWJ55tOOPSAg7R+BtJwWFymw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by VI1PR04MB6928.eurprd04.prod.outlook.com (2603:10a6:803:12e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Tue, 11 Oct 2022 12:01:23 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:01:23 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 02/13] mptcp: change 'first' as a parameter Date: Tue, 11 Oct 2022 20:01:26 +0800 Message-Id: <20221011120137.5475-3-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0211.apcprd06.prod.outlook.com (2603:1096:4:68::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|VI1PR04MB6928:EE_ X-MS-Office365-Filtering-Correlation-Id: 199f3605-8e53-435f-5eb3-08daab80514d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9uE80ah0y26gsrQTQIkFRaXIM+/BkLq1Uk+MM8Kx/xq/Hub2PcompVXzWytluVxZN3mFXUiPNvDcaHVL4AVh8weI5UhbXnZy0T4GRAtnnvS4RUw+nUDoisPMgochvsca3pG5eTPhB8kiv/fxtm4dW4wWqBg4mW13pLgFUhdwdO/F8wjwWKRo6ffAiX4Rp7+8L3XtclYWZvkFED5UUd2KtQ2LiBcnAOFI4yuGGDIY2pCNanCNmkTmZ9Ic31U5RXC14wJMYLmxeWVdjotj5YFApEYqduXqKQkNx6si5lvpO4iq3QZYfAv2gkfi/fecZTbYUVtri2M/z1HvD5+6NZOS1dwek2F+BY6mo7RCSwrisaXBf5LX9t6v9RC5dOfuEyQ+lYLUuiCeiL9N1ICjSWL1CdLSYVVi2z/R3U+JXPHEsSzjYEOiXL0Ybeu8j5OgInCMXtyUnSKt+B4bjeR5XjYInsm0v8eM6iInR1l8SYPSLt/A5x1yuU17MFVP8HiepSYx10SKhNbBjT2YkkZl4cxpkcxV072X4zeoWX/qg/HUV9cuQXWRx2rnm9/WcoG9H6uuMmOhYTO3IzDpkMQAndfrlS1zcS43uPC24g72x4I6albkzMbZVpiv0xqmSjtUPXVFOXLQlcxZWwF8c0Dp/RgSNOoiuSJIZTpeFdpK1ok/6Avas6jFwKd2RenXVf91WrA/a3qwrgi79eg/zXstFP3w+SPagk6500fzeZ0WJnDfhhnCtlmvXzzzGx05LBgZIsWK X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(366004)(396003)(39850400004)(376002)(346002)(451199015)(5660300002)(41300700001)(8936002)(2906002)(86362001)(44832011)(6506007)(107886003)(2616005)(186003)(1076003)(26005)(83380400001)(6512007)(6916009)(66946007)(4326008)(8676002)(66476007)(66556008)(316002)(6486002)(38100700002)(478600001)(66899015)(36756003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?f0h5KoOd0lwDA4KOZ//RBw3GHG2vDr/dh9MLEFxEs4dfBtD8EXzz6T39UDoq?= =?us-ascii?Q?ohlZv/4wdRCR/iobSHVlsqOfuRmKPnArA4ChiO8fpFg0aZYQqhVlVTEtuzwY?= =?us-ascii?Q?n6po+5DugnUYH260bd9YV3n2W1+fK/Nl/g2F5VIBt6hPvG/M2DHpfSI1HOob?= =?us-ascii?Q?Iq2HpX+gi0xzDnxKFnJ93iE0Oj8aSv0a/SzWqvnDUbFLYxIUpEpKbioh9vZK?= =?us-ascii?Q?ftcH5TBeQSZI4T+O/ifnbiSxvLjNPUtfb1ONwP2JFJvsZtEfjlXk1ctjrgDK?= =?us-ascii?Q?nzMRiPnKYRjzEYHPn/Po8St/wlAolc5+S1pvh3ghWMcF9eafYQmAu08dvBlg?= =?us-ascii?Q?Ha8AEMmF2DFIhCSw4o7SNoCT/tsnHTrmktpbDRSwbOUIRTFw5+b0wrnI605C?= =?us-ascii?Q?W83dgOzZS5ABxlCamqV8NsDeoE84fdUCvVXT0KWuh+/XEc2W4HGTv5iQ3TPq?= =?us-ascii?Q?oOL6YC0FJHyxioWQYdUgvI/Ir1etWBT7+HX9HQdQ5G2aJgFYOzyVRqYcxRt4?= =?us-ascii?Q?Kbz1MG2y7f7Hms09LNNkXJdyetPTdtdLDxmuJ3CunSkxbovJtmCxT7WNb/tx?= =?us-ascii?Q?2NDbT9sEKDW85d0eH2XeQSOlMZXCF+RItrO15HN0IDPz7GCklMEIcd+xCzoI?= =?us-ascii?Q?a0rDr1k0P9Zo7M6UOHvYHQFomi2/6nfGwXVW5m6D5tKn5wT2x3qWp7XxQAXH?= =?us-ascii?Q?JXE0irj/S61HrCWgj6sHZgyjs6AFOAJhewVQhUTDOiOXo00g3EAgVmTwYag2?= =?us-ascii?Q?mgAliYxLvQqu9AwCH4dtD17N8n2Io6WmJwYBxtMVQnDG8x8PMDRREp+WSQAI?= =?us-ascii?Q?RgtYZVl0M8BXZO9DRUPDCwJ2ed2pxPM/9LPBcCNXj4GBIGDsJi8fen1uRSsp?= =?us-ascii?Q?QfYhn3xefn2ifd6dEQl382hqvwM+hj4bpgI3GMSlE5YREDu34nuBZL4wahmf?= =?us-ascii?Q?cb/5o0zzQX0UD4ogHtTztM0Du5m2vLXbniHC+rVw8K79ZSSevD0vtAtmymPZ?= =?us-ascii?Q?qYxPcGP8DjC7XPqGO3RuDmKwykKyWonrZBuPHWMYEchFpISfh+k0jeaHHRcW?= =?us-ascii?Q?PLQe5Iu7SdxJdqURX0/jlDw5x5qD3x3g9LbM4YgTs16iSlrePozERTe+CsTd?= =?us-ascii?Q?TaSJ6Z6TZh3z9mlU6FMUjim+sRN4+mT3mSmlY/yZabWbO+E0ZPnMCaNpYjTl?= =?us-ascii?Q?2d9hD5BILaoSVo8v7kyIb3P/7sLZ03ZBhuG5FStXKzZKdPNxHHuLEgPxCk4r?= =?us-ascii?Q?gYxXxFWS81MQXaCuqVDFsSHcbF9Sa8JmcMQMIU4ejkpBnNE6g1Jyr5M4rgsQ?= =?us-ascii?Q?2P7ZIMgqy2btzAud139jgEzDdIj9KyYzfFE/ZANUKWsBrtRMhOXnIJqFJ392?= =?us-ascii?Q?sMP4DrXINQJXMcXBAObOa0VkFQKtxiUluWyCP73fEONqtFJuHCZZGy6sn3eo?= =?us-ascii?Q?WHah07j0g3EF53fFgkFNetNeV3g3jVcAn2CE5zo05lK/nVLmU8ilVPv0Jwk0?= =?us-ascii?Q?j6jU8PYsbZEHgndrwAHXfvE13isSgTT9gKiAoK6cU59TwQiKpusXHfS/UUMT?= =?us-ascii?Q?7+lXaBrM4RGSSnW4709K8ORjW1sj5NEP/htnAgj/IxlcKEfCzP26ImEHrR0X?= =?us-ascii?Q?dg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 199f3605-8e53-435f-5eb3-08daab80514d X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:01:23.7191 (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: x69yp9TeFeT0cgfOLIPQyCH5ADZfvYC+VD8JxuIJLQzaUltwIv2I3KpLIOdMHxoIKYxxJYtHKa9ZVcHS5wSlzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6928 Content-Type: text/plain; charset="utf-8" The function mptcp_subflow_process_delegated() uses the input ssk first, while __mptcp_check_push() invokes the packet scheduler first. So this patch adds a new parameter named 'first' for the function __mptcp_subflow_push_pending() to deal with these two cases separately. With this change, the code that invokes the packet scheduler in the function __mptcp_check_push() can be removed, and replaced by invoking __mptcp_subflow_push_pending() directly. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 9a2253436f50..0285b21ff912 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1593,7 +1593,8 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) __mptcp_check_send_data_fin(sk); } =20 -static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk) +static void __mptcp_subflow_push_pending(struct sock *sk, struct sock *ssk, + bool first) { struct mptcp_sock *msk =3D mptcp_sk(sk); struct mptcp_sendmsg_info info =3D { @@ -1602,7 +1603,6 @@ 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; =20 info.flags =3D 0; while ((dfrag =3D mptcp_send_head(sk))) { @@ -1612,8 +1612,7 @@ 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 + /* check for a different subflow usage only after * spooling the first chunk of data */ xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); @@ -3198,16 +3197,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_subflow_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, false); + else __set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->cb_flags); - } } =20 #define MPTCP_FLAGS_PROCESS_CTX_NEED (BIT(MPTCP_PUSH_PENDING) | \ @@ -3298,7 +3291,7 @@ void mptcp_subflow_process_delegated(struct sock *ssk) if (test_bit(MPTCP_DELEGATE_SEND, &subflow->delegated_status)) { mptcp_data_lock(sk); if (!sock_owned_by_user(sk)) - __mptcp_subflow_push_pending(sk, ssk); + __mptcp_subflow_push_pending(sk, ssk, true); else __set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->cb_flags); mptcp_data_unlock(sk); --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130058.outbound.protection.outlook.com [40.107.13.58]) (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 488193207 for ; Tue, 11 Oct 2022 12:01:33 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PTLh0qYAWj8M+g60bkDv/Cyi7Ra1vtMaeAsWLe3pye2bX+g6hgN8ySfQqpc5AOTFIMHMNL17aEdkP3Vio5mJ22s08qqF3M8k4ogHjWHxRb1Q1poWm1Cs6jk3QE6qfsUJ55CHhweLVe/t9pmEtjLY922Q2gQvvEc6tc2kCZkZ/ShO7tyOfkFl/53zuwlyoXVyFU4Ix7NEdcNt6rcQteu/fw0KRRK4ocsXbXlAJwQ+KyOdUQepbDvENCTqfd8sxHQEfNGPGoXL0SsoilXaAf6J7U35Z6lTbsW3EzNcijNh1arNy5pZE6BnhYh35zj5+RhqTp3CoXcBQnlK07kYI6Vd3w== 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=ZtSB2AOnwbfoLW2FuQhhbfPDVxG61dziHJglw82O/1Q=; b=Vokq6xreLQEIAszHkpY3QscP/cPvdhqBKXBaFKpYkiw4xCbr+zS/0VY5YiQP63UP/9VLRfSl4lEj1P2dnGdG7zuOUeWM7PzDcg822IpNEPcxextr+86dFm15ixyKZlHD6orPnpCNB92OIkah0ACN0bN1VmRl+j4j0PZ+gL0eFpsT9W7va59M8VFKHUXOWuTM4DZeWQEfj4XXqQZlxdq0EhuykgtZkLIechJ3hsJRphMmyJE3zAFzm8u2h625txqJrb1N+GeBq1xz2+0niZCATHzdBa5sZ3IPw6kmQURcImSfDDXqurjYtQLLTip1p/+CAgc6F4GvV29uiRSyR3q+6Q== 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=ZtSB2AOnwbfoLW2FuQhhbfPDVxG61dziHJglw82O/1Q=; b=t4e5vGY0eBVGstWuX0dEiq/I4SJF9fNe+ViKQvxiKxNy3TIA5KogkvNl0Fy8pUtKmSAju3/aE/NtYEH6MoxHGKCuUa+ay8pC209cwWmtxB1PwU4eOi+vigktHLcQTOVHHNF+mymodnuons/fUxnT/5RJErqOBqrht5tJcwdjavGhkLkmfYrA0VHUilMrBI5oNssRGOugTv8MT0MCDkQIMdwy+Oakh8Wt8yom+ikcUTbRE2MuMZP+SXZl5noRPYqDRg5phKYzaakIsGUiNykmCcZEMNmsrAl26bOceeg4c0oqmFo08MhS9pyh4DgQXOPkRS+PEvkuzmbm7g6A8H1CNQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:01:30 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:01:30 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 03/13] mptcp: refactor push_pending logic Date: Tue, 11 Oct 2022 20:01:27 +0800 Message-Id: <20221011120137.5475-4-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SGBP274CA0002.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b0::14) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: cea9a2bd-d2da-4910-920e-08daab805542 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L7fX97pIsp9G3SqHU+Ly4MZ8fbx8oO4qooDBAH+Pn3GubJoL/DJRMhOGdichpVCUJG4vZv62TvuUMaYXX44jViFJdnDOryO87gUt1/LTF18zeZB9KlxMF1iPFX48Zj4GYBSfCn3xX4a+RwmU+THcX4wK2WD+mpCd+8fxHBc5sYQMNF254XKnL6Lnhd2XgKqNeyL9T5SSnjiKYRZuKyF/afWyvj4c7bozvLlMMxBJW5Ehj8+vUfvtZ+JzN6DdxmC0H8ZOaEK7VnoW8/ALFoO0FD5/zahyBd+t7T4nl/qlAGKPq8knm3bV9WwC84mfPg2NMGf6DYyLeGog5cr1781Y7rF2bVbPDrmX3QslhUpdPqoh+jgJw+QtaU6rEiIrtw1pcJu9KE0PJF+lu0VsBmi4eVbCarYnd/+MPj6KCXGk++Gn4NvXUTnTMdFIRQyWJkUHBzlbLXmGT0pNX9R06ekxQorqT7LWrLonhbDmJKEoJv22ynuvIDAfImGU+THngPRreGQOxFFzsE/eEUwkfMtlGcIBlmm8AiW3yTE97S02JcbyahdY2+Ve/6qBDBdjgw1y7H6uAhwddU0w+Ywg1x+Pw3FX3HqPuR+1+F/DXlauFHQG/tS6k/6S8zmXIa2G+uZ5bBrLsyUvv0Wx9E3RFkG6EX02RVJopRDCkIV2qkK9xodty0hTzMpWgMj/fk8Dw+NCxiiqUEmZqZQWFjlhbMoblHaIvLSnb81OHYwUe51DR/0cpUtUVDtJGZuKYcEkURdR X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jRL8TTry5w/Qi3pfM2xIeNaQAxjbVJarC+aWDDW0akr5I0vFVe9VzdgPJmZv?= =?us-ascii?Q?2+L6UZRoSI4WO99nFhwhehiIYgPF646Kfr1I9NqiiYCt0cxbb5+C3uptyrMc?= =?us-ascii?Q?EqfeXn8GZRX+hkuuKodhYpFps3s6DU1C7K+PlxPjxcJbhPOFw3xGlyp5uKV3?= =?us-ascii?Q?9be259mtWZMTJ/uQs4G+iiix8sU3FrNw5jSOG7OIG+eu4nWKezOWqNyWBrDT?= =?us-ascii?Q?RnsrzrYHH6OodJxso+ctYkrr5TvT7qIQ/1sYe9ZRSUZ3STMW2bn4wTQFgda8?= =?us-ascii?Q?s132leYMVzFW+tuZ4NLb4iS6cfznc4ql9RmMd7u4R2evVCDLmb5VlsXx5/Xe?= =?us-ascii?Q?PwVpe2NGbziipkr4EqWzADAxuAEYr5ctXgqiGnADPCSGctUkoMwN3dmnrF6i?= =?us-ascii?Q?3qS943iF7uEGej6wVpZZTiAVmQOWfp9dlPG6QaSKXMYTTqaY3R9yFUBEK43S?= =?us-ascii?Q?PrGkA6uQMbHluflLnkr4bhKU2b+y80+G+E5j3O1qCsh6p0D9+uPTKCFMvFLp?= =?us-ascii?Q?eo0me8uzwfC5eTZILzjjGsaWlv1+hWD3jQ0eqbdDpLtgzXFQhl3xm2Mh5nLc?= =?us-ascii?Q?dgFQhuyOoRzkEaJh1TfHpyQyYKQjwQERQajDtAfWA04SOxW5WlomL2INBBak?= =?us-ascii?Q?X3lNnb3OiMB3JA6agX+OtXphrJPxusfijFHE6gcpduGnO6+1twU2F1UaNenq?= =?us-ascii?Q?U8dnvQW5yKb0EAounIBUuxtUTy9g3/Kp18bgkr5yzxZ7HR6Vf38NONgZLTQ6?= =?us-ascii?Q?o6C3GdhPicGKBBMzXIfei7xDtVeTC2bk9SnDHyvRtJ1tMEMG0OaRc8KtkCi6?= =?us-ascii?Q?7+rcHsGtW0YHeUuvmCWLeWm0PYB0mLRSyEoNOqGzvul/nP/5tiM41FCq1lxk?= =?us-ascii?Q?qOUns1VSvAQR7ri24Sbt4aIwlX6bZdTLjFsK7Ftl7pKP01pgNSZXrWsW9snP?= =?us-ascii?Q?A9LVhgbQMCCnsuco+njxfdjnNdasceuSjfFGjvDKV1RA842QeTsbWsF6Fu4B?= =?us-ascii?Q?HhT1OP+hP3sBw7PhQ6To74LqGUJtdCnPSKckiYwejs2R32jO+gCqbJSgQ/mK?= =?us-ascii?Q?yZOiPjlbOCK4wZroN78qXB4IUYOxbjfIFc/mqovp+HnylhywCypoIony4kuZ?= =?us-ascii?Q?y09mxB1s219zoqIJKhliFzEzLDQh3ZYy7jf5Sn0DcjKYEXwp26VXtlLHi2Zy?= =?us-ascii?Q?6UpAMtNdfSZbgzU3UTjYUhpWPYzcoigsZW6oBlWiyu5x2CfATCJxAnbS4Dd+?= =?us-ascii?Q?A3fVILKEp7ZK9/Z9m0XoNJScuA+M8H8Hkh4hwxGDHh6yUBWiTxpYn9285PxO?= =?us-ascii?Q?dDXKOgJGwWIZDJfr6c1gyREBFvSZfODbQXIQACwW00lWRANeGyKxR55zab0/?= =?us-ascii?Q?poLxXBORHPhEb+3v0u7QBtmyPOf8Y1bn8bFsd7LjUu2Zf5WP/cKXDsL6UwS5?= =?us-ascii?Q?JV557Pohgd9GqkynUqz0SgTphvhxmFQoaU9gEaZN7aKaq5xVtmOj1FSUU5tA?= =?us-ascii?Q?zutvs4jguakqPZpF0xhwIf+Oe8V8PyWAvVL3V2mrb4gsk8lg5TcqG1khmsiq?= =?us-ascii?Q?0eaDpCYKCKkc2mM2pRS5Sa0N7ByGf80nDWmsn8cmbpCr89t3mx/9FCnv2Pi4?= =?us-ascii?Q?Sw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: cea9a2bd-d2da-4910-920e-08daab805542 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:01:30.2342 (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: CtOj6POT2/evBtCBNhlL+x5RarUM3Z0w0vUMGrYs2hVudwPW6IbCzPCJoFOoZWbbXDYnFG70CgrVDfRidKPSFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" To support redundant package schedulers more easily, this patch refactors __mptcp_push_pending() logic from: For each dfrag: While sends succeed: Call the scheduler (selects subflow and msk->snd_burst) Update subflow locks (push/release/acquire as needed) Send the dfrag data with mptcp_sendmsg_frag() Update already_sent, snd_nxt, snd_burst Update msk->first_pending Push/release on final subflow -> While the scheduler selects one subflow: Lock the subflow For each pending dfrag: While sends succeed: Send the dfrag data with mptcp_sendmsg_frag() Update already_sent, snd_nxt, snd_burst Update msk->first_pending Break if required by msk->snd_burst / etc Push and release the subflow This patch also moves the burst check conditions out of the function mptcp_subflow_get_send(), check them in __mptcp_push_pending() and __mptcp_subflow_push_pending() in the inner "for each pending dfrag" loop. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 86 ++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 47 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 0285b21ff912..52ac57fd8c27 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1417,14 +1417,6 @@ struct sock *mptcp_subflow_get_send(struct mptcp_soc= k *msk) u64 linger_time; long tout =3D 0; =20 - /* re-use last subflow, if the burst allow that */ - if (msk->last_snd && msk->snd_burst > 0 && - sk_stream_memory_free(msk->last_snd) && - mptcp_subflow_active(mptcp_subflow_ctx(msk->last_snd))) { - mptcp_set_timeout(sk); - return msk->last_snd; - } - /* pick the subflow with the lower wmem/wspace ratio */ for (i =3D 0; i < SSK_MODE_MAX; ++i) { send_info[i].ssk =3D NULL; @@ -1530,60 +1522,53 @@ 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 - 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; - - prev_ssk =3D ssk; - ssk =3D mptcp_subflow_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; +again: + while (mptcp_send_head(sk) && (ssk =3D mptcp_subflow_get_send(msk))) { + lock_sock(ssk); =20 - /* 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); + 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) { + mptcp_push_release(ssk, &info); + if (ret =3D=3D -EAGAIN) + goto again; + goto out; + } + + do_check_data_fin =3D true; + info.sent +=3D ret; + len -=3D ret; + + mptcp_update_post_push(msk, dfrag, ret); + } + WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); =20 - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) { - if (ret =3D=3D -EAGAIN) - continue; + if (msk->snd_burst <=3D 0 || + !sk_stream_memory_free(ssk) || + !mptcp_subflow_active(mptcp_subflow_ctx(ssk))) { mptcp_push_release(ssk, &info); - goto out; + goto again; } - - do_check_data_fin =3D true; - info.sent +=3D ret; - len -=3D ret; - - mptcp_update_post_push(msk, dfrag, ret); + mptcp_set_timeout(sk); } - 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); + } =20 out: /* ensure the rtx timer is running */ @@ -1636,6 +1621,13 @@ static void __mptcp_subflow_push_pending(struct sock= *sk, struct sock *ssk, mptcp_update_post_push(msk, dfrag, ret); } WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); + + if (msk->snd_burst <=3D 0 || + !sk_stream_memory_free(ssk) || + !mptcp_subflow_active(mptcp_subflow_ctx(ssk))) { + goto out; + } + mptcp_set_timeout(sk); } =20 out: --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130053.outbound.protection.outlook.com [40.107.13.53]) (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 E0E723207 for ; Tue, 11 Oct 2022 12:01:39 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZmFq2UBLQ4vJQboJKH9L5Nq8fUxmvoM7pUUh7xg5NdTdxriC236XJoFHBhe7rX+I6zK2UIJXtmHlcgpOsHzQREa9S7h16pcJGax25MTQDFm9AQATAq85e7J4NhMI7nqd1L2zccvShHSV1jjg1UYDQSClqQoPAoND7M9D5+BBIn4vjxCUtGmmt0U3TeJN5hNEvjq0m1K63NRPHx538+9vnt4gAG7HJD5az/c11NQHCdQCnrRFQVff0AJa1UZuH7jWovNj31ZghvQDjp7kCqiMuXHEZeaXnK1D7wlNT41m0ojJ4EuECcBipX90/nap/B8mvACOgA/NYcUNP2LTkZggbw== 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=4J1ugRQjnFj/22ve/ERiELUmvDgRKvH/YGYu/AKffDQ=; b=CXdRqp1bIex1R81dGr1SFPDfyj8S9m+M8b2YWdY8xEYsq+brfrTJTvougzv552DmFf7YHz9Pn+E8QZfzCtM+4g0xYRjdKayB88qZ52zp50Ft9fE3kCKIhU6eYODRb4l3cKtdymg/xDbtADUBj6V2FsCs7Pm3ZOXXeKg6cYp9nq9ZF6RDzZBYcfdrAkD7RoEJcHWBeXNnVRA4EiUJkN0ebUMIwvkBJ5CT7yCB+rEEZK3H2uLp4l/L1unecw6mjyxX3+X2Q68tlqP4tqoaSO/RU2WgAoh8vPCQAN8LkGlQoWu0AZNQzVuthZx/Lvqr/W69kDtnVcyHGG3qWa+sszVSMA== 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=4J1ugRQjnFj/22ve/ERiELUmvDgRKvH/YGYu/AKffDQ=; b=pbTr5cTLoJZYicRcyXWZrZPrQdwErHbrXDdYtLbghN+4cj/lk/mjnzQ/f206A1mry1+RyPSfVzCJ9vi5b90dFnuZlZvmf01V+AWBkHwxNlf/QU1O9lqEPKExre+MUHseB4bpWnWU+FJ4AW/gUFLO7kdVF1XXXU4JC7TSbYlt3jXNSLjEtXycfCeJIRYD/1A8C1eJeRfcxe7KdWPmkE8S1N07VKdKDwXbVCY+GagFbam9MkYjgl8oKBzVexN2qkpGjJb5Sc8c0pXWpNn8nd8O6N+9XL2DzALmVJkG1kCf08OH4cESpoBg9ua/J7AFOTUjO0CysmQE7RfY+2f0jvljCg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:01:37 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:01:37 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 04/13] mptcp: drop last_snd of struct mptcp_sock Date: Tue, 11 Oct 2022 20:01:28 +0800 Message-Id: <20221011120137.5475-5-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SGBP274CA0020.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b0::32) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: 26e93858-7a20-46da-d9de-08daab80592b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V5F7qGn2Rxk1pcSZY66ixOJ7yd3xY6lCkUuGi/dO4NMN+QBVBbdFpu3DLsggN1QoGp5cCLM1Dy4s4kjfydmKdQoazg8HpJLgBfijlwn4RLTkE0MkonIBWrjYRThRhDlSgBfEiXKPn3V6ukjcPNVEDk5p3xBixOpgt0T+4S11R999WU8bt0aTH9iWR42TOp2+Y6NcfwbPU8d13q1sWZpA+WIdswsfZY+if4CCaMloTlJjL8m+pRChO9/xW4hpW27/3Xz941neLX5rvUsEOemuLwgSWHMiX//yiqQouvx1an1ikT6WnBd5UnHQBBpOpvIAstoSJl4c0+2UEYeegaCNZeyiYVPqUdRawY/269vBRncBGq/BjnK77+CWhbBwDD/SMIzS86la51dCT/cuSgypnxX3RTzDX19NQTsEOFzjZksezZifhP6F3MFFJ5vddobz9zBOD8CDBm+hu56oAX0zZuO33E1ygYuIuXyqgITAJofanQyU2UC3XK5PTRVkcd9pNbuOIEbwMUtswU7gzUpmebX3GjyQp4ZZvkBVRZTeJvywDRWRlvCmPDXhZ5Ex+mRs0dehyEYvFE7QIGjQHgPoqOUAA35VadK/rqzR33t2Gy4tGVtLrClxbeA10t3meDRdbDL2ZaiTjHIOJRhW2qLtERqkiXipHXbmMq2UFAbU3xwLbh0GFqvuDZ65tou+XMS3HXwUY4EJBkFNZpD8qj1RcayYD7nbpTc2jiNGBHKsraJIwBoeQBHW59PIP6VJnVxo X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?z0uelBUuWNtBNTQQ7RmfODYgYtVVnjk56HmDw+RRd+tCjglkCC38CadkJmro?= =?us-ascii?Q?f5LgXe3jDhvf7UtK/cbcNHbifRNpQX5fYhzfTMk9FSRKyXYmbCglSBWdniBw?= =?us-ascii?Q?fYMmVaxhuAR6OoC2aN6ma5g8nazB6EwOXJK582xvyVeVpjLiCKwbU/tWkbi1?= =?us-ascii?Q?zpz1V8YB2og5MJV0eX1BNfGiSrbbDiopshX1Vgx26SOiDgJ9XekFqZjlI2zI?= =?us-ascii?Q?9KnSh7G3nQ24ilKtetBg57Ncm50GqeaqfoIWdYchMbmiG6ZCZ0ScZjuh2hif?= =?us-ascii?Q?orftgG2M5RjyaMYUBnEwM3lBSqPd7t/4hG4LqN86VJjTxW4XJekm3b+JEusi?= =?us-ascii?Q?gsYCQfNcURlWYk+7ymtAvRYFbtG3E0A7s6kSuooOBlnV4rFI3jH5WhktI2mz?= =?us-ascii?Q?ccZCU+AUo3ZWXjyDVrd1cAtQZu8/zHJlOjAx0lfqsxrjxV/kRUPZxcv9VTuX?= =?us-ascii?Q?L2+YbK7SfFbYOW+lzo0rLxxPP1dH1463s9YG+v7xzdt7XUu99djW7qCKzv2x?= =?us-ascii?Q?gXEL8KYee9WLf80bW32t1MkW5rJRaFX2dskoG6xjmblrP9GOzIZ0Bbk/eeEJ?= =?us-ascii?Q?nu/r70OZpHvqgoQU5p5cytiYEn8TwwCwAogQelaW7NG6eUJbnH40BJK5u2+/?= =?us-ascii?Q?nZXq0eG0OeIarVuamLkqOEkukpnAD5HJzdCpa0VP2Gy2Fv2ImWXvNIyhBZz3?= =?us-ascii?Q?QixyGB0vDispOacjVCQJ8gUzcP6U+SbKTwI9UDbJd3AqS4J7DAweLWORLVbD?= =?us-ascii?Q?1efVtnex8xkIj+Q2aFdDXf/yUJxG7tSSB4KgSA8vagw0dVESWiD81HcdHfb6?= =?us-ascii?Q?v5rIlv0hYhH1RlkToRuCu3bMkTffxmmgP0rkPIolpMxAyWZUghgXBzIJCLmb?= =?us-ascii?Q?1WmlJchHqv93WfrjR8BSWOGgCPtHMKKbVkUfjUBQ4Fer26LVZUu3TNOn+dOo?= =?us-ascii?Q?Radudu/uFnTcRyXY+fnqyROvQO0EGs/47SbP10nhWjTSYJsqsFHlAKNPmeXN?= =?us-ascii?Q?1F1laXeRcnIztQUDIf+fUQg1XO8+JvNRo2sTg0sID/NLsWJt8dBnMfYHXA0O?= =?us-ascii?Q?CXAYw70S5cpGX6wVdLAn7wSmEILW2eq5GU/vLUKDEDJOwezyl28p6Wn3dzZ3?= =?us-ascii?Q?1f01jzz2srBVOTkfmaFO+qI++0G2yfsUSYJ/oD0nKnAlonjKfl7KHnuV/HXS?= =?us-ascii?Q?+hE1LGApVDK46hz7XrkGztNIs8iOaNmZYr62bzMvQUy3WREYjWOZ4HxUzuOL?= =?us-ascii?Q?1nPDXVqCbAF7YBJ/iUtnacezfSu6KCamGZcCFNjDA0UPibDdLigVu7Bohha0?= =?us-ascii?Q?DTgnhrWNF9zgKzAcJDqYca60SP4XF4VTjOdA5Ftqu0nozkx87TuW6geWOrS5?= =?us-ascii?Q?sXt69EZpz4vm2HWQkbBvo0UPSE8IATEFVX19YCm+xf7UeVeFPc/IDY2ZI8Sa?= =?us-ascii?Q?OiUd60mOkKS2B1xBKkRS7RILAk5gCexPeUJg60ABCFH1ghJu24dCgAggw+2R?= =?us-ascii?Q?K8FtelVYiz0cxEcouJ3wfBewhqz+amKG6Tm1O1yUTbRxjtXb7Zj7Es0gDH/5?= =?us-ascii?Q?/Nrz9fdayCduLLNAk3yiDdfN+hsSU/pfTx78/qubxLSddtdDc5r5NbFDpbfN?= =?us-ascii?Q?xA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26e93858-7a20-46da-d9de-08daab80592b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:01:36.9368 (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: 7JnNpD28cm7mWwfk0zcJGjJGkp25xegVHflxNS9Ts03nIbRzJqh9emcB7EcA0U3BKc5r+5Wppui0TZIV53HCkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" msk->last_snd is no longer used anymore, drop it as well as the macro MPTCP_RESET_SCHEDULER. Signed-off-by: Geliang Tang --- net/mptcp/pm.c | 9 +-------- net/mptcp/pm_netlink.c | 3 --- net/mptcp/protocol.c | 11 +---------- net/mptcp/protocol.h | 2 -- 4 files changed, 2 insertions(+), 23 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 45e2a48397b9..cdeb7280ac76 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -282,15 +282,8 @@ void mptcp_pm_mp_prio_received(struct sock *ssk, u8 bk= up) =20 pr_debug("subflow->backup=3D%d, bkup=3D%d\n", subflow->backup, bkup); msk =3D mptcp_sk(sk); - if (subflow->backup !=3D bkup) { + if (subflow->backup !=3D bkup) subflow->backup =3D bkup; - mptcp_data_lock(sk); - if (!sock_owned_by_user(sk)) - msk->last_snd =3D NULL; - else - __set_bit(MPTCP_RESET_SCHEDULER, &msk->cb_flags); - mptcp_data_unlock(sk); - } =20 mptcp_event(MPTCP_EVENT_SUB_PRIORITY, msk, ssk, GFP_ATOMIC); } diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 9813ed0fde9b..1f2da4aedcb4 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -475,9 +475,6 @@ static void __mptcp_pm_send_ack(struct mptcp_sock *msk,= struct mptcp_subflow_con =20 slow =3D lock_sock_fast(ssk); if (prio) { - if (subflow->backup !=3D backup) - msk->last_snd =3D NULL; - subflow->send_mp_prio =3D 1; subflow->backup =3D backup; subflow->request_bkup =3D backup; diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 52ac57fd8c27..7d5f89799c9a 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1469,16 +1469,13 @@ struct sock *mptcp_subflow_get_send(struct mptcp_so= ck *msk) =20 burst =3D min_t(int, MPTCP_SEND_BURST_SIZE, mptcp_wnd_end(msk) - msk->snd= _nxt); wmem =3D READ_ONCE(ssk->sk_wmem_queued); - if (!burst) { - msk->last_snd =3D NULL; + if (!burst) return ssk; - } =20 subflow =3D mptcp_subflow_ctx(ssk); subflow->avg_pacing_rate =3D div_u64((u64)subflow->avg_pacing_rate * wmem= + READ_ONCE(ssk->sk_pacing_rate) * burst, burst + wmem); - msk->last_snd =3D ssk; msk->snd_burst =3D burst; return ssk; } @@ -2346,9 +2343,6 @@ static void __mptcp_close_ssk(struct sock *sk, struct= sock *ssk, msk->first =3D NULL; =20 out: - if (ssk =3D=3D msk->last_snd) - msk->last_snd =3D NULL; - if (need_push) __mptcp_push_pending(sk, 0); } @@ -2981,7 +2975,6 @@ static int mptcp_disconnect(struct sock *sk, int flag= s) * subflow */ mptcp_destroy_common(msk, MPTCP_CF_FASTCLOSE); - msk->last_snd =3D NULL; WRITE_ONCE(msk->flags, 0); msk->cb_flags =3D 0; msk->push_pending =3D 0; @@ -3242,8 +3235,6 @@ static void mptcp_release_cb(struct sock *sk) __mptcp_set_connected(sk); if (__test_and_clear_bit(MPTCP_ERROR_REPORT, &msk->cb_flags)) __mptcp_error_report(sk); - if (__test_and_clear_bit(MPTCP_RESET_SCHEDULER, &msk->cb_flags)) - msk->last_snd =3D NULL; } =20 __mptcp_update_rmem(sk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index d44c97bb41db..68a2b22a47eb 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -124,7 +124,6 @@ #define MPTCP_RETRANSMIT 4 #define MPTCP_FLUSH_JOIN_LIST 5 #define MPTCP_CONNECTED 6 -#define MPTCP_RESET_SCHEDULER 7 =20 static inline bool before64(__u64 seq1, __u64 seq2) { @@ -258,7 +257,6 @@ struct mptcp_sock { atomic64_t rcv_wnd_sent; u64 rcv_data_fin_seq; int rmem_fwd_alloc; - struct sock *last_snd; int snd_burst; int old_wspace; u64 recovery_snd_nxt; /* in recovery mode accept up to this seq; --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130082.outbound.protection.outlook.com [40.107.13.82]) (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 A65D13207 for ; Tue, 11 Oct 2022 12:01:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fxUGPHkmZ9N5IpnaAxuey0XI+U+Qx2QKK5Mwf+PzRj3f4+Aqroq1wiw2NVaiLKPNH/0OR7fskGS1IovMZ/IQqLKc08ruyaukXTsyr/uhSN39DHX+i3ABuvX1a7KmDR9WVaBtc1tzjqSdE6WIJktK12QABUqDv0gU2ov3rQtFmlJzEX37GQkc0N79AApxBy8UIJ3kuHlG7BCoCaYm9HTqFpVQ9/PuTl0JDGMgiROUCgZEstwHT6E8nqWc068cpExvKy0ZkhZWcH3++3dPZwYEhdpaRyaBCXuE7bidAQVV8kLYYTBtakJg7BFNHXShk6KkXjw2itzoPXWjMw2cvNvowQ== 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=womHxEQqr+muOUDWWuHI57fTytEHfNTMM41UpogoXiQ=; b=EG/9A3DztaRw3Viqu56QONrSZVKbIXtQR4SqSNVv+roffoMgvwGckWKPSA1rKvtdQt0Xytg+tCQB3aKyYSexGue7dLUgWhWq304/zxy+YluP3/B6M2Aj95hsAC3Ov0a4lbHr0VhGZiO6VjDYMLQvpYCmdb74rMY1Mdcj6U9wEdVZ8LaYtcO8iZ7FGJEK7GtFIqe244dpzYL+touKHkcP9ceYTiSmCgPPGf/dGhGM24U6ThlDzypFo9u2HG1OqUEMdYO6nLGysf8UKIzg0E1sDwSLzcche1QXyo8hv6F4pmoFErjrIGu1ooVQTD/4SABAnfkXedoGqsl++qP8vmI3Zw== 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=womHxEQqr+muOUDWWuHI57fTytEHfNTMM41UpogoXiQ=; b=OzE6vGZXi8V7d+PELmUv+ID5nWyBMrZDqfdS+ZipSvHbnhAjqFyv67tLtbWzPsXOPMlsZxGeeh9m3fytQPk820FDZqq6HFGnG5FjtP0HfmkDQj75/sOD/PSOys3JAUH/LI+LlxkGtF2m33uWwvpWDm2c5O4uOiFyN704evDVC5t7lVdCgZXmfEaIdQB2rL7W55CJt3ttOtfg6WCjFRMZN49DJr2ekzbhIkwO05F6wwY2s6Kv2iCp4jC78cMGOWdKQLC4yzGsOdGgU2Ztn046nehlVAp8pa3cokoUKahLCeZFva/zwQiPYRxgTBI+KzBJJO5H3UKiLB9Ynh9iL9kmRg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:01:46 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:01:46 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 05/13] mptcp: simplify push_pending Date: Tue, 11 Oct 2022 20:01:29 +0800 Message-Id: <20221011120137.5475-6-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYXPR01CA0045.jpnprd01.prod.outlook.com (2603:1096:403:a::15) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b49bd18-e9c5-4ec7-25c7-08daab805f2b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vU2GgDOroYRT4P9sK4kzy4s3TYHJwXOk9gS49dykMft2TBlyYWidivVK8/eTNuwfyFOd4EWBSfMXFB1aQ9koBVHIKZdpcZtLnOv6rNt/XWi61ebbQBQo8SVh6d6cv3lQKeK/h9+KCv+pp0z57HzdHLDrRZLXGSb83+Mc+SmtDdq5vVqo8zJLn4KpGI9sL8cWZwdiCa6WPusl5FFHW6b+a7P/bgQQJW6145/6Jc/S1Z2K8v9/ql12L0xPVLWcdHbwm3+FUzCAoRn+ToZMX+sRmNK5TdKvJMIKM2IqOJl/NOhg1L5sWxRpUSFwCJhEsqjvTf4quBqSWk7gb+BXKd1e1TZM3wZiNDcgZpSkN7s7R0aYHdcqqojjNMNJFsdvaVq/qATr1/C2LdrBU4E+dEd2/GnQ9R2j95ZF52p6tBcPIZgwlmddAAQz4QPII7wgKlDOIP3yiMeFNp/ZuW2mvU/u9G0xS5lax72pRJxZvFGp1HlUMpg9MjHbbMlprrbBX5QL5weUffekFF0pPVdczb66l46WQ1CDcEf3jYpMJknMStTF2IAdEUvmqFJk1VRnnywI0krLKGhUPZNxBzF2/EaDVfCtHn1ad0eyM3hgbDN9VixInmxOeAWK1ZjzDK4qY8oQGgHgEsJ1zzVl3yOCnQF4KVNMWXYVAMqCODBkYCRRR5yZ23D0vvlmAawOcwNey07Xs7KhSz8QJs6bWNDhcQF34PKcMnmkCittciGuOPZObkqfSYxdMRWSkCibc3ZO2322 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sKmvQ/x2YuZz+6FnCvrodCW7jeIwecyTJsqoo1YMidDF6VsQypFuFLDG252z?= =?us-ascii?Q?BpQ7NcBZY3Q1WKmDtftDn4LGj34gbtngHdprUXKmMiCOqIU3/r2Y8gvUt/f1?= =?us-ascii?Q?/7mGfdGd1PHkWIfroyb/r8QC3d5EkgCMLVOr9NEiC89CQlyR9P16cwIXpeSe?= =?us-ascii?Q?Fn31G2TeGxzN8j1hfrivmAoHOTLS3Mz901Q28yNdJUvSzTe+4LkXwCRaU3GU?= =?us-ascii?Q?B2WOe0EYx1nRxB1IKvWQ+o9utAbQzZgEJtOEAVyhQ7ZMSlOx7iarftr6LuWt?= =?us-ascii?Q?axPsLx/o0IpUv0/BCfuSlL+Y+eFZ5kvHtNfmWxrkqKytPydnfQMEGwQsQbLY?= =?us-ascii?Q?2abbsePojshmozhL18qg7RbJbiDLJDzlHmMUr59MhCdTCvsR9vbx0ciIOzcH?= =?us-ascii?Q?M+x+38FLZW2djJlp7K8aZkKqFxfSyZmkB5nvomBqgjqV760Mz3nYGjro3aib?= =?us-ascii?Q?dDasu5+Utf9EOLtp2MbQF9mkt8Squ5+uw5QEl/jtA9/Ut/PlPJIZwBlbCYSm?= =?us-ascii?Q?glApObabRres0Tj+xO4phvr5qCE1A5+k5CY0nlqRuS3qb+woJEgR2KZ6ohPv?= =?us-ascii?Q?/SVXkxzuQ4keK2jhMI/wDEnhlILw4h9kVJjkj/0HybOr5J/QfEQIvsxahwdc?= =?us-ascii?Q?t+JGEyOeH/fsuMU4tD3e2foaycg+u4ZKAUFSOjWF7P4gJx+rW0L0xpk9m63A?= =?us-ascii?Q?LUeOQXDT/Iel2WwsSQ6TWDHZkY4QJyJSNUj5KWDU/wBhA6Ouy1HS3be+YBC7?= =?us-ascii?Q?dRFs5ffLOpvaZFRjToOZF3ZY1jNjmsgLn805D3BYtWAV69GuX+1XFgdZJhC+?= =?us-ascii?Q?d7w23OZrU8t4PMHd9t32ze9mc4CbIuaYSV86xG54WkqJMmbIV3zxRxlbcvNR?= =?us-ascii?Q?sy0k0UyvwQ8qu7FRzc3Ger4Mw5cNRahBE8IzIYDiZtZ7HgxJ1BLQbwJKBQqD?= =?us-ascii?Q?QIZgnWMjLqAaigjC/2gl60ie56gSoS7mXa4R/5oOGSYX6/sRJiMnG0p73Vgl?= =?us-ascii?Q?puw6+A1UxHG1pjdA1yFRdw9N2l6nnUe2TSrDOBjpCb4Ts6Z9rHbc/AJNFmgE?= =?us-ascii?Q?dJlPW1jZdVDW5CTUPBL+cmFfAALSFw218UZ78MXvRhuHcLf36Kg2FBJAnlCi?= =?us-ascii?Q?a+AFClh/SGOBA7WFEoIoU3bsMZBiojf33QKP2a16BQDW6gpBRiDQ81daKJs8?= =?us-ascii?Q?qY/zD2z7DslBowRmKoqrQu7C1mByLJt15QovjlR81hoqnjbwDKuNLVwRHfvV?= =?us-ascii?Q?o5NkPVwBrNGJmAEP+cfUnJOiqZy3ZuhDJsF2BUx8O44p70mae08kwAB1Fg4R?= =?us-ascii?Q?F3Z52NVYTCtcdgFe6T7glNLTgBEtKSKnuwtM7Aur/WrCReeNFp+QuR0gT19M?= =?us-ascii?Q?+21KbRrRITOR1ufKc3lx1uAxeTktWTwex4r+Kor0GpHKlKj2SFT+M0T6cPzU?= =?us-ascii?Q?ZqEWWtZZK08GEUSm6VUfSRnVmraADq4031+TY453aMXNEqguH3SITv7M8efX?= =?us-ascii?Q?XA9tmE05O2vGZADmVDW4DQ/HywdhHZ0DbB5ROycdGxzwEXE/QYP4/Imf1o9S?= =?us-ascii?Q?aQJdj1LZlQIe6zVXoYtMMLlFdj6YqGDaAC6tEdRUryLOachagSGNePYq2i3U?= =?us-ascii?Q?5A=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b49bd18-e9c5-4ec7-25c7-08daab805f2b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:01:46.8891 (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: o+k6trMV5HJmpaKOCo3B3LTw5HPBesrpSPdrHOy/C7zPLSU5jjnZCX7ri2gMAQXfh8/M/e7lNdACJyWPetHoYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 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 __subflow_push_pending(). And simplify __mptcp_push_pending() by invoking this helper. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 95 +++++++++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 41 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 7d5f89799c9a..817e539d1d12 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1480,12 +1480,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) @@ -1517,61 +1511,80 @@ void mptcp_check_and_set_pending(struct sock *sk) mptcp_sk(sk)->push_pending |=3D BIT(MPTCP_PUSH_PENDING); } =20 +static int __subflow_push_pending(struct sock *sk, struct sock *ssk, + struct mptcp_sendmsg_info *info) +{ + struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_data_frag *dfrag; + int len, copied =3D 0, err =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) { + err =3D copied ? : ret; + 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)); + + if (msk->snd_burst <=3D 0 || + !sk_stream_memory_free(ssk) || + !mptcp_subflow_active(mptcp_subflow_ctx(ssk))) { + err =3D copied ? : -EAGAIN; + goto out; + } + mptcp_set_timeout(sk); + } + err =3D copied; + +out: + if (copied) { + tcp_push(ssk, 0, info->mss_now, tcp_sk(ssk)->nonagle, + info->size_goal); + } + + return err; +} + 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, }; - bool do_check_data_fin =3D false; - struct mptcp_data_frag *dfrag; struct sock *ssk; - int len; + int ret =3D 0; =20 again: while (mptcp_send_head(sk) && (ssk =3D mptcp_subflow_get_send(msk))) { lock_sock(ssk); + ret =3D __subflow_push_pending(sk, ssk, &info); + release_sock(ssk); =20 - 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) { - mptcp_push_release(ssk, &info); - if (ret =3D=3D -EAGAIN) - goto again; - goto out; - } - - do_check_data_fin =3D true; - info.sent +=3D ret; - len -=3D ret; - - mptcp_update_post_push(msk, dfrag, ret); - } - WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); - - if (msk->snd_burst <=3D 0 || - !sk_stream_memory_free(ssk) || - !mptcp_subflow_active(mptcp_subflow_ctx(ssk))) { - mptcp_push_release(ssk, &info); + if (ret <=3D 0) { + if (ret =3D=3D -EAGAIN) goto again; - } - mptcp_set_timeout(sk); + goto out; } - - mptcp_push_release(ssk, &info); } =20 out: /* ensure the rtx timer is running */ if (!mptcp_timer_pending(sk)) mptcp_reset_timer(sk); - if (do_check_data_fin) + if (ret > 0) __mptcp_check_send_data_fin(sk); } =20 --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130084.outbound.protection.outlook.com [40.107.13.84]) (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 1F79A3207 for ; Tue, 11 Oct 2022 12:01:59 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OtNMBURhi64qj0Q5adEACVxQaoc48ypnbVLCPs/7Q8R38Klshsi5aaqNBetWuHvXIj+c0uO+ezSyz260lWJ+zwgEsjUlKQ1oiRhpA8LodR6bbcNeNF4B5zP4p5e7ED5+0wYrb287qj8TY/6uCDrAMo+sqpFUjRZpnHqC5Wjr+SNrLeiSzZU52RkS/5Rc1JBA197Vjp7GUR5d0cBzrEVyvZCrc5lDjyy9Exb2hAk6dpLAs+u0V8gmztuQNXvgAhoTuLxA8BPeWIAtwAq0YgZCjomaPAd+Z9VvcHyHV2rOaZ7VxUoIy/3Bi4+zFBXPfkKop0wyrf4dlwnMJ6RwJC3hHQ== 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=KBqcC0XH8lE/uvVbkMxs+vy9jz1fzIz72BZrPVV4gs8=; b=jrMxDKggG2dd3geuflta98U+Kq2eRvz+HQers2jHNzCVxWthXKNWJDNIzOPURH1LbQx8XojnQPDbWPN7zs7eKTqb5Kc8sPv8vvf0gzNmNwgkMzadJ8XBgCLRovo1DbwjQ8/PQHtPq7pgIjMWFZJajzNchVFFmiWu8Uw6M3bIjsNsHs8rSulL4q16r539bM98TL068rMunz7q63AvgoAlK4MnfecQpHm8HHvaG9ZgTbHAGCTSvwk7EpwdQadAqnMD2s3YSkhfOFpDw9GIDMS/81eLuguwMGnmEHikCX5eu8YomsYc8QZCpXC2vJFymZHY0/pl1D1NOAS5ZeFwXOUOIw== 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=KBqcC0XH8lE/uvVbkMxs+vy9jz1fzIz72BZrPVV4gs8=; b=fF7kgiHOdKiGXIzs1CqeIDQ7FYUmzoHk7Vnfdf3b14HVbSBKtWLv7KZI0BoRUGAF/cGJKY18Ckf48807FSrzgFqtF1zjjkk9HShoQIL3/bNX9tHmn9dv0S/SIT3M7EUnz+mM1Gd8zJFgNsK4PXhCP0CAO74auwKJ4PCyb4UWU1nNhKGq8fw4mnFWt3Tb6fgYUQkcKDGKQIViRoQtc+lJsO0QPl/YZGbUdecRDmqXZKRqtjL/ZjkWexM4F9VPiTYLn9XU8p3p1fjKww/mB6Nu2HqgiYytm6L+bCvL14GH/nUuT+Phf080v5A03t/3FGzVob9bYevY4MUjMCmmZao8Gg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:01:56 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:01:56 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 06/13] mptcp: multi subflows push_pending Date: Tue, 11 Oct 2022 20:01:30 +0800 Message-Id: <20221011120137.5475-7-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYXPR01CA0044.jpnprd01.prod.outlook.com (2603:1096:403:a::14) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e5b107f-7108-4975-25f4-08daab8064fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dXjqWZTWS9WBFj/lV8Atx/OCuiTBUf+loJRKuQZUQRhCw9rWdvJc63ThHs6eWETtFulXweqUyr7rFdrzNwjug7j44s6/laO/CN2dKPHVFOySSTj6pVn2XJJvy9WD0B6Vab0vRbb+FEvC35wDwS98EHBsDAwsQ3/+3gz/ndLET94nlp+GsLMY7oSsTmQ6iAoX3CdUOZzRv8FGYMHuQhr9aS4pYcSARoBDAWCqvWU6hfAVaU/KfPxipnHmxpRS+snDJJR2wXzs6oei6J1oxGxJaSpt7RPoE6hyHlIyS6lDo5Vx2FpVgh7EhX/h1Fj7gvbWHySH1mgaBAmolX82f9QTskxgF7FOoDY6bwgD+b7LWHmAW32e8VXBy1tNNaOHMZBSMJ+OSgSkHTsmpu3ts9LFz21fiRUgofdSo9JaiwnrAniREtIPRPtRQzWj70exaqeB6hi0+hfA2I1Ux2/d1ZkVJn2WO9LqLbzNAQQ4U+pdgG1P5Ssx0XVraNUESoBrPJaVsS6bb/5aqVfj34+D4KN5QFp47sm+9AAqm3A57oPTzcZR38VuCcWV23qgTnxg7CJs9LgBQGMvXPAP0RPokHTj91OjPcpkJTV70qS79MTqqxqnYEU9HhdPpyr00KjPurDMsQSMEguJQqPw+wjHA98i3upY52+v8HMVcYptQgSMBmf/SDMgs9qRws2rPTLTrxB3vx+4r5uQfvE7+W9ZxDv2uEqYnWVpyvrDtXm69NUrXiGSmlpgmiDfok8MDVImTmux X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZAOf7fLGEUZAo0Z3X7zKikMWu3TVLZDNwFqj2yxYXYepDdPTXEMr3Qtflgo2?= =?us-ascii?Q?b0sXx787xDMPoY23DVSRBco95bQHTS9ONjiWwQLupTWJqLmZos6ao/HkRrPE?= =?us-ascii?Q?dtKR3K8KrzyZ9CoAXeR3Yi+qsfFRSl2ywl0PKN4oO/8a134w73HXlXWVh195?= =?us-ascii?Q?swy7iuIByVUbK0XDzWXLvPK2qFxghVLhY/CxVd1qA4gqEsTv7QvgDR+gQGwx?= =?us-ascii?Q?uJtbXkjat6qavOunRlOhhnCL3POLiTxIaETsdbky6+/bJJTduqoK5XT1Cg+s?= =?us-ascii?Q?NcG/ZV1+/ISKVntYjtVQNmNlpqKy21mrdoPq0ScCy+GeXsxhjjA6noHJCEnl?= =?us-ascii?Q?YvBzM52BhbYnmaiOMJZzevIm5hs0TIYgSR9WGmrGksZvRAAZFdkNHUCamzWN?= =?us-ascii?Q?vn9ohWUurHS1ACucLhqmLql3DyyvSOGRIwn+KvuKOV0huuLCPxojM7RgHhRu?= =?us-ascii?Q?tLcYBjqpz9dDFnu5FVWfPrM8yjJLPjVj7l6/ZyRSvQNWO0omihiYQt1vZRHI?= =?us-ascii?Q?KBFe0pKQBoIIyDCje+iPH06LKJpseF2J5zkwfj8ouPKYlv1phGCR3FWcMNeh?= =?us-ascii?Q?kgWpXW0vGtVa0mox0c3UtabvRc75mp5UnV26UHycdNnNoyyYOt0ZakTzhTAl?= =?us-ascii?Q?D2PYMezqBURPrch3kAUYbq0mSDuEi4aa82R3i4s+d2VYhmEw97myiZTCKxb9?= =?us-ascii?Q?ut//QRxBiOWrLLccdxkAcY/BPmWXxd5Cu/VDp/Oqd7pSM3ShE5fepdt+T5ka?= =?us-ascii?Q?oQvYS6YickfDqacRkgYN5U+HO7YhJALKgfuKP3PtbFUpEHMQNnJK8o8+JDAD?= =?us-ascii?Q?eA459tbqZ/kimAzj9I4GbHWrDtjY18X2aL0QZxR7eOwOdaUJ8jb4YYL0uonT?= =?us-ascii?Q?yfL7oSerLvPOsK5pUX8Ca6R7x+4+c0rCuwHq2cOt9BtYBYgQnYCpB1ClvCEK?= =?us-ascii?Q?R67+jAkzQOQhKqdhmt+77lEnl1fgjHU9Sz+Zp+Qkw9OEGLeg7NTR/0NKZjXm?= =?us-ascii?Q?idN9EOQ7H/cMjbBRQCYWsi2Pzr+MahyeIVIZ+SP1paD6cQlp3p/zMoo2lmQU?= =?us-ascii?Q?mWYnoeySnBCqmUc7uTCIanKXCto6exrYxIh9oXTXpub5ukrpoV93gSHhK7+i?= =?us-ascii?Q?2Kic2MFrqnmOlf3FZtWPhHdUHeLcvTfbCqscLvNF1jw5zodYJPXCvB59ODzc?= =?us-ascii?Q?NJCT0zwp228yVaNHYEYXzwkhLv/lMKWOQPwfzbFVOWweyNr6X7Juxjwi5dld?= =?us-ascii?Q?I1S2XEakbCJMZV5Z/95GdcXzwOhe5rpSWW3PD/Ge5CUovGrhedLhW8KOKSjf?= =?us-ascii?Q?tEeeXnzdqRN2V5LEBdjr1sZnwuENeTEnUuQLZU9Dd4EejFVCXUQlqTqbG+pa?= =?us-ascii?Q?5kY/1Gh1/OR2FNbzWByZHqj5+ppEZcC531WbLpsXCY2uFxZ5bum6s6ASSRJS?= =?us-ascii?Q?U0ZO1PAgyhDfq/J+ds/BI3a3NZw6hu+3RFjDn8pZRXvE2Z2JTDzX4VOV1GjZ?= =?us-ascii?Q?KShCGBiBW0LkJiOHJZIBvC0/pG3awqVCg27v6JNaSjVXFGV1SWElBOyp7XSM?= =?us-ascii?Q?PWXjq9h8nbtYMsmgpc2ZRFrq+QD2Sw6pPNHMaHpruAflePM8/PLKNX/J60rD?= =?us-ascii?Q?2g=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e5b107f-7108-4975-25f4-08daab8064fd X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:01:56.6071 (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: cFMbIg/c8jOADNGSmroJ1hiE1DSIyboWqExi5HgBFa9miQ5o1NtNZT+bWkumy0y8NSkFn4QwX41/OnyRoPpAPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" This patch adds the multiple subflows support for __mptcp_push_pending(). Use mptcp_sched_get_send() wrapper instead of mptcp_subflow_get_send() in it. Check the subflow scheduled flags to test which subflow or subflows are picked by the scheduler, use them to send data. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 817e539d1d12..86ac38d10bc4 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1561,22 +1561,30 @@ static int __subflow_push_pending(struct sock *sk, = struct sock *ssk, 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, - }; - struct sock *ssk; int ret =3D 0; =20 again: - while (mptcp_send_head(sk) && (ssk =3D mptcp_subflow_get_send(msk))) { - lock_sock(ssk); - ret =3D __subflow_push_pending(sk, ssk, &info); - release_sock(ssk); + while (mptcp_send_head(sk) && !mptcp_sched_get_send(msk)) { + struct mptcp_subflow_context *subflow; + struct mptcp_sendmsg_info info =3D { + .flags =3D flags, + }; =20 - if (ret <=3D 0) { - if (ret =3D=3D -EAGAIN) - goto again; - goto out; + mptcp_for_each_subflow(msk, subflow) { + if (READ_ONCE(subflow->scheduled)) { + struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); + + lock_sock(ssk); + ret =3D __subflow_push_pending(sk, ssk, &info); + release_sock(ssk); + + if (ret <=3D 0) { + if (ret =3D=3D -EAGAIN) + goto again; + goto out; + } + mptcp_subflow_set_scheduled(subflow, false); + } } } =20 --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130042.outbound.protection.outlook.com [40.107.13.42]) (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 238AA3207 for ; Tue, 11 Oct 2022 12:02:11 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jvNYILZyG3l6FiQxIWam1p6297ME1Ot5Lb3som1wFgd/Bcahi40jfhSC4rWvZepApsojTu9cXnHT4z3JKrw0kByXH+Ogh37tvkw7scGBy2AM50ER4x42+BZUXvaRemwxUK6nIeUVr0Tv/bMm1OIZ8rHAQ3dtU9H9s5n57uPsaexYH7SOyyy3K2jHCA4GY82BMbjXR5p24kbrooZS0MabDf/GOBQTguq0O+gqb+cFscCZbgRndzZFaZbhM2onvpvfDZuQmLiCvE3elY9AhfxTqMLgp1I3IdOeyWMRHgi5nT4oBExdAiIZa1vIImJk895vFg0FjU91FrKqVeR8BQSGFA== 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=SHVTC8lzTkswW6zaA2ecpn4GIqThVEVuYjRMuZUQDFA=; b=JgSqnjl+OUVu7pqFV/ujnotwbTffV0e6i8dyTCbg2PLq3IuKycjdBYJnCoccj7O3bJkPg0mBfiN2rGZNK8R8c8Ve2AN8CeL+CrNgLko1cxBrhrnNrYowiQ2gSwJQ4QcRf83ov/z9nrLge83Cld4pXtPQJoC44FM0gffz2iwDTzd/BFrbmPebgdDOL0qnSEfW8N5rITPzYGh53vHhKY5E50z01aaDwRTHkUzVlzLJNV7oT1mjE0ybxJHyRvTcUYjed6Q1PJ4Ykj/yqPW/hTJzbQu8tX0/stzKv8ZjZQby4LXD/35390/b9rgK9V3jxQ9bX4Gea2nNYo1rkfZdBspR6Q== 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=SHVTC8lzTkswW6zaA2ecpn4GIqThVEVuYjRMuZUQDFA=; b=IJe0uXmTrmqVkuayZyOhY7WjXacxKRPyvMm4pB0hb8PZ8bu1KJg16PsLxDa0LI2w13KlR0OwlyEfmowsGfZD0/2wLokD4urTR49Igcg+O4ydOVbGCHuHkyGHP3WfsFBi9zimTdCDIOb448RR3WVdxN9fi6oPZfzeLvg+xCOPlYLPEvn2hmzOxw4grda8CCq6aY3W2gz484t29bOtQ28lPx8GxGj7ipBJNPOkjIeesZr6BGO0bx7G/HG7cjnw49pNtYML/FF2ZL6zFTM1Gosb9qcTysn+MmN4uRvUKSei2dM8nGeRJMRNrdtwDr4TXtccPFD5O7PPRCW7KhF4boUvxQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:02:08 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:02:05 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 07/13] mptcp: don't delegate sending repeatedly Date: Tue, 11 Oct 2022 20:01:31 +0800 Message-Id: <20221011120137.5475-8-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0113.jpnprd01.prod.outlook.com (2603:1096:405:4::29) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: f528dea5-de7f-4ace-2e71-08daab806a53 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jfiP3ObCVCEqiI+jynTkjhzUSWCWDHh21WGsZFl+GO9YJCFmz4glefwnyUzAipgUrkenq78NRl6niqTtre7NRW67fXEaDePlrZem7VkxEfT6T411TncJrgvrRCjVeaC8MvcTvonHwV+EgnXOSS5byx4KO5u3u6pr/ykcSBlOrSgV8vVMWHnoLid3MFcX/RE9Sczer1KtaY+SdHbS/8WXcSS7AgNmNy8pUDM7FbZWJWX/iqKqjky6YEKtxxm8JWqAch/9pnCuWpUHEdBS0588fu27uaOyDBuMMh1tjmGJVEhLgvgE3be1ZIgDC/x3we9Hb31ys6K1jMneg/cU6BX+4YpXNijfoZf4i8nlrBhOrWjjgLkKi0vXtsAoryhZlh9Ko8WH6pjddco7EDFRN83uzhGcT/5m6jSONzpBQmsijQB5N9mDVfFNpHnx8HZnOho9C1d8JZCizK0rsQmsubpoO6InvrmvsVWuleIRcdBPEOC1umxmQ5sVeikpszF8nNqiNg2hzm1ovuxWEW/p+WlteIpvll8Cz06SnXS0is5OF8F0Hyv+8b3aLmzXomyk6ZrxBCkzUFGVT0hV6NpH3HDobe0Y4L9ba/foEP7nFc5Yx5N9Y8DfDtE7ksUeTAuLRYrn7anOpqk1EuTyd0t1S4PfFoRctNIg2oGNS4KwvTZpN6zC4h/Un+KVqOJMfrasXKMXVq33tn0HvgUohncmKlmawVXz4EYMK+OfQKzzU4k2BlayKbvi1FU8OSQJGOr3qQbc X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BLbF3tQ4riia1/PzCKUOnwgERq8dohw2HhTePd4IGqzpn2Q5uaUSPkM3d2Er?= =?us-ascii?Q?TEIYEDb294GzkJJRuwhSmjR5HLp2ofnS74dnNAGpcb1+nAtq8d70RGaIR6hr?= =?us-ascii?Q?PtzeZBDAwmJlNLywQQ8OdaVRKrm00FBiRuCRia3fGc8HFBZAQVrPQTOq1qDG?= =?us-ascii?Q?rLq9WTXK52o5hdB7Ewm1yepAubJfgAFMceW4f5pxXamUcwkwJr2VOaBmqlgZ?= =?us-ascii?Q?+tsCSA1Qhzu19XvIQIJwff/AohiEwP5CQEDcvTDCeXqS76dLfUgIMxPXK0bD?= =?us-ascii?Q?5Xz6XF9ZYn1F8ROw6s4y/hyPZohPteQ53pW9ywmYLg7wt15wJb9Cef5jTZo0?= =?us-ascii?Q?6NSbfLtO3is4K0tpLFFqYJv1EncV5PudWT1nsBcE1tO3gt0jO6/eXmFvr5gm?= =?us-ascii?Q?zTsBKYsUxC+4HUKzUo4b+K/E2akTMkXqKes/AQwJiBrGJuvczb8LX4Oh0wT2?= =?us-ascii?Q?VDYkl+grHozbp6C9pCVn1vQY/RxusKFvl5BPtkMPHY1nnrrzPXtCTw4IoBQV?= =?us-ascii?Q?cUZNyOAweNjBW46qrM7/i4El0dNPtzz37pPdmSv0CJSAS5xCVEK9fvLjwPBu?= =?us-ascii?Q?xD7HoqjQEG2L+hXwxfCKhjri22w6d4HBrwyFyZ3610Pn+QhYh+nBc5FUq7qp?= =?us-ascii?Q?IV64yk4/jj8+S/1fyq9sAmgpxy8CE52KvukLomOcE6rVwUFtG2jjUCiPEpuB?= =?us-ascii?Q?6MBWyBxxCZRYYMW8eOmFFBacl5oGgLUGB6wwCdQL81jZdTshdVZm9F0pkWWw?= =?us-ascii?Q?vvPzEBdzQzmwmulHhmnGwCnnxF2UBnoNb4HfST4BgxMptBSMW3EpncpOn5lm?= =?us-ascii?Q?O2T0vOWNqHQxB469R7iCte1T0IXwl+HQjyg4Ysa1joFcwwp5APs4kLLV5HMA?= =?us-ascii?Q?Wmv1C0zO3Gd5dIp/IyeTrT/PDwLOXfFC809nKKnxU4U4ULIKb08dPMezApPn?= =?us-ascii?Q?9lsZqGu1+YjVYDwCRKz+ITHpeRfns3ivG0FjRxvqC7LAkRR16cRavi/QTQ+1?= =?us-ascii?Q?a25/TIfllm0qzreS61wSe2MUCuP/fGklQLWSNI1ktp+J4OxkNTS28rf89xXq?= =?us-ascii?Q?Aye2AXVcI6dfModA+jrLAu7pT8tvCPedG5azlLmLg6WulDLlUv2RaGJU7sMA?= =?us-ascii?Q?pyn3h/4XVbfOzvYOsNBZ/hkapR9s0CakoBJHaFyg/mhJtv8nFCMLbbWZ4uho?= =?us-ascii?Q?CGWld12GXEHOFEqb0OlNFEQr1uCaEB8IWUwYo2/RAyS1Hr+KOYxrvBmlBNE8?= =?us-ascii?Q?BnYrlTysxKzbYhwS44/87fZhrJ9IFd/29SIUUQMnJBkTHEC8vdFpDv3L3K3u?= =?us-ascii?Q?I1WteeT4aEGPCycBRMfumiBFYHm7oLbuD9FRYRQncba2jS6b04y7TLpEE+5P?= =?us-ascii?Q?E05gYPr0XS9dpncxtA+UM5LbMei6uFB1CdVwFK9qQtc7qSTEU0f765hl2+UH?= =?us-ascii?Q?Z0u/eRIKnpmvanQ1hapRGJNXRtJbaytJaXGGvq306Seb+0BiAMtwnJ2MgWoW?= =?us-ascii?Q?AXgTe7TQh39U24R+gBxRIW0H5sVmZ6wR/Bv9sWuCwJtXbLTWaufnPbCQkb3g?= =?us-ascii?Q?s3AnEt+Cs0y1l5qIDF28pL95y4DV3GE5oaP+qAv5pwHGg3cx2wXALmeq26rF?= =?us-ascii?Q?XA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f528dea5-de7f-4ace-2e71-08daab806a53 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:02:05.5283 (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: SkWNT8pHFFKXfMrAh4ZkYhdZmV1rwowQpRy4RrCzgTNRgPInBOPEdPk9YnwyrauToSCHWJj0c4/TcwRfcAAiOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" Do not delegate sending to a subflow repeatedly. Only do it to the subflow without delegated action. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 86ac38d10bc4..6f55b51e10eb 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1600,6 +1600,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk, bool first) { struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_subflow_context *subflow; struct mptcp_sendmsg_info info =3D { .data_lock_held =3D true, }; @@ -1622,7 +1623,10 @@ static void __mptcp_subflow_push_pending(struct sock= *sk, struct sock *ssk, if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { - mptcp_subflow_delegate(mptcp_subflow_ctx(xmit_ssk), + subflow =3D mptcp_subflow_ctx(xmit_ssk); + if (mptcp_subflow_has_delegated_action(subflow)) + goto out; + mptcp_subflow_delegate(subflow, MPTCP_DELEGATE_SEND); goto out; } --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130045.outbound.protection.outlook.com [40.107.13.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 B772B3207 for ; Tue, 11 Oct 2022 12:02:17 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d0+D9yYZOk1xC97LCLawVREbV1VY8BErZhE3hUp+KuwY71PQZr7IU7Ng8Zqasah3WHgfAkBQuMzunL4zN+npQmxg/UgVUyk7k+/l9uqN0ChjKJsRdUSwe97is8hPe1DNIfup8SgP2KeVC2MvqHzzoryQXLqk06XdfC7qBCYB12jVCQQqvZKN3/oJheeMAIFfBXnXrAcqqjxt2ZQbaDj3xCe1DLiR6GrYflo/ojasPLpr1QxbfvYLgz1UBB2j+F2jS1W/OlCuALylA05u1KEA6TLTvGZ1VseVrDKA1kkKVL0PqO4H9rzSKPDeXVg2hGdJSp8GH6W8uG/z8syrei1JoQ== 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=20RVBhpRQXhxUTJvHjXUpXRrX2qXUF4NiXAZFWpUtgQ=; b=dmg6ULN8ml8zqbbc2T6a/igBiDJZ8hqQMjuME0SpX6rjkGHUALH4JA6oaermt8v+YAFT5u4uEHxe3UZ3vErVC2rdi8Wx6I0eNdAy4hR39mO3vAy46ba/p1DgICyLG6YEqkiBkljLo1pdAWGlaT6GABCOMmZBLk5xJc4tlAFdt3TSvtQWZ4Dn8aOh/OiXakuATsudNyGt86hA31dyu7+simhTLmSZjNpvh9XRYIsdcR6lnsbRXoBVPd+PKF5LZ9Ka5Evk5zOflAcgonlf3Ufo/nz/2NQWkVmSZLv1fUnN71uGL3neHtF38RiShbhkS8HAtBkh3Gk59bFI5WOb8gIamw== 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=20RVBhpRQXhxUTJvHjXUpXRrX2qXUF4NiXAZFWpUtgQ=; b=p8IpF9SLitrffWCenLVfiAOU/3OoDpfRj/zQ5s3R2vngFNlRShdFVYarKOmqWPXNq/f2tiYYz+4Hx1xZsjaIZLahDfJeMRGYn4v0m01G9Y094aCwRjiyEbRoaFlhCy+GCaFd1Ejh1Ec4CGsNwmB75su1B30iSCjC05f88bgOkAQZK7WO3nxW5B0GNk6IcuF8LZGPhLQ1g0uLMoNggQdBPwRdvBWw4Rv492HxJERlAnpdsBrsc7UNlxqZj0adWxE4u3jkyMvctmHJHP7ojSHswSD90VykdXC7G3jkWF0JQ/sHEQxgLayz/RT+NvVagzPmPZNRGLnqqU4vl14Zn+ocIg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:02:15 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:02:15 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 08/13] mptcp: use msk instead of mptcp_sk Date: Tue, 11 Oct 2022 20:01:32 +0800 Message-Id: <20221011120137.5475-9-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0232.jpnprd01.prod.outlook.com (2603:1096:404:11e::28) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ed7cbba-0a42-479a-09c9-08daab806fff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zD5SN7W3oO2mjT41loeeH3yHgd/+Csuo5y8q35jFWYXCtWaLEdvzXwBpOB2HlFSxGv6ukL/O21llEEg24zOwGNdCX7CNex7IvkGiWHDyGUznRgq2geOlWk7xd6Ykz8k+/6H5KjTgBPmENYp+ktMUgyOgKYVtE0n/scHPciH72WnFBQEkGWQiiHg2Kgtu5ag2EwnMs02VaHf/GhEaUtdAQtlKQBfOI0wDQXB0U1TGN9S6LsqeteLIKtoR6hzuyJVeAwOWBHSjs/hlAkse/NMWU9hs1RpNU9+RbE6bOK3Qme2ESq4S/NkmrvCIxIrlYaA8F/vPtM9H/GwwykAHW+y2VQcz6T2CvABtPRXvojcdsXNkCI0pC84Qz96e7fu0bP83epcFmdteKG7WhL7uaiSSmEjxydVQWYjJ4RAvsc46UaVMiHcPitZQFwDrN/34fvmsj9vMIFMfDPkSU64k2K2EcbaL3U/GJcP6d8UOHcjj/DAUVvBGSylXHPsqGyi/NQQJZi/i7r+GMJ7Fc//1C6PtKA6ZcyopsCDpZHseeu+fzB4H2813Y+b8SFLp/+S6I1QOE5S+8A6cM5NcmpyG3MP9E7Zo5hKUcKFMPZMNRDZr9hNTTh9XMnyrzT0aAOGOAuVhhofe2E9CPiccxCN05G/6NL+QhImWH5RKGn06A7FsxQ0JnuQcMemQP3EUJb94pQDxWN6exd/p86oGBUkcQIy1MEFyTLb/5LXcvxQSXMJF+V/Be+8ds22aB+XvgPIn+sWZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7e48HU2Y88vC9iDrF4C/b/laxjnNcEKA9ItPnegmpfI3JYsadLH5kCuleJcP?= =?us-ascii?Q?SjQJIUy9yaaASgNLu1+rqLmUb66sKCNUsBvlvpq/kQbpJZ7zr1LCURhNqasw?= =?us-ascii?Q?D/abGcnAC9hl1yerkGd7z4QT+2e+VniI+nYqT+qVi5Bpt4NTMAYcXHBIz73s?= =?us-ascii?Q?73XahPHb8RZszIARNxoetE68x8sEiCCeUe4UKdSlL6M9WU8IZLfjyFrOhTxu?= =?us-ascii?Q?zyiTbhq7HtFrYcwEKF62e7nKWI2WRWCZT4lHBL9/b7Oes1F8o/KOcnhZt7cd?= =?us-ascii?Q?nmMP0t+pS/uoffCB86KLvW/KVSGGPA5S7hs90RC0e3MVj6AC5ADysPM7chUY?= =?us-ascii?Q?7i+tE6FoHEzBuemBSpKqe4EasrxJnGdreiHT1XDWlyOxjUH/SlRxlxb6YoVG?= =?us-ascii?Q?mRaj+T1B8MH+hyTXhtsZoEbpkZhFAP7OyGLPAlZrk+e/XepPFPH+SZO5fD4o?= =?us-ascii?Q?gVrEhpE6deF2KdM4J8QuBia7fJ4EDaMa7VazIvjzasiVkfiDleOVD5kUgE5R?= =?us-ascii?Q?BD56NsPIKZcEljIC+VQqMU1VF00oP3k46NkAlMdUdBkeDuk0jAR2VGd+OsOm?= =?us-ascii?Q?pM17v9i3kXnqw7lPP0mh6/LAkxlnyv/D783JXZUue+XijDctKKKyXoyvGiah?= =?us-ascii?Q?rrkmjkR5j9/Hn1m/hYNTO5Sn6HunLUQEcXfcgXk9WAyLe/MIf5McFVHxfDom?= =?us-ascii?Q?m3/5Dpc0V9coDLXkQGdk5v1rK3z7fzuQAMttfNR/hEt7rjg3VK8PoCn31K1O?= =?us-ascii?Q?EXFnL3PF9/UGcuF4sj+//cY33EAnHz7wsMvT2xuo6/zBefkcwXu4E2D8iIVy?= =?us-ascii?Q?14qBMsQqXu6i/kU3WghJlWwwIh/KLf5KiL2DW9Dsxn8POfIOcRwoaC/pBOgg?= =?us-ascii?Q?/QHfzHxqqCotX4V7Q1oiTK+2seNjOu8WTyweLWhZo9MtMYl0/CsBpd2wrGXs?= =?us-ascii?Q?TLYWtT+0PMlBHdu8q426Ajr8JccNfUEcTOobUnM0zaupjTqIxpxtdHwgnOq1?= =?us-ascii?Q?+KCt2dA7Jhb6USnOvJ6C66vCIUwtvZ2IGHu4arP1PTjrWBOY29y7iVB8pVWY?= =?us-ascii?Q?23b/Qe9SeCM18k12Boxw+CWrW4aowsGKoJYvQyotq5AwBVca3RnJu4IMsMI5?= =?us-ascii?Q?JsoFh9V7d73mD/Y0nOw+W7+bDo5pYgZxbwY9UAgiFSY77mRYEyIkHDQB/hh8?= =?us-ascii?Q?KXvy5neZSho22AGLvobQqXvGDWXDN4RhS4TxlmM8rx98iqFAapQpcRaDpnM/?= =?us-ascii?Q?3J9T2mzHhvg6BVVDt/cVBRKKTaJoL+q2uUXUb0vtC/kMnpwGmAusUaVcvHH3?= =?us-ascii?Q?blE16ZFGFMGTJ7W5CVRWn2GvSlbqs8oL6zNYmq3SUR5lz9uQuWcruymHEQAs?= =?us-ascii?Q?Q2lW2wGDAuSmtp1fPAIhbDkdHn2tSORuVC5be4xVZS6472vsQyJZMGebQIsP?= =?us-ascii?Q?5B3/dpNhw6g27o3D8V2x1SX6fl06dT9yJD+cjWhY7kZte4QPgLQfzqDyw+Eb?= =?us-ascii?Q?UfPluT9m2QS1yj3BBOjstt2wpGvAvaZd6fCkEmDq1V0LbKBTD4AiPoOJXNq9?= =?us-ascii?Q?BEHF466/frmoo55HDn+bVszjBfboG84g+RRz8oSJRQ464jLmfI3s4iZYCz1L?= =?us-ascii?Q?lg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ed7cbba-0a42-479a-09c9-08daab806fff X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:02:15.0120 (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: egTX5Exvot4NVNmxPk/pVqqhWR6yCDcdOtNutiypu5rTLZmP3sSSeTDo2fbS76wkV4mE05c/X7QfVJDPIezNAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" Use msk instead of mptcp_sk(sk) in the functions where the variable "msk =3D mptcp_sk(sk)" has been defined. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 6f55b51e10eb..e3a5936df0fc 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1619,7 +1619,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk, /* check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(mptcp_sk(sk)); + xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(msk); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -2255,7 +2255,7 @@ bool __mptcp_retransmit_pending_data(struct sock *sk) struct mptcp_data_frag *cur, *rtx_head; struct mptcp_sock *msk =3D mptcp_sk(sk); =20 - if (__mptcp_check_fallback(mptcp_sk(sk))) + if (__mptcp_check_fallback(msk)) return false; =20 if (tcp_rtx_and_write_queues_empty(sk)) @@ -2934,7 +2934,7 @@ bool __mptcp_close(struct sock *sk, long timeout) =20 sock_hold(sk); pr_debug("msk=3D%p state=3D%d", sk, sk->sk_state); - if (mptcp_sk(sk)->token) + if (msk->token) mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL); =20 if (sk->sk_state =3D=3D TCP_CLOSE) { @@ -2993,8 +2993,8 @@ static int mptcp_disconnect(struct sock *sk, int flag= s) mptcp_stop_timer(sk); sk_stop_timer(sk, &sk->sk_timer); =20 - if (mptcp_sk(sk)->token) - mptcp_event(MPTCP_EVENT_CLOSED, mptcp_sk(sk), NULL, GFP_KERNEL); + if (msk->token) + mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL); =20 /* msk->subflow is still intact, the following will not free the first * subflow --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2055.outbound.protection.outlook.com [40.107.20.55]) (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 52DAF3207 for ; Tue, 11 Oct 2022 12:02:25 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RJ7CqT2dEPkZqAVGHIHBBha/CzBwPEodvoODBAlEAX81ixZ+DahY3mCtgQ09j/YJQSVUOg7YLA9EFelZpkPunpTS5v6v5Jyxd1ZlyuVPc3hFlmfTPBQEKx+a06RfIX7j/xJjf+GBEMusROByGPi+oFTPWTJUocNCi8FfNu4kHECFMTDNUtpCFHemQmXqtfyIkoDvt9t45334FkJ3wi5dpt2wKJsMPOa0S/AotZEd2APFyS6OKTjsVuOpZXbKnBDU7A+P8ToyFfeGVvWMLicLP55V9rrCHd9pL4b7okOcPYMjEPmjMT4IhdMJMOIJ1kYpODDOQlbIIjnlvlocq4W5LQ== 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=E61NAzzPt64BclmCiEp0HhBHqgjVIhbDgjaZ/KPzI4g=; b=Idkj2yw+NqIgY26Qaw/d26N5TTXT6U6l7B8z2frJ0uxmdXbLBvCytHKEFEDGNv8WPtupkFxkwjCR5BHWhQyZ5X5dgXLbeGYHM9nZ1oiRHdpUHADVJvA+7JoT2JRVphi+xDxpGlUe8kLHXHbL9dL0rdeztJiyKpDLL6vhXRRqLQw4lgNAvgbYQ+csHFfVsujQlbufjmeZHA1R31iErx3I3H0K3wuPdDEuWCKuDCM6h9vDTtJfLoW+dDBvqPIxB65h8qZceN3Y13Hbm22PI11Cb6dccc2gujotnTvMSqhxJvBpdEU2UUuJlJuxwvEUqxXuZA9liNCkKzDLNHOfF2ZpNg== 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=E61NAzzPt64BclmCiEp0HhBHqgjVIhbDgjaZ/KPzI4g=; b=SjIDVwcgfZni+4ioML2ttAv8Lk11Rh1xgOVwcIIY9bEdUdoNhMhkNlUntPJyx20FvLUexbz7qwO6ajxVC0xBsMt5Jy7ETyuyY50LT1JYu21vRa6jX8wDfWypWqmDvfhPflBw5qjqF9gR1o7+Roe06QOxmHTXYGkhHkrIhoQ1jwlBrRnEFuTxzsKnOZ8kF+RisVT9Ieo0imA8qWPd8k58XYsMPZYOHd8OrR3msMjJqE1LGmrS3gW/zsHiuuAb8mnhap8eKYeCDRVHVbcxDmJTJsVgWWoR3IpZ/yS0pwVmpEvXq55PqA3qRjo6EO5vKtovwq7IpRgYstRkfFWM2R/v0A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:02:23 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:02:23 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 09/13] mptcp: refactor subflow_push_pending logic Date: Tue, 11 Oct 2022 20:01:33 +0800 Message-Id: <20221011120137.5475-10-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR01CA0232.jpnprd01.prod.outlook.com (2603:1096:404:11e::28) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: 1ce813b0-efbd-4d3f-9554-08daab807491 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Tztz9TdjhoDpaz/jcmhJEdyFY96g50UevwI9qPqhC76/kHcd0UDeJjbcjoFCgjCV7QR0O2/pXCyLrbVKV38sVLSEusrAqW7pePqwI4XPBw/SxSTQ5AxFcDzlxNouHJeOzwgDtPtcyYOpkK0bMZdy/d2VFTpnsZyNHRAOQIX+OyBMPnzMj0V0zBjLH5gSl46qjGAuzNpy7H0RU7xorhO1iXNqdHzrlB0MXKrYLF0h1Sj+Btwt5EpbddsJPEWNp5Pjt41TaQd+/NUIpFmxpGEmHMRk4VAVlya9SJ3rSFpX2X28K0idLBXHXxRxTXgUayJY7Bi3kuwg8JTNtWYTrxOrWqxM8Z0u1iwRIluU/sf1hiXe40DQji7st5KR+3nbKd3NAE+enwrwWPmLtGSA16JjTCuLgE8d2D9i/PRz5qDV1TVp5816uHmpzxOhjckTsqmzruR+znoBT4QcNH1Rh6CG259a2ycc6onbDaGs1o2qwYFiimijsqLyhWiWt2r6buBA4sEGaHODv5pEz+dgJoLFX5/CMFWF9JG6krHYD+uj7sJC57W0CimFy5yVWko3SirrZeC8qA5/b26jiPOB1za9iGPkCyTAaFr8sKPDA3hWcQKD3bdgSM1lOzDhjWI9a5ZXz5GtVrRfV0y6FiePQ8PA8BsC0n6XU4xCTzfnPSiAxgebZvjEqbr3SciVqtYaJyZFSs3nq0RuWGTaQbF7DWDXnwIEkom//z/UBKiy1bBNvk4oUUoUqfBij3bCFavBEOvl X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qvLJNlMUk4ajSoFSk4RWhQubcEPCVLYXBGs4MyfGrFcjNHWK2eKpcR+a9wOq?= =?us-ascii?Q?F+vqsUCqz6IVNuEetCuQlqo0EiY/Z8PUS+8+C4AmFRakL3Jf2/yGLuVnG3hS?= =?us-ascii?Q?gQQ8qKYLHqOBX524mqde/VH8s1AU1HaxnTNZb5uiUe7LQ0f6ZtMQtkI1/oT5?= =?us-ascii?Q?IfqAgiCz3fIrK9Ahtm1qJWQXU/l0CbUSi3L2XCTyWeXKAmKuQN9zMrELTPhc?= =?us-ascii?Q?yNVV7pvlLrBzRFHeQ7MWmhc1iy00Vn4F63XWqhPKkB+12NOx8sXBRUexT/5G?= =?us-ascii?Q?BRWudvrViN5luLAKA4etbDx/BYIa12eSH7C0dC9j+1aVximT/RHpwZQq4dUg?= =?us-ascii?Q?nrPISqm3J/mgxesjyfgq6gMNS3qYMKs9M55OLQgrXdzF+gTAj1HPoAO3KZ/b?= =?us-ascii?Q?CSLnkkSQaEMYTmxo+416G8WokD8aSLUaqALYWbE9os9qa9WAugoWkyC9sciO?= =?us-ascii?Q?L3fvoI3HMHoXZvMtMSvE3UsCWPUmCjOPGrVNDayzEft12Es/TmoGiG8taq05?= =?us-ascii?Q?onDg5X/fp4ZxnCcYKE3wbZVEg67gOUOVA3ES88rAQsScfqfzeui6veHHQC4/?= =?us-ascii?Q?jTyIZMHZTrVysmx6+NB6Us4zCYPeJCWb0KPPbvRNdMfOt6bFUGSi9Ax/Arld?= =?us-ascii?Q?z1jjXhFBxf0dFzHc3A2llxiy4AQ3XxXFMWBodZhSgx84Q3jLJp0YSJfcyaCZ?= =?us-ascii?Q?DCeZ3qH7U0kQ3Wr+7CId4KvTH8t/l4QsTl272z7zh819iB27lZrSEUT7Rnu5?= =?us-ascii?Q?clKk+ipvNGXuNhUq6TwtvkbVEo0IYVZRfFLx0oT1Q6OoshkyVjLPbSC2XMxm?= =?us-ascii?Q?eQEWmFNQbDUF8TtfPTZhV8rZ/59c6MgoBVlPYCuJc2BYEYpDZlX9QCr9PBiV?= =?us-ascii?Q?EXoDxNUBce5pTejmT5PUsOyKbUGOoNSheybfNg06YDl7zuMNL5ToMKcY1gmf?= =?us-ascii?Q?NHcF1Vz/Kjya+l1T5wnIfpwK0Uw38MByPOR6Wm84VgDufvbXgBdCnyUgaFsD?= =?us-ascii?Q?opgWSv/n3Z/HBL7mQD45etpLvh3h++Q8DJQ1OqtKDI7Ur53wnSOjvxz74zp1?= =?us-ascii?Q?44pbH7oTNaTUgjpnVOjHo/uvwGmLBW89XwzGSrLBUbGDJNgc2/CPn633bg0/?= =?us-ascii?Q?THlqn/+6e/9bIUIcFEG6qgKtw/6rMEtJS+lbHiRV3AeGhUmXWxWgG2fhbc7d?= =?us-ascii?Q?/HeVRnMyAoVNdKT1z8U+c53ftifWa52fMWDfNfJ6Kg8oxVeL8NHGdGYpXpvU?= =?us-ascii?Q?PPZCClcZAk/Wg+SapObhiQot4BNeZ9d4u60rX9h0UDqpFD4HiUUEe8w8Ylbd?= =?us-ascii?Q?g97xBCnttAWN6mM8k7nKLU9V36UDxdohIRfEsEkb83dT7GCaCIVieMq/XfuJ?= =?us-ascii?Q?Uu9NrGXMczdEt8XB5zttsiE8qz5Kwv9ewZEPQ4uea5aFdZxVUIsifbNBLm+e?= =?us-ascii?Q?W0edyCFErCv7rut/327nf57xL6CtUhOr8DyqrgIbdsVMlVtQBJLdw4IR4elH?= =?us-ascii?Q?eNgN/Wj6YnzLb/lGsN3xMBfkL3u6Dk3+TeQ9v8K4yhukwsT1UNRvO/tfDl4O?= =?us-ascii?Q?SYpEgNKp3jBBQBDj+sEAgbisxFPXPEH/2mm53zHgYfZr2g1zgvnmE1Avc7Qz?= =?us-ascii?Q?Fw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ce813b0-efbd-4d3f-9554-08daab807491 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:02:22.9332 (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: 0jiSa64XsjEyPSptXluVkC/vjSgbSmek9jq7xSLc/rXm1cWgazREyzoQ0B5247F2hBdHrUVaWphzMtVUfoqmng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" This patch refactors __mptcp_subflow_push_pending logic from: For each dfrag: While sends succeed: Call the scheduler (selects subflow and msk->snd_burst) Send the dfrag data with mptcp_subflow_delegate(), break Send the dfrag data with mptcp_sendmsg_frag() Update dfrag->already_sent, msk->snd_nxt, msk->snd_burst Update msk->first_pending -> While first_pending isn't empty: Call the scheduler (selects subflow and msk->snd_burst) Send the dfrag data with mptcp_subflow_delegate(), break Send the dfrag data with mptcp_sendmsg_frag() For each pending dfrag: While sends succeed: Send the dfrag data with mptcp_sendmsg_frag() Update already_sent, snd_nxt, snd_burst Update msk->first_pending Break if required by msk->snd_burst / etc Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 72 +++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index e3a5936df0fc..676f3bff988b 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1609,47 +1609,49 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk, int len, copied =3D 0; =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; - - /* check for a different subflow usage only after - * spooling the first chunk of data - */ - xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(msk); - if (!xmit_ssk) - goto out; - if (xmit_ssk !=3D ssk) { - subflow =3D mptcp_subflow_ctx(xmit_ssk); - if (mptcp_subflow_has_delegated_action(subflow)) - goto out; - mptcp_subflow_delegate(subflow, - MPTCP_DELEGATE_SEND); + while (mptcp_send_head(sk)) { + /* check for a different subflow usage only after + * spooling the first chunk of data + */ + xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(msk); + if (!xmit_ssk) + goto out; + if (xmit_ssk !=3D ssk) { + subflow =3D mptcp_subflow_ctx(xmit_ssk); + if (mptcp_subflow_has_delegated_action(subflow)) goto out; - } + mptcp_subflow_delegate(subflow, + MPTCP_DELEGATE_SEND); + goto out; + } =20 - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) - goto out; + 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; =20 - info.sent +=3D ret; - copied +=3D ret; - len -=3D ret; - first =3D false; + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) + goto out; =20 - mptcp_update_post_push(msk, dfrag, ret); - } - WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); + info.sent +=3D ret; + copied +=3D ret; + len -=3D ret; + first =3D false; =20 - if (msk->snd_burst <=3D 0 || - !sk_stream_memory_free(ssk) || - !mptcp_subflow_active(mptcp_subflow_ctx(ssk))) { - goto out; + mptcp_update_post_push(msk, dfrag, ret); + } + WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); + + if (msk->snd_burst <=3D 0 || + !sk_stream_memory_free(ssk) || + !mptcp_subflow_active(mptcp_subflow_ctx(ssk))) { + goto out; + } + mptcp_set_timeout(sk); } - mptcp_set_timeout(sk); } =20 out: --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130047.outbound.protection.outlook.com [40.107.13.47]) (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 D2F523207 for ; Tue, 11 Oct 2022 12:02:35 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jvwGbwFZ2n/zAKXE4D6ogYsbmktzDgYyPCR+eF7e/9kjDWuZh7obtaXJP4NnzfJ+X9UpWwebDQ7yS/YWOXxgQbX9dDP+PrFTFo8HwdPZL2JvhIzRJSG9+nr/WRPmyja/dbXcsmwlHkdoQakeVn+FrHNeB7DY/Gnv0OmZfPUxVRuMVB2FONcgMiv+Fx0uTdpb9lnmFZXDzQ2vz/hvBmS66aYmjiYGWcRP6rYObWtmPAocxHYz++mLmcvd9HynsV9s/jfNHeO1TF7+/WLDmrwgQj4x7VrOtLNDB5cN07h7l2kInBh7EcgqQ3Ib7ySilnstdhS4CRAFx8WQEJpUPsjSTg== 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=E5XmRTxGg+iHvA9Ii+5Gb3IcCdv39LVRNfeDrcA4uN4=; b=U7N69+veQy4N6gfmQKMwDHb3dAUc+XBmTd7T3mtGgJOR4ubh11DaTNTNMhfo4CB/fFkX/8dk0AT9rsoQZ7FD+9F58P+OGvTn9imDu3F/UxdvweimaDo1H4L1CbXBJiiGABm/SYS9z4iR2I8fLtdx+Nzy3bCPH+4OAAbUI6rVAyuzGfOaTb6rgTynUFmGV2chM7WaEctp2ugHEj40PpLMN/qXioRxbGLKR2HlacVTM52GbWclf9onb613DPVC3vs3wxgEhVZeHtKES2IXOYXOtHi5J3LVFcfdJgsH4htfUuzFF4VDHilEemZ9YB3RRGL8tg8yojGzlUl7fCRY9e59mw== 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=E5XmRTxGg+iHvA9Ii+5Gb3IcCdv39LVRNfeDrcA4uN4=; b=nc1ES5/hMslVHaaDdzBIPgvdbQNLiztzCYh6WPXQsx7zx8qLw6Ip7kfzqHbU2HYgGZWD+HowuAve2pGq6T2o52rkUa9tnwJwDtgWbTAQCfWW3rZ8p5mJ55IAwktUZsKQswaFGDpVjS1ANsFDPwKh9Fz167U94Xm0vVLAZn0wDVFd4a/ebQIH2Al9FujdsJ4DYmhySmFbMAFm9GpTtC9X8ljmFD8QYiPjDvLdDnbouuo7YulGT6qz02f4ACu1NdtJXKnL7cdwvQ9/7VrWJPWh6W9dFJzdF7w21eNQVUZKYtMbHDqTrfpiQbajcTsLBuwaPUodO+V7WKo0dPRc8JdAMA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:02:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:02:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 10/13] mptcp: simplify subflow_push_pending Date: Tue, 11 Oct 2022 20:01:34 +0800 Message-Id: <20221011120137.5475-11-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0127.jpnprd01.prod.outlook.com (2603:1096:400:26d::12) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: 430dda62-9eed-49c4-18bf-08daab807aca X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fw2y/DjrHLHky5CdpGUAh/OuGFvxmMmz1zjVEN+iKoSF7PNVA2Ek9ojhp/Vh60pHDYH8K8HmE+g0hViP0ErhLLVgAmMwLD91W3PsPd9/f+7tWJBln14naFcdb6sXIWKs0S9ok8UzqakveSQad0BywuS7dQ39VNMOGKOcdPv45llN/QWdiLaGnCoxTjj2IsGysRuJTwAoxcZXypwCzkn8sIAMZtQuvvtUEW9qoN27lh1wOx3iC81OECENv0vacaYKNTAp35dNVO8ecTIoYmcIdTRlAv6Nx5zaGFYs6E9Oajhl5dW6coibu8Q6A0MavrxriIfLKSrE88wNIFA8nvGi1GTUOF8zdaelHfOJOIDFtke2Z1Vsprf+N5W4EW6J/1wu8V1kH4dLWprls/R3514zycv+ycZ9882t1E+rT7umOHMvZnywMxBD+ZpCDdhjjmMLz5nywEPn1bDXi3sUBZEuTWdZXmnypAbaQcv8odohPTecPFzeROLxobfwnYWLHmJt2bu1FDVE6XrK9O6kM3pQqJ6h0CAfbBhQL9jIoLqntLRkAzzObZVAUNIpuDGDyUvxIlHn+7fBKh+VZXoGnTMZdzQOMwsenYLBVzq20oEKNB7cMCLM6fehMWNrCxrgM5tnvmm03CnAy3eEVECmQxMJs+GVoMAsor1Xlm6ICfO5r5Vr7I692EIMNbnL/iMJP2/XN3EEfCrtFQbCF3ki6VGo5LlXD0fppdG4rLC27gEZcgvQ0G5W9YjRZ397iR5FPg+K X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?thYfvdWRg16YFFSbUqniI+xrcggsNPAyPbl1HAkH0hEqjgbFOqWP2vMPVBAk?= =?us-ascii?Q?zMr+ZN9gAUBjWkunyyavAN4hYnejVt/ceh6hIIsMAbsj2S2GiQFxLz9ELhLw?= =?us-ascii?Q?i0eIrSobuNJ4mxuUrj+JBR1HRHkgqIeMjScggfAacUQqq0TcC+6jsFhkHKy8?= =?us-ascii?Q?S9nZ9HmuNiUWqxKt/kk6kmytdc7NFV3e4lw6b4/xr3rttuRTGtRkqIKDG57g?= =?us-ascii?Q?Gbmo5BXGPvrFU3U3dTPLcUQ/t/yDNjgDydyXzK2cQz2+zgNFs/VHrk2ihxeJ?= =?us-ascii?Q?NH3x9AJZF/KjG1RxTzgrDMi/sMwxeJ/vV7XAQMUJQwWUk2HFMLwzdTo1GCCM?= =?us-ascii?Q?CbohEmqCR8lz4VY6piTeA9hIRqiDxAAE4yXv+O714OD9tsnjcy6X57kQC1Ux?= =?us-ascii?Q?ljL4XraIfCv3htVde56wHSSKXYhrsC03EKZ1bCjGn1j+un5Kq4sdZhY+Y26P?= =?us-ascii?Q?To/zAiKStYz8NtFwXC7mDpjfl6olNc/0FNCTrAwFlnbdC2W/dwDwhp/B6Bqn?= =?us-ascii?Q?VM6PY0ctq/Egm6168ORn1uWhsjazC8GE+L1tlCilNdzacZFu7N9uSQtkdf84?= =?us-ascii?Q?PKBef1yfISeaCPoXewvwhmrG9MFif0ZzpfPC2twpzBuLwB6A4dmmbIOJCJJF?= =?us-ascii?Q?P8OjOB0sZX66CncT9C4d94AXRodfoKXbObR7pXTz4M39fMXKq6mXcupykNwf?= =?us-ascii?Q?If7HikFH1DvbnR2AU6ghrZkLdT9UmooTe9+uVbVfceuP7EzCKBSRMJYKPq/C?= =?us-ascii?Q?7CdLRZOq3z8Oa27SqOp98EY0pG261Q42KKkKrYdKYpeflWz0oBlj5o37lDqL?= =?us-ascii?Q?I6/dSAYeWsXcozDAlWUllcJxWTYobN+8qL5pHPdixxIMUlkoReoAxvviEVa9?= =?us-ascii?Q?7DNgsOWazj2ixEaMK7S1HK4dbKCL9OzuBJa270gcR+C8XRLhbCuBSNfza50M?= =?us-ascii?Q?ogBQ8H6uJtVgDUJHCABSV+A4Lru3xQkGm0vR9wkVmYQeEmy0XZiiiOYJIKNh?= =?us-ascii?Q?0p7rSdhrdVUn37/aSWV/LxHSubHr9uUU3YEQ4gqu2h7L6U5s5FqtuBVNGFP5?= =?us-ascii?Q?tZ5tgw9sWfEKrUKSM8ervh8TGuYvU+l40ShO1CrjTeeEI9WvU8gLVs4RyHvF?= =?us-ascii?Q?GKH1xGhTbnscZIoTbmyVnvu1edwt6EGh0JAaPdoyYOqK+afmVHG8433AQ/fG?= =?us-ascii?Q?V1KGyIbLs1IEF/KMdx2pft6isZhkwEffcMshzVylXQfrBFLXzk7p58GSYbD/?= =?us-ascii?Q?HeBZQFMA3Qs/n+r3sGSqP0bgVBLAer0aQDhb1z7LyBEWYzvuvCemSaFgzANB?= =?us-ascii?Q?AXLVOzsrS2UsiPpdD8pfJxS0X5qX+h0WEtQyMzrN84OAK4DxrlpORNTL9MHz?= =?us-ascii?Q?fm3+SMTePQMBVx4EWdJ7DRlMp2JTvI0U2eYYRUmjnK2f0snf4CFaAp0XCWl3?= =?us-ascii?Q?qX9JPFT2V+Jz0galqVk4PuJrnWyuJ4/zP2z5xMeaURqjYqnyuEuK2HESN5us?= =?us-ascii?Q?BVO460HZpWN/Qie6G9aMmNrdLa2x2j5kZNvybSL8j5FHvLFhWVAtyXejY1/c?= =?us-ascii?Q?1M2d9TqYZ6osTIGNVe2AZob52HxSCoz53jwfqlzMVrCMDt7M/+yRREB3v2bR?= =?us-ascii?Q?AQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 430dda62-9eed-49c4-18bf-08daab807aca X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:02:33.3543 (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: uRdsTwlpyhGDAk7O2mD+vN8PCnxiJn00mHgIk7And4zRPBXXOL85Awn6wpGk4eVMKF07AHeftQuSv7d3Y1Pgyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" This patch simplifies __mptcp_subflow_push_pending() by invoking __subflow_push_pending() helper. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 676f3bff988b..e9eb1da42418 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1604,11 +1604,11 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk, struct mptcp_sendmsg_info info =3D { .data_lock_held =3D true, }; - struct mptcp_data_frag *dfrag; struct sock *xmit_ssk; - int len, copied =3D 0; + int ret =3D 0; =20 info.flags =3D 0; +again: while (mptcp_send_head(sk)) { /* check for a different subflow usage only after * spooling the first chunk of data @@ -1625,32 +1625,11 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk, goto out; } =20 - 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; - first =3D false; - - mptcp_update_post_push(msk, dfrag, ret); - } - WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); - - if (msk->snd_burst <=3D 0 || - !sk_stream_memory_free(ssk) || - !mptcp_subflow_active(mptcp_subflow_ctx(ssk))) { - goto out; - } - mptcp_set_timeout(sk); + ret =3D __subflow_push_pending(sk, ssk, &info); + if (ret <=3D 0) { + if (ret =3D=3D -EAGAIN) + goto again; + break; } } =20 @@ -1658,9 +1637,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk, /* __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 (ret > 0) { if (!mptcp_timer_pending(sk)) mptcp_reset_timer(sk); =20 --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130087.outbound.protection.outlook.com [40.107.13.87]) (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 408A83207 for ; Tue, 11 Oct 2022 12:02:44 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kjwvXqqjpMk5ccQZcjgZjae71MhdoPAbYNOUx+W/s9x5gggx7DNBJX/3Y1pXX7xrrSqQEal39Y8L0nk26w5omGcedh+Sj8vm9hp0E4bzZ4VSgffEUELQ5WRZlRkfwvfoZDuzsdXm5xkEHvGLIC54cKn0B7XbuXXu0CLdlZ5YtF6TuQ0uL2amZ9ZfVJtl0F1AwQXu1kd4YUS4rV8Ll2Vd1zOKgGfoXaZfuzYhAnGRJpAQW/DCflZcqIlib9m8y6/+gF4O83tffayEhu88wb1asgYfgD1sgp1Oej8fv9T+lQjZb2czgMRAN4dY12YMY8Sg8xae/4bVRWS2c1HMd4s+tg== 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=IxfLyw3WQFHGcHNWFj55B69d+84127O4kGDE7VUb9AM=; b=mrkjgDUbAw34Len4CgfPWrAVci9fqV8+vnTODAWoKGbRYcwZs3mduj78R1qaW8SCyJLE5AqpUPr/3p5NFTxdVQRc23pMfTh6Z+p/NxiTPdwAD+jNUwyH9SPKzvQ7yfPWccwxS25tLGhVZQWdZiOMNZ6UMxxvCBJDKP87d1VLWyiVOBLfYwBergydb09z7LwnBuaYknlt1rEOknxD929USUeX4cz67KuNHm6MflNBsCNCUwlvq5t4BD/SjzOFW4+kPV0mMPQrfjXy3U2O72VJR6r1A3r37w1PzYfbJne7Xs5t3a17RKoWmSZfxcYSGvgl2b/gS+D/4WMQIeSW8kjjNA== 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=IxfLyw3WQFHGcHNWFj55B69d+84127O4kGDE7VUb9AM=; b=tbRBzijl0qEFyOXLCuJX5mPvnZo5GnFRVsfTtTbf7X6jfAhneGjUoYvDpWM5qhpshKruns2MeySENPn7hDvxfokv5pY1s1mmh1TdGznmOaWK+iRp7BjQatVr8I2THtAnxhzPwyRK0HBpASJFXo3Ma8K2VEzrM99bKqbAjIh70MYLVmBFh9lF+6NpV1i7aARJOhjBXJMmGmNa6qrPFw2cH9PLzkGSvOxNGc49GR0GipcUA0bFwnF7WtnNqg1vIvBML/0UTsG+vquqUea8B2+NYO2+aDGEVC897HQiTwnBbGbsMynfOMZu+PhQg9qRY7jgDRrbj2CTBGAOgrPm8x+FtQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:02:41 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:02:41 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 11/13] mptcp: multi subflows subflow_push_pending Date: Tue, 11 Oct 2022 20:01:35 +0800 Message-Id: <20221011120137.5475-12-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0134.jpnprd01.prod.outlook.com (2603:1096:400:26d::13) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: a4fa4c07-e5e1-4528-b49f-08daab807f8e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MeH1AxhOtRjzAWrJhFpGFgxi+28khved6X1axadwaRplpsT+GR+gilNSXyN7kmTeNpCnnve5UP/lyUOsduz8uE4CkSAMRQNHUczBbtIav6D7wvf/XwlQBAHi0wl8CdzERvXhnpOGmsgdqGPWVei4BFVAei8mpdOo2XNW7aYMVnxKuVrN9MngOVctrQj5lNCPCJVZhklIXWjDMAYFKtHn9bLNxAx3S6WPnLqc9u4YUQk9MX+bylPv66q7yJf1S9tSD1Z9OMg+03ECCeEgm6GstSLiYc1IhUWpsrXNKbJGdR4Vukmp15NwEQb6L5KrYxB+2uoAVdzoeeCgZtIuW5E75D6CjT1DGW4Osv9x75SStE6vg0Flz8EP9DCr1OyhcdyYV4FxvaNCimwU/naQM9Nx+brf3NIYXhv/vsGUNVVYYM10cynmXZo0DREmsP4lciVYPh+1Lc+ttzGSLL8H6WLCnE83+ubu1p/ralgf46c7MTrJ/QMJSkUe0l4IE5Rqvh549+LpkhBa1vP4fE7x/o4tsbGQW6zV7uKPa2whnYatfMSHrnCoz02UgjPXk7wwS4tPdXo5yvPn5XJ9ji+VA6T+WaDoWtW4RoQse5xtdOkZ1A43J/c1VbcnQ8i+ENAkGWUpwH1emaJcvYyQ8EKqVSzfq4P7pmAjDzOXyaGVAWQZ9efbDDNzCaQXNK8K675YO16dZOa/KRswqf0VsFaPEd1BKO1xEzfemd2ZX1yfENxSsDr2GTWuOLtHHaIgJg0ui1Kb X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OMlslWbfqwbn/Ipvha9/Sgbd8jPYlRh8SC1mKeTkEFP+1YHG7LqR8xPKLR+/?= =?us-ascii?Q?fpZM5L4IrhDeqjIky/YWMjWRbnREmasrBRTwsfZImXdLEXAxtFfEehVgq9eI?= =?us-ascii?Q?wmfcdakTMysdzfYikFe56rifW+Sac0xFXkHPCD4gRmP2bal4pehRnetfgt4x?= =?us-ascii?Q?8GBs+rNvzV8Wi8cbVb/Y0y1VGeQpo97enmH1MMiCuBuRacOKXB0jfazwUBqJ?= =?us-ascii?Q?FTQprO7sOwCBSyLwBbI/LF0vJtIZ/5SwhX6s8Y0NgitlsPBTqFCggdehuEY3?= =?us-ascii?Q?h1lHONV55yxwn8e/cQ15XDA1afwwoPZQwNTE2XTjfpJOKnnrgcR76KWTmpDs?= =?us-ascii?Q?ougKsK6bAHZWiBVTCMfoOsj+5g0/8GydCSARxbV2XMHODI04lM65AHwRism2?= =?us-ascii?Q?zdB1/3fXH4KIz+80GJYSRfzVTZL/g3rux9szUMTZpklDIwR6NWWQlMXuqDQ7?= =?us-ascii?Q?Evdj/UCE7k0f5Gpugbusx9gDJmh9A/mBEI6qddcJzDe5lKupQDoBlbo14Cfi?= =?us-ascii?Q?wie9ycdW7VkqQpfMwZZCMHyddxFdOyLfDGXh9nryY5alauZYHXhexFA8z3WP?= =?us-ascii?Q?SE8QN7Z9xzGA0zJkATHfxnS7QxjrAsyZIXQT658dE5s6nDIB1Encwe/+lQ1l?= =?us-ascii?Q?CB+PohgSFZL71a2C8aYqV1MQv5OCagaK37xpWdxt8yFGgX8JjhsoW7ueqrhs?= =?us-ascii?Q?lL3cZklxEGigH+AQzXWuHTzH0FMZ2GonT/inGUGI/jH10HzRJSIvinUVYoDX?= =?us-ascii?Q?00ALpjPTP+nqHrsNlpM6nOmSljyrOILAd7DgiQuZaM+L0Z3A4BSqr2/6YTQw?= =?us-ascii?Q?OL4FR2Mc0t8wMLc4Wx7NqVD9yKpeurf7QfN8eTtpDh5pY2XzZH7UFheSMYLo?= =?us-ascii?Q?1f1si+7cavfWZv2XdIp5Dlu5kGeJ7Pxv1UdezTtC/vEX/H9tyf050kQGIQa8?= =?us-ascii?Q?Yomh/sA19m6Kn8Mrz9UwOVqRqiGFnrFyj/ZF3xpklLjLtHQKkamrZQ13WWhU?= =?us-ascii?Q?T0NbGhQ4i/GEOn9aIvB1C2uWa3CWZGzIaxsrn0cP/g5klTJn9wzVIcI6A50h?= =?us-ascii?Q?1R/LJUWzqqpHTeU1A7YDyCUnXvJlvL+WAg/rOXZzBvvoaMO66nYx5tJeOTj+?= =?us-ascii?Q?kJgXxHA7/1wmGyI317QZG0txnM+GqUsvOa5Q4tXBXQ7KQyX9Tw6zXnE9JZWq?= =?us-ascii?Q?J26zxctN90KS0Zf5j75eOrbjY3bx9FSXvndenFPE/YBz/4nLxlZqmTIxChE+?= =?us-ascii?Q?5D6rQQNQ89RTM2fHNmsOL3Mo3odySn38AJUHiEDghYY8XgEqYOC16vbM3Q91?= =?us-ascii?Q?CGLws65z3+lEGoWwXqKK+6J783HUR0VUs8725JH6m+Dgtd3dl+dwxxmz4YXv?= =?us-ascii?Q?BZCCPQhEtz0yBEPf27WY5lHqLgA8gGzg8rOzPbhGJTJlhsbzZyE7yx3B4fnP?= =?us-ascii?Q?ZFeGzbhDsmg/oIMQiSmg6BTOIPH/09pkZuNLa4jv7jpFNmEfnTAGp2jeSUdD?= =?us-ascii?Q?C4CZE2cZKc4nQeIbiT0Yu+vcQ3uNmwj/Uf6L7nSv4vFzV2QuMSrUue4wGW9n?= =?us-ascii?Q?9xibP7XbsUpgBtsLLL4geWUVf3ZDOSJ3GVdVWfNNK8V2B5edXo8uvfZgFb4W?= =?us-ascii?Q?AQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4fa4c07-e5e1-4528-b49f-08daab807f8e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:02:41.3849 (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: LnqDxoH+SCEXC4M/eyUkCmQvOADPjo18etyRXtI+92uuWB3VQDPUOuFMDE0PkjRLD0QEcTmlmDydfnAsNVMaCA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" This patch adds the multiple subflows support for __mptcp_subflow_push_pending(). Use mptcp_sched_get_send() wrapper instead of mptcp_subflow_get_send() in it. Check the subflow scheduled flags to test which subflow or subflows are picked by the scheduler, use them to send data. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 49 +++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index e9eb1da42418..6a2d9972dec1 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1604,7 +1604,6 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk, struct mptcp_sendmsg_info info =3D { .data_lock_held =3D true, }; - struct sock *xmit_ssk; int ret =3D 0; =20 info.flags =3D 0; @@ -1613,23 +1612,41 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk, /* check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_subflow_get_send(msk); - if (!xmit_ssk) - goto out; - if (xmit_ssk !=3D ssk) { - subflow =3D mptcp_subflow_ctx(xmit_ssk); - if (mptcp_subflow_has_delegated_action(subflow)) - goto out; - mptcp_subflow_delegate(subflow, - MPTCP_DELEGATE_SEND); - goto out; + if (first) { + ret =3D __subflow_push_pending(sk, ssk, &info); + if (ret <=3D 0) { + if (ret =3D=3D -EAGAIN) + goto again; + break; + } + first =3D false; + continue; } =20 - ret =3D __subflow_push_pending(sk, ssk, &info); - if (ret <=3D 0) { - if (ret =3D=3D -EAGAIN) - goto again; - break; + if (mptcp_sched_get_send(msk)) + goto out; + + mptcp_for_each_subflow(msk, subflow) { + if (READ_ONCE(subflow->scheduled)) { + struct sock *xmit_ssk =3D mptcp_subflow_tcp_sock(subflow); + + if (xmit_ssk !=3D ssk) { + if (mptcp_subflow_has_delegated_action(subflow)) + goto out; + mptcp_subflow_delegate(subflow, + MPTCP_DELEGATE_SEND); + mptcp_subflow_set_scheduled(subflow, false); + continue; + } + + ret =3D __subflow_push_pending(sk, ssk, &info); + if (ret <=3D 0) { + if (ret =3D=3D -EAGAIN) + goto again; + goto out; + } + mptcp_subflow_set_scheduled(subflow, false); + } } } =20 --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2058.outbound.protection.outlook.com [40.107.20.58]) (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 9F2563207 for ; Tue, 11 Oct 2022 12:02:54 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iNfBC5VpY2emFVuzIjlYMQ3bI3UthQw5RBPQecD9OyGG2nECXvSIQ2jPFnrZfm1hcIQkQ3VJVkF1iC0BWp9y6y7sP1HIbKhf8LRUBdOYoqPHm7QeP3lb1hBc+A8R/yerOz0XNKlLIbgIluaKYysRofgJh+dkJEykN8Z0pm7w77JxAqbPFvMibNtKNs8G4CBXKauE0iluTPA/qPbT3OkGhJx0UH9V+g4FVr+eUzT0auvojBzhwd7s6kcjKwvBR1zEROrbbvbevJpCechOD1D2QpsDVTRZoJ/xdJQONB1u6CDb2B6Wp2tNAMCDMz1yc+utOZy/qJo6xE/j9K3bny7nJA== 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=k14KGB1Jv19RPe3mVlgIjdOWI3/nV1f8As31QgehBFY=; b=CofYf0aIr34kIEdc97DjAw0ZoSDW8B4gNzWe0//FX20IU0MgOqJu8cZ6wslSUtghAoEhb3m0BFK7OjXD+WzfjSFv2OxLx6Aqedb9cme5w6Rd32yQfUjrQ4B40+RD+pa4AE89irXfLQHB30XO+dFOgNHMmJmM0F2fS3ijVWcLwYQ+lCZIIjyXJyiSgKC8gxRqQJKaokoI5v2kti5a8TAsELOBaDi+ucTGsDxaOV7Vnz6Mv98N9Ds2f0zC9njuA9W7IrdEfA8OtRexV21ULTmovqSB0c9CQJEIDyLqDwRx7qt4ShaDNqKTpc1zEiE8jwO/HhDEWy9GXAAj31BxDkrPmw== 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=k14KGB1Jv19RPe3mVlgIjdOWI3/nV1f8As31QgehBFY=; b=H686K34pXJU//UmeMB6sVpOUQb1gBBp8rq7ctzYTTIoJXpGOihzRlah99EWTW0wo7bvlJbmFqJ5LdWm9sRXCxxU71jOBAlutaWFxaArqLanCs6SBHmYtM7VpmHzjSorH3Njod2VFpKaot1k+ue2SxN5n3Z/UU3GRJ0YQ6bwr9ls/vUiu7tY/vTgMu2muc2y7H4bLX43ESL2I5OCmkLkrmTWDRZxTB7YPfHGCfFEmRSDocx/JWljDZM6WpJHrUE1wDVQkYt+jxQHjY+6cG/Su4Xpt3bcxLGKfXPNt99b7mF1dBLQygdF6Y/uQtfhY5fN6NTf+a5usIvHf7pR9KK51bg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by VI1PR04MB6928.eurprd04.prod.outlook.com (2603:10a6:803:12e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Tue, 11 Oct 2022 12:02:52 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:02:52 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 12/13] mptcp: multi subflows retrans support Date: Tue, 11 Oct 2022 20:01:36 +0800 Message-Id: <20221011120137.5475-13-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY2PR06CA0037.apcprd06.prod.outlook.com (2603:1096:404:2e::25) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|VI1PR04MB6928:EE_ X-MS-Office365-Filtering-Correlation-Id: 3be53f9e-1511-4245-83da-08daab8085f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OFWHc9rsRKrIfE8eDomr5nzAxiL1hMMR3hGtAk6d3GMzrg/Q784avSjUyCQnpCaVMF28e65G2e2slp7YRpupGwsQDJ5VC6tJ8z7OgUfffQqZDNb8C7R1K2OcODOuGX3xj3FtLT+vIbJQsms8EKY0TJeWwTVAVcLpNpGiR9n8BfoTq1wOfPCOVB0mtbtAAnJplYtYtwIzFH06jW35IMULOxCBtQpTzxnjLooMYZNkOx4z1qJ73MmKtX9YOuYpE6QHJ2azI975t2y6DvunoFfXmEnLo6JsXw/y+/eWAGPrS5GsFiYiGHd4HkN8ynE91FA/OfKmvWSHNrU6WZzpW8UUQsDTU2cLfwM3/7JYHp9Izte1JORnYb6wAgTAKZ3WQY7yMK09ONwLs/Rv67Rd7/tVFkdA6CDMvKVdT9tXC4JHOa8TK2XUjKbVGxexL2HomGwiBHXh2Cjy4RT93sQHxnRk8o8ad9IjNuzsX7P9NeD07TQi0EjdNlMxgDAvZ+hPeAuQ3synT7zsoBUlxAKlDtENTCkQzh/adr/23USAYNnmiDFBPWaMzdgrqNugSPNMJpWjP9cwRKRRpcKTx0r+E5Fp6ysTTVe1PbX2kGyGZHhcJ2Pryo6iWrADZ9/2t4cWLltlsf0W9QWUkooSL9rzjugItI/ymsXKRXfuICy6CdiH4D9g1QYQJg7YnJ7b0FpcZnghhYAZFNMegWoeYFeQSZHkQcthQ8wsumN41dxrhDRmcz9/K9LE6eMTPTRVQ4DqF9Qn X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(366004)(396003)(39850400004)(376002)(346002)(451199015)(5660300002)(41300700001)(8936002)(2906002)(86362001)(44832011)(6666004)(6506007)(107886003)(2616005)(186003)(1076003)(26005)(83380400001)(6512007)(6916009)(66946007)(4326008)(8676002)(66476007)(66556008)(316002)(6486002)(38100700002)(478600001)(36756003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zeMPbdLK0uKHhclQ7bCP7U2as3uQuRSW+/J76v+riktaC9t1DPIXUNpKRjlJ?= =?us-ascii?Q?2FKQh5pEROWCIFcTeRDk8LFvR+vozxlBTtvlTgYQm+WDuBSZimU075LgRBLq?= =?us-ascii?Q?pOyinx1J1/3ELKZQmAZUigpsIIYuDf1rj48pyptzLJzcjUZqej84cdass3UI?= =?us-ascii?Q?97MsS+sfpLi3JYSNyvvBZ9kBGHOB1++HoSVkwb6FzFCZoXDt1zQhAXXaIhqe?= =?us-ascii?Q?f0VwySqyC30nByBSPrItLlVv7G10U6kBIJeRJAXuGi+8S9LjxvmaCrxn51Ff?= =?us-ascii?Q?Eg2+7CskrD2S2b+QjojXrMlU+iPzaKBI9CsYmmj1q7bdusZPdkJ1VHxNgZIM?= =?us-ascii?Q?6T+hGHv7dSAKY1Odef46dPA5w0t1o6GWByzXYt/PpaTat3/FDgivw2pOBI6g?= =?us-ascii?Q?DbR0txXgsw6x5BCKEoXfiJWOr1S6tZvqWH9uLCdzoq/4Unh7VI20dKM/H1dd?= =?us-ascii?Q?8eMof0BsIdk86gNcjQ+59R2sqNRZvVt/IyiNHg6vxEXRSwfEYZA53E6hI4L9?= =?us-ascii?Q?e/0hSYa6ucqo/t0FNG8pxWOzz7qnoYbAyLz/o/pC6R6ctC49xwSNtax3s/L6?= =?us-ascii?Q?kYWtJ3oSzQZa2prX8lWOj79D6sklKz274WeWRIsuIoNtQVJE7ZrB1Y1Mds9f?= =?us-ascii?Q?D66v2D7SImrVq6fgeiER4Pqf8xwRQtIt50ltaLkPSGeC7qyTca2/RMuNtGJI?= =?us-ascii?Q?MNW7T6kHRFeWnEy10ILhdD66sYMFO4rjfdMrt7Gxf7SWvR0ayY6RMxqIpF0s?= =?us-ascii?Q?lS0g+HxQydVIOwnNRDq7cwPoqmMfu106IU6qdDNIE9KIbbV6zarXSXPAASL2?= =?us-ascii?Q?6rWGqbw/1j7dX6Z7o1Ggg+9cZmNTyRxynf27bj6s/Tu6L+3RxcCt92l7Bm3g?= =?us-ascii?Q?T4q8TNi9KxamWU+AOYeeNng5+wqOpowKz2DmcQdjgaO/B/T5a5ff7rIdtVqk?= =?us-ascii?Q?4rMe6YE6K58+syqqfsv/9YyEI/qTvnBhnQr+3VHUHEeEiZg3+aVcyL+SmU2P?= =?us-ascii?Q?FsgC+vMPIK2JYncethCYT5ofnMd6RU86GtLf0gCJznLKyJSvrYpChrxWJ/oZ?= =?us-ascii?Q?94ldakyBtSdVwxgDaADJAcaEX7wSw5F1N/qGbJfOd7qWJnmqiPdEb+bAWc/E?= =?us-ascii?Q?l0quo9Nt0Sm01gxGGG6htCMCrAk7Nut3ABII8n1xhvmdb2CiaLzSHD5h6DC9?= =?us-ascii?Q?duqTX3ymGGa9P0SoEEYdteMYg1MoZ24TOJSUGkopwUotCJhFatmA+qKJESzh?= =?us-ascii?Q?BGWKU6pO0Cz+yVly3Zn87gioEvWMH4GHuVKvI6VGB++mowm4jO+NncbzEi5v?= =?us-ascii?Q?4JxiKiBuVVvW1pMcra99YB12BGvU2KlNLqHdm9252yFIn+ec6WMr5eG8Lepf?= =?us-ascii?Q?Yq/gtbwlOOHOYlA3w3xSQFdQt065XFzHUgZW4n2ELb1WI2AE3Oxt6IGJ5r2/?= =?us-ascii?Q?yQNOaoWLSt16hL3AO2pDX0qIWRRVdyV4LlheIk7TBHtV2ZCo6RrIIvgg6Qlm?= =?us-ascii?Q?EPvc+C4N1TlQ75PUzoEhkkjaTZO6paFxtrdOfyjZO9KkxBm9xe9TBybBVYu+?= =?us-ascii?Q?kINACRsxULgkTdljySN9XjW2wEnvwSBwJqDMzM+Gv5o1u8fpZgKdj93rdIYp?= =?us-ascii?Q?yA=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3be53f9e-1511-4245-83da-08daab8085f4 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:02:52.1029 (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: HNli/VlEJjWs1BOD+kILcB2ldsaekVphDkrUvXgxyY3K3CFfIRcU2or9O6xY+qvhYKetkGWxR1wclJqmGrAbKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6928 Content-Type: text/plain; charset="utf-8" This patch adds the multiple subflows support for __mptcp_retrans(). In it, use sched_get_retrans() wrapper instead of mptcp_subflow_get_retrans(). Iterate each subflow of msk, check the scheduled flag to test if it is picked by the scheduler. If so, use it to retrans data. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 61 +++++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 6a2d9972dec1..33ae11ca6c3c 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2478,16 +2478,17 @@ static void mptcp_check_fastclose(struct mptcp_sock= *msk) static void __mptcp_retrans(struct sock *sk) { struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_subflow_context *subflow; struct mptcp_sendmsg_info info =3D {}; struct mptcp_data_frag *dfrag; - size_t copied =3D 0; struct sock *ssk; - int ret; + int ret, err; + u16 len =3D 0; =20 mptcp_clean_una_wakeup(sk); =20 /* first check ssk: need to kick "stale" logic */ - ssk =3D mptcp_subflow_get_retrans(msk); + err =3D mptcp_sched_get_retrans(msk); dfrag =3D mptcp_rtx_head(sk); if (!dfrag) { if (mptcp_data_fin_enabled(msk)) { @@ -2506,31 +2507,45 @@ static void __mptcp_retrans(struct sock *sk) goto reset_timer; } =20 - if (!ssk) + if (err) goto reset_timer; =20 - lock_sock(ssk); + mptcp_for_each_subflow(msk, subflow) { + if (READ_ONCE(subflow->scheduled)) { + u16 copied =3D 0; + + ssk =3D mptcp_subflow_tcp_sock(subflow); + if (!ssk) + goto reset_timer; + + lock_sock(ssk); + + /* limit retransmission to the bytes already sent on some subflows */ + info.sent =3D 0; + info.limit =3D READ_ONCE(msk->csum_enabled) ? dfrag->data_len : + dfrag->already_sent; + while (info.sent < info.limit) { + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) + break; + + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); + copied +=3D ret; + info.sent +=3D ret; + } + if (copied) { + len =3D max(copied, len); + tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, + info.size_goal); + WRITE_ONCE(msk->allow_infinite_fallback, false); + } =20 - /* limit retransmission to the bytes already sent on some subflows */ - info.sent =3D 0; - info.limit =3D READ_ONCE(msk->csum_enabled) ? dfrag->data_len : dfrag->al= ready_sent; - while (info.sent < info.limit) { - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) - break; + release_sock(ssk); =20 - MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); - copied +=3D ret; - info.sent +=3D ret; - } - if (copied) { - dfrag->already_sent =3D max(dfrag->already_sent, info.sent); - tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, - info.size_goal); - WRITE_ONCE(msk->allow_infinite_fallback, false); + mptcp_subflow_set_scheduled(subflow, false); + } } - - release_sock(ssk); + dfrag->already_sent =3D max(dfrag->already_sent, len); =20 reset_timer: mptcp_check_and_set_pending(sk); --=20 2.35.3 From nobody Mon May 6 06:27:13 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2053.outbound.protection.outlook.com [40.107.20.53]) (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 F29EC3207 for ; Tue, 11 Oct 2022 12:03:04 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nyqzx4Kx7ypn9QfAgHpmRypXhk+G7rNne2xTCV0X3FcKqXsh6oxzYAc1USb9jQVviPYuVFoW09vyTHxsxR12fvX2JquSKRJWFZxwq6DvAZMOJut5wNeFLLg5v4MXlBUme+bF39eKC47mjLljVG3edFKoSAytCBZ/owbfNd6bV0hPsg42ZFUUelho/b3HwXcJ/LILyg7SylEWwcbYGxBE8xMPppxbFAITTX5KL1P8bw9Pt3+5bZDIRW6XfCgU+MQPoqsoix/Mj/ZRbbu0J3FlTd1pGwoCFu0XKEN4crkUWmbaidZ1pkEAifHXlk1X1PjiitgJzFIvdU9Aas9wBkOBHA== 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=4NAzwtDFbpIUwHwByLTGsCfexGOXk1N8mJzhLu2sZHQ=; b=l9jEeXIRG8+xw4JyZZuEYVGToA1Aae3qzLsYtUiNBcXcSm+KR8AU+QE+DeIXNxvvUcd0W008Dqq6ycEu31qPfjjlq5vmpkCp8PbNy6SuxzrWJreAfGjXlxMU6NUSs2pATdXREVoYWK5iuS1MzYQqSPstx+iBBw3GhWORHXuKX2k1aRi8+CTiqF7biT2BeQjIQdUeNDsooOXCLxUNLOijWCs45IyCTCg3sXpW1bEGOPB10GdseWJ/IbpOqE1uM/t2Y2QOxt+h5UaZk7lf/wdbKts7pfX1Zp/0P/VYyIvwBiHf2YL9z0oMGNG3fuEl0se5Ptbsq1LyTiExIUI7RcFTeA== 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=4NAzwtDFbpIUwHwByLTGsCfexGOXk1N8mJzhLu2sZHQ=; b=zzyN4gIGp2EA2ORWVU4FzVZkmjaeVCailgl6h0pGoVumIkGmYK2NbkKWcFjX5giTNk/v6Vqgqce1r3n2e93f3rssUsdfTk4lpphw2j81VarL3NH9/ZKUoubm769bc4DSPjtFEwh1zlKw32+zZLsu9koM2910E4yfXFRZwLYAtZ9AI7GKDTX1ABjv8WmkDXlv34NLMbTcRAaILt1XXijE3HEQ+6m7yKAT8gQcV/BtMOdgXuNGIEOXGrfg+HFHxH2DfGV8/4BPGUE4oXTmmByp8rAEV32CuA5SQCaag64qY8iuhuSPXkGuSJkxUNvZyYjfLkhtfV1tCDnT4aYEOt2Dag== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AS8PR04MB7557.eurprd04.prod.outlook.com (2603:10a6:20b:294::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Tue, 11 Oct 2022 12:03:02 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::f426:b04f:d9f1:cd5f%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 12:03:02 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 13/13] Squash to "selftests/bpf: Add bpf_rr scheduler" Date: Tue, 11 Oct 2022 20:01:37 +0800 Message-Id: <20221011120137.5475-14-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221011120137.5475-1-geliang.tang@suse.com> References: <20221011120137.5475-1-geliang.tang@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY2PR06CA0039.apcprd06.prod.outlook.com (2603:1096:404:2e::27) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) 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: HE1PR0402MB3497:EE_|AS8PR04MB7557:EE_ X-MS-Office365-Filtering-Correlation-Id: 89f64538-8305-4a9c-cff4-08daab808bf3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L2zV7rTJIc44UGUkOqq+GlsxksEwoW2gAZUkpRgT1Nc4yo8O0TFKVTFRuIVvW4ycYsnF9oXJ5MTRgh/qX1amq51P9Q74glkqBOSFnz4Y9GBV7HU9Qot5y9yKK/UuhSUD0T5Ojws+CjH3tqJqmlMCnYH5vPQ5MRFYxZaiCkrI5Knp+MIY1QxTAMBWPZszU4Z6YoJLc8DnUoI7fp9SvexMTzAbIDkF68Hb+n8dMxYi1PTDUSVLyiBfRvZDoxlST/7xfAd5CSgsm3IOnBXmbKs41zRtyyribC5SL3XvPutjMNUSkCzzDsdgpf0y5+0PoYJarXMFKE6G8G89OEy+hCo1PzFeiNvxrTBhSXRyjdPYw/8SbDJ8ayizxuDwnEFm+qUjuGNnUx4Zwswl7QsY/O3+W2e5M5nq/IdmFb9hhTyKobN1EIzw/Wuy7PQN0zghoBsfHUKKKPh8pKfVBCDF0ts5TD2LGtbs2N7ASZw4/XFCIiU0vQh30/Ox3sO0Vb8fZcj5j/NxiezroyrdEYUSabhfDl3jNMmE9AnWF5hrg1OQv/d0msXwzJ/NARi3NqhPt7NZJw3ZSrho4xbXiAggxtHqZQVquVscRSuDzOSuWa/z7tPnz7+BDPNeDYYrRZKW17HdmKVhwrEAkvo3o5RmbSxr0M2rv5GL+YL+GqVCRtOYC2YsSZkivqqgFxQRdyxN9SIj0kvTHjD+VZMM9SrgbFig/PCV31v9L7Ob0QxLUGUqjO1mOSvRwLyQS6M9mx4+Y/pr X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(376002)(366004)(136003)(451199015)(83380400001)(44832011)(5660300002)(8936002)(316002)(41300700001)(66946007)(66476007)(8676002)(66556008)(6916009)(4326008)(36756003)(2906002)(107886003)(1076003)(6506007)(6486002)(86362001)(2616005)(478600001)(38100700002)(6666004)(26005)(186003)(6512007)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?O0c2Xjxzi0BVUDarCDxtPR9gEW77/yLrG+EhaTo8iEHpp9xhjrUlLjVN+2Dx?= =?us-ascii?Q?eXCqtNIDXJQ7n+5Xh8EEmc9dpZuM6DVjswpM0v1zD7+Y0ejPT8w2ao+Wp9dU?= =?us-ascii?Q?5nreWvk8XIxau9Lr8BDE5Ju0GVqPt1rqwwvIo9adSdjVZw9jBA2t3mTt0rzU?= =?us-ascii?Q?RNI1BbFs8vv3rE9fKhYmiM1jB6KaTOsUB0RI9sCfH+ZchGwq8fYaoNhe3OPr?= =?us-ascii?Q?6sQxGlsw6zoOb6m4KZq9+MiAdtu3f6nU2pYRHV+NO/ANLjIXfobWLoRXdc42?= =?us-ascii?Q?VjKE2EhdRaPGdFaShx2JtKj6e74KvVLNgd6Ad1MftasiaY+/G8R0tngZ0SqC?= =?us-ascii?Q?FIIkM+7haGZ8iiiPGBmgVkDGKlbRbTfVome3L4ZCnOPUgc5D8qSI++zKqsFm?= =?us-ascii?Q?0idMHed6WD+JQ5Y5AZOVJQtJGn2ZtpiFP4jH/qPrW8RluzHa9HS21h5uWaNc?= =?us-ascii?Q?wfwfZBsuLS4Hpghzd9RyQ+PMsLwTdDXh3x3WyTC0C94V/k7d/ya20x3LYBy8?= =?us-ascii?Q?8XCKLb3cm8VT9dkFdjltBHGExEaHyU97K2iCRtDn5t8Cvem9f8xx5z0u9Fu+?= =?us-ascii?Q?epBblk9/o841boJvVv+Z0mxpcT2Sw69s1o7KY0i/OvBNWKXeT7IbXdZSxN2W?= =?us-ascii?Q?/qiepJrH1Sxzq6hTk0x0SAPHJCWYbzsxapkspHgfXeaaOdBF7GWzU1ts0fJR?= =?us-ascii?Q?Gq1QKcIjmCTY/CeUPbf4sdCiaN0k6vh0qd5eQWAEB72Gqa1rQYAIxoHjZIEc?= =?us-ascii?Q?xgE5PQSBxbLW+FpzFgyX/almmdRNuMaIFy2yLew9j+7hEov1yHWKXsxh2wCM?= =?us-ascii?Q?KjgmFSSrcDieeql1pY5Re6gPrt3+slzJdRO8/IL6OL+FxRDNoRT0BSfYeyu4?= =?us-ascii?Q?fMPIlwk5LdGODU+j07v89Cj2dAEglgReEadh5oLjG5XhtvbWlqioh8PqXctO?= =?us-ascii?Q?tCXerlXMmvLrsOovFC6UrOdA36xaxUwuYbL3qDeRI0Hs0xRPOZAh65N1I5vl?= =?us-ascii?Q?ByUFT//UJqLlgiBQoj7aVi2Rf/M7wA0beCabqkcrRO8lCuLZ65Kw6rYGsK+U?= =?us-ascii?Q?wbP994v469uNySgvykfuZgmsoen1pjFfeHB6fYbT9ci2ndF/H+djYxz6TpiS?= =?us-ascii?Q?O6E8nyniO8zBanXrCucwOwilWCsHCovXfT+/S+f00yraaji8glKJjoHLhKGQ?= =?us-ascii?Q?NANUhWrPycfSGNal/L5ylB8ZVefx41ryRFL2GJsJYvVID7Ax5M0XLw9N0wmG?= =?us-ascii?Q?xuCwgIW0XUXqZPMYrrJH21bRIKaWh4aXbIf4pArg1sUARvlok8fidxxxpSB4?= =?us-ascii?Q?BWvXj3TyRXnB8IMJSI5n0HaWAdklnu82bLZ7Nb259V3ikvV/QW1ycDqyxIB1?= =?us-ascii?Q?i20mU1PamQbKnCf8imARc3ugh+znFpvAx4MGCIJhP0NJmD26LcJuzoPQpk0K?= =?us-ascii?Q?LSWRrmEB6zbEzGCrzJCDpVe1zsJ59pkdDDbM9JeYRhqQCzbMgbvuv1cKQSfd?= =?us-ascii?Q?1kpEbisOxS1SgW8X2FOyQx0kBdILT6gWAODP39vVzcYPLdK2xAGSCmUIaAhN?= =?us-ascii?Q?RF1hLFWO26PiffhK1TbkU2IoiBTRbKOaBDvCCPPLcUeY7iI7BjyQ+PFKA9qE?= =?us-ascii?Q?Yg=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89f64538-8305-4a9c-cff4-08daab808bf3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 12:03:01.9459 (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: b2bNlsVe0hmw7wRgDPLDrEJ91DDOCHJHPe2vl8YtUSR5grp8KwT7cILTMiLR7NM8W6mctYk01YZdchx2/JFMkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7557 Content-Type: text/plain; charset="utf-8" Use last_snd instead of msk->last_snd, then last_snd of struct mptcp_sock could be removed. Signed-off-by: Geliang Tang --- tools/testing/selftests/bpf/bpf_tcp_helpers.h | 1 - tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/bpf_tcp_helpers.h b/tools/testing/= selftests/bpf/bpf_tcp_helpers.h index c7d4a9a69cfc..c8792e6f125a 100644 --- a/tools/testing/selftests/bpf/bpf_tcp_helpers.h +++ b/tools/testing/selftests/bpf/bpf_tcp_helpers.h @@ -257,7 +257,6 @@ struct mptcp_sched_ops { struct mptcp_sock { struct inet_connection_sock sk; =20 - struct sock *last_snd; __u32 token; struct sock *first; char ca_name[TCP_CA_NAME_MAX]; diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c b/tools/testi= ng/selftests/bpf/progs/mptcp_bpf_rr.c index ce4e98f83e43..b7156f6aae8b 100644 --- a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c @@ -5,6 +5,7 @@ #include "bpf_tcp_helpers.h" =20 char _license[] SEC("license") =3D "GPL"; +struct sock *last_snd =3D NULL; =20 SEC("struct_ops/mptcp_sched_rr_init") void BPF_PROG(mptcp_sched_rr_init, const struct mptcp_sock *msk) @@ -22,10 +23,10 @@ void BPF_STRUCT_OPS(bpf_rr_get_subflow, const struct mp= tcp_sock *msk, int nr =3D 0; =20 for (int i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { - if (!msk->last_snd || !data->contexts[i]) + if (!last_snd || !data->contexts[i]) break; =20 - if (data->contexts[i]->tcp_sock =3D=3D msk->last_snd) { + if (data->contexts[i]->tcp_sock =3D=3D last_snd) { if (i + 1 =3D=3D MPTCP_SUBFLOWS_MAX || !data->contexts[i + 1]) break; =20 @@ -35,6 +36,7 @@ void BPF_STRUCT_OPS(bpf_rr_get_subflow, const struct mptc= p_sock *msk, } =20 mptcp_subflow_set_scheduled(data->contexts[nr], true); + last_snd =3D data->contexts[nr]->tcp_sock; } =20 SEC(".struct_ops") --=20 2.35.3