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 817DB8045D for ; Mon, 26 Oct 2026 15:37:40 +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 69QFaO6P012157; Mon, 26 Oct 2026 18:36:25 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69QFaO6P012157 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="qYZX01bW" Received: from mail-yx1-f69.google.com (mail-yx1-f69.google.com [74.125.224.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69QFaMSX012153 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 26 Oct 2026 18:36:23 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69QFaMSX012153 Received: by mail-yx1-f69.google.com with SMTP id 956f58d0204a3-67906c453b8so26351d50.1 for ; Mon, 26 Oct 2026 08:36:22 -0700 (PDT) X-Gm-Message-State: AFq9FYKLEtVoWHcxVdbDSj5UKvbSKPYCleo6/fbs7QK5TISk/eU3duaH lsZPbgxbb2UgIlhrw5EkS7GvxaSqlCLpqhHxFgM/uY6qSihJhjQg6dnVTIP+Xm/5yZG7LLtdls+ EpH8CX48Hz7dHvZaNRCwYGm1o3Hd5AWVzWdG5+m4iPwr0ni6vRum54w== X-Gm-Gg: AYBFou1lduKWRvV0p+kqgMzIvRw7JyWT0ENn4OyrtnXe/2yDdtOZ3ddHLdt1C+bnHJO iew6gaMO7N23ly5xIG4VmY00reA4boBPIlLXGCNk+M/luZfShzSFxkCvvP8KdRWT8dKWOhuUTFa O9opMJE94sIBu9PuLG5UdLrAGtK0IWlc5PlrigX++9Cqq/DqNOAOdhpaKafUcgZFqR+U+QUJoOl ovI3egsDe6mqY0AjmVVGKI+kWy0AK9rmElXzIOQYFj9WViHyr/IMNGXHgVYNTUBPlz+1jJe+Ac6 khtd4hqiUYNYamJYLQUA2gKAdaRk20XBSm7QKenJlDPEhp6am/NvCRE+1piiQF4NVGl8e6IMvUF y7uE4Je2RBGQIUQDcqzhs/AnVziR3+NAziWAY2aAzdnDQyfJ8VblrXAIMLlr04bUkyCJsdSeG77 JNHuxZW3SQ/L9tYLxpbdcd0zcjj/mrh2r9 X-Received: by 2002:a05:690e:2631:b0:678:fa71:301e with SMTP id 956f58d0204a3-67a6e0405f0mr928d50.30.1793028981602; Mon, 26 Oct 2026 08:36:21 -0700 (PDT) X-Received: by 2002:a05:690e:2631:b0:678:fa71:301e with SMTP id 956f58d0204a3-67a6e0405f0mr904d50.30.1793028980877; Mon, 26 Oct 2026 08:36:20 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1793028980; cv=pass; d=google.com; s=arc-20260327; b=GGMv+9jVK4QOOvKd3HcHIenbKI1/hraABOeUu47tVb8+LoCau1efS4vCA556MegA1g 7NgshP7GilXlFxFKN0W85fxOW3DdmIoVoS09e4b5PKNfej5SDilNiR4JwDioX9QwGftk 5JKs2CXleNg/5BIpQeX3G2MNR4pv68fvWJYACYf+cV7n3twYVXQWzdbGf4OvQfR6eAfd u57MqKRKD/4Y4QbqvIwnQeKsOH6Rox60YWDB4SxZLvqsDGEkzblnWatBXNniexVlPTQp eNVyJfijD5WAf2pFM21qjpBnrNv3+6I96c5TAJwNMcNddxrfh8hxDiiLyVU+k0PZVcxg Blvg== 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=u1Wdm8MzRqSZInBv7HVJwBVfFlHTfTHr356RAEVq45w=; fh=MPbb/fYAXD7RpgTj7uvhvDOA4h8fFgXedFicSITGHIE=; b=f4MDc8vG1RIvS3ST1qtOVVeRo9BiZWiqIj4hyd36WyEzyN7bqaHOlVgR5gtWgPTG/R 6bSYerevr08HkuxpXeUgp4421sxUiYTXYcy2qHkMaHP+oTvs8aoL+nNTJu7upuEbzObV Tkkp6v2ypa0a5iCbf2RK+FVEBxv0fcJPdiILACG31/CN6Jv6bU+8iBDd2V9y99xbB8ty JRSolwGju+7rHp4P0N4u8oCKTl3DJYzZTYTND1obseXAlgXwMDoF9rc3gtf+BgpeLwxc xE8k9jQ7vY/PMRz1s5vaY7h1vZnLi8xDcj2DUOCjNbc9VjeZeYrp3NNRHM86BN19HC3S tBtA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=qYZX01bW; 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 vladimir.riabchun@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by mx.google.com with ESMTPS id 956f58d0204a3-67a45f27e6asi5398589d50.1.2026.10.26.08.36.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2026 08:36:20 -0700 (PDT) Received-SPF: pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=qYZX01bW; 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 vladimir.riabchun@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) smtp.mailfrom=vladimir.riabchun@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=gNCtccCbiSCGEOD9jFrVOuNt+TttWnfn9XZVrXmmCjwUjk/4Uk07/VXaRM5nfD5O3RDyGB213NfvcpBSgNwgDHcvFEh9ioUGWZEjOkkEiIlGAH3LZ0MSVtqcgtE0ghG1Ock7acqklv2XEG/Mc5tlHjeE7ZUJcEP3SOv9Pu7GJd1wrQbPoyE3JrV72gRXhNwCas+uJJMVOvUyVBb/zuzzwObBuK0yeA8xx/Uq+ZX8VP3ody+JQs7YVckJdPDxJauWJ53OpUT1mwhd3Quqi6es57LtDuzU105isaqfDkpkxBr3lFFOW797TOeNRRh+G86L8E252xDP4hbnxmyv/Nr5og== 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=u1Wdm8MzRqSZInBv7HVJwBVfFlHTfTHr356RAEVq45w=; b=mqjwtOD566BAjxPXctzaKuBzeXPtP9CBRoopSwKTREJMjW2ThF549zyWdBg62xA0Iw4MzN2DepfCF/yiPT0aHevJrHa377of0yZybhPkf/Qcku9Iw1Y0RRzEb27KmoQSEhDs1v3xCbY5kQtXFi+/x00fUhVzDgrydkZCpvVEEgVJQBM4sUm3V71xYP2JDXKtHricstCxbk5agMxS6022s5o1Ncn2YhP0RpLbD3WWPFy7QE9ySXcsbqSBxBFwusBQGAFX5EH3LLy7RbpC7g6YyWTeqaAL4IiA4QdD5fXlE06crsrusou1W35V/o/nBn/U4U1WwQ4pkOFnduaNjAOjUQ== 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=u1Wdm8MzRqSZInBv7HVJwBVfFlHTfTHr356RAEVq45w=; b=qYZX01bWNwqGZ2u4IBN4iUay9JPnnh3gIlbjAKiPPlicrGQ5o8ySYTQtvAXdC0QiTBmI0LIUOkaD5tQdOxbCGVgHsHfk3XzyUAkj8z0MS7GsKCUQadBYzRCL0Qsh4+eUt/F9SzweY3Ai984DZO04dpKwjlHL175zegYVa8BAcgMOC/giBrggpJEbANhDZxvdazlH3pVnDwlaWN3vYp+1KYdnQXhcC/00s+cHJz0CGGHAlvD+uTxnZ6/PPSH72LYAUY+JlJOLqbkDshcTJBFnM3RJvh4BiTdjlte3bCtBhz/eJ5ItYGr+YhprxZpZ3RYVKt9HQK31GXCJwhlXip75rg== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from MI7PR08MB201474.eurprd08.prod.outlook.com (2603:10a6:290:112::17) by DB9PR08MB7674.eurprd08.prod.outlook.com (2603:10a6:10:37d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.22; Mon, 26 Oct 2026 15:36:17 +0000 Received: from MI7PR08MB201474.eurprd08.prod.outlook.com ([fe80::f35b:af88:bd82:6dfa]) by MI7PR08MB201474.eurprd08.prod.outlook.com ([fe80::f35b:af88:bd82:6dfa%3]) with mapi id 15.21.0546.021; Mon, 26 Oct 2026 15:36:17 +0000 Message-ID: <9016fe79-2414-4663-a0e4-a5a739479b62@virtuozzo.com> Date: Mon, 26 Oct 2026 16:36:16 +0100 User-Agent: Mozilla Thunderbird To: vasileios.almpanis@virtuozzo.com, ptikhomirov@virtuozzo.com, Konstantin Khorenko References: <20261012-ve-printk-irq-v3-0-efc95fd5c78a@virtuozzo.com> <20261012-ve-printk-irq-v3-4-efc95fd5c78a@virtuozzo.com> <010701a12d34cb92-1a588f16-ae21-4091-9285-535468359c1c-000000@eu-central-1.amazonses.com> Content-Language: en-US From: Vladimir Riabchun In-Reply-To: <010701a12d34cb92-1a588f16-ae21-4091-9285-535468359c1c-000000@eu-central-1.amazonses.com> X-ClientProxiedBy: ZR0P278CA0199.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:6a::21) To MI7PR08MB201474.eurprd08.prod.outlook.com (2603:10a6:290:112::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MI7PR08MB201474:EE_|DB9PR08MB7674:EE_ X-MS-Office365-Filtering-Correlation-Id: 9006fb96-ba59-479d-b77e-08df3376e090 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|23010399003|376014|1800799024|18002099003|22082099003|6133799003|261026140227099003|13003099007|56012099006|5023799004|4143699003|261021121427099003|10067099003|261009223027099003|261022105027099003|261022075727099003|261022113327099003|261026121527099003|260925021911599003|260925022911599003|260925021311599003; X-Microsoft-Antispam-Message-Info: nmtN11uc+kab0y+UJOl3OrFkfU5fe9wsicunBRuPYGn7BFvS0GtVw0Fa4EpbITW+8WhfAhHRt+7kFucDF98aJsQIfIWJyMiq6SAcsX/AkAFOKkPsArhBE5h/sFFdeM/y+7pExb6fDJtrd7K0Hqn6njFMnvKsPToA/kP2kIkkLS1gSBrYcT6E8bEcte70PggoCJZmoK6cnfun8Zvt1N7xX+Gno44uxfb97HWfLtXm0Md13M7Wg71MxVh+4+E1BGDEa53CgFIPliK/gUPNsnkwxLcGPy1cALGp+644EUAs9qQzh97MXy++RIA6nbFQXOj6l0tycRgUUq0CsNhuo1Iew/HxJ6P18cOgy9nXV/bQM+aYscOJGed0ay1RMGhdInbJkJS/kNzI+QC6SuwvKOeMLMs0i8BpsWod/j8JWGKPNLan0h2L0AO7SSWQE3WEmhDX52CYb8mGbnK6VldQzszM/YuJJS8yfQCaeecvsVZkBI5lAKWgvDf3k9SRDEP3SQY9TAjeq12VAucRBNexwZ+WxDeQA5ZTOfeT+v3RK7nF3iAKWYC6bQTac1RqOQSGa+qEaHq+QsWcZTtlRGGIDADvKz+1mChfJ8Pt8xxjm05v0GOAeKz70WROBOnzKcFpwQYn X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MI7PR08MB201474.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(18002099003)(22082099003)(6133799003)(261026140227099003)(13003099007)(56012099006)(5023799004)(4143699003)(261021121427099003)(10067099003)(261009223027099003)(261022105027099003)(261022075727099003)(261022113327099003)(261026121527099003)(260925021911599003)(260925022911599003)(260925021311599003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N1NaSkR5RzRsZVpVTWkzaVRJYU5VK1hBVVpJaWtMOXRXM1Z0b0dmaTk0emo3?= =?utf-8?B?d25jcHQxbzFRbTR2Sk02NG1tTW9GS0lUcDRBa1NqbmhlWDkxN01RVmpsMm5T?= =?utf-8?B?d003amVzSTl0elpQQmlrM2ZzUllJbjVIL0VHY2kzODdRYm1DaDZUc3dTSTlh?= =?utf-8?B?LzBqVEhnbzIyZ1dpdkw5Wlp0WCt1Wm5DUFY0ZWpPcHdha3o1SVpEWU1GYm1I?= =?utf-8?B?QjQ1Rmh4VWIrS3ROY2xQZkRRVXpyYXk4elZMTzRVY0ErUEhjUFI5TEJkRUJT?= =?utf-8?B?NFJmV3prY25RVnVKSWRoZTJXVGplMVFtcm9JZ1pSMzNURTJtZnFoa25EY21Q?= =?utf-8?B?L1J0eTY4TXBic3phMXpCYk5sdVRDK0NPWUpQMHN2WmYwZTFySjJqSnZDcnhw?= =?utf-8?B?UlRuc1ZTZG5qUDIyb2VaNzdHMFVuY1RWM0kyOGhTNGVuRTBxSitSVWdxdmJx?= =?utf-8?B?Y0x0VUs0M1ZkSXA0NVIxTDdQZ210YkNyTUFHdlFMQ1B1Q3IwZjhra3hiNXly?= =?utf-8?B?Y0RDUmkrbUtHUHVmQUZsK0hlbGhQV0w3OXdHZTM3YkJ3Z214c1FYNE9VbERl?= =?utf-8?B?WHovQmNYUFYwcnl2SWVnNlVDN3JjSEcxQUo1TXhJQmpFT0w1WjFMd0l3V0hM?= =?utf-8?B?Zk8wV3I1US9XWUxiSmxwNk5lN29oTU5uMk9JZWdpaG9EbmpkSSs5bjJnT0pj?= =?utf-8?B?RWpscDE3SU1NSWNYMlpoSGtvY3lWNS9HUFRjSXU1cXpQVVlBV1RpSzh4eCs1?= =?utf-8?B?Vm5CNEtUNjB1ODdqc0NlamlDd1kwUEp4NGszbUgrcG5ORC9uMjdheVVwOHBO?= =?utf-8?B?UUxZZkExY2xVV0xSM3RjTmhpYW80aklTR0t6QnlVVnNreGJiR2QveXpXSmtZ?= =?utf-8?B?VzJCeVVsNVJDQ21yZ25TNGpPRm54TnJ1MmIxOHZETFl1RUZTRzBSN252ai93?= =?utf-8?B?NmdwYjZHS2w1TmxVaEdHem1UL1lRRTFHSGZQZ0w5Yk5lSXF4WnBVYjZQSlhT?= =?utf-8?B?bFFCVUU1a3lvZHhoV2xYVExrM3dhYjJVMDB5SklReThwdnFpTHdqQnJ6WmQz?= =?utf-8?B?eDhnVC9yTXBMZnNxRFNGRUkxOUxlM3FUbjR0ODZUekNRLzhhTkFJMzhMbkMy?= =?utf-8?B?TXhyMFd3ZGNBYUlZVUFxYmtPbW1aQjJUWm1pOFhWOERzaGtacFk0Z0hKdk5X?= =?utf-8?B?SUNlWVNDQTNZdDUrV1N0RS9Oa0NkNGpMcE5hOWNWSTJVeE9vOHdBVTFCWVUr?= =?utf-8?B?MkMrWFhBQWg2VHJIeC9QeHpBdWNCL3N6eFZTNHQ4SXBQbGRXYncwT3RqL2g3?= =?utf-8?B?dnpyakVqUzRqa1V2TmFRY1ZBMjNjZDhNa2VhYlVNQnZQZDArak9FZERuaG40?= =?utf-8?B?Y1U3aWdLclpkNFcwVDNtaDdsVDZOT3dsTUtVZDk3N01aMG9YVFpUSDFqQkp5?= =?utf-8?B?dW1MK2N4Y0JiS1RhMUJ5NTZKcEJmMmd3NHFnUnYrbTJ5RHV1dmhsVzg5VUk0?= =?utf-8?B?RjNKb1F4ekFRZEZHQ2V3bzR0d3lCbk8wdk1tcS9QN2RYL29RaVpNbzFQWlFL?= =?utf-8?B?bDZSQ1pyMnJJRzU4ejIxbDlrOEI2NytYZzlhTkNKUFluWXBWdEY1aERLQXZG?= =?utf-8?B?UUo2TTdDRko1bTlPWmFaUUdROGVMSTVsZWlpUXV3djAzaXpuQ1dOWEdMWnhD?= =?utf-8?B?WEtjNk1vbnUxeFdjVHRLN25DbmlmeEd5TUVKNUo4Y1Y4WldLbTlSbVErbkNQ?= =?utf-8?B?anczRmFpR0RLOVZlcVZ4aEUrNnR5UWpuVE02UHcwZ1R6YmdCZGlYSHl0blYw?= =?utf-8?B?ZzdFRUdvMXdFOWx1SFRHWGl1NE5JSU9GRUMzeWdVUFZ6SWhRbE01VG9pMHg2?= =?utf-8?B?V08xQnZtTDdqTnRsVzU0eEhSSWc5MzFCL2twVS94MGJVN2lxRTJ6eDdUL1ZM?= =?utf-8?B?RFk1a3Foa3JJMTNvaDdtb3BQM25LVjIvUVQwYkRFWnh3WjRpUzhuVnUrS091?= =?utf-8?B?aXFGejY0VGcrUjBtUU1GaUY0dGdYODAzckdVTDBtMFk4UzBhMiticjY3SnBY?= =?utf-8?B?NDFSYWNjLzh6bzdodkRLWGJnbHhpek5sQiswc0dPdkpBeld6dVc0Q2NmdmxR?= =?utf-8?B?U2R3cEVOYVdOSS9UdFFGc29ZVHBzUkdxUHhJZWR6ckVHSjR6UWhvOGRrSEsv?= =?utf-8?B?aWdIcUVyZG12MjVpUUNNejZETXdyVVBWLzFUQ080NHk1RXVkVzg1OEo4Y3dD?= =?utf-8?B?TDBoTnU5UllseFNDU2l5WmZsQXVadXhnL0wrNUw2OW1paTU5SHM3U0cvaS9l?= =?utf-8?B?a1BIb1pucnZUcEc4RWVNR2dBalNWNUU1bU15dE85eTZQcTZvTmRUaGNmdlFv?= =?utf-8?Q?TCejPjlYi1lR5YPc=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9006fb96-ba59-479d-b77e-08df3376e090 X-MS-Exchange-CrossTenant-AuthSource: MI7PR08MB201474.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2026 15:36:17.7191 (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: ANbSwZbF2X2ZfkaUviRf8JcHhNlLWY2nw0N1VVGqmLC4acwu/sAjG7+0wNCga5L69TMm4iJqySMqOkHSAjgEf5wPDn5iOdC6v3JCrS3/fbQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7674 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 v3 4/6] ve/printk: Fix time virtualization 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-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org On 10/12/26 01:03, no-reply@sashiko.virtuozzo.com wrote: > Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider: > - [Medium] printk: vprintk_store_log() can drop last time_ns ref and run free_time_ns() > - [Medium] ve/printk: store-time boottime shift leaves pre-start/post-stop VE records on host time > - [Low] printk: refcounted time_ns get/put on every message in vprintk_store_log() > -- > > commit d24cdca46b24c622f9dc8616a9a118ce2d8625f8 > Author: Vladimir Riabchun > > ve/printk: Fix time virtualization > > This patch moves the container boottime offset adjustment from the > read side (print_time() and info_print_ext_header()) to the store side > in vprintk_store_log(). The offset is taken from the time namespace of > the VE that owns the destination log_state, via a new owner_ve field. > > Link: https://virtuozzo.atlassian.net/browse/VSTOR-146839 > >> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c >> --- a/kernel/printk/printk.c >> +++ b/kernel/printk/printk.c > > [ ... ] > >> -static inline u64 ve_timens_add_boottime_ns(u64 nsec) >> +static inline u64 ve_timens_add_boottime_ns(u64 nsec, struct ve_struct *ve) >> { >> struct time_namespace *ve_time_ns; >> struct timens_offsets *ns_offsets; >> >> - ve_time_ns = ve_get_time_ns(get_exec_env()); >> + ve_time_ns = ve_get_time_ns(ve); >> if (unlikely(!ve_time_ns)) { >> /* container not yet started */ >> return nsec; >> } > > [Severity: Low] > Is a counted reference needed here? ve_get_time_ns() does a > refcount_inc() on the time_ns under rcu_read_lock(), and the function > only reads the offsets before calling put_time_ns(). > > ve0 is not special-cased. init_ve has ve_nsproxy pointing at > init_nsproxy, so every host printk now reaches vprintk_store_log() -> > ve_timens_add_boottime_ns() -> ve_get_time_ns() -> get_time_ns() and > increments the init_time_ns refcount, with IRQs disabled inside > printk_enter_irqsave(). Previously this cost was paid only on the > reader side, in process context. > > Could the offsets be read under rcu_read_lock() without taking a > reference? Wouldn't bother. Printing to dmesg should be relatively rare event. This is not the biggest overhead there. Also, previously the cost was paid when printing to log, possibly in IRQ. Now the one who prints does this. > > [Severity: Medium] > Can the put_time_ns() here be the last put and run free_time_ns() from > the printk store path? > > The sequence in ve_drop_context() is: > > rcu_assign_pointer(ve->ve_nsproxy, NULL); > synchronize_rcu(); > put_nsproxy(ve_nsproxy); > > A printer that took its time_ns reference through ve_get_time_ns() > before the pointer was cleared keeps its own reference. If it runs > concurrently with container stop, and the container tasks are already > gone, its put_time_ns() in ve_timens_add_boottime_ns() can drop the > last reference. > > free_time_ns() then runs inside vprintk_store_log(): > > dec_time_namespaces(ns->ucounts); > put_user_ns(ns->user_ns); > ns_free_inum(&ns->ns); > __free_page(ns->vvar_page); > kfree(ns); > > This takes the proc_inum_ida lock and allocator and slab locks, and may > release a user_ns. Those locks could already be held by the context > that printk interrupted, so can this recurse or deadlock, or trigger a > lockdep wait-context warning? > > Before the patch, the get/put ran only in task context on the reader > side. After it, any log with owner_ve set does the get/put on the store > path. The failcount patch later in this series adds > __ve_pr_warn_ratelimited() calls from ve_failcount_inc() with an > explicit ve, and those can come from arbitrary and atomic contexts. > > Could the offsets be read without a counted reference, or the put be > deferred? Replied in http://lore.virtuozzo.com/kernel/c70733bf-a171-4927-98f5-120deb7ed173@virtuozzo.com/. > > [ ... ] > >> @@ -1431,9 +1432,6 @@ static size_t print_time(u64 ts, char *buf) >> { >> unsigned long rem_nsec; >> >> - /* shift the timestamp on the Container uptime value */ >> - ts = ve_timens_add_boottime_ns(ts); >> - >> rem_nsec = do_div(ts, 1000000000); > > [Severity: Medium] > Is it intended that records stored while the VE has no ve_nsproxy now > keep the raw host timestamp permanently? > > With the read-side shift removed here, print_time() and > info_print_ext_header() print whatever is in the ring buffer. In > vprintk_store_log(), ve_timens_add_boottime_ns() returns the unshifted > local_clock() value when ve_get_time_ns() returns NULL ("container not > yet started"). > > ve_nsproxy is NULL before ve_grab_context() in ve_start_container(), > while ve_log_init() sets up the log_state at cgroup creation. It is NULL > again after ve_drop_context(), which runs in the start error path and > when the VE is stopped. Replied in http://lore.virtuozzo.com/kernel/c70733bf-a171-4927-98f5-120deb7ed173@virtuozzo.com/ > > The VE log can be written in those windows, since __ve_vprintk_emit() > and ve_log_printk() only check ve_is_super() and not whether the VE is > running. For example, ve_log_printk(net->owner_ve, ...) from > net/netfilter/nf_log.c, or ve_printk(VE_LOG, ...) from kernel/exit.c, > mm/memory.c, net/core/dev.c and net/ipv4/netfilter/ip_tables.c. > > Records stored before start or after stop would then carry host uptime, > while records stored in between carry host uptime plus the (usually > negative) container boottime offset. Can the same container dmesg or > /dev/kmsg then show large timestamps followed by small ones? > > Since nothing re-bases old records at read time any more, would it make > sense to mention this trade-off in the commit message? > > [ ... ] > >> @@ -2329,6 +2327,7 @@ static int vprintk_store_log(struct log_state *log, int facility, int level, >> * timestamp with respect to the caller. >> */ >> ts_nsec = local_clock(); >> + ts_nsec = ve_timens_add_boottime_ns(ts_nsec, log->owner_ve); > > This is the call site for the two comments above on > ve_timens_add_boottime_ns(). > >> >> caller_id = printk_caller_id(); > -- Best regards, Riabchun Vladimir Linux Kernel Developer, Virtuozzo _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel