From nobody Sat May 4 03:19:21 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2185409ejc; Thu, 24 Mar 2022 06:58:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzwI/J0AUjFoJbe9IwL4+uaRy8arvD7AoVGLb9AqE1cjm6fobwJ2B5+RIeXhlitddw/ZlwG X-Received: by 2002:a17:90b:1bc6:b0:1c7:f32:3aa0 with SMTP id oa6-20020a17090b1bc600b001c70f323aa0mr18791804pjb.168.1648130302000; Thu, 24 Mar 2022 06:58:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648130301; cv=none; d=google.com; s=arc-20160816; b=CEjNwnwEeywnjNtx7Z2cdUSJ5rIQV5gel+LmG8Eq7xqkSMLkOKW3vNCGf5QMxiKULf CHYNmXRrVWQFw1nZJIiOWfPlpmxU/Ikb5SFM44NYILN1cDE0aNZgghR2D09TEBRLJ5jm IQYRtydiDbhlL/k7Z0J6gtiu7bc5ELbAOxAFF54bQpgHoFuagOJg8Vr+3mSuPyiyOjK/ Tn8a2kPa5Ke1yZEe18y31uOjVqqbdQakGMYgrY8FwZ5+6GP0xtHnDIYvHS1oQOz6wceb k5YCZyx6E8zxuLu2g+dUi6qNw6+BUN2pLrwx3km3aEwkloPxrJFjw68YCMeF2gEfoi5z SYSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from; bh=A88Bew1DtScohFliaYGCq4fjcSotJAPhGm1JaavSZvk=; b=nw5SqCHEgaOTGgb95CJ6Hwlrroux9snY73A7Xp9pH2InewhBdhM/wNpMyAHJLSgIPR /PU1LXR2I/8P0yaG3NW1IUi/eCmCZy/16leLcsvDOvL00MUtpXJZJH9U/VrhwkoVYJ+Q 8BIOYz5ahFjxgTRcdZTJVT3KBrSKMKTOTTT21MZ+DjQi2L3CXi5axrJ3BgURY9V/8kIj mXWX2uLISQoFSUHL67QDugtxsJ2uuIqyG9G7b5fzttJnbjA2Se4+nztiUTv2oe6+ZVY3 WI3jRTCsYkbfYoLIw1KGROZ5zlPSRvNBJd7USYFtp+/gYBr7eKMIXe0nVYP7xo5Ys4ca RAtw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4399-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4399-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id bf6-20020a656d06000000b00383f7ddd81fsi8435716pgb.346.2022.03.24.06.58.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 06:58:21 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4399-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4399-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4399-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 205BA3E0FEA for ; Thu, 24 Mar 2022 13:58:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0CE161FC8; Thu, 24 Mar 2022 13:58:20 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from Chamillionaire.breakpoint.cc (Chamillionaire.breakpoint.cc [193.142.43.52]) (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 9236D1FC0 for ; Thu, 24 Mar 2022 13:58:18 +0000 (UTC) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1nXNyb-0006zi-O4; Thu, 24 Mar 2022 14:58:09 +0100 From: Florian Westphal To: Cc: Florian Westphal Subject: [PATCH mptcp-next 1/4] mptcp: diag: switch to context structure Date: Thu, 24 Mar 2022 14:57:50 +0100 Message-Id: <20220324135753.25182-2-fw@strlen.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220324135753.25182-1-fw@strlen.de> References: <20220324135753.25182-1-fw@strlen.de> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Raw access to cb->arg[] is deprecated, use a context structure. Signed-off-by: Florian Westphal --- net/mptcp/mptcp_diag.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/net/mptcp/mptcp_diag.c b/net/mptcp/mptcp_diag.c index f44125dd6697..c4992eeb67d8 100644 --- a/net/mptcp/mptcp_diag.c +++ b/net/mptcp/mptcp_diag.c @@ -66,20 +66,28 @@ static int mptcp_diag_dump_one(struct netlink_callback = *cb, return err; } =20 +struct mptcp_diag_ctx { + long s_slot; + long s_num; +}; + static void mptcp_diag_dump(struct sk_buff *skb, struct netlink_callback *= cb, const struct inet_diag_req_v2 *r) { bool net_admin =3D netlink_net_capable(cb->skb, CAP_NET_ADMIN); + struct mptcp_diag_ctx *diag_ctx =3D (void *)cb->ctx; struct net *net =3D sock_net(skb->sk); struct inet_diag_dump_data *cb_data; struct mptcp_sock *msk; struct nlattr *bc; =20 + BUILD_BUG_ON(sizeof(cb->ctx) < sizeof(*diag_ctx)); + cb_data =3D cb->data; bc =3D cb_data->inet_diag_nla_bc; =20 - while ((msk =3D mptcp_token_iter_next(net, &cb->args[0], &cb->args[1])) != =3D - NULL) { + while ((msk =3D mptcp_token_iter_next(net, &diag_ctx->s_slot, + &diag_ctx->s_num)) !=3D NULL) { struct inet_sock *inet =3D (struct inet_sock *)msk; struct sock *sk =3D (struct sock *)msk; int ret =3D 0; @@ -101,7 +109,7 @@ static void mptcp_diag_dump(struct sk_buff *skb, struct= netlink_callback *cb, sock_put(sk); if (ret < 0) { /* will retry on the same position */ - cb->args[1]--; + diag_ctx->s_num--; break; } cond_resched(); --=20 2.34.1 From nobody Sat May 4 03:19:21 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2185391ejc; Thu, 24 Mar 2022 06:58:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyGpGPjqCiGd5ZNG6acoXvjpmBJjwt2JZeVl1UST85+vNTM2xMcSvikjGZr3slVdI8V+S7w X-Received: by 2002:a17:90b:11c9:b0:1c7:19bc:64de with SMTP id gv9-20020a17090b11c900b001c719bc64demr6339716pjb.203.1648130299103; Thu, 24 Mar 2022 06:58:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648130299; cv=none; d=google.com; s=arc-20160816; b=EO4pnQrJ1CsBgGgRyMK/ffbsGa5hk0mj1OhUcZimfoJdFT3Zuh1QcvUtCFoizaKwP1 3YtrFSnBubeqOCliM3W3zaMQjVBOJmYsJMxEgZczCuzPfuHouolQdsJp3CfXWyvHqrZY U5nOFIr+H8Agn2NgabxPZbCYFh+Zr20lggFovWDXTUK8qD1Si8zIS4l/e/Neg6vSvh6l nACLOAsgK/cRRodPY/QI2qLnWQ4PQOE4w1iQkPcIHgXAt1zoUaJtFE1EV252Ccp2exuj dQkZFTiGKPgdjOgMlY50B1EKzNJV7o8VypXKJxWLxP+Q3B+I8D7Rmf6Bh9BKGsqc5MHV G0AQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from; bh=T6jXqR+xuBaEziL+IYdgZeCTYHZ2CXcqW+KsEXACBus=; b=G8E/7in/PsQd7hBZURM7nQ6hA/miAvVsashMmun7zno8XXxJmEcFydiUy1duy1KIMU b0aBsyRdLk8Wk8TAoCvebIPbmFRF/9/Jrwe954apsBfQBeQqEDuLNkUV2jkq79QKgCFA /VAP4OwhScVbrNJQXq3ZWtUf+UzRYu8ryERVrQVit1qJbRPpOv4caitORZSyba5jR49T PJER+2YZQqrRNcz+p2tb6gAHN12XIuu5IKBlGXAOWQRC8Hdq8juer3MxSbd+H2JZIKQO nTdvqdFFKBtdYLMvgFWMaYhjqvMMxYdcrV8pOZgUBumT3IsukFRe+V3YHJuaw8Z82HQ5 QVKw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4398-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4398-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id l19-20020a170902d35300b00153b2d1648fsi19707075plk.151.2022.03.24.06.58.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 06:58:19 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4398-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4398-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4398-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 738983E0F78 for ; Thu, 24 Mar 2022 13:58:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8AEDD1FC7; Thu, 24 Mar 2022 13:58:17 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from Chamillionaire.breakpoint.cc (Chamillionaire.breakpoint.cc [193.142.43.52]) (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 EF8AD1FC0 for ; Thu, 24 Mar 2022 13:58:15 +0000 (UTC) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1nXNyf-0006zr-Sr; Thu, 24 Mar 2022 14:58:13 +0100 From: Florian Westphal To: Cc: Florian Westphal Subject: [PATCH mptcp-next 2/4] mptcp: remove locking in mptcp_diag_fill_info Date: Thu, 24 Mar 2022 14:57:51 +0100 Message-Id: <20220324135753.25182-3-fw@strlen.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220324135753.25182-1-fw@strlen.de> References: <20220324135753.25182-1-fw@strlen.de> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Problem is that listener iteration would call this from atomic context so this locking is not allowed. One way is to drop locks before calling the helper, but afaics the lock isn't really needed, all values are fetched via READ_ONCE(). Signed-off-by: Florian Westphal --- net/mptcp/sockopt.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index f949d22f52bd..826b0c1dae98 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -853,15 +853,11 @@ static int mptcp_getsockopt_first_sf_only(struct mptc= p_sock *msk, int level, int =20 void mptcp_diag_fill_info(struct mptcp_sock *msk, struct mptcp_info *info) { - struct sock *sk =3D &msk->sk.icsk_inet.sk; u32 flags =3D 0; - bool slow; u8 val; =20 memset(info, 0, sizeof(*info)); =20 - slow =3D lock_sock_fast(sk); - info->mptcpi_subflows =3D READ_ONCE(msk->pm.subflows); info->mptcpi_add_addr_signal =3D READ_ONCE(msk->pm.add_addr_signaled); info->mptcpi_add_addr_accepted =3D READ_ONCE(msk->pm.add_addr_accepted); @@ -882,8 +878,6 @@ void mptcp_diag_fill_info(struct mptcp_sock *msk, struc= t mptcp_info *info) info->mptcpi_snd_una =3D READ_ONCE(msk->snd_una); info->mptcpi_rcv_nxt =3D READ_ONCE(msk->ack_seq); info->mptcpi_csum_enabled =3D READ_ONCE(msk->csum_enabled); - - unlock_sock_fast(sk, slow); } EXPORT_SYMBOL_GPL(mptcp_diag_fill_info); =20 --=20 2.34.1 From nobody Sat May 4 03:19:21 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2185411ejc; Thu, 24 Mar 2022 06:58:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyQmoXKuj/dxysggoj3sJ5vOId6nxs59gchB0Zd1G5GsBQWrUbsq/pWNoelS5gAWwwSDFaR X-Received: by 2002:a05:6a00:8d4:b0:4f6:6da0:f380 with SMTP id s20-20020a056a0008d400b004f66da0f380mr5502405pfu.34.1648130302381; Thu, 24 Mar 2022 06:58:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648130302; cv=none; d=google.com; s=arc-20160816; b=a7bgk5yO+PrMEXBKB9310Ul1oONlXMUJAVDjv02dBwncW4WGxHsuz7yxPuH3JFl4Zj wjkRF5AxQBaOEqvpwEuzNdd6FfLpp9KsQFz3TmbPcTqKpWNWZNy4KGCJDFv+bjth08qq puCf2sorswT3oG34dZ59fQatRYzHqg6+uHTY/OUvdH5fHWP2Svj7Pq2DToTIYJF19NFB qdm2374d4n0GOPl6xnkcHFka9SoeHADOZoPMDQcapeaOUQS2XXpXM1G4z2MbVmF+VDxL TCjOnnppFqipgYWGLt/u1BAxh9tHMpi5MBBy4R5+noqxe3kWESjuoJMbah8VKHGJkSE2 hsqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from; bh=qZsQ3ZORcg19cR5FBwQTY2fK7TjM8X5N5KGGk6cfnBA=; b=r3Uf71WR7MoCUx+y0e3njd7JUpf7WBHOgfPNL07xMKeg/yxKhZ+dUbgKZdg6PzFvNe asNWBnQt8hKP5tt5PaVQPxOconPqKiaQXMxlMnNZKzRkGD4t3Ero9U2QRKmxopFfNP/0 ew8BIwUHlha1bDHNJzVai1UJ5KLAWGwjKjdxNV9O+iikMADL3vwT0stSOL5rhvLpI1FI 46hhiaf+KZZ0VAMRc6O1slUq6W0W2Vt34ikN6Fkglt6TjNasD2BazX9to4RurOm0TvIn tPwS2rhAGxuXQhoUR00VtAasxLREhs5kzlEyrNqoQ2PGFmXKbn9KjygAQCbLjElUVNtL wHTA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4400-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4400-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id c17-20020a056a000ad100b004fa3a8dfff9si17657695pfl.176.2022.03.24.06.58.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 06:58:22 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4400-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4400-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4400-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 0DE683E0FA8 for ; Thu, 24 Mar 2022 13:58:22 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 448461FC0; Thu, 24 Mar 2022 13:58:21 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from Chamillionaire.breakpoint.cc (Chamillionaire.breakpoint.cc [193.142.43.52]) (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 D548D1FC7 for ; Thu, 24 Mar 2022 13:58:19 +0000 (UTC) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1nXNyk-000702-1d; Thu, 24 Mar 2022 14:58:18 +0100 From: Florian Westphal To: Cc: Florian Westphal Subject: [PATCH mptcp-next 3/4] mptcp: listen diag dump support Date: Thu, 24 Mar 2022 14:57:52 +0100 Message-Id: <20220324135753.25182-4-fw@strlen.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220324135753.25182-1-fw@strlen.de> References: <20220324135753.25182-1-fw@strlen.de> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" makes 'ss -Ml' show mptcp listen sockets. Signed-off-by: Florian Westphal --- net/mptcp/mptcp_diag.c | 67 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/net/mptcp/mptcp_diag.c b/net/mptcp/mptcp_diag.c index c4992eeb67d8..6a6dfc7eac33 100644 --- a/net/mptcp/mptcp_diag.c +++ b/net/mptcp/mptcp_diag.c @@ -69,6 +69,8 @@ static int mptcp_diag_dump_one(struct netlink_callback *c= b, struct mptcp_diag_ctx { long s_slot; long s_num; + unsigned int l_slot; + unsigned int l_num; }; =20 static void mptcp_diag_dump(struct sk_buff *skb, struct netlink_callback *= cb, @@ -114,6 +116,71 @@ static void mptcp_diag_dump(struct sk_buff *skb, struc= t netlink_callback *cb, } cond_resched(); } + + if (r->idiag_states & TCPF_LISTEN) { + int i; + + for (i =3D diag_ctx->l_slot; i < INET_LHTABLE_SIZE; i++) { + struct inet_listen_hashbucket *ilb; + struct hlist_nulls_node *node; + struct sock *sk; + int num =3D 0; + + ilb =3D &tcp_hashinfo.listening_hash[i]; + + rcu_read_lock(); + spin_lock(&ilb->lock); + sk_nulls_for_each(sk, node, &ilb->nulls_head) { + const struct mptcp_subflow_context *ctx =3D mptcp_subflow_ctx(sk); + struct inet_sock *inet =3D inet_sk(sk); + int ret; + + if (num < diag_ctx->l_num) + goto next_listen; + + if (!ctx || strcmp(inet_csk(sk)->icsk_ulp_ops->name, "mptcp")) + goto next_listen; + + sk =3D ctx->conn; + if (!sk || !net_eq(sock_net(sk), net)) + goto next_listen; + + if (r->sdiag_family !=3D AF_UNSPEC && + sk->sk_family !=3D r->sdiag_family) + goto next_listen; + + if (r->id.idiag_sport !=3D inet->inet_sport && + r->id.idiag_sport) + goto next_listen; + + if (!refcount_inc_not_zero(&sk->sk_refcnt)) + goto next_listen; + + ret =3D sk_diag_dump(sk, skb, cb, r, bc, net_admin); + sock_put(sk); + + if (ret < 0) { + spin_unlock(&ilb->lock); + rcu_read_unlock(); + diag_ctx->l_slot =3D i; + diag_ctx->l_num =3D num; + return; + } + diag_ctx->l_num =3D num + 1; + num =3D 0; +next_listen: + ++num; + } + spin_unlock(&ilb->lock); + rcu_read_unlock(); + + cond_resched(); + diag_ctx->l_num =3D 0; + } + + diag_ctx->l_num =3D 0; + diag_ctx->l_slot =3D i; + } } =20 static void mptcp_diag_get_info(struct sock *sk, struct inet_diag_msg *r, --=20 2.34.1 From nobody Sat May 4 03:19:21 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a17:907:7811:b0:6d8:2910:9a8 with SMTP id la17csp2185452ejc; Thu, 24 Mar 2022 06:58:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxgnbJEgoK9aNtEIc61KriATsWC5F+Gw/qfsKCBjbz8TGO0IsrbOo9k+460Lyij2UWDz120 X-Received: by 2002:a17:902:8bcc:b0:14f:2294:232e with SMTP id r12-20020a1709028bcc00b0014f2294232emr5820323plo.105.1648130310948; Thu, 24 Mar 2022 06:58:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648130310; cv=none; d=google.com; s=arc-20160816; b=PxBkp0r5fV3I92/hOzQr5DqtDUmhf2Je+A4aEMoN4x32Ju/8s9TO/4MMtbQcoklut6 q3R+TYlBSDXbTSerDUZUqbVMuTK3MLYGbJFVrmPI4Dg4CY/vsfjsG80rWnK96WwRa9E9 eiNrkJdmQ663RMlQgoPNpu5rResjL0AK2oFSuuyWu7j5NDhur/55dxX+6SR9zZQpprZH +BcYkCNUBupmnRduOmU6Xzi8GZf0bdUxGWDg7EtljaFF7csyJyDq82xpe05+t6jhlwOg WL7iQJYjgNcoN46Tzy4hRyM/htzueP0JBA6QROkEmh8jcPWs+z5xm8homctNvFKfwNHS r+0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from; bh=9VyM8ZU+SI0v4/S0KbMGqXzP6Al/NPKR+EgkMxtfP2I=; b=Pp06xyJB1Mu1/5BGr9f1JgX/HqkxIx6yyKsAmE8uI5S93Q7IihLImwwRCgfcnp69E+ S/m/Qn4UgUZ+uzJ6HKqI7v5HS3diQGW45H/Sef96v1sLVX5aIhZiJm2tCAA03T5Px/3d Qx2j4vDRV9XyMo17GMGKB9x3akC3+lsWM4GOGBE8OVCbiK5Dx01zMTK83yJWS+oNfSG7 qa3SWaPL5L4fBajML96OMtTEas79qbf40mFnIgWj7ctFJc5/n4HeKIFYU7h/NTogsEuD nyEXOt1ydCVsbzGkbCQ1naRONgIOQg477M7pwlYFhh/TgoT52/FJZ8WpMu+KYqeS4WOV RBrA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4401-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4401-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id s17-20020a170902989100b00153b2d16589si2671673plp.401.2022.03.24.06.58.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Mar 2022 06:58:30 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4401-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; spf=pass (google.com: domain of mptcp+bounces-4401-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-4401-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 7AAFC1C0CC4 for ; Thu, 24 Mar 2022 13:58:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0E28B1FC7; Thu, 24 Mar 2022 13:58:25 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from Chamillionaire.breakpoint.cc (Chamillionaire.breakpoint.cc [193.142.43.52]) (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 CFABE1FC0 for ; Thu, 24 Mar 2022 13:58:23 +0000 (UTC) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1nXNyo-00070P-6F; Thu, 24 Mar 2022 14:58:22 +0100 From: Florian Westphal To: Cc: Florian Westphal Subject: [PATCH mptcp-next 4/4] mptcp: let mptcp listen dump show listen backlog size Date: Thu, 24 Mar 2022 14:57:53 +0100 Message-Id: <20220324135753.25182-5-fw@strlen.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220324135753.25182-1-fw@strlen.de> References: <20220324135753.25182-1-fw@strlen.de> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Before: State Recv-Q Send-Q .. LISTEN 0 0 After: LISTEN 0 20 Signed-off-by: Florian Westphal --- net/mptcp/mptcp_diag.c | 10 ++++++++-- net/mptcp/protocol.c | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/net/mptcp/mptcp_diag.c b/net/mptcp/mptcp_diag.c index 6a6dfc7eac33..e1babab45e86 100644 --- a/net/mptcp/mptcp_diag.c +++ b/net/mptcp/mptcp_diag.c @@ -189,8 +189,14 @@ static void mptcp_diag_get_info(struct sock *sk, struc= t inet_diag_msg *r, struct mptcp_sock *msk =3D mptcp_sk(sk); struct mptcp_info *info =3D _info; =20 - r->idiag_rqueue =3D sk_rmem_alloc_get(sk); - r->idiag_wqueue =3D sk_wmem_alloc_get(sk); + if (inet_sk_state_load(sk) =3D=3D TCP_LISTEN) { + r->idiag_rqueue =3D READ_ONCE(sk->sk_ack_backlog); + r->idiag_wqueue =3D READ_ONCE(sk->sk_max_ack_backlog); + } else { + r->idiag_rqueue =3D sk_rmem_alloc_get(sk); + r->idiag_wqueue =3D sk_wmem_alloc_get(sk); + } + if (!info) return; =20 diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index d3887f628b54..a29cfc4c44a1 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3589,8 +3589,11 @@ static int mptcp_listen(struct socket *sock, int bac= klog) =20 err =3D ssock->ops->listen(ssock, backlog); inet_sk_state_store(sock->sk, inet_sk_state_load(ssock->sk)); - if (!err) + if (!err) { mptcp_copy_inaddrs(sock->sk, ssock->sk); + WRITE_ONCE(sock->sk->sk_max_ack_backlog, + READ_ONCE(ssock->sk->sk_max_ack_backlog)); + } =20 unlock: release_sock(sock->sk); --=20 2.34.1