Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1005746rwl; Wed, 29 Mar 2023 11:11:49 -0700 (PDT) X-Google-Smtp-Source: AKy350ZuyIKHe63aT0qeMStXcyK1c8rzp6FvCHwz4nenlPUDRVNjF5lAdqOLNVUsn2RapDk2n/5O X-Received: by 2002:a62:3807:0:b0:626:2426:e1eb with SMTP id f7-20020a623807000000b006262426e1ebmr15851907pfa.14.1680113508907; Wed, 29 Mar 2023 11:11:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680113508; cv=none; d=google.com; s=arc-20160816; b=dHftlQoi/vYl05eALNDaDwA89PmzfMaaxVxFsw6KNm+w1bK2QMAS17fnEoYD8lVgZX 18Ka4arCwFMMxDdtGT7Bxij2r6BMgozQo8JPiQ704buB8kpGvbmtDH3+czQaWAu4lC/9 Q5giOWhftVP8byU1jkCPDNgvFbIN8Z3WYMfA3lPBWt74K4gS9yyyhG6F5dbDuorOxpR9 uNxBZBnmzMizIfCWoP0xOHTGpKnP7jmKciKRSRtqLaFw53cP9U61q6bWpD8pLPV0R7Uc 7VQDsmx4WVnHiC9gL6LEmuNb0hXuXkTsaRYERckGrsEL6VPVZaCGRHmpb7h3iQFI4pDv Wm/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+R9QiPuepS+iN2C03D2RIlNJyKTPRzGWrbYYFW+ChZA=; b=peYI8+twr8TFFxhLks44LFYgr3Pmr5Cpg9gwvfpcvXFJksaTUR91GvDeP04wyUNQO7 zTu0F4a03nET7LJwKYcQuPJnR5+nmg4usVwcM4lym5eRtiB+HIKjHL92rQNQxKoTm/ZL CIkyGzQIWHpXg/+jO0ifRwka4zyUL7euXELtax8SxS3duGMP4rS67BPI2FbyFl7R8Kaz QpEJgOOllOrdGzz/kkfE+nurfRJe6N4fXER2OwnxJDf87t2EwwAL4J2uvoQj9CYMmZyd pKLlmUSg80T7d7yI27nyrXz3AgDNvyiszqvEakmkuYprv/MaNhim7VeEcYR8TK3wDNtO eUJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@dectris.com header.s=google header.b=AjLMyHny; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=dectris.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h2-20020a056a00170200b00623b50eb7d0si34714053pfc.214.2023.03.29.11.11.37; Wed, 29 Mar 2023 11:11:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@dectris.com header.s=google header.b=AjLMyHny; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=dectris.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230156AbjC2SIQ (ORCPT + 99 others); Wed, 29 Mar 2023 14:08:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230086AbjC2SIJ (ORCPT ); Wed, 29 Mar 2023 14:08:09 -0400 Received: from mail-ed1-x562.google.com (mail-ed1-x562.google.com [IPv6:2a00:1450:4864:20::562]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 796A0527E for ; Wed, 29 Mar 2023 11:08:07 -0700 (PDT) Received: by mail-ed1-x562.google.com with SMTP id t10so66641214edd.12 for ; Wed, 29 Mar 2023 11:08:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dectris.com; s=google; t=1680113286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+R9QiPuepS+iN2C03D2RIlNJyKTPRzGWrbYYFW+ChZA=; b=AjLMyHny1FrLIzhpx8Wy8ca8Gsf8r9QZwhUNhP2mJ3dj3pRNXAli+exviq/Y1+fy6K 0DeBtE1yZSTfC/uouv0uCDcp0XWFTmU2qFKmczFSpqNp7xjJH3AsRGdRPYoF+O+XXHK4 zUje9uyo9T52Tvq967f0DniahDOV2lqY4FLNU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680113286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+R9QiPuepS+iN2C03D2RIlNJyKTPRzGWrbYYFW+ChZA=; b=gTQttCoVS73HGhSxpoLi9PZYdTUpDy/cTPJkRxxGL5cvPAnOr27mFKHInZuXIHjSbS TrxrUad4bncMsGFJED02zoJL5+lkiB8wqngBig+XU3S0yrtACf9iwkKFzXqTcOks/GPW oJH1MIBbeizxkBw9PJKciJ+jTWg6xNm6JJv2/29SoDadAuNYGxfsmSuav++wTvxOG47B 2Wv/oTvDaxxyzSpzYyq+6lA7qrRErCT6jXI4nMs8aPb2KOwN8uuYjM6mIeH9322No0C/ RCsW8hkQEj54Y53+u+HVqvBSEvJgaOLgiiCGpVOPcm+HX1rODsdmVdmTL1RirTrgAHbG 8ZMA== X-Gm-Message-State: AAQBX9ejKy5e0wqGp81n2ecZRfGSp60hLV5wQpBCFV6Uwg5loTSUr9zB q9hhSx+3+ehmJYYhnoCJwTZ2HcS0Q7IuXALTo/YpsfVQdDVZ X-Received: by 2002:a17:906:a107:b0:932:365a:c1e7 with SMTP id t7-20020a170906a10700b00932365ac1e7mr20591941ejy.67.1680113285822; Wed, 29 Mar 2023 11:08:05 -0700 (PDT) Received: from fedora.dectris.local (dect-ch-bad-pfw.cyberlink.ch. [62.12.151.50]) by smtp-relay.gmail.com with ESMTPS id m10-20020a1709066d0a00b00920438f59b3sm12072998ejr.154.2023.03.29.11.08.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Mar 2023 11:08:05 -0700 (PDT) X-Relaying-Domain: dectris.com From: Kal Conley To: =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Magnus Karlsson , Maciej Fijalkowski , Jonathan Lemon , Andrii Nakryiko , Mykola Lysenko , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Shuah Khan Cc: Kal Conley , netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH bpf-next v2 04/10] selftests: xsk: Deflakify STATS_RX_DROPPED test Date: Wed, 29 Mar 2023 20:04:56 +0200 Message-Id: <20230329180502.1884307-5-kal.conley@dectris.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230329180502.1884307-1-kal.conley@dectris.com> References: <20230329180502.1884307-1-kal.conley@dectris.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fix flaky STATS_RX_DROPPED test. The receiver calls getsockopt after receiving the last (valid) packet which is not the final packet sent in the test (valid and invalid packets are sent in alternating fashion with the final packet being invalid). Since the last packet may or may not have been dropped already, both outcomes must be allowed. This issue could also be fixed by making sure the last packet sent is valid. This alternative is left as an exercise to the reader (or the benevolent maintainers of this file). This problem was quite visible on certain setups. On one machine this failure was observed 50% of the time. Also, remove a redundant assignment of pkt_stream->nb_pkts. This field is already initialized by __pkt_stream_alloc. Fixes: 27e934bec35b ("selftests: xsk: make stat tests not spin on getsockopt") Signed-off-by: Kal Conley --- tools/testing/selftests/bpf/xskxceiver.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c index 34a1f32fe752..1a4bdd5aa78c 100644 --- a/tools/testing/selftests/bpf/xskxceiver.c +++ b/tools/testing/selftests/bpf/xskxceiver.c @@ -633,7 +633,6 @@ static struct pkt_stream *pkt_stream_generate(struct xsk_umem_info *umem, u32 nb if (!pkt_stream) exit_with_error(ENOMEM); - pkt_stream->nb_pkts = nb_pkts; for (i = 0; i < nb_pkts; i++) { pkt_set(umem, &pkt_stream->pkts[i], (i % umem->num_frames) * umem->frame_size, pkt_len); @@ -1141,7 +1140,14 @@ static int validate_rx_dropped(struct ifobject *ifobject) if (err) return TEST_FAILURE; - if (stats.rx_dropped == ifobject->pkt_stream->nb_pkts / 2) + /* The receiver calls getsockopt after receiving the last (valid) + * packet which is not the final packet sent in this test (valid and + * invalid packets are sent in alternating fashion with the final + * packet being invalid). Since the last packet may or may not have + * been dropped already, both outcomes must be allowed. + */ + if (stats.rx_dropped == ifobject->pkt_stream->nb_pkts / 2 || + stats.rx_dropped == ifobject->pkt_stream->nb_pkts / 2 - 1) return TEST_PASS; return TEST_FAILURE; -- 2.39.2