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 C0D128017D for ; Tue, 27 Oct 2026 18:15:19 +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 69RIDw1R032228; Tue, 27 Oct 2026 21:13:59 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RIDw1R032228 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="seVAqyC3" Received: from mail-yx1-f71.google.com (mail-yx1-f71.google.com [74.125.224.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RIDuBB032224 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 27 Oct 2026 21:13:57 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RIDuBB032224 Received: by mail-yx1-f71.google.com with SMTP id 956f58d0204a3-6755fef4f96so288662d50.0 for ; Tue, 27 Oct 2026 11:13:57 -0700 (PDT) X-Gm-Message-State: AFq9FYLzTj4kps+BP5YkbznRVzG7r+XwGlmceWNoe2bxpxwpNLHgdy1K kdFkjV+y4wPObBAQlJpvL0IMFyU3cy3FKM9kdMzo7Er21s9rFvB6Na90v11G997S3mfgcFbWeiW 7OcPmI1OYre5P54PPEt2YCrbR2YC9+trCb25jVYcvaQSVd/BDxWb/lw== X-Gm-Gg: AYBFou2NlE7ch26uqHmpTqhdk87RLctEdimI++31FEUbDHKKhqcz3xdo7YFNu0bdTM9 ywsDGMFYZqP9XfUTo7bfa9V+7/gx9heDPTYyo+dgES5RN1DjJao6GbJ2fd2qUHx5GrDGu0DZaYB P3W/S3GLBJgjBqmUUxBOUcB4HcOd+sKm8Tj9wO8Jo8bDHjs1lBiEMDY7W5e6GaWiP4DR+ioedX3 BSyXZXEV5CKhF2fN0gvz/R44oEHvwzOHAOy5slsYR+C64nn1X63zBV53skzOEM82ljv1LysM02O RRYkLAN0laxHmAm/J5iLk1ICQp+MuCGqC1+KcDNFRiKBHoAta1pY4hnD0t89OLuy8Au6zc6P1wk g/uu38HdfSTfxe2T16SlFYc5U2wr4kS97/J12kEusTcycTWSbTqNySsUitIXRUrCoZpLKNGRLPm yCAzT3DpSBuewfsfVeq3tPNKE= X-Received: by 2002:a05:690e:2602:b0:675:420e:3244 with SMTP id 956f58d0204a3-67a7bd10234mr159151d50.82.1793124836102; Tue, 27 Oct 2026 11:13:56 -0700 (PDT) X-Received: by 2002:a05:690e:2602:b0:675:420e:3244 with SMTP id 956f58d0204a3-67a7bd10234mr159134d50.82.1793124835519; Tue, 27 Oct 2026 11:13:55 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1793124835; cv=pass; d=google.com; s=arc-20260327; b=Jz7RKFyVbrsT8nPdiqzT4k4YYzXKXvYgCIixnL/p3jW6E0i7WI6+vm1JzfyePebKlb +Hxovu856YI7lLi/ZTXIYZKxdKl3NCEIiIcJMuAEmFuZB+OiP23ipvJjBisBsUNUgvpj 8nyBIZf6aI9xHHZmBisS7yRra5RGfq9jF15RSFFwB3vcrypqVBVw9F+q8eRs/xHOd4t0 I1Xgl6MUOYS8O27qjcgd5fDwpqgKC5w51PbPgfkhY96oFOhHPuFfQm69/qyVEE6780Ia UnOsUvYKJ88I/MgnCE5tUoV6b6f1Puy9bVKS5FKUXhd7pUe507WZp0jWhvOg07lzQLdH X14Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:date :message-id:dkim-signature; bh=vo3XIUOo180z6fXgxCZgVpBhqIa/Gk7obWvnhOgPkb8=; fh=4Sx4fRpltW7SVtdImyKcEUj5FPMjkilOdU//pCm4A+8=; b=U3hDSgbuQ6N+BHXcwIy+uEuQuK+WCS5IVwSzJ86IpB5bRYXFsNXeix7ylMqQtOFdGe uQL5MNK1bWWDfnhiP6P3/iNda24aqYBUWEG6h5cIazvSC4L3Pt17i5350w4t2Fh1iij7 svd1pU+Kdh21DZB5vtb2tDJSaIKU5nWYCdIUxBo5DEtbou6qIWIQjjywnGR4bTOkFnXp SVNIhOUx+aLFUgAHabpO3gy+nbDJjdbgSO9P8jrqmTPoyRRH1gOcohIarhuJb8h6kTjD Wq4CqJtZ4bfV06EA+AqyesHiAlCeqUldq+y4up6FbTjauB5Dn4rPipnLeQkJCVZq18BK kJfA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=seVAqyC3; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20a::7]) by mx.google.com with ESMTPS id 956f58d0204a3-67a7a0ac7ebsi592185d50.127.2026.10.27.11.13.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Oct 2026 11:13:55 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c20a::7 as permitted sender) client-ip=2a01:111:f403:c20a::7; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=seVAqyC3; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fGGbMjb02loZVuNVtuTotbXiSeZwY54SvFVN/q1BKJd/9BSU5VfPrbnkdTtnQiLe+A+mPwp4JeWmHYzV+W5qa8b7exmoCJkrYRnMipqpFIs6eK+KfFOR7CiwfyKFz6LsYfEgfgTHxjtu5sTEsKu5BEnsHRG9ZcZV5LTcOwTU6n3kCNHYb5UpvKjRVDoAdkqxbarAsaSXnsBjNxxRrcy3PQf2TZn90KHgdd4ps+dR3+x434YxV+foOQvsRPNNe7xRm7yXfrYzOtahgjT7Q8zZGDhWrRQZNkBfd99LwRQcVuSNRCVqk3zzSJtnU2HMo+jyeHRyvCYrFWl6e6hw3wLo9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vo3XIUOo180z6fXgxCZgVpBhqIa/Gk7obWvnhOgPkb8=; b=X0vVJ6k1Uf0TObkEz7ZSf7b59DmEzaHAxAeRPOHLP0qeooPpkNJcFUNpIjPHXQAgURfsFCU4qDG8mybzg/Cfng1TC/cgcg3IWlqSATAMpk4Pbc5oiA+MLk5EIdC0eNbofEUCRlflZq25Ya5o62OHNmyDZI90davHhpv8YMrUo7LRKd7QlSgXXEwcR4D7CIGSBGRp71oRgLslc3f7Ap58cUxMpMAx2KTGaZUBlx5imjUWMF+qwN0iy2AI1rVKFwF6E+bpiIuw8YzIFHMQRazIo5tZThjIjff0rrBYgDx8EfqyCxpQFUqoE88hX70FLaeMY8/FK4EeEsdfwiK8n4a+4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vo3XIUOo180z6fXgxCZgVpBhqIa/Gk7obWvnhOgPkb8=; b=seVAqyC3npe+Ris3eEfikBtzlJ3jIlJY6dS9LPNqAq2Gsvj9ztcRuctI9Kg5UC5q1/O45hkLQ9+cPqxFe8WbXgkpClQGGQ8Xhllsc4QjzUN1ytplwYZ8ghpnlun4WQCTvhp5V2x+GxQ7oobHt08FNL2Zx/BZ2ipCRBsn0Abxw5Z2Zbp88ilXvlPmtcS+QgBhc+f32zdDQQzgdb4HbgG2guTFJ6KVDQ8Jwx9XntypQbMqOjgKSE/faJMWczJAZNCBqvjYzU3+//5lCKeDfP4i8FEcoRXx47YVBV7p7J8dxGJg9JKONYIJs9sV+7TYE5eqfTYEOHp7VnG2QpEqeJfUnw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from AS2PR08MB9075.eurprd08.prod.outlook.com (2603:10a6:20b:5ff::9) by DB9PR08MB8577.eurprd08.prod.outlook.com (2603:10a6:10:3d6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.22; Tue, 27 Oct 2026 18:13:52 +0000 Received: from AS2PR08MB9075.eurprd08.prod.outlook.com ([fe80::3f57:9ced:7a37:1bd8]) by AS2PR08MB9075.eurprd08.prod.outlook.com ([fe80::3f57:9ced:7a37:1bd8%4]) with mapi id 15.21.0546.021; Tue, 27 Oct 2026 18:13:52 +0000 Message-ID: <9472ffe4-3c11-4d0e-b87a-ad61f6747ddd@virtuozzo.com> Date: Tue, 27 Oct 2026 19:13:51 +0100 User-Agent: Mozilla Thunderbird To: Eva Kurchatova References: <20261026012309.458048-1-eva.kurchatova@virtuozzo.com> <20261026012309.458048-2-eva.kurchatova@virtuozzo.com> Content-Language: en-US, ru, sr From: Konstantin Khorenko In-Reply-To: <20261026012309.458048-2-eva.kurchatova@virtuozzo.com> X-ClientProxiedBy: AS4P189CA0017.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5db::7) To AS2PR08MB9075.eurprd08.prod.outlook.com (2603:10a6:20b:5ff::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS2PR08MB9075:EE_|DB9PR08MB8577:EE_ X-MS-Office365-Filtering-Correlation-Id: 88fc9e93-d424-4263-6d3a-08df34560e81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|1800799024|23010399003|366016|6133799003|22082099003|18002099003|261026121527099003|3023799007|56012099006|5023799004|4143699003|10067099003|261021121427099003|261022105027099003|261009223027099003|261026140227099003|261022075727099003|261021123027099003; X-Microsoft-Antispam-Message-Info: L44nqWuIfVyad1AszQhqDorMIe4EiQq5uC7sai3xAEU7GdYMlNp1YJAZItEtQjP7E/gvVrbY4GAFfvk+43/B4V0/2mKnOdAlxnQ5JsAQBOUlo0o0vukcxsz2XokE1hfmYBGxk35zPxLIdaP/uWV52/uq2KZwsZUMk0yEGUoGBAaWbrC8UWWY6iJu/igQhDuyyJkKPFk0FOMP7pE8EivJpuPvykf4yLV9rEGH+36kD9qZPKqhTvgSZSY3o6gQDSTtTcZLrvxNXtpKD4upwmVyjeA+hTQ66FQEKpWMS04sbBJfGjuKm1h8ksu1f5TSLYdNFqs0WrrgAXtyTVqUtr/pNRkgE0aaUNbvwHUtPm3ezwFaC+57kjTIB8E5aTVY9REs/jPIbRXC+7Abb+jtJBXnzfqg5MRJuK9FVw3d0XhRaDzedVhFZe4qri87Wf5dFwbsccTYaWeFWCm9pCSG2y6514JZWmu0cEcaOnSuOujyiwfJsYxV5oK1SJI9dt+4w59BlIGzd05pvEoNV9+5ABwafKGY5pFnEsHzgaX+RhohxRk/BjmVIyjJioPjpiuEoi2G21/FCLLpUclPrpUbwrwPbImAgUQh4LimZ0WNME4lq4KIF1lqD8VBrb3+0euPH8Cw X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS2PR08MB9075.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(23010399003)(366016)(6133799003)(22082099003)(18002099003)(261026121527099003)(3023799007)(56012099006)(5023799004)(4143699003)(10067099003)(261021121427099003)(261022105027099003)(261009223027099003)(261026140227099003)(261022075727099003)(261021123027099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QkFCWTZnVkJKQWQ5RDBQemtZejJRbjVvOE1iYXZ2R3BOY3NpUjNwdXpNUEtY?= =?utf-8?B?UmVvbnRGZFowbEVTTGZXV3ZHeU5tcVZwTjlOZHBlNW93c2FUZlRlZ3JwQXNy?= =?utf-8?B?N0xoa0w3dlNDRWt3ZEptNzE4Nnc0a1ZMZGkwSWlCWjVPTjlNanM2VWlVVzha?= =?utf-8?B?ZW1VRDMvVy9LbGJrM2NyMnR5eGVLRGY2RkZaL256RnNkWmx1OXk0YXZCQmJF?= =?utf-8?B?V3Zhb0NCWXMzdzlHSXZBdWswZEx2WUFzdUZPakRsSTA0bmtWU1lhRTJ3dzFO?= =?utf-8?B?cjVoUmt4U3kyNkpVRzkrWGM5UHlvMnlTR0NjWXpTL2lEUmR4WWZIK015REcr?= =?utf-8?B?dXZ1cnFnZmhydXpIczJBRVVOM0RwcTErbVA2TTZrTVRNbktIRW90N3NIWHNz?= =?utf-8?B?RktyalBwNDFob3BiMG4yMFZxMitZV1NTcUcrcjByTk1XV0ZrZytVc3F0cGIz?= =?utf-8?B?c0dnNmpHamVqdW9HV2VhTWU1VWRsYUNjanRib2JMU3BKSi9XdWRJN0trU3B1?= =?utf-8?B?RkpCRWI5KzU4WjRjLytpZzhFOGk0UnBjZGJ5NjRxZlU5czdsc3dmWnF1ZUx5?= =?utf-8?B?eG9QQ2ZoeGFqaFE2dm1XUVd0elNjZVVzYkF4ZUswd2F3WDJMODlFQnpVeWJn?= =?utf-8?B?QkU2Nzg1eXFacUYxQVZRTy95WWY2OHNVSk8rSU84aU14dm05Zk5ITlJsK2xh?= =?utf-8?B?Y1VGcXc0MFI1WGtNQ3E2SUtOQStkTC9HM0MydjVyTExWNjBEeFBiNkdtT2k4?= =?utf-8?B?MkRjYlF1VVlMUnRxekVsSlBBVCtENXRTZE1nMWxMbTBGdkJJTUxIL1I4V3Jh?= =?utf-8?B?YzVFUGF5eElGQ25LTWM5aG90NVdUNnpKeWZxUlFTSm82M3A0aHBVV2dLTTA0?= =?utf-8?B?WnVEUHRKSlRZa1hxQmNIT1BwUXJzRmR3OTRMdnJ2dDA5eGFXT1dKakJyNllP?= =?utf-8?B?YUFOUGxsM0l6dG9vMkkvMGVTUUhsSXFwSTZGRGxMaUs4TWxjZS9DbzFjYzlx?= =?utf-8?B?ZDlpVnZtMlQ3Yll1aC9uNG9VbVNHRXNIN053RTZCOHkwWVlEMVFlb3h2QXNZ?= =?utf-8?B?aVp0TzR6MGRUNStFQW54bHdkc2o2cDYyMC9PNzg5WXQ4Mm40NDlOVXRXbUQx?= =?utf-8?B?VUd3OW56eGJkVnBObWEvYmRuZXBUbzJFZE5qcGs2QkRJb2Z1VGpSSUMyUldN?= =?utf-8?B?Q2laREo0M1pIVG9Rd3hqbHhHbWFYbzJsT1c4Sm8vbmZpTml5UjdkaENKL3lU?= =?utf-8?B?cWpDOFRLUHlHTzUwaWQzK09HZFRPNWhNK0JjV0t4VitHYkNOaU9Sa3FpV3JM?= =?utf-8?B?U1ZobThXL0pJMVFmRGZDa2tlYlNuSEg0RG1zTWJHWTJxVzBSMmVVVS81RVN0?= =?utf-8?B?bTc4cVVLQXBReHQ0d2JIaTZnOTg4dlRjK01OTEJSbUhiTUpIOUFSTk1rc1pE?= =?utf-8?B?NWxzNVpGQ1RlVW1MdUNBWW1heERUckQ2TmNLVC91cXE0RjNLWHFLdHJpZmdI?= =?utf-8?B?VVkrNUoxcmZCMVhkVmNXMXQ4b2VtSys3ZlYvMDBGdlpPS01LMTRWL0YyWTEw?= =?utf-8?B?OXFzY0gzUmVMNGMyY3c0TUhCWUJIM2Z5ZmFQaUVXcXFwbjVGS0NEVi9RcTU5?= =?utf-8?B?bmJsODhvbDVlZFlxRUk4SVcyWkRvZWF4US9xTjlhU0ZUdmJOSmw5a1ZPRGds?= =?utf-8?B?WUJ6cUtYcHRHSE5VMEY3Y3AzN28wS1VjR2dicFNibmFtdnA0MURIZjVHQjZt?= =?utf-8?B?Tjc1c0dEaitOSVNEdG1JdGJKNDB0NFAvbG1QMUJmcW5mNGwzMk1mK2t6SE0r?= =?utf-8?B?SUg2K3hjT3NhMFNOZmFaNldwRWtOOGh4bnYzSitWWDlxSE5FZVgxZW5Jek5J?= =?utf-8?B?YU10NE5iMVZJMXNRemx0MUhWRnl5SzVMSDBiL0dtaktWVkJtMGU0K1BEM2d1?= =?utf-8?B?MW5BdUdSUU41M2Z4eXpnMkpRWG5yeUx0ZmpYdEJiSjk3Mm1wcWF0WDV2Uy9Z?= =?utf-8?B?RXZDeFJjL29DRjQ0Sis4RS8ybUkxOEc0bEdqZ1NVL3c4dFdIMmR3bjlPWlE5?= =?utf-8?B?VnBLRG1ZUnNaQWNzQnZvS0M4amxzNmRwMm1zMThub2k4eVpVN2VUTk45V25Y?= =?utf-8?B?OTNmakNraG1sY25YOHAvem56Rjc2Ri8vdm5CWnhCdkpLb1NsV1Rhem4yaEFM?= =?utf-8?B?empndG54M1lnamI2UlF2VHVHSmY3V3g1WkZkSlRpeHNCY2ZFUjdHOUp1SjBR?= =?utf-8?B?OFdBdGsyOCtsZlNZNGlndjIrSnJDN3Q1aVY2ekd1cTh6U3ZNMGtmUjcra2dq?= =?utf-8?B?Z3BPc3ZIY1F5a0JjRksrcXNjd1RLT25aQ2JvU09VZi81dERzdzBmUT09?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88fc9e93-d424-4263-6d3a-08df34560e81 X-MS-Exchange-CrossTenant-AuthSource: AS2PR08MB9075.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2026 18:13:52.6217 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iFYqBNUvqNcLSPOJV9spskntHGeGlD8yGXhT8fGUGN/KUMGViweWF2IxAr6pwUxZSQKvGupBtBX2LcuyNIYRog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8577 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 v3 1/1] selftests/bpf: run the xsk veth tests in a network namespace of their own 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 Hi Eva, thanks, all comments on v2 are addressed, and the code does what the message says. What is left is the commit message, the split and one redundant mount. To save a round, I reworked it myself and am posting it as v4, three patches: 1/3 selftests/bpf: xsk: exit with the status test_exit() is given 2/3 selftests/bpf: xsk: take the fragment limit from the kernel's BTF 3/3 selftests/bpf: run the xsk veth tests in a network namespace of their own Please check that v4 still says what you meant. Details below. > test_xsk.sh makes its veth pair in the namespace it runs in. Whatever > the host does with a new interface, address configuration, neighbour > discovery, happens on that pair, and the AF_XDP sockets under test > receive the host's packets among their own. The tests count and inspect > what they receive, so a preconfigured host fails some of them in every > mode, and a bare one passes. > > Run the veth part in an unnamed network namespace with its own sysfs, > which drops with its last process whenever the run ends. only -d names > it, its pair outlives the run. The fragment limit came from the sysctl > max_skb_frags, which has no file outside the initial namespace. Take it > from the kernel's BTF as the size of skb_shared_info's frags array, fall > back to sysctl as before if this info is missing. When the namespace > can't be created, the tests are skipped, as without veth or ip. Other > cases after a successful namespace creation fail. For the veth runs the sysctl fallback cannot work any more: max_skb_frags is in net_core_table, which is registered for init_net only, and the veth part now always runs in a namespace of its own. Sashiko was right about the message here. On our kernels it changes nothing, BTF is always built in, but "as before" is not true. The sysctl stays a fallback for kernels without BTF, which in practice means -i runs in the initial namespace. "only -d names it, its pair outlives the run" also needs a capital letter and a "so". > > Fix test_exit() return status for skips, as since commit 895b62eed2ab > ("selftests: xsk: fix reporting of failed tests"), test_exit() exited 1. This is a fix of its own, with its own Fixes: tag, and mainline needs the same one-liner: it still has "exit 1" there. As a separate commit it can later be replaced by its ms/ version; folded into this patch it cannot. The BTF part is a fix of its own too: AF_XDP checks MAX_SKB_FRAGS (xsk_build_skb()), not the sysctl, so a lowered sysctl makes too_many_frags expect the wrong limit in any namespace. > > https://virtuozzo.atlassian.net/browse/VSTOR-150731 > Feature: fix selftests > > Signed-off-by: Eva Kurchatova > --- > tools/testing/selftests/bpf/test_xsk.sh | 30 +++++++++++++++-- > tools/testing/selftests/bpf/xsk_prereqs.sh | 2 +- > tools/testing/selftests/bpf/xskxceiver.c | 39 +++++++++++++++++++++- > 3 files changed, 67 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/bpf/test_xsk.sh b/tools/testing/selftests/bpf/test_xsk.sh > index 65aafe0003db..218528ddcdf8 100755 > --- a/tools/testing/selftests/bpf/test_xsk.sh > +++ b/tools/testing/selftests/bpf/test_xsk.sh > @@ -68,7 +68,8 @@ > # Run with verbose output: > # sudo ./test_xsk.sh -v > # > -# Set up veth interfaces and leave them up so xskxceiver can be launched in a debugger: > +# Set up veth interfaces in a network namespace and leave them up so > +# xskxceiver can be launched in a debugger there: > # sudo ./test_xsk.sh -d > # > # Run test suite for physical device in loopback mode > @@ -162,8 +163,33 @@ if [ ! -z $ETH ]; then > VETH1=${ETH} > else > validate_root_exec > - validate_veth_support ${VETH0} > validate_ip_utility > + # The host configures and talks on any new interface in its namespace > + if [ -z "$XSK_NETNS" ]; then > + if ! unshare --net true; then > + echo "skip all tests: cannot create a network namespace" >&2 > + test_exit $ksft_skip > + fi > + if [[ $debug -ne 1 ]]; then > + # Unnamed, it goes with its last process; its own sysfs shows its interfaces > + XSK_NETNS=1 exec unshare --net --mount sh -c \ > + 'mount --make-rprivate / && mount -t sysfs sysfs /sys && > + exec bash "$0" "$@"' "$0" "$@" unshare --mount already sets private propagation on the new mount namespace by default (--propagation private), so the "mount --make-rprivate /" step does nothing. > + fi > + # The pair of a run by hand outlives it, in a namespace with a name > + XSK_NETNS=xsk${VETH0_POSTFIX} > + ip netns add ${XSK_NETNS} || exit 1 > + trap "ip netns del ${XSK_NETNS}" EXIT > + # This run's veth names were never created; the pair is in the namespace > + trap "exit 1" INT > + XSK_NETNS=${XSK_NETNS} ip netns exec ${XSK_NETNS} bash "$0" "$@" || exit > + trap - EXIT > + echo "The pair is up in network namespace ${XSK_NETNS}," \ > + "use ip netns exec ${XSK_NETNS};" \ > + "ip netns del ${XSK_NETNS} removes it" > + exit 0 > + fi > + validate_veth_support ${VETH0} > setup_vethPairs > > retval=$? > diff --git a/tools/testing/selftests/bpf/xsk_prereqs.sh b/tools/testing/selftests/bpf/xsk_prereqs.sh > index 47c7b8064f38..12176d85cd6c 100755 > --- a/tools/testing/selftests/bpf/xsk_prereqs.sh > +++ b/tools/testing/selftests/bpf/xsk_prereqs.sh > @@ -50,7 +50,7 @@ test_exit() > if [ $1 -ne 0 ]; then > test_status $1 $(basename $0) > fi > - exit 1 > + exit $1 > } > > cleanup_iface() > diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c > index 11f047b8af75..a4a0b4e2516c 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); > [ ... ] Mainline -------- VSTOR-151679 needs a few updates: - "without the -f option vz adds" is stale: v4 has no -f. - Order: the test_exit() fix first, it stands alone and carries a Fixes: tag; then BTF; then the namespace. - Mainline reads the sysctl in two places, xskxceiver.c and prog_tests/xsk.c (both via read_procfs_val(MAX_SKB_FRAGS_PATH), both fall back to 17). Put the BTF helper into prog_tests/test_xsk.c, which both use, and replace both reads. - prog_tests/xdp_adjust_frags.c reads the same sysctl. It is a different test, but expect the question in review. - In mainline the veth runs already exist in test_progs, in a namespace of their own (test_ns_xsk_skb, test_ns_xsk_drv). The reviewers may prefer dropping the veth mode from test_xsk.sh to isolating it. Look at what test_xsk.sh still covers that test_progs does not, busy poll for instance, and say it in the cover letter. -- Best regards, Konstantin Khorenko, Virtuozzo Linux Kernel Team _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel