From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 6943080474 for ; Tue, 27 Oct 2026 18:16:38 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RIFOAg032253; Tue, 27 Oct 2026 21:15:25 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RIFOAg032253 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="DF2CQlTF" Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RIFNpQ032241 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 27 Oct 2026 21:15:24 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RIFNpQ032241 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-48e0389d6f9so83255f8f.1 for ; Tue, 27 Oct 2026 11:15:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBwBzmecMHP91YF21dIliJDbEHNdtGZXck1SsRGxRHRBplVMDi5eWdHqr0ILxeViv8STfjJSvQ==@openvz.org X-Gm-Message-State: AFq9FYI3GNL7pv/HaxKOlRrKGpWkX8bmCTgX2yIUpzi7XD2+ZMu16tUT 52yO+kVrxJ992FaiEfIklWK+NKB6/6yLw26wkoYEm2E9+uPCwzn5+O7WJUtisvSCCKkhlZRCsVD G8U41H2Igo16Wg9iqXnSA6IRGPFrKBT4v1AmSMoUYFa2LaSChnhPWLw== X-Gm-Gg: AYBFou3Sop6EfqHUIRYm9tvMMUZ7Zgq2OWjVQI2Jw/tCBavnZ0rZY3Af7Qkg5yl/zAm 5RhvcyhTPT2gC7Bud/5Ubl+6STUZVr8WZ8zj+u7BfdgPsE899rkNPajn8fXyy6X/GmJ+wds0w4k X/eMuo9wRs3JDeZP6aU+MWPPMwwuZ7a+UD1lubJwhW35jbDlauQiyyXndIpJZ+Lu1+DxogZ1iGP ddpmiW5qBc7MfiNel4X7Kohtx6o8QEOlgMAuRWyfvQiNBUuELT5xhJkhkLeyw/8tVCweo+q/3gT uux5owzYh/ynuTnit/6tuPBuK/odWrl9zJlePlDfG3sS/RzStmmJw6OkgDedg/PDpgDtO7oT/QB 9+N2Ln63EBAB2d/5G2g== X-Received: by 2002:a05:6000:4308:b0:48e:6f:a9c1 with SMTP id ffacd0b85a97d-48e5d5d2236mr542816f8f.54.1793124923636; Tue, 27 Oct 2026 11:15:23 -0700 (PDT) X-Received: by 2002:a05:6000:4308:b0:48e:6f:a9c1 with SMTP id ffacd0b85a97d-48e5d5d2236mr542750f8f.54.1793124922996; Tue, 27 Oct 2026 11:15:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1793124922; cv=none; d=google.com; s=arc-20260327; b=pAcxjXPR/qffZDagt76TI2vyQRc3PvGsZvAtytHOecMSpvhLsmdpOAna0YeidiSs+6 zLVtoLVMIQK60j384ekzz/LkuZdeRmzh8f0Xif64e+fRWrhPvGve7orpd2rtZsKVqgph pqjtCAdrvSQjr1lr8vpK6rAICQzT+z6xfMKv31s0wEuWChHM86KR4OUa8uBzYFjmistz DThBVSHJOOA+Fj5seRbUC5+6INJEh0SYumqBEBEDbwB9k+tpV+a4oSD0kyJbdyVRwJJR JoP/38KAr4FChg/vIXm/vKRAznA1nVaEJ4PltuIf8Y9iRh33cZ9aYdMRMWdd9eLeNh6f YtzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=HUH9F+PEEVoFOGTTrmlbBpIpfAWdqqee22u69wxklYs=; fh=Ac4B+E9J0iKprNz57k5baX4D1nACtq3mk5EYYPOTKpA=; b=H7j1pBCJtTJurZ+tuhOXPOimF5RUMLcl9JmZoqNgUPoURDP+4leJexN2vDnMIgZ4nP AdWyFcJmDPx5HBYVKNqqbvqeDrTh/a+N+40lEP+bNCmBmCTPM12dvt71KxBNnMkEyNUk dnmEVzCBK0D7I1BV99oveJNrZ4GjNa8Wc+H7z50tqtuTwJCa/MgHQzkINxLI8SzHcoc+ MIb9z4fMEbR5DGi65x0cq3BaebFgxbp56XQCj4c9mU/jj2NFXnA82XvvYFVjdVvoM03l hEy8/gb4reXWhAY87PQxxrt7RCYjFEJD9dUuKFIO6a5j+vcRX7fD4YBKytZxuuVDAZ/5 RhrQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=DF2CQlTF; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48e3ed10302si20732619f8f.342.2026.10.27.11.15.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Oct 2026 11:15:22 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=DF2CQlTF; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=HUH9F+PEEVoFOGTTrmlbBpIpfAWdqqee22u69wxklYs=; b=DF2CQlTFdWDLI/JXQZM sSCzl4Y1T0aDtsQmnyRIpCKslwkRE8kDiCpHJmRFcvCU1cdXaR8c4ws+bMU0c5hPk0jbD55uCmd2k Z497X3PIAMgs86rDdftg9ot7MlqqxbKDGBtFI9s0ie8FX7e1tU0RHn3H3pPRAdKVvkqZGmUqbuuw+ fTW64UvAEe5Rdb3a2aqG0xPgGZ2/WyLSzbCXSPsk6MzcUxUc7ueHf7MjM6TRVW/9KHhVs1JflQXAO Sj44A95JzahARNBCZRkfvln2U6KJHeOeUF+V1hI4DtyzblVSJPEFQwpMI8l6qReNziTG3/fyCeUCU bF3sVny8swaWS/A==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=f0.sw.ru) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xLldx-001dYc-2W; Tue, 27 Oct 2026 19:15:12 +0100 From: Konstantin Khorenko Date: Tue, 27 Oct 2026 19:15:20 +0100 MIME-Version: 1.0 Message-Id: <20261027-b4-prep-khorenko-vstor-150731-xsk-veth-netns-v4-2-c74cad570c70@virtuozzo.com> References: <20261027-b4-prep-khorenko-vstor-150731-xsk-veth-netns-v4-0-c74cad570c70@virtuozzo.com> In-Reply-To: <20261027-b4-prep-khorenko-vstor-150731-xsk-veth-netns-v4-0-c74cad570c70@virtuozzo.com> To: Konstantin Khorenko , devel@openvz.org X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3009; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=I21qBciCjNVXq4hubALy/iQfpHyLwyQCL9LdxgaKkLs=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBq4Oo57MMPoukLeFJMHlu32Z0H1YOfmyKR5RRbt xWHuDNIk76JAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCauDqOQAKCRBRlgpH+WFc Kh4JD/94veQRTORYDSShimXhYUU2BVZw8Ej73syFLdT/RdfQPbHrWB2Oizj8n78293VLD/TXDb1 JmPafTDt4b0X46v83U24CheivUr/2FtyOcV/2O41hUmKhY/0Pk8iiVQ9qfNeqsFYJuni+AYcxor xgORM4P3CzVl4hbbhetblYnUxnP7JgfS1lvYZ5pHnqUbWuxJUek/1ZozZk2UfF5GXw56dN4PWw2 Z8j9/MpeiUGJsmnzNARZGdEFgnflJ2DJByxCMjWV64KmPaMQfrR2tfrnYEgr0k0qmCvMdx3cdFQ JxJf8va4RZ1jS0NYtCBhQnw6vxTBzqPVlHls3EiqGnIonxaVXA9dkmEN0eet8EKiIfz0umR8Xmg XLTYkhR2dfoOqcFDM+SmcXSOMHvPceT/ZEwSegw73nd8lEdqp3fXLuWrn/OMTV10LdDwt1J7jxS ot15ESgUikqMlYR05sJq9XinjWrnUYO+rVSA1AAuEUR8AAG7ES28hH4rBcu8ES9g8iXdJmxE18X 9AaW0+DsNZTAt4fh441QHy1EYUHxuiWeHA5zq23Myu7tVmyF5AOs0W+vLLs2/Afq+u6m65CG5pe dHbcAzgZTGkSxyBpYO/SDsAhca4bFsPx1Ib+of8yKU/4xIv57Ukytnb86bbkY2CmPFaaPDRiwJ2 gE8krV3KAMNbmhg== X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Subject: [Devel] [PATCH hci-8.1 v4 2/3] selftests/bpf: xsk: take the fragment limit from the kernel's BTF X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org From: Eva Kurchatova too_many_frags sends a packet with as many fragments as the kernel takes, then one that goes past the limit, and expects only the first to arrive. xskxceiver reads the limit from the max_skb_frags sysctl, which has two problems: - AF_XDP does not use the sysctl: xsk_build_skb() checks the compile-time MAX_SKB_FRAGS. The sysctl only equals it by default, so on a host where it is lowered the test expects the wrong limit. - The sysctl exists in the initial network namespace only. A run in any other namespace finds no file and falls back to 17, wrong for a kernel built with another CONFIG_MAX_SKB_FRAGS. Take the limit from the kernel's BTF as the element count of skb_shared_info's frags array: it is MAX_SKB_FRAGS itself and readable from any namespace. The sysctl stays as a fallback for a kernel without BTF. https://virtuozzo.atlassian.net/browse/VSTOR-150731 Feature: fix selftests Signed-off-by: Eva Kurchatova Reviewed-by: Konstantin Khorenko --- tools/testing/selftests/bpf/xskxceiver.c | 39 +++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c index 11f047b8af752..a4a0b4e2516ca 100644 --- a/tools/testing/selftests/bpf/xskxceiver.c +++ b/tools/testing/selftests/bpf/xskxceiver.c @@ -103,6 +103,7 @@ #include "xsk.h" #include "xskxceiver.h" #include +#include #include #include "../kselftest.h" #include "xsk_xdp_common.h" @@ -325,12 +326,48 @@ static bool ifobj_zc_avail(struct ifobject *ifobject) return zc_avail; } +/* AF_XDP checks MAX_SKB_FRAGS, which the sysctl only follows by default */ +static unsigned int btf_max_skb_frags(void) +{ + unsigned int max_skb_frags = 0; + const struct btf_member *m; + const struct btf_type *t; + struct btf *btf; + int id, i; + + btf = btf__load_vmlinux_btf(); + if (!btf) + return 0; + + id = btf__find_by_name_kind(btf, "skb_shared_info", BTF_KIND_STRUCT); + if (id < 0) + goto out; + + t = btf__type_by_id(btf, id); + m = btf_members(t); + for (i = 0; i < btf_vlen(t); i++, m++) { + if (strcmp(btf__name_by_offset(btf, m->name_off), "frags")) + continue; + t = btf__type_by_id(btf, m->type); + if (btf_is_array(t)) + max_skb_frags = btf_array(t)->nelems; + break; + } +out: + btf__free(btf); + return max_skb_frags; +} + #define MAX_SKB_FRAGS_PATH "/proc/sys/net/core/max_skb_frags" static unsigned int get_max_skb_frags(void) { - unsigned int max_skb_frags = 0; + unsigned int max_skb_frags = btf_max_skb_frags(); FILE *file; + if (max_skb_frags) + return max_skb_frags; + + ksft_print_msg("No MAX_SKB_FRAGS in the kernel's BTF, reading %s\n", MAX_SKB_FRAGS_PATH); file = fopen(MAX_SKB_FRAGS_PATH, "r"); if (!file) { ksft_print_msg("Error opening %s\n", MAX_SKB_FRAGS_PATH); -- 2.43.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel