From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (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 5E48B2D94A4 for ; Wed, 28 Jan 2026 22:12:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769638374; cv=none; b=sU3vnQSVWw577dqUS6bhkE4Wxp7ShN38sVSNhg9laQT30SRIX9oLN0EUDlNFGt1a9gPLApA0c4gnshduH1+j/hdN6/JNyG1VXjVbBh1Esb3DZlZqL7Y0OaXZ8IXiFHoXJ3sdaRbOefTr+30qUxPfL41wdJ0t04XUDBT6/usl03Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769638374; c=relaxed/simple; bh=3/ZGvrOJ/EeebmY/pHR1o5er+CrVigjVSeIWhExIpG4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=GUI8M50Ectox1aDWPgcO6EKrrC/Jai3mpsOuIHyAgmB9IOj8iX8vpb/GBTeJUDv/jSqpUFlson7lAas/s1Y+TNNon1krrFafuw8nV8HEqYBcjgWpRT5Jaw3Geo6pyXFmWl8F3c7gmGSspBLzbmheqMFL106i7cVNm1z4H0t3GmQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=BfOLogfe; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=sZ7QiAYD; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="BfOLogfe"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="sZ7QiAYD" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1769638370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KIT9CsTljwdnJ9erps7fcHJr49NIK4bTScEEBRZFMDU=; b=BfOLogfeJqxNbzxpCvjrhrXHICs+P+lxFSCA2oC76ChBfXCzbrH76LvGcYNO/V29w1/jFu 5uLorL2Rajajc6NuZK+tO8NgWv+xaVeCRlTmAT4E6GGUWMrgYHHvJ/v4pOXpFabqhpRWYA BJwuqbq6zNuus1fLwtcgCqb0lsTJ7T0= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-10-Wqz1GZ1KNiy2rzkly0HyMw-1; Wed, 28 Jan 2026 17:12:49 -0500 X-MC-Unique: Wqz1GZ1KNiy2rzkly0HyMw-1 X-Mimecast-MFC-AGG-ID: Wqz1GZ1KNiy2rzkly0HyMw_1769638368 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-4359849d324so233303f8f.1 for ; Wed, 28 Jan 2026 14:12:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1769638368; x=1770243168; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=KIT9CsTljwdnJ9erps7fcHJr49NIK4bTScEEBRZFMDU=; b=sZ7QiAYDdnPEaKoO2RyiD0rLu9lqLrmZWRnDNPLtmigYAJQ61gKJm276jHRBuyGqPd OEsLYNJRigSQd5lRkjURodS62PyF0XXMxEi814zpOcJAW1xPqW3vFNcBVgnL+teE1bov pV3OqfdMLVt7AQQY4zcBhUMDNLCCe+J1vxtPb/Xsd2+6LVVpKCj2tqOVQ3vdojj7B2el XtVp2QvymixhKGmSl/JYNsEI/knguKNF+CjXYtXV77BtwQtu3xQfrWfOlVGR6YUI1UU0 stLyptoEeF4HZhHECHiibJzJhnozZWI3cQJpCdnnNppixbuV5xtVSppk1jKdp6cPc+l7 6z+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769638368; x=1770243168; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KIT9CsTljwdnJ9erps7fcHJr49NIK4bTScEEBRZFMDU=; b=XH3688pJD3RI4udt6etv48S76sXW7K9mhoL51ocXhv1OiSGpp/JdCW6iT1bh2jqxcS /syYo9/x4pqFTQYs8ICKZdwgXYLlZM/RBg/M/EAuXSw1Z869M38Zy0wic/ARoUxBaoiP mmxA/xXf7nxVvio6bFVysgZWHwdjiIosSd0r07QjMttbZC0xCj+PNnYY5u5fEU3mLj8F lDxVnQhZMm0RirqCDJdPiXNDF+WH595oE9VN4XcRY9mPbcXaX6pTBBILmlvsuVRCSFt0 /1jgvylOzE5qEZHq2N6JYt/LzV5a3N4RYgKzV6RkHEXEKCIpVP8XFpoxe0cZFlZV6/y3 wh7w== X-Forwarded-Encrypted: i=1; AJvYcCWcQ6ADsXMC2k7hrtW4CZcI92XqgdaE12FPdUZQArJ/+6++4uXqIXkKssgJK9p2LjeTKnZAp1XpOk45E8M=@vger.kernel.org X-Gm-Message-State: AOJu0Yxl84g5sm4QunqOo7muOUm4RNqErLhXWEOV+7P2yfn/WtNuKqXR pq8DvnBTyoeoepZIr+v0bVM//9alfk60qLfksLdayNaNQtJKQ7lbq7RK2RYmJIHpZNWpbDKpV4D dqEEN0U3cvOV1g/yWT3sAGZq4Zg37CiM5m9eiFIBm6XkzWrZeAL+7TWnYt8Qh5TKHAA== X-Gm-Gg: AZuq6aJpcDR4V7uVB2Pox7T4riOY/r7asyeL4vyklEsMz09GnS9cZiSYjpHfp2pZXAy hJp4zdn3fb72+frnWk8a5qL/QaYkvd98rqsHs6kwDcY8SlEyY8TWye2vlgHHANu2snlm2hOsHir aLZxC7g3ZnvgMTc/8En2D6Yo0N/2y9B5MDH4j+iI0kzcqMp3iYnotct4sqlaOxxtu3/wM5ifpnn USvfHVahxcjjvqTZTl/vYUXQMU9KkWtAVkkLwKXJdjfoYU59/C/KLf+sAeYZEPKUTKrQHktRLjp qZXGPKcjYNw3XIJNsH0JxnBjdNoapsRy9FlYHqiwLpX10cbquWVcaRs05yxmfe622kKmVCbaoXX 7UPga3Uyg4uueZWWj2r2IHBiU81LXG64jEg== X-Received: by 2002:a5d:5f82:0:b0:431:1ae:a3ca with SMTP id ffacd0b85a97d-435dd02126fmr11202392f8f.11.1769638367674; Wed, 28 Jan 2026 14:12:47 -0800 (PST) X-Received: by 2002:a5d:5f82:0:b0:431:1ae:a3ca with SMTP id ffacd0b85a97d-435dd02126fmr11202370f8f.11.1769638367159; Wed, 28 Jan 2026 14:12:47 -0800 (PST) Received: from redhat.com (IGLD-80-230-34-155.inter.net.il. [80.230.34.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e1322f40sm9362320f8f.34.2026.01.28.14.12.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jan 2026 14:12:46 -0800 (PST) Date: Wed, 28 Jan 2026 17:12:43 -0500 From: "Michael S. Tsirkin" To: Vishwanath Seshagiri Cc: Jason Wang , Xuan Zhuo , Eugenio =?iso-8859-1?Q?P=E9rez?= , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , David Wei , netdev@vger.kernel.org, virtualization@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 net-next 2/2] selftests: virtio_net: add buffer circulation test Message-ID: <20260128171144-mutt-send-email-mst@kernel.org> References: <20260128212031.1431746-1-vishs@meta.com> <20260128212031.1431746-3-vishs@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260128212031.1431746-3-vishs@meta.com> On Wed, Jan 28, 2026 at 01:20:31PM -0800, Vishwanath Seshagiri wrote: > Add iperf3-based test to verify RX buffer handling under load. > Optionally logs page_pool tracepoints when available. > > Signed-off-by: Vishwanath Seshagiri > --- > .../drivers/net/virtio_net/basic_features.sh | 70 +++++++++++++++++++ > 1 file changed, 70 insertions(+) > > diff --git a/tools/testing/selftests/drivers/net/virtio_net/basic_features.sh b/tools/testing/selftests/drivers/net/virtio_net/basic_features.sh > index cf8cf816ed48..c2c8023d2b92 100755 > --- a/tools/testing/selftests/drivers/net/virtio_net/basic_features.sh > +++ b/tools/testing/selftests/drivers/net/virtio_net/basic_features.sh > @@ -6,6 +6,7 @@ > ALL_TESTS=" > initial_ping_test > f_mac_test > + buffer_circulation_test > " > > source virtio_net_common.sh > @@ -16,6 +17,8 @@ source "$lib_dir"/../../../net/forwarding/lib.sh > h1=${NETIFS[p1]} > h2=${NETIFS[p2]} > > +require_command iperf3 > + > h1_create() > { > simple_if_init $h1 $H1_IPV4/24 $H1_IPV6/64 > @@ -83,6 +86,73 @@ f_mac_test() > log_test "$test_name" > } > > +buffer_circulation_test() > +{ > + RET=0 > + local test_name="buffer circulation" > + local tracefs="/sys/kernel/tracing" > + > + setup_cleanup > + setup_prepare > + > + ping -c 1 -I $h1 $H2_IPV4 >/dev/null > + if [ $? -ne 0 ]; then > + check_err 1 "Ping failed" > + log_test "$test_name" > + return > + fi > + > + local rx_start=$(cat /sys/class/net/$h2/statistics/rx_packets) > + local tx_start=$(cat /sys/class/net/$h1/statistics/tx_packets) > + > + if [ -d "$tracefs/events/page_pool" ]; then > + echo > "$tracefs/trace" > + echo 1 > "$tracefs/events/page_pool/enable" > + fi > + > + iperf3 -s --bind-dev $h2 -p 5201 &>/dev/null & > + local server_pid=$! > + sleep 1 > + > + if ! kill -0 $server_pid 2>/dev/null; then > + if [ -d "$tracefs/events/page_pool" ]; then > + echo 0 > "$tracefs/events/page_pool/enable" > + fi > + check_err 1 "iperf3 server died" > + log_test "$test_name" > + return > + fi > + > + iperf3 -c $H2_IPV4 --bind-dev $h1 -p 5201 -t 5 >/dev/null 2>&1 is using hard coded ports like this fine? running several in parallel will fail ... > + local iperf_ret=$? > + > + kill $server_pid 2>/dev/null || true > + wait $server_pid 2>/dev/null || true > + > + if [ -d "$tracefs/events/page_pool" ]; then > + echo 0 > "$tracefs/events/page_pool/enable" > + local trace="$tracefs/trace" > + local hold=$(grep -c "page_pool_state_hold" "$trace" 2>/dev/null) > + local release=$(grep -c "page_pool_state_release" "$trace" 2>/dev/null) > + log_info "page_pool events: hold=${hold:-0}, release=${release:-0}" > + fi > + > + local rx_end=$(cat /sys/class/net/$h2/statistics/rx_packets) > + local tx_end=$(cat /sys/class/net/$h1/statistics/tx_packets) > + local rx_delta=$((rx_end - rx_start)) > + local tx_delta=$((tx_end - tx_start)) > + > + log_info "Circulated TX:$tx_delta RX:$rx_delta" > + > + if [ $iperf_ret -ne 0 ]; then > + check_err 1 "iperf3 failed" > + elif [ "$rx_delta" -lt 10000 ]; then > + check_err 1 "Too few packets: $rx_delta" > + fi > + > + log_test "$test_name" > +} > + > setup_prepare() > { > virtio_device_rebind $h1 > -- > 2.47.3