From nobody Tue May 5 08:58:52 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1776162883; cv=pass; d=zohomail.com; s=zohoarc; b=nfMRBy4rIyW6Yvg0Rcx/hrseBm2lVLjjp8s9GRc+oMr9N/eUCv6njUGk2EEvuPEBF9YQDndzOYvMPp1q/jkITC+BqYHSYTrcBECA61JWHErNMVWUBK1zBseX9g2Hg/51cqFWLbL0j9EJj25QMIobj5NnTw947oGh37ch5Q5QVnI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776162883; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rGVSDh5emAwA1BEqtFY9L9MsAQ0MuA1Vvn2A/zahgyg=; b=JKbyMFaKlAp2DyRMuTbfvncIJyzaLX/a6OVGC55FIX2G3l5jG8x4VgeE8T+SwIsNBUTlX9u0R9uCHIUNuQXkQGb6p0eChx/RCE6M5GiI3RnSK5XOs8eYmZzvl1/WT+0pJycJAK/z6NFW7uxp/8z5F0SupqTdkpZixO8vgEx6plw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1776162883421684.3824317693185; Tue, 14 Apr 2026 03:34:43 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1281575.1564441 (Exim 4.92) (envelope-from ) id 1wCb66-0005YN-HB; Tue, 14 Apr 2026 10:34:22 +0000 Received: by outflank-mailman (output) from mailman id 1281575.1564441; Tue, 14 Apr 2026 10:34:22 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wCb66-0005YG-DR; Tue, 14 Apr 2026 10:34:22 +0000 Received: by outflank-mailman (input) for mailman id 1281575; Tue, 14 Apr 2026 10:34:21 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wCb64-0005TT-Tx for xen-devel@lists.xenproject.org; Tue, 14 Apr 2026 10:34:21 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wCb64-005RxD-9s for xen-devel@lists.xenproject.org; Tue, 14 Apr 2026 12:34:20 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 69de182a-2eae-0a2a0a5409dd-0a2a4505bdb8-2 for ; Tue, 14 Apr 2026 12:34:20 +0200 Received: from [40.107.209.66] (helo=PH8PR06CU001.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0) (envelope-from ) id 69de182a-3760-0a2a45050019-286bd1427fbf-3 for ; Tue, 14 Apr 2026 12:34:19 +0200 Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14) by DS7PR03MB5573.namprd03.prod.outlook.com (2603:10b6:5:2d1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Tue, 14 Apr 2026 10:34:17 +0000 Received: from CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9818.017; Tue, 14 Apr 2026 10:34:17 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ajk3/CBDEvqd5ldbLVNXK6BrF1eE4rP5G2Huus7/PFAGN6vPHaM0EDCKraXUdsSFQ0Q5nea8h5DgyNbxH8GSXq6YNikm7KF89l5NI4CTNIr7zTfZsdh5/fq3GMliVg2ZNDKo+27oBMMOZc6o5MUh39BOJYBHZ7E788ZHbWNYegLEePjwNWJOevJRJsD4o3rg7hmMoRGIRpjE2jb54/5f/Yrzf7CxGaKXYRliYLa5RRZ6bcfs53bXe58sEJgpIpezc3/w7Dc8TxxuDiYk3J0Jrf19mJ7ku2C7ePVbTmHRwoK2Tc5mHwl/qJaA+/rcgq4LzDqA+0iDonPrGJ9jCAzAmw== 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=rGVSDh5emAwA1BEqtFY9L9MsAQ0MuA1Vvn2A/zahgyg=; b=f08y7wmZFZiEo9TrXj83dPz1Je7cyA698vQKlK4fSvDENugNjKWGpq3y4+YiDRSGMtXOsCvV7pfUPs1p/a7ojb+iPYhfcHBVn+ReyVcnulBf1eN+2MQrhfrSuOVBh+fiD0GR9sxfTKL22eC687mylKAfxzcFefIiucl1uW54CIJdqUpjfyxVyoFYdnM9V6I18MpAdA6Mn2GzLOq6ehSvHuBnHLVqd6atWmx9/MdQ2f8ZuUMtfVH1SGUUe6Qv1/y2tmK0gzuJrKT/ZIUBPbMQjqeUwtG+tQikHNSXeh2xL0rbFR5MMeBDhjb1adxw77jOZ9SiYRbA4GWlY8K25f9g8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rGVSDh5emAwA1BEqtFY9L9MsAQ0MuA1Vvn2A/zahgyg=; b=kt//cFlS0ndojtG1SWYn+sWeSabhY85IIQZJ76Z/HSg+mGsefI9v+BnTodCsi6B1FYieu922YRw4sI+CsFgt5d/ba1HAFI23dC1aWMKXx5gfWzjnGCXOK1Q65jtQqH/ts27g4w6WwXYNBQBPuwBBs+6L2ffxONq0q9xUQU0nnhc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Roger Pau Monne To: xen-devel@lists.xenproject.org Cc: Roger Pau Monne , Jan Beulich , Andrew Cooper , Teddy Astie Subject: [PATCH 1/2] x86/time: use native TSC scaling factors when TSC is not scaled Date: Tue, 14 Apr 2026 12:33:26 +0200 Message-ID: <20260414103327.7420-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260414103327.7420-1-roger.pau@citrix.com> References: <20260414103327.7420-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA2P292CA0016.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::14) To BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5573:EE_ X-MS-Office365-Filtering-Correlation-Id: 4bbcf984-4e24-4ac2-c874-08de9a116085 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: 9KwTCntheGr4nN8hi2eJ7QNXyRT1Bny65fvvlwxnq61XHr5s/GexIXXFonZQoyNFtNQLzJS04DAkpG2+COY0rYMHkopoLwmnDRf7c+Ynj0xNg3dmCBHjZYWZiGoRvPOqaI1wZzimOZb5h8wQEt2pbPUPEXa0WAsR8L+8xyVg8rIq6ptYtTidNhtKB005keVgyjrmfsEJNL74D724bPcrTPESEYegpxoU6nMj/PXvWdSTg20XuO+xrSSPJxXi5ahyny9I8tquh7S3g2sXgocE0ZOWt7lY8ASn6Q7Hh7c7BH3nTgiEr/X/TPE2HQRbhTNY7HuojDHysaXbiysqQab8l0xeK2qfOJnZ59sKbU1ApDSw+Jpg6wlH2+3M/fFcTLRoLXrn6BfC4tVz4Rv+kLLUVqEwH8Wj5mNKxJ5uH0dOKZZxNZrZopxc4ZmBp053Z+OpOFa1g0ZFifTs4D/9xiV/N1F3E5GMaVDQPv42rdQfPky+cCeCG8fW0w9Nyev+MZFk2cOxz9DKgVvAXSwhzNPT/Aw8Zhoo+0VRP5Puo7y4I72U2y5doYlLO537jt3o6/JbikRvEVs8iEalt5vyKAIrIYI82uUMDnn/f/G+Z8NWl3A1w7w3CjFDrMKNzBlMYIVn14ZkJ9sttLIU4+tBYsRAT3sneRQ1YSMNrAqH44o1M0fgqiVOzalkMJw2LIGOWKXRoAl19Izzzet8rLaZbH0cjFfzZKAoU26xHi+V47WhXaY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SXdCV29WMW5wa3lZdDlxY2E1UDZTYzBFZmhHZjBybElGRWlGa0RuN3diaDA1?= =?utf-8?B?ZkJGT3RkdHBSSkZndWEyTVhQc2kxblNheUlFWUFCY1ExMEtOYUJudmw4REFP?= =?utf-8?B?amZCOVVxdlZHVVh3TkhhSWt4RlhGWWVReEYxb3dZZlBvT29UUlVqaXF2aW9y?= =?utf-8?B?MEI4SlZuRDdaL3hFRmZtaXFyVGx2OGpiUXlzd3ZHWnN1dTRlY3VXWVBMeWVo?= =?utf-8?B?VGRNcEwrOFlqS2NZTnpvTlNRYXFqWmdSTnJNVjhXMXZIQzAvTWMzUXY0RVZr?= =?utf-8?B?cDM1c29nbCtGOE1Mcmc2RVZRQVI5R004ZjgweUJ2YStEaDRhLzFSR3BQQXk0?= =?utf-8?B?a1VQTWlGVDdvV3BDSFJ0b3ZpMHltcEhUQU1wdDV5SHpKL2c2OVdzdlJNT2RF?= =?utf-8?B?Vk16OEZySW9lT0VPdUNRaG80SG1JeUZlaG5WNEhQYnpnTzhzU01rOUp2QlMx?= =?utf-8?B?TytnQ29BTlE5NWZ3bmxuejFUc05Ia2t3azBjR0wzc1dTVXpuQ0pXZTFtWFJY?= =?utf-8?B?VWt6cSs2UjNNVWYzQTRyczFteEgrZHBDajF1eDZBRTRwVkx0NXdZczNqZkdl?= =?utf-8?B?akZuOEJJT2tCZ0JNNkRuOE8xQ3Y4bXFCSFJvWUZ1UU1WYWpRam5LSlBLV2Ja?= =?utf-8?B?N2s4V3dDcnhBUlE1WitvdjZJZFdsdExJWG80YU1HU3pkUEpKa2NtUXc5ejhX?= =?utf-8?B?VzlFQ1JLSm9ZZzJYUHk4bkZLUUlhOUQ2RVZ2WEVSQzBta3BTL1hpcVBWUVk5?= =?utf-8?B?L1BlY0xaTURFeEIxTGtSc216aHRyWUpjTkF2L3FDZThPTTEzTURmb3lhclNB?= =?utf-8?B?dXVYd3dxK21oa2FhYjkxRUhNeGF1K1o1VmJjM3JzL3lzeEdZVTRMNHRjdnNG?= =?utf-8?B?Y1ArM0hYRlJIMENIZXF0elpKLzc3OFo2VyswckhVWEJlWkZ2VktKQit4ck5y?= =?utf-8?B?NW02K1ZwQXJSUkN1UnQ3Nk56citnc01wOXkzblZZSElOblJxTXRzdnZrUjk3?= =?utf-8?B?L0JMck1jYmhQbUQ2cjZGRlZXSENYUkhnazI4L0g0TURkTnpIREl2M3lnVmh6?= =?utf-8?B?eTZvVVVZWE9TYkxmSE5MRmp0VlFGTENxZnN4QkgwOVVKWDVEL3BmRk1RZ2tq?= =?utf-8?B?UWhWUGovQmY3ZE9NUFJjN21YY29adzczQVBEZHNDQyszQmVHWU1NdGsxcndl?= =?utf-8?B?UHNNL2FFRUdET0xkWWdzQlBTRTY5ZnltQkhsWUFPSUl6ZGx5T1lYNjZSeXJ4?= =?utf-8?B?K2oxY2IxYXpLZi9WOVpKTEFYSmkyNVA5bUVaQUFpSW1abGVwbElRUnIxR3lY?= =?utf-8?B?SDRZWDJkSk82R0pZSGphOVRhaDFFN2duMTdqM1FyZ3QzVElxRlpQaWZnTHlP?= =?utf-8?B?ZkFUcW9rZHhlSTNTblMrSWs5Uk95WHZTSUI4SVNXcm1sRTd6b0NSeURWMGpE?= =?utf-8?B?dVJRQmIwUWpqSERDeTVYUjVCdXJCK1FrWFNyOEI0QTl2WjBBb0ZPTTE3bThV?= =?utf-8?B?UnFzUTkxYzloOUdGdVRIbU00UFV3amt4NXVVVXczQmcvbnNhVDArZERiaURO?= =?utf-8?B?bk9yUE44MXUyTktESWxvSTA0Y0c0R0wzNDRvaXB3L1JMV010OFpVdnNQL2tI?= =?utf-8?B?aDJBSjdwTTliWDg3RHd3NU9aa1g3MUxhSmV6UDBnY3g5T3hjL0lHNWkxbkdF?= =?utf-8?B?eklIZ0VKRXdEQW4vWWVsaFg3Zmp0WDExb2I3cGEwK3lNZm1qS0xIaHpnTlFE?= =?utf-8?B?bVM5SWFiMU9IWmxmdGEvT0J0N1ZnTjVnRGRudEZSZlZlWHp2b0FaNG1qTXRv?= =?utf-8?B?M0J1QmQ2MXFlRFZRTi9hcUZpVEF5M0t1Q2JpVU9HSUM1M0w1K09oY01CVEp3?= =?utf-8?B?STEvMDFMaDBJNTJRS0R3OHM2SW4rclVNS0NuYUZ0c0o0WFQ5dXBUSkJQUEh3?= =?utf-8?B?d1pOUmdJNkl0N3R6RzBwQUQwd1BRY0xTMjJYc3l3bUZEa21qKysvTERha0gr?= =?utf-8?B?ZVdJN09tT3c2djBKRmhocXZhMi9xVGxIRHpLRkt0RDdqNGZLTnNSZ3ArcEFR?= =?utf-8?B?ZE5xclM3T2U2Njh1RVEvQnV0RWhCYUxGLzFHL2tpTzdCUWI3MCt3N2pjSksx?= =?utf-8?B?Y2ppRi9HSk1ieFQzc0piSG0zV0sySGJLcWw2bGw0TzFtUzFHYXJxd2hVZzA4?= =?utf-8?B?a3Z1azN0MFo4WmhmQTdlcm9Hems3OGpVK1BTMW5QbFcxVlpZK00zRXR0dDQ4?= =?utf-8?B?Q1F5VllJTE9SWHZDR0Y3TWUzZ0xOb0dOZ0ZaaythWWVXekpydXV0M0I1cThM?= =?utf-8?B?eXlqbm1aUmhkSXNMU21SamhHYXp1UjlDb2ZlRy9IMjFMWVozdm5oUT09?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bbcf984-4e24-4ac2-c874-08de9a116085 X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2026 10:34:17.1600 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: L/MB8L+7ZF+G8/lZdoyOSXo54R5RGP91ubWBu4O2D5Q8NB4Rli6CJyoxLkdducX/8mZkvMCQizA81u5GNqLnnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5573 X-purgate-ID: tlsNG-c201ff/1776162860-2312596F-A368D2EF/0/0 X-purgate-type: clean X-purgate-size: 2885 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1776162884372158500 When running HVM guest in native TSC mode avoid using the recalculated vTSC scaling factors based on the cpu_khz value. Using the kHz based frequency leads to the TSC scaling values possibly not being the same as the ones used by the per CPU cpu_time->tsc_scale field, which introduces skew between the guest and Xen's calculations of the system time. On a 2gHz system, where the frequency is possibly detected as 1999999999Hz (note this is a worse-case scenario), the cpu_khz variable will be set to 1999999kHz, and hence 999Hz cycles will be not accounted for per second. Over a second (the time synchronization period), this leads to a skew of: cycles * 1 / (Hz freq) =3D 999 / 1999999999 =3D 499,5ns So far this has gone unnoticed because the time synchronization rendezvous forces the update of the tsc_timestamp and system_time fields in the vCPU time info area, and hence the skew only accumulates up to the rendezvous period. Attempting to remove the rendezvous causes the skew to grow unbounded. Fix by using the native TSC scaling values (as used by Xen) when the guest TSC is not scaled. Fixes: eab8a90be723 ("x86/time: scale host TSC in pvclock properly") Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Jan Beulich Tested-by: Marek Marczykowski-G=C3=B3recki Tested-by: Stefano Stabellini --- I'm worried about the usage of cpu_khz beyond simple printing it for informational purposes. Overall I think it would be safer to store the frequency in Hz, as to avoid losing the least significant digits. In any case, that's a different change. --- xen/arch/x86/time.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 4233ea507d40..244277c0a921 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -1710,17 +1710,25 @@ static void collect_time_info(const struct vcpu *v, else { if ( is_hvm_domain(d) && hvm_tsc_scaling_supported ) - { tsc_stamp =3D hvm_scale_tsc(d, t->stamp.local_tsc); - u->tsc_to_system_mul =3D d->arch.vtsc_to_ns.mul_frac; - u->tsc_shift =3D d->arch.vtsc_to_ns.shift; - } else - { tsc_stamp =3D t->stamp.local_tsc; + + /* + * HVM guests using the native TSC ratio should use the same per-C= PU + * scaling factors as Xen. This ensures time keeping is always in= sync + * between Xen and the guest. + */ + if ( tsc_stamp =3D=3D t->stamp.local_tsc ) + { u->tsc_to_system_mul =3D t->tsc_scale.mul_frac; u->tsc_shift =3D t->tsc_scale.shift; } + else + { + u->tsc_to_system_mul =3D d->arch.vtsc_to_ns.mul_frac; + u->tsc_shift =3D d->arch.vtsc_to_ns.shift; + } } =20 u->tsc_timestamp =3D tsc_stamp; --=20 2.53.0 From nobody Tue May 5 08:58:52 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1776162885; cv=pass; d=zohomail.com; s=zohoarc; b=JUdHAMpS0anHj3ql5FfaypJgLebCoMDmDcAb6eAlbz5XE7W/vknZLfiNUqM5g6hiOM4HNAsOh6D44VD0j9Sy4OUmXeHdWj/cUpQsCHv+2nu4iO/9X0eaSf1PmnDV4hSPDvxtfdncR+TI96l858ZZO5UWtggrIhtgMT3TyGTG+7U= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776162885; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4vd6wmy5re3Pw6r5a1e8wGjbTzbuX+NVCRIv+nVQt1Q=; b=On2PJYklFaEjLXy56IMFCvTXMq9BI3xs77XlMoJ4Wgt1nBzr0CJcE3WkvAg3eyZCfIc84byeYpHo4VDWUr+3u8aUTm5UynNzsiAhGT5NEDouc44Zn1ISF1dWqMwXm3wh+5L8f4d/SDX3xguLUobC9YC8DkVcqIw8++KRDjUTi+I= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 177616288541452.476275368302936; Tue, 14 Apr 2026 03:34:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1281577.1564449 (Exim 4.92) (envelope-from ) id 1wCb69-0005ov-Nr; Tue, 14 Apr 2026 10:34:25 +0000 Received: by outflank-mailman (output) from mailman id 1281577.1564449; Tue, 14 Apr 2026 10:34:25 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wCb69-0005oN-LB; Tue, 14 Apr 2026 10:34:25 +0000 Received: by outflank-mailman (input) for mailman id 1281577; Tue, 14 Apr 2026 10:34:24 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wCb68-0005n2-Nb for xen-devel@lists.xenproject.org; Tue, 14 Apr 2026 10:34:24 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wCb68-0091ky-3O for xen-devel@lists.xenproject.org; Tue, 14 Apr 2026 12:34:24 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 69de1829-bab6-0a2a0a5309dd-0a2a450cd56e-20 for ; Tue, 14 Apr 2026 12:34:24 +0200 Received: from [40.107.209.70] (helo=PH8PR06CU001.outbound.protection.outlook.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0) (envelope-from ) id 69de182e-f40c-0a2a450c0019-286bd1468b6f-3 for ; Tue, 14 Apr 2026 12:34:23 +0200 Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14) by DS7PR03MB5573.namprd03.prod.outlook.com (2603:10b6:5:2d1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Tue, 14 Apr 2026 10:34:21 +0000 Received: from CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9818.017; Tue, 14 Apr 2026 10:34:21 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xFx2x81Rje7dQ1qFoh5RGg21Lc7ruXMgPMRgOkm2sd6P6vp7ncQZrdQrcrxM4zzxWvzdWkjnWw93/7+aDXun0/DHhxKLcuxyJG63MAwW5Pvwtlp87BcTymq9OFvVbvNzAREMNLc4v6p0TvJolLeryXfXDsoXj3UhM8m7tnD6zi2G3wwvDi50wT6bxcOE1115M0vGympuHDKRxkCIV4N7Jjy7qCGiO/aStiBdCu2GUmikD/4mflMw+lphrN3wbWvDZ/AkYVKLFK4EvjqSlJOzuS6/r/QfXcbP/3yBSz6FYuqz6fu2C0QAE3nF6/Dqse+VmhgnXPjJQ5VR58ylHvJwfQ== 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=4vd6wmy5re3Pw6r5a1e8wGjbTzbuX+NVCRIv+nVQt1Q=; b=xhM7f5QDu/+5xgv9K/5Rc1AlQSu88HVtNLsQHAWN9/1/YtwE3ipFzbZl+QixW+yI5J+EHSGUTiG1XoRQArDZpFLP0Q7T8Qn0GXrDYV15mJ7kIJVRDOdMaQvGrqnyrd/LB6PYXuAWJe8l1rQbAp6aiAmLgt3XTqxYbEl4JtVuZvFjo05ajrjyv1+rrhmrwBfjtGtlt1dJwyGXo9ImHBx/khIjEfMgUA9FiXU6ObcpWEh3tJatqthUnoKJBM46+hlR1pw5258pZ5fNAm3kLDq7diFe25RAKKDu911YTxfhZvXjeTAODcpOkegv7gfbqFoFTRiM/1xEwMbEs0wWS+tAHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4vd6wmy5re3Pw6r5a1e8wGjbTzbuX+NVCRIv+nVQt1Q=; b=LAg0xRL2VTCawGZO27fRqsoarbiFp6A9zn+eAiEZcPZlfBufJckNMzLAG9Uqz43GUrbf3SmEq5oSfLmzFG7T60R1C3NQ6IqTFVkTGvOvWqWLYKS2Mbp/Zgde2+6Pz3PwGcUdDkQZfUGi3JQjideIyX71YnBQSccumnZ24N4mOqk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Roger Pau Monne To: xen-devel@lists.xenproject.org Cc: Roger Pau Monne , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Alistair Francis , Connor Davis , Oleksii Kurochko , Jan Beulich , Andrew Cooper , Teddy Astie Subject: [PATCH 2/2] xen/cpu: round up cpu_khz calculations Date: Tue, 14 Apr 2026 12:33:27 +0200 Message-ID: <20260414103327.7420-3-roger.pau@citrix.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260414103327.7420-1-roger.pau@citrix.com> References: <20260414103327.7420-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA3P292CA0066.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:49::11) To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5573:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f9555a4-8be6-4fbc-a285-08de9a11638f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: GBpaUKpJr4t8JK+err59HyGW2cBK/XkQ2oewZTD8nYvjEAo9kWaPOFpRhMRsv9ryu3vsIB5MgoZ+iF1RVCesh8OCc8fumnnpwm2ZZsYmhQ5v/w4FXO3pSjlRUiRJMTY+AIrQtVpLrarLLHBc0/vfo5ssaVCDE6x+sL68QcNLnV5dq2jQ6wcKfdKiyA0zfPsc5YoWMAKQwAH5J7stYvJhOUD2O4+b+DBxE88FHbJQUNYP9+aR+J5lIKCBTuRexwFjV/9H755fJ9EeNIaGBKEitxV7w1/Lsq6AbpBfCy+icueKr1ja76X2iRy96kFPVirEoDYIhiNhSAiZLgS+t11jMNMWe3ix72vcwAoQv8vemaYcCeL+haVLcHeYd8pCVvl1oRxzXEyKqX1X+Pc+kuoto18+6cM9Iw/1oBuIARj0b6OrZcU+N6qSw/sj8/YQ7MUzSY5CEl0wforImFzJYPjGjIrJ0hnlGdbvyal3JGv/aYoJ490fDjXryREswf0/zELNfmuieB/TCM1Oil1A439dFgybE7aXen1pV0Zs/mALotPcV+VLPrXp84V+vGqVBJAwqnNiZCCGV1eQItZ5tYA4M/I3A0n+OJ5VqOGVp8EEBhP0S1H4mTyy60WUun70PZN2T6w/rrVrnGBDg9a5ztQSR1MExWCL5i9ya4Y3XDWumpba2LdNiHoZo+tZ10mB+ZNa8o0XTTC28JhdeyiP2FWm9HPynP2m/dh4biRsncs5RFU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YWlHMTdOaTJpQm0wRlBKeTVQOWw2ZEsrZ0p6bnZYYk9objduNUQ1SjB2QzVP?= =?utf-8?B?U0xLaDU0K1hyVjVhU0dyQVBVQ0lzcmVMR3E3d2hJYWM0b0pDZXJCd2pwWDdV?= =?utf-8?B?MVBCcFczbi9XU0NUcW5aSFY2SVZEOHFuTlh5R3RMZU11KzRJSHQ2QnIzbHV5?= =?utf-8?B?MmhDS1VDQ1NaRzJRdDhlczZ0L1d5TDRORnArUXZWSG5VeGI2V0tJUFJCdnJK?= =?utf-8?B?R3FEQ0dEc2RwejVNdVc3R1hHU0kzUVJKM0xaYlNWMWJLWVpLL0VJN09hNWpP?= =?utf-8?B?UHFOY0ZPZjk2eDUwdVRQaG9lOWZHNHpZZkhaL2ZKTHVCeWdSSTd6NWU1UHp1?= =?utf-8?B?am8wTnhBTUIyQWpUeUNZcXB5T1lyMzJEc21OSURMMENIaEdzMVM1WlN6elpD?= =?utf-8?B?UUdPdDhLK214V0dPQkQ5UUprNTN2RnBtQWtjUXAyRi8xZ1RQM2VLSDdWMllE?= =?utf-8?B?ZGNOMjJsdG1yTVYveXdKVFJOcmRkZk51VW9zQVRhL1hhSDYyMFVHN0Y4UFZ2?= =?utf-8?B?QlArR00zMmNtQ1MxRVI5dGl5aHl5OG8xTGROQ1R5Y1ErTS9hZHNaS1JEdkxh?= =?utf-8?B?L3I1KzJzMWhHa2ljUkpGdkFYRHdhUnhvK1NDRXp1MGhFUm5zZGVtV0I2Q3lG?= =?utf-8?B?a3lyeUxzZ1RPWFZ3MWU1MEJ0dllURTVRZ0tEVkY3V1JhcmdpSVJzUmlvZ1l2?= =?utf-8?B?b0JZUlRmeHZ1VFlMT1ZIV1BrK1dHeXJsdTZJVitLQUx6aEUzbStQVXQraldB?= =?utf-8?B?cXpoakVIWklhcmkvdkRWOVdGTkZoRi9sZm02bnNVcVkwNVU0alVCcERqOSsz?= =?utf-8?B?TXV5dmQyMlVZSklmRnBQZUVGcEZ0V3J1SW93SGRBcW9DNURwaGZZZ0txWFdj?= =?utf-8?B?RkVDaVBuTWF5RlZwTUY0eFZicnl6TzdHdDJ2MzlROWp0OFUrYTRXRFRuYzZ3?= =?utf-8?B?c1lMZTNOcEI3S09KMEtxbkNacEdFMlB5bk1wQXFLcXJNdU05OEcxM1ZlbVRD?= =?utf-8?B?ZGUwMjVNeU1JU2hYQVh3cWk1SDNSNkFXcC9VS3NZSzZKN3pFcXVPSTJIa1dO?= =?utf-8?B?ZC9zamNrOXUvVktvMlJtQk9iL25PeUFmdXhvWjArV0tpRWpYa0dTMS9sdEx1?= =?utf-8?B?VFRoQ05rQ0pGaCtMYnZRL1JKTjdzNHhBOHZWWmswV09DbGZicGFwM3hxaDl2?= =?utf-8?B?aFNjODRoZTI5QVlyQWVxd1FwaElpajlTRTZiejRwVzkxWTcyak5NUWV1NWdF?= =?utf-8?B?T09jbWtGVVRIcEhGSlhReURZVHVqUzJYamVuaUNkWUM2Y3duYTZQZnZHTmZn?= =?utf-8?B?UmFQUm0vcGg5SS9PdFRYYlpPaTRLNk5XbVBEMEZPRmtnU1I1VERCbWNYcnVk?= =?utf-8?B?VlZzNFU0aXM5ZHlLTUcwUktuei9vRUxoQUN0M2lnc0pIUGE2ZVJNR0FGZVVO?= =?utf-8?B?akRKR1c0V20zb01sSE5OU0hOdVprYXdRZm5qeHRRb2xSSFJ5USt2cnc3QXNJ?= =?utf-8?B?VklYWENrUW1UUzV1UlZCaWNPaWZ3Rmg1UGREenZnT3ZEVEJjRHBCQ3FqVE5p?= =?utf-8?B?RXJYUGZ2Yjl2YXdkanlOUlcreEcyQmNjOWh1Qktid1pwVHpVelpMa0hvN2k2?= =?utf-8?B?bklDSnkydTlHbWRMZ1crOGRNa2tjZGMwY1BaYWh0ditBbnYyQ1d2VzcvZ1Ri?= =?utf-8?B?QllqMUZVaVJWY2ZHUHJvcTBPNVRHdHVJdmk1KzdEWjBRSkFaVzZYdzV4bUlX?= =?utf-8?B?VEg3akpKZ0QzV01pSEV1RndxTHlEaHdTNFJvdWVVdTRuUWFPUU5VdkFnTjFu?= =?utf-8?B?RzJmNlVOaXJYc3VISFRmRUlWdEs2VFFrbXVpaWVVREVGQVBnMXlLUTZjZWNv?= =?utf-8?B?cllkUHAyKzA5Q1ZTRnkyU1VXOXNOSlRrWERZZVJjeW1hejJNZURScFJXc3Iv?= =?utf-8?B?RmU2Q0JNU2tnSFJuZ1lrQTU1QUxXUm10Q1k2YkI2a0xhOHh2NDhUVDc5UGJF?= =?utf-8?B?MUpNY0VWRy9oemJvWXpxWkxRSlB4VU4zWWpKZjBBUFVLMnJudTNSam1aUXBy?= =?utf-8?B?cVdOU0c2OHkvOFdycmpWSGh3MkhqUWZzbFFYdDROWjRFVmhRQ0tQV24rcDhP?= =?utf-8?B?YTN5dlcvbXhvSFdhcXVJRVBYUlNnb3pZb0RGTjdZTDFMUGNiWVVBTFlSTUcw?= =?utf-8?B?QkRISTZxQW1JRTU4cGt5YTYyOHR2c3pYR2NOd3ExTHZXKzJ3Ym1VYWxyUldm?= =?utf-8?B?Q2QyT3REUDBFNjdIRWtERVd3ZVZIbzkvVFNZTjEwOEV4a1VUZU5Tb2JOeWRE?= =?utf-8?B?R3dyTzFicDZURm1LazVQcExsTU5pOXQ1M1hRN1NMQjNyWjNhdEdNZz09?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f9555a4-8be6-4fbc-a285-08de9a11638f X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2026 10:34:21.0498 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /tFqel6TdhRAUye85AV6cJwq8X4Zjo81nQvBn6XqhoyxE0Ca6E9yBDysbF3AnKpjQ5B3aYxm3R9Npo7y87TKyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5573 X-purgate-ID: tlsNG-d25034/1776162864-8254FA3D-6DEB300D/0/0 X-purgate-type: clean X-purgate-size: 2251 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1776162886201158500 All arches truncate the cpu_khz without taking into account the less significant digits. Instead use DIV_ROUND_UP() when scaling from Hz to kHz to get as more accurate kHz value. Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Jan Beulich Tested-by: Marek Marczykowski-G=C3=B3recki Tested-by: Stefano Stabellini --- While the possibly more accurate value is nice, I'm not sure it's actually fixing any functional bug, and hence the lack of "Fixes:" tag. --- xen/arch/arm/time.c | 4 ++-- xen/arch/riscv/time.c | 2 +- xen/arch/x86/time.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c index a12912a106a0..9e0c485c77db 100644 --- a/xen/arch/arm/time.c +++ b/xen/arch/arm/time.c @@ -118,7 +118,7 @@ static void __init preinit_dt_xen_time(void) res =3D dt_property_read_u32(timer, "clock-frequency", &rate); if ( res ) { - cpu_khz =3D rate / 1000; + cpu_khz =3D DIV_ROUND_UP(rate, 1000); validate_timer_frequency(); timer_dt_clock_frequency =3D rate; } @@ -136,7 +136,7 @@ void __init preinit_xen_time(void) =20 if ( !cpu_khz ) { - cpu_khz =3D (READ_SYSREG(CNTFRQ_EL0) & CNTFRQ_MASK) / 1000; + cpu_khz =3D DIV_ROUND_UP(READ_SYSREG(CNTFRQ_EL0) & CNTFRQ_MASK, 10= 00); validate_timer_frequency(); } =20 diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c index 7efa76fdbcb1..faca7b70e13a 100644 --- a/xen/arch/riscv/time.c +++ b/xen/arch/riscv/time.c @@ -40,7 +40,7 @@ static void __init preinit_dt_xen_time(void) if ( !dt_property_read_u32(timer, "timebase-frequency", &rate) ) panic("Unable to find clock frequency\n"); =20 - cpu_khz =3D rate / 1000; + cpu_khz =3D DIV_ROUND_UP(rate, 1000); } =20 int reprogram_timer(s_time_t timeout) diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 244277c0a921..b84414f00d05 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -2642,7 +2642,7 @@ void __init early_time_init(void) set_time_scale(&t->tsc_scale, tmp); t->stamp.local_tsc =3D boot_tsc_stamp; =20 - cpu_khz =3D tmp / 1000; + cpu_khz =3D DIV_ROUND_UP(tmp, 1000); printk("Detected %lu.%03lu MHz processor.\n",=20 cpu_khz / 1000, cpu_khz % 1000); =20 --=20 2.53.0