From nobody Sat May 4 11:03:13 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:590e:0:0:0:0:0 with SMTP id n14csp827750uad; Fri, 29 Jul 2022 02:56:06 -0700 (PDT) X-Google-Smtp-Source: AGRyM1txbWPAeIFtk46IdEc0CpV5iHV6kwVZEqmCnbQ9nXv+dQ6qfpHYzZIonmqq+/cPPzRAld8V X-Received: by 2002:ac8:7d8f:0:b0:31f:cea:9bfd with SMTP id c15-20020ac87d8f000000b0031f0cea9bfdmr2468684qtd.513.1659088566590; Fri, 29 Jul 2022 02:56:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659088566; cv=none; d=google.com; s=arc-20160816; b=0YItw6Bkj3LdIgm/UAF4HcfA3yUrvKquFW7mQqPJPMJD1OTvFm50VHulTGnkIHWnB+ dxrxSZrFV0tLstnf6H/xSyoQiWc9P/NywyZKksjZPwZo8AQK5aGwMvqQo2BtITxCcZ3/ Mq9Y4usOskz9iaFFV6CliK6EIzTjChmNgj4/2mstUO4Accaj39D49XO/L6ZipJRFQGWi KHNaNbw3px+moji0cqvFQXqeOUWEKBFMY1YgXsVj+PtoPrOHObcPfFqOpaa1sFQPPybk 9hJA8O3zwWWs4zlyhNO7vo4jZKozJ5oF4pg2eVLtZp3SI04uoeefr05dV4e0+v/9iV3l +3Fw== 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:message-id:date:subject:cc:to :from; bh=N42luvsZNoXH+yk7FEBgcCAZ7AVgBvWRbKVkw1ppcOc=; b=Kpea/dD/eF4KP11ZKvUekl87vJN0atSvK+Xxvjn+Ys2vpDq9Q3cT7hr/QgVzPc8zRr vnpxPf99+dRM5n2x81Xq4bB5MHd6l5zpNkygQT9UhFoE1QOmbO7+IObTbOXb69LhabRX FfMjicDBQhr4Idz80Vy627qO2qLSb0VThuO182o6eIjtkRYjGhuOP7Y8HXQ8WSaLWxv8 s40VzayWc3WTDifZGXT4coVWo6IeNm1uZL1YeP5gkavTE/k7b2WoQ7PEA0b7Pj5ay2UP sLAdAUYOiZ17Ki45bFp7QZQ81lI3Dy5ePqI6V3xN/nXOXMQzHokjq5PHFqR+4nkIrXJG mQOw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of mptcp+bounces-6063-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6063-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id li19-20020a0562145e1300b00473fe04fd26si1265639qvb.166.2022.07.29.02.56.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Jul 2022 02:56:06 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6063-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of mptcp+bounces-6063-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6063-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 1A6731C20A40 for ; Fri, 29 Jul 2022 09:56:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8D372440B; Fri, 29 Jul 2022 09:56:04 +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 93A4A4400 for ; Fri, 29 Jul 2022 09:56:02 +0000 (UTC) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1oHMis-0001kZ-NP; Fri, 29 Jul 2022 11:55:58 +0200 From: Florian Westphal To: mptcp@lists.linux.dev Cc: matthieu.baerts@tessares.net, mathew.j.martineau@linux.intel.com, Paolo Abeni , Florian Westphal , Xiumei Mu Subject: [PATCH v2 mptcp] selftests: mptcp: make sendfile selftest work Date: Fri, 29 Jul 2022 11:55:50 +0200 Message-Id: <20220729095550.3040-1-fw@strlen.de> X-Mailer: git-send-email 2.35.1 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" When the selftest got added, sendfile() on mptcp sockets returned -EOPNOTSUPP, so running 'mptcp_connect.sh -m sendfile' failed immediately. This is no longer the case, but the script fails anyway due to timeout. Let the receiver know once the sender has sent all data, just like with '-m mmap' mode. v2: need to respect cfg_wait too, as pm_userspace.sh relied on -m sendfile to keep the connection open (Mat Martineau) Fixes: 048d19d444be ("mptcp: add basic kselftest for mptcp") Reported-by: Xiumei Mu Signed-off-by: Florian Westphal Reviewed-by: Mat Martineau --- .../selftests/net/mptcp/mptcp_connect.c | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.c b/tools/test= ing/selftests/net/mptcp/mptcp_connect.c index e2ea6c126c99..24d4e9cb617e 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -553,6 +553,18 @@ static void set_nonblock(int fd, bool nonblock) fcntl(fd, F_SETFL, flags & ~O_NONBLOCK); } =20 +static void shut_wr(int fd) +{ + /* Close our write side, ev. give some time + * for address notification and/or checking + * the current status + */ + if (cfg_wait) + usleep(cfg_wait); + + shutdown(fd, SHUT_WR); +} + static int copyfd_io_poll(int infd, int peerfd, int outfd, bool *in_closed= _after_out) { struct pollfd fds =3D { @@ -630,14 +642,7 @@ static int copyfd_io_poll(int infd, int peerfd, int ou= tfd, bool *in_closed_after /* ... and peer also closed already */ break; =20 - /* ... but we still receive. - * Close our write side, ev. give some time - * for address notification and/or checking - * the current status - */ - if (cfg_wait) - usleep(cfg_wait); - shutdown(peerfd, SHUT_WR); + shut_wr(peerfd); } else { if (errno =3D=3D EINTR) continue; @@ -767,7 +772,7 @@ static int copyfd_io_mmap(int infd, int peerfd, int out= fd, if (err) return err; =20 - shutdown(peerfd, SHUT_WR); + shut_wr(peerfd); =20 err =3D do_recvfile(peerfd, outfd); *in_closed_after_out =3D true; @@ -791,6 +796,9 @@ static int copyfd_io_sendfile(int infd, int peerfd, int= outfd, err =3D do_sendfile(infd, peerfd, size); if (err) return err; + + shut_wr(peerfd); + err =3D do_recvfile(peerfd, outfd); *in_closed_after_out =3D true; } --=20 2.35.1