From patchwork Wed Jan 24 09:58:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 13528881 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E6C1182A3 for ; Wed, 24 Jan 2024 09:58:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090308; cv=none; b=B5eFbfAQgyHvnbOmshtKLHyHFCfsZxJlBdt/C0e7fYIwguMIlzzKsUt5E7xfBIfaU6nl4CqcYlmiYIZjVEmU+YyKmh85TCA4y/e8BgBsZGU3nv9eUDdedHFghWxzxINKO+PoekgGmRvNjIx8LqZAGlqn8lNw1NQ8FXOrvfyM/24= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090308; c=relaxed/simple; bh=JxIsGELBHrHirnkCBFZCx0PaXMg88UftjkeVSsKg1D4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VJGWg5mJ9HhtCmaIs0wTDmkhl8vEwB4TaPgTgn9l53EVCvS7sOpxKRN0BKDas17n634ZE3d+7edfDGbidVPWZTRyECowCFPV2pGzGTfL8YZpRn1TcvTrT6UZM+68Rh/VHvpyGIkX2EojijzDhYNk1v+X1/fOpiO9Bn5i/N5DQjs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nBa7QcOG; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nBa7QcOG" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-29051f5d5e8so2493213a91.0 for ; Wed, 24 Jan 2024 01:58:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706090305; x=1706695105; darn=vger.kernel.org; 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=OdkdHYV/bTjRaswBV7ZNXiCyuFi2PRnts3VTOVvrO5o=; b=nBa7QcOGNWKMwYTAXF1cdWzBlp+f5DnWlXkOXL/Gtkomo+FJhOqJDOaO2eFePcEsXa Wb1zF37oGC42PrzC5U2smlsumGHejldQ7aCyZx2mkB1FRu9PzE213fex90l/EvHyDELW ViIJX/tX3XMdfP6EiEx3r6usjhrj8JjjhALgYBWQ1pJzqliLvjQ9bvxhJcv8uKciLu5Z gI2ve0xMfA7N9s6bJMn5qHJbinjeQY1iV2GbMlz5ekjWfoszorHFwYS72wa3KmPw+UkH buEjfAunQ9Y9wvbCSEb3hclxitflYeCQIG7Q+tUygNd2HsbmURSJPNIGBgJR9YxNxGdA 2XAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706090305; x=1706695105; 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=OdkdHYV/bTjRaswBV7ZNXiCyuFi2PRnts3VTOVvrO5o=; b=BkuBuicZ3qnwSBps/unB5WFx2Ez/1EJSbMMutxpiPZri+/QlptWnFiBW6pH+MROfTV COFi3jvJrZySQqImDTvFMGEl/ZG9j8Zwr5pSizaOGiAvNw2pegIuJ7KSadNW0RGNozHQ hU+Q7XBkJkhxQLRX0IzZD2jVpL+nKSOTxLIo4kw9iAiGu4YswdD3uMLVq++Ki7FkJksT 2p3o1Y2JCc1tZyXVYR6e0ba03lKttmp6nMFoRgCpYf1DAfiM8mL/aKX8rUMZ/ldWLvnY M8J9dKUcsOjQs93g0kmyersaF90FX/JKkskADnq0TsC7FyPywo6kdCtyN7+uRRMjvDnC Vgxw== X-Gm-Message-State: AOJu0YwdzXUDN1up9rVEYgetrxmlDEndiGWSliYPDsgXBGjQv3oskHic VZpqyFjzmlf54UgMBsUimzVYYtDYwY5riNt8dAGFYCeHj+JiDMDZjxDxTid0KXrc1rzV X-Google-Smtp-Source: AGHT+IEZSH80eRimV8iBLfCDiR4LERHRv4IHjraVXccyM+4qysGMfyi3Ly79x1p2lX0pORGy/d8W9g== X-Received: by 2002:a17:90b:f13:b0:290:1a95:2c5d with SMTP id br19-20020a17090b0f1300b002901a952c5dmr3360692pjb.92.1706090304640; Wed, 24 Jan 2024 01:58:24 -0800 (PST) Received: from Laptop-X1.redhat.com ([43.228.180.230]) by smtp.gmail.com with ESMTPSA id so12-20020a17090b1f8c00b0028dfdfc9a8esm13055367pjb.37.2024.01.24.01.58.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 01:58:24 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Jay Vosburgh , "David S . Miller" , Jakub Kicinski , Paolo Abeni , Eric Dumazet , Liang Li , Hangbin Liu Subject: [PATCH net-next 1/4] selftests/net/forwarding: add slowwait functions Date: Wed, 24 Jan 2024 17:58:11 +0800 Message-ID: <20240124095814.1882509-2-liuhangbin@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124095814.1882509-1-liuhangbin@gmail.com> References: <20240124095814.1882509-1-liuhangbin@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Add slowwait functions to wait for some operations that may need a long time to finish. The busywait executes the cmd too fast, which is kind of wasting cpu in this scenario. At the same time, if shell debugging is enabled with `set -x`. the busywait will output too much logs. Signed-off-by: Hangbin Liu --- tools/testing/selftests/net/forwarding/lib.sh | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh index 8a61464ab6eb..07faedc2071b 100644 --- a/tools/testing/selftests/net/forwarding/lib.sh +++ b/tools/testing/selftests/net/forwarding/lib.sh @@ -41,6 +41,7 @@ fi # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 +# timeout in milliseconds busywait() { local timeout=$1; shift @@ -64,6 +65,32 @@ busywait() done } +# timeout in seconds +slowwait() +{ + local timeout=$1; shift + + local start_time="$(date -u +%s)" + while true + do + local out + out=$("$@") + local ret=$? + if ((!ret)); then + echo -n "$out" + return 0 + fi + + local current_time="$(date -u +%s)" + if ((current_time - start_time > timeout)); then + echo -n "$out" + return 1 + fi + + sleep 1 + done +} + ############################################################################## # Sanity checks @@ -505,6 +532,15 @@ busywait_for_counter() busywait "$timeout" until_counter_is ">= $((base + delta))" "$@" } +slowwait_for_counter() +{ + local timeout=$1; shift + local delta=$1; shift + + local base=$("$@") + slowwait "$timeout" until_counter_is ">= $((base + delta))" "$@" +} + setup_wait_dev() { local dev=$1; shift From patchwork Wed Jan 24 09:58:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 13528882 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C213182DD for ; Wed, 24 Jan 2024 09:58:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090310; cv=none; b=c26gVfLqHsZT/F0k+IKHcKB0TdD9vp1NxmOX4s/btNZkGyM0hWAtgiz3QlM0XVBA+RmX0uVESamJX9UzDX7M2OWkD9oyoqu9KH05G+f0gwKUSUEWBMJvNVrI3hhUMGW+PlVWrjUvvEBCBJsFvbq2jk7L+pFXmLtvRvgIl1Yr5bo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090310; c=relaxed/simple; bh=jhDLcoazW2E5MVGTqI/p46vi+gWkM54IlvHUKP8IXSo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aSw1rvmOFXddVFpfXLuJ+MZShMIHUXgVJ1pvWnCkghtmO0OqftFLr3lPsgO2L/RUGHgcUgKDKBG+DgubtuTw1Km6iYushO8XP4PhqkNDC5cGlau0MUBfujPbiFORU4+Du6hcXCT4sEHocKLs+jEes+aRD6PzxiBFRjr3buaSUNQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gQY9D0q2; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gQY9D0q2" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-2903cd158f8so3027682a91.2 for ; Wed, 24 Jan 2024 01:58:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706090308; x=1706695108; darn=vger.kernel.org; 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=gtz9SDGu51uPwXitkL16jBkXc5UEmIDif1hY3bKERas=; b=gQY9D0q2TMUs2GMeTdD96YbWX7wcVPeYoKaanM6R7tYXb/IH2a2fw50EMmDYNkhNO9 /BI7aYJunpdj7dGKT5ZSETPtggctv7ari2fe2ntSSdxfElDIlDzv6FFG/1uNKLldXLW9 tlu0f1kL4N81vS++vqoMW6zsj5J1DhQPTcE0vGTd96uGEB79p1NTBFIFerCII5Qn/PDX wkwYQ2xhCwUnu/+B9uZoweJXCEYlDPgpXAGSJHYKjlaEzSHlIN3JETUuwMTpYNJ310Oy JmLuoDkSNPj6VrLrAjq7w8Iuplz4RDCkvljFPp/d9QLu9cRtQf4d+A8Rag5JjfffY8H/ Q9mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706090308; x=1706695108; 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=gtz9SDGu51uPwXitkL16jBkXc5UEmIDif1hY3bKERas=; b=UIFU2hoch9x/KCYPKHuKDKI34QTAKweLyW80AGpidK3QnUhqweeuhs/hS4zbeS07/k 2jcN8MUFPcBV1vp5ItThNiQs97oVJToTbqueNB6FFb8r2xl/KpQ5j+w834JDwJLchU2X 9YpmGIFmt1ThKDQdGaruec1Canse4wKEd+2PsQyM2m+d2358V2YGvuf5DpOtzC1qKH3M Uo/XcTCdD8FnV39R/G1gOP6/bIh+jg76LfuKEHIG+cMLaVk6ilt8dQ9K7Quk4CeUubjB YJ+s4eKAr3B2gXZF6Jv3dyJYKhh0nDYwgVOC6EdQER8EkUTUwhs/CPCCazHlbce5vPb1 /y5w== X-Gm-Message-State: AOJu0YwQXoEAKUM/DdggW1Jwr6zlRUsd0kwi9fghge4BXLEfjc9Bt/h7 Zh8k1LnPzapyAUlaANydjoJtVs8CO7CC9cIbzvXqtd8QWUimPLCS7BVI9Tn6kKJV9qUP X-Google-Smtp-Source: AGHT+IEuJK5ITtISGs1PUxkm1ZfhsSpolLmcQA6R7+9cP28nN0QjcCvJ8M/a4/7ZmugbdUoKXZ5HDg== X-Received: by 2002:a17:90a:714c:b0:28f:ee85:5c72 with SMTP id g12-20020a17090a714c00b0028fee855c72mr3725902pjs.23.1706090307671; Wed, 24 Jan 2024 01:58:27 -0800 (PST) Received: from Laptop-X1.redhat.com ([43.228.180.230]) by smtp.gmail.com with ESMTPSA id so12-20020a17090b1f8c00b0028dfdfc9a8esm13055367pjb.37.2024.01.24.01.58.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 01:58:27 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Jay Vosburgh , "David S . Miller" , Jakub Kicinski , Paolo Abeni , Eric Dumazet , Liang Li , Hangbin Liu Subject: [PATCH net-next 2/4] selftests: bonding: use tc filter to check if LACP was sent Date: Wed, 24 Jan 2024 17:58:12 +0800 Message-ID: <20240124095814.1882509-3-liuhangbin@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124095814.1882509-1-liuhangbin@gmail.com> References: <20240124095814.1882509-1-liuhangbin@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Use tc filter to check if LACP was sent, which is accurate and save more time. Signed-off-by: Hangbin Liu --- .../net/bonding/bond-break-lacpdu-tx.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh b/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh index 6358df5752f9..5087291d15ce 100755 --- a/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh +++ b/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh @@ -20,21 +20,22 @@ # +------+ +------+ # # We use veths instead of physical interfaces +REQUIRE_MZ=no +NUM_NETIFS=0 +lib_dir=$(dirname "$0") +source "$lib_dir"/net_forwarding_lib.sh set -e -tmp=$(mktemp -q dump.XXXXXX) cleanup() { ip link del fab-br0 >/dev/null 2>&1 || : ip link del fbond >/dev/null 2>&1 || : ip link del veth1-bond >/dev/null 2>&1 || : ip link del veth2-bond >/dev/null 2>&1 || : modprobe -r bonding >/dev/null 2>&1 || : - rm -f -- ${tmp} } trap cleanup 0 1 2 cleanup -sleep 1 # create the bridge ip link add fab-br0 address 52:54:00:3B:7C:A6 mtu 1500 type bridge \ @@ -67,13 +68,12 @@ ip link set fab-br0 up ip link set fbond up ip addr add dev fab-br0 10.0.0.3 -tcpdump -n -i veth1-end -e ether proto 0x8809 >${tmp} 2>&1 & -sleep 15 -pkill tcpdump >/dev/null 2>&1 rc=0 -num=$(grep "packets captured" ${tmp} | awk '{print $1}') -if test "$num" -gt 0; then - echo "PASS, captured ${num}" +tc qdisc add dev veth1-end clsact +tc filter add dev veth1-end ingress protocol 0x8809 pref 1 handle 101 flower skip_hw action pass +if slowwait_for_counter 15 2 \ + tc_rule_handle_stats_get "dev veth1-end ingress" 101 ".packets" "" &> /dev/null; then + echo "PASS, captured 2" else echo "FAIL" rc=1 From patchwork Wed Jan 24 09:58:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 13528883 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-oo1-f45.google.com (mail-oo1-f45.google.com [209.85.161.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 568521862E for ; Wed, 24 Jan 2024 09:58:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090313; cv=none; b=S/QKZ0FA4VharBVgBVXmSP6X5QsuHCk4ww5mkoMJr/sj7HtBoVlqynVdtdCImKUJK/wAB3ozV5tbIO3M6iJpr0GF5stUb5YkPphF9/dFFp8Qim0FNQzeOKIcGPbFMOg+v7n4ku1/zSkZqJpNYxRJ1Cn3bIehZdnMKu99Ijse78M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090313; c=relaxed/simple; bh=GAF6XFjCL4/C/TCxPrZxhQhZpfzEF0RDaOyiV9eYBuw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XTSqbAG/BQqrPgThGjRVHdfa3oPsnyXh0ndQyvFEuA+vCq5UKWV/NiyQSS0l0J+3QUSfvZW5qu+iswPcf205RbVuTLrKrpJCVGlzcGumygvvRvjSfAJvSUgwrwHZN2u8tHLxAtcgYaC0qqkBX4GeDb+GAdZ1nkQbG38BE4fdYMU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Q/d74D8B; arc=none smtp.client-ip=209.85.161.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Q/d74D8B" Received: by mail-oo1-f45.google.com with SMTP id 006d021491bc7-599d1fd9cc1so45616eaf.3 for ; Wed, 24 Jan 2024 01:58:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706090310; x=1706695110; darn=vger.kernel.org; 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=ExaomDlAHFtp1NR/c9It/L1kkAqAdZeGPv+RO/k/NPA=; b=Q/d74D8BWnYjWmwzso+U7SNcQBxbYvbj/umNXXJcbej+5QapbBks1eW8wmKvzNGW2k nU8g1djsbwCQu67ByE14r23M5+HBc6t7xdDZfOmydGOqZ+8+Yp1BX5OU+T4P84n1Lc7r JaqhjrHamP9NiJ4xl/hsLke5pdYnRdfZ6RevqgyvIHDLmY0yvv+Pq/I3OcPVmVH86uV0 VQuPIVsvPHrWFWtjwzhoJWRd4YgZiZghTTzQcluFgcSGlpGEUvfb4jB+rH7TuPExUOTY 9W2k4TKMBinuTbKHVPdHU7fS81oJVuEAUexQTgoIIK4SFDhXOgoqesYw9TxATN5tKVgv VuOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706090310; x=1706695110; 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=ExaomDlAHFtp1NR/c9It/L1kkAqAdZeGPv+RO/k/NPA=; b=DC21aPMh8kZMwYuoKQRcMJNJIcOQXgdMmM27KpCbyrQ/4kC0YrQKyH7wacQT1rjJaf DxLpi+hylm/q9G25wq4ic+jYGCEojalRUfZ6i4LyP+2pr2LcyDcDIBbBKC9xOpOeNVoq VSF3joaRICLKgbN1BewPynEk9kci25Fph++MrNnb7w4oj3/R6yuMckMPDyMvURZDkRCN 7ZLK3Vl7aFZ5JzWUUU48p5gi6EMy3ywP/HHm+xADB+eTDDFdJ3yVsq+hrQIjfUzHvBLK jz3BNp8v6DIVMfFwSKJauEMqrq/PKFMNOYuylOliQ6k4f53BGV2H/tc3nk6106oUH7vr dZXg== X-Gm-Message-State: AOJu0YzS4qAtKkVk7oE41ohoqSVcXz+kf4lTvzgmHUvPnj7JKPjhozFq 6o5w/YwpTWq4vbTxSuMHEzVIMtbQQkM4Sn5Ti9SRTd3dMg5ndrklszSmNgiE1DK/Zm+/ X-Google-Smtp-Source: AGHT+IGkJMRfQQ7T9ac2lR1yMuZ0YlgFyzGsY2K5yJyU6rF5C1dLdXkAfo568G/E22nd56N+fbapbA== X-Received: by 2002:a05:6358:6a43:b0:176:8332:c661 with SMTP id c3-20020a0563586a4300b001768332c661mr2026527rwh.25.1706090310590; Wed, 24 Jan 2024 01:58:30 -0800 (PST) Received: from Laptop-X1.redhat.com ([43.228.180.230]) by smtp.gmail.com with ESMTPSA id so12-20020a17090b1f8c00b0028dfdfc9a8esm13055367pjb.37.2024.01.24.01.58.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 01:58:30 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Jay Vosburgh , "David S . Miller" , Jakub Kicinski , Paolo Abeni , Eric Dumazet , Liang Li , Hangbin Liu Subject: [PATCH net-next 3/4] selftests: bonding: reduce garp_test/arp_validate test time Date: Wed, 24 Jan 2024 17:58:13 +0800 Message-ID: <20240124095814.1882509-4-liuhangbin@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124095814.1882509-1-liuhangbin@gmail.com> References: <20240124095814.1882509-1-liuhangbin@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org The purpose of grat_arp is testing commit 9949e2efb54e ("bonding: fix send_peer_notif overflow"). As the send_peer_notif was defined to u8, to overflow it, we need to send_peer_notif = num_peer_notif * peer_notif_delay = num_grat_arp * peer_notify_delay / miimon > 255 (kernel) (kernel parameter) (user parameter) e.g. 30 (num_grat_arp) * 1000 (peer_notify_delay) / 100 (miimon) > 255. Which need 30s to complete sending garp messages. To save the testing time, the only way is reduce the miimon number. Something like 30 (num_grat_arp) * 500 (peer_notify_delay) / 50 (miimon) > 255. To save more time, the 50 num_grat_arp testing could be removed. The arp_validate_test also need to check the mii_status, which sleep too long. Use slowwait to save some time. Signed-off-by: Hangbin Liu --- .../drivers/net/bonding/bond_options.sh | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/drivers/net/bonding/bond_options.sh b/tools/testing/selftests/drivers/net/bonding/bond_options.sh index c54d1697f439..648006763b1b 100755 --- a/tools/testing/selftests/drivers/net/bonding/bond_options.sh +++ b/tools/testing/selftests/drivers/net/bonding/bond_options.sh @@ -199,6 +199,15 @@ prio() done } +wait_mii_up() +{ + for i in $(seq 0 2); do + mii_status=$(cmd_jq "ip -n ${s_ns} -j -d link show eth$i" ".[].linkinfo.info_slave_data.mii_status") + [ ${mii_status} != "UP" ] && return 1 + done + return 0 +} + arp_validate_test() { local param="$1" @@ -211,7 +220,7 @@ arp_validate_test() [ $RET -ne 0 ] && log_test "arp_validate" "$retmsg" # wait for a while to make sure the mii status stable - sleep 5 + slowwait 5 wait_mii_up for i in $(seq 0 2); do mii_status=$(cmd_jq "ip -n ${s_ns} -j -d link show eth$i" ".[].linkinfo.info_slave_data.mii_status") if [ ${mii_status} != "UP" ]; then @@ -276,10 +285,13 @@ garp_test() active_slave=$(cmd_jq "ip -n ${s_ns} -d -j link show bond0" ".[].linkinfo.info_data.active_slave") ip -n ${s_ns} link set ${active_slave} down - exp_num=$(echo "${param}" | cut -f6 -d ' ') - sleep $((exp_num + 2)) + # wait for active link change + sleep 1 + exp_num=$(echo "${param}" | cut -f6 -d ' ') active_slave=$(cmd_jq "ip -n ${s_ns} -d -j link show bond0" ".[].linkinfo.info_data.active_slave") + slowwait_for_counter $((exp_num + 5)) $exp_num \ + tc_rule_handle_stats_get "dev s${active_slave#eth} ingress" 101 ".packets" "-n ${g_ns}" # check result real_num=$(tc_rule_handle_stats_get "dev s${active_slave#eth} ingress" 101 ".packets" "-n ${g_ns}") @@ -296,8 +308,8 @@ garp_test() num_grat_arp() { local val - for val in 10 20 30 50; do - garp_test "mode active-backup miimon 100 num_grat_arp $val peer_notify_delay 1000" + for val in 10 20 30; do + garp_test "mode active-backup miimon 50 num_grat_arp $val peer_notify_delay 500" log_test "num_grat_arp" "active-backup miimon num_grat_arp $val" done } From patchwork Wed Jan 24 09:58:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 13528884 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2ADAE18659 for ; Wed, 24 Jan 2024 09:58:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090316; cv=none; b=XIWzeQTPtEXonc66aT0b3HRqQtJPb8emr+F9v2+tS28zJj2fdVhKNFHEHrOT/b/xx7BK+WuO4MlORrT11eSBIwxjdIaj4QpL0dlVunv4/wO+1pY5JE4BdBa80IX+UN0JwIrMq0qkbsVADNmNdHoLU/1YBgcGSQ/khD73j3Nx4h8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706090316; c=relaxed/simple; bh=gHm6X99Q4B3nIRHJA1QAVgapALGsTiaa/2TWhMjMSD0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f8mgVK61EH+IzicCFjZ8ToE+2dYDSo1ZjL7zWDRG/092SYXJmQphYoQNpn1GPsWEt6wj1flzxE7Iq7IFMK9R1gT5Y+XWwcA0BDZTNFKZKG7g2dkqKWnPHUde7PdLnReM/YXq28O1bnU+t3kWOv7yYgHs/Xuo5kVNtKOXTVqDufM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=IYLs3LyU; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IYLs3LyU" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-290b1e19101so1970066a91.0 for ; Wed, 24 Jan 2024 01:58:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706090314; x=1706695114; darn=vger.kernel.org; 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=2zNjiZbzDtGZyFdOlANCjflLDW/2o4I4JIwv1yGiJjA=; b=IYLs3LyUcN7I0HZjy1etJ3QTLsdvFDCZgvS6QiE5CccafP8ISiyYVrkKHs9+aaTuO+ Pqlg/xuFXm93GABmS3iWd0Mylm/JKRuysGiKxAlxwxaIdtxxiWpIMDjtGPgcCob6rpSO jtNVSMslowzcQOW6tfaR3SHnCg+Cc8WwvIEMf9HLEoK6t2+hsyv34CRGtiWhLIYVzM9I kKnXY/FtClaIDrGN/MdPjlbskRqsysgfeToKtrYE1sVpVBUwCoA4P6kg45vnsqNY9SqX 5dHUFtkxdLGpan2imdNtPc/TyBXODdLm6e0uZfHHL0jSuDLuiMasSFa1MRsnNID5RMmZ OXKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706090314; x=1706695114; 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=2zNjiZbzDtGZyFdOlANCjflLDW/2o4I4JIwv1yGiJjA=; b=DNkI+RQaZG1WzSG/0VT59UyEHrWXNBjFdPWnpYv455IYLiU535XekeSHoMru9i2RQ0 iGyiPsRPT8fpi2fPaxRB3v4rm0GstVsLAeNkHBQVTKBw7RRcrszfDOaIQExogdoAYJle AOi0XIVP/0nljvm37ITsTIBss0F0i3bTnmmes3m1Gf/IhF/rrVuNBXm6TGWiIVzKbYvD rE3nXyEBq8lED3C8MiSKSRYpKHpqChBHSyLuJxjhXY3MY1+hy7OO993qnjLkyWmHvOAN Or1iRZtfPfRhybo4RK8rAfBxULVP71evCO3Hhko7MTAPSsVk4c55LYHw+EL2R0S01t44 mTRg== X-Gm-Message-State: AOJu0Yz9E3wbuAmcDW47R8ZyYKEbrhmeuO0Z5g+D+UxevMTGWR/TkHlq lLYOvysAguuQSOqqeWeCfMPd/F75n8QE1+IitKRjacLqJ7iHMoMonkO+5Vgo6/nUUWnv X-Google-Smtp-Source: AGHT+IEHbGflzygDQdvv6Ip52Ff5hUCBmSJbYiPX0i8DYeNRx8HhNE7tQJ3DRPy5U1vOHWrOa+qPMQ== X-Received: by 2002:a17:90a:b10f:b0:28e:850e:7e87 with SMTP id z15-20020a17090ab10f00b0028e850e7e87mr1268952pjq.41.1706090313749; Wed, 24 Jan 2024 01:58:33 -0800 (PST) Received: from Laptop-X1.redhat.com ([43.228.180.230]) by smtp.gmail.com with ESMTPSA id so12-20020a17090b1f8c00b0028dfdfc9a8esm13055367pjb.37.2024.01.24.01.58.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 01:58:33 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Jay Vosburgh , "David S . Miller" , Jakub Kicinski , Paolo Abeni , Eric Dumazet , Liang Li , Hangbin Liu Subject: [PATCH net-next 4/4] selftests: bonding: use busy/slowwait instead of hard code sleep Date: Wed, 24 Jan 2024 17:58:14 +0800 Message-ID: <20240124095814.1882509-5-liuhangbin@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124095814.1882509-1-liuhangbin@gmail.com> References: <20240124095814.1882509-1-liuhangbin@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Use busywait or slowwait instead of hard code sleep. When using busywait to check the link connection, I will set ping timeout to 0.1, which could make busywait not too busy. Signed-off-by: Hangbin Liu --- .../drivers/net/bonding/bond-lladdr-target.sh | 21 ++++++++++++++++--- .../drivers/net/bonding/bond_macvlan.sh | 5 ++--- .../drivers/net/bonding/bond_topo_2d1c.sh | 6 +++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh b/tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh index 89af402fabbe..b7b60e767daa 100755 --- a/tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh +++ b/tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh @@ -17,6 +17,11 @@ # +----------------+ # # We use veths instead of physical interfaces +REQUIRE_MZ=no +NUM_NETIFS=0 +lib_dir=$(dirname "$0") +source "$lib_dir"/net_forwarding_lib.sh + sw="sw-$(mktemp -u XXXXXX)" host="ns-$(mktemp -u XXXXXX)" @@ -26,6 +31,16 @@ cleanup() ip netns del $host } +wait_lladdr_dad() +{ + $@ | grep fe80 | grep -qv tentative +} + +wait_bond_up() +{ + $@ | grep -q 'state UP' +} + trap cleanup 0 1 2 ip netns add $sw @@ -37,8 +52,8 @@ ip -n $host link add veth1 type veth peer name veth1 netns $sw ip -n $sw link add br0 type bridge ip -n $sw link set br0 up sw_lladdr=$(ip -n $sw addr show br0 | awk '/fe80/{print $2}' | cut -d'/' -f1) -# sleep some time to make sure bridge lladdr pass DAD -sleep 2 +# wait some time to make sure bridge lladdr pass DAD +slowwait 2 wait_lladdr_dad ip -n $sw addr show br0 ip -n $host link add bond0 type bond mode 1 ns_ip6_target ${sw_lladdr} \ arp_validate 3 arp_interval 1000 @@ -53,7 +68,7 @@ ip -n $sw link set veth1 master br0 ip -n $sw link set veth0 up ip -n $sw link set veth1 up -sleep 5 +slowwait 5 wait_bond_up ip -n $host link show bond0 rc=0 if ip -n $host link show bond0 | grep -q LOWER_UP; then diff --git a/tools/testing/selftests/drivers/net/bonding/bond_macvlan.sh b/tools/testing/selftests/drivers/net/bonding/bond_macvlan.sh index b609fb6231f4..4fddb28a0715 100755 --- a/tools/testing/selftests/drivers/net/bonding/bond_macvlan.sh +++ b/tools/testing/selftests/drivers/net/bonding/bond_macvlan.sh @@ -58,7 +58,7 @@ macvlan_over_bond() ip -n ${m2_ns} addr add ${m2_ip4}/24 dev macv0 ip -n ${m2_ns} addr add ${m2_ip6}/24 dev macv0 - sleep 2 + busywait 2000 ip netns exec ${c_ns} ping ${s_ip4} -c 1 -W 0.1 &> /dev/null check_connection "${c_ns}" "${s_ip4}" "IPv4: client->server" check_connection "${c_ns}" "${s_ip6}" "IPv6: client->server" @@ -69,8 +69,7 @@ macvlan_over_bond() check_connection "${m1_ns}" "${m2_ip4}" "IPv4: macvlan_1->macvlan_2" check_connection "${m1_ns}" "${m2_ip6}" "IPv6: macvlan_1->macvlan_2" - - sleep 5 + busywait 5000 ip netns exec ${s_ns} ping ${c_ip4} -c 1 -W 0.1 &> /dev/null check_connection "${s_ns}" "${c_ip4}" "IPv4: server->client" check_connection "${s_ns}" "${c_ip6}" "IPv6: server->client" diff --git a/tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh b/tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh index a509ef949dcf..7c3f15bc6a9b 100644 --- a/tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh +++ b/tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh @@ -73,7 +73,6 @@ server_create() ip -n ${s_ns} link set bond0 up ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0 ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0 - sleep 2 } # Reset bond with new mode and options @@ -96,7 +95,8 @@ bond_reset() ip -n ${s_ns} link set bond0 up ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0 ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0 - sleep 2 + # Wait for IPv6 address ready as it needs DAD + busywait 5000 ip netns exec ${s_ns} ping ${c_ip6} -c 1 -W 0.1 &> /dev/null } server_destroy() @@ -150,7 +150,7 @@ bond_check_connection() { local msg=${1:-"check connection"} - sleep 2 + busywait 2000 ip netns exec ${s_ns} ping ${c_ip4} -c 1 -W 0.1 &> /dev/null ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null check_err $? "${msg}: ping failed" ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null