From nobody Thu Jan 8 12:42:47 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; 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; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1767102675; cv=none; d=zohomail.com; s=zohoarc; b=DhgJb7QxEzCZRYFPLlGQyc5LA13pVRK9+f6IW8C86SsNKuyPvsBCnPnNfqhan+hr1XZFaPhRUaJRQlGmP1xnMkwtyqYVl5+CAn6dQWv6aEqHe6D/EpqGvpwVaYBsGzeLCVWfugqJDSfSp3RngZvZEkGB7mT7EKVmNG4twt7bhT4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767102675; 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=QtIxME32IcIk9TL5Lyl1j6oY1OupajCDrpTY+bON6y0=; b=dgmK8hvhAXLZnMtbUFKgMsz6CJcF8iogxD0qDH5KhkEsJ8DhZ+4LoIm9nzEwRiynR5KfThhp2RK2oY72SlZb2VtFomvn06QfaM/ucKWerkzzwJ+VYILyc2F0FxeeIEqyTDMdAbhk78DBudrBPJeLeGg3Q2MtZIzpp6kFidkx+LM= ARC-Authentication-Results: i=1; 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; 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 1767102675830806.8467286625066; Tue, 30 Dec 2025 05:51:15 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1194176.1512610 (Exim 4.92) (envelope-from ) id 1vaa7n-0004LY-O0; Tue, 30 Dec 2025 13:50:59 +0000 Received: by outflank-mailman (output) from mailman id 1194176.1512610; Tue, 30 Dec 2025 13:50:59 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7n-0004Kh-Hx; Tue, 30 Dec 2025 13:50:59 +0000 Received: by outflank-mailman (input) for mailman id 1194176; Tue, 30 Dec 2025 13:50:58 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7m-0003x2-Lg for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:58 +0000 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [2a00:1450:4864:20::334]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 90e37f5f-e586-11f0-9ccf-f158ae23cfc8; Tue, 30 Dec 2025 14:50:56 +0100 (CET) Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-47d3ffa5f33so18279435e9.2 for ; Tue, 30 Dec 2025 05:50:56 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 05:50:55 -0800 (PST) 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" X-Inumbo-ID: 90e37f5f-e586-11f0-9ccf-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1767102656; x=1767707456; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QtIxME32IcIk9TL5Lyl1j6oY1OupajCDrpTY+bON6y0=; b=rxYGKRtY5KyM8OBR2oFd7WllbmBKLIc99mmihfHiRLZjTFni0ajRKKQGuKjTBw/fmM BDaMMP2vG4azqyIJKAfP1nf7ic4jsycJci18xPdn6O2/CPHgKh4gzHAgb7UzJC+NZYf4 vG13Gd0SqKw+asx9ISUV3dDN9rIZpTpJ6B2oU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767102656; x=1767707456; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QtIxME32IcIk9TL5Lyl1j6oY1OupajCDrpTY+bON6y0=; b=jAw6RNYsZGWKJWLIrOBL6ZmeBMWsfwnkAcLhBvnFOePvHr1vvcflTLzTZJ8+qhRn2Q fPIjYFFhM8QAefNUB3++jKllh0lYUY010sgpA8fBaGVeRrATqZcQZcdwDeqCtrZ8No+E Ssxe73JDX9QfHcq4gRuTYFI0wLpPwPInA59Ng8l1FNlfDu9dHbNkZ5nsSxmZR+XBNoIj StRIlx6D2iXOJPf7YQI/9hJJQCaQaTHvsguNaCh9nVzjDZVseviRbO9m50cpbyKuu4UZ v6m9lTu0dw88GsijRmB7EwJdenVOD7aAYpYWlYK9JO+l06v0a3f4AM7eeXQwC0X9a9Es ajJg== X-Gm-Message-State: AOJu0YxPfR7fB6yktP/qoUzOB1XUa5nezWvsgQlw+861tSrmQWshTwrl lWch084WzwohnYvrujcZPVuF8ZAudc9IaZE8d06sozQPmTmVR6g++BEw4IhPqbLw11mCCVIRHyo UK1d8 X-Gm-Gg: AY/fxX6VeQ2OP3gNbMoRYl8MNao7xnh2hJLm+hLAId0QnsM90tetukqdzi+CLT91btd ItNYVgg7VR1vrgdbXeIqfz5NzckG7UU7KfuMWTLprE3LHjyzjQoPtlhq0ZxYBLhLMw3h1kwjp3k fs8W5OJ1QSjeVnsyJDXnPYb2uHWlTPK1S9lFIRldCtA0KtO1i8PgXGmbzPmMn3Hacmx8qxt2QXo aaPrtYuEbUgx5GJJqjRuw5C62609VARgcHfQKPJMszqNmk3Wkd3tcNIS8idyt/wNfwEjvXMDKqF 9tQo2Y41pC/LnLJHXTaLSBMnhpTjG8AzQ76K/0EFNWf4a2WR7xZ3PEfG681kX1coibMuflaGe+z C3FzMPx8nZxnUNQWbpstNy7IqAZhigwz5a/VBGO0npngZPuSicJgpdm4OzsEcIi4uo6mw3CaxhU N6j1cUxhrKQ1Gp7X5ijqi9Y57Hl3ALVjTfMCbrblrdLGYn47aqjNvo6tGjraBFRg== X-Google-Smtp-Source: AGHT+IGz0VmipjnUFVNKm5p4tVaOUfiltMaYqpjQFXB0M9G7EvjahUMK1UkSoaBtRX248rO2/cvc+A== X-Received: by 2002:a05:600c:4e8f:b0:477:df7:b020 with SMTP id 5b1f17b1804b1-47d1957da79mr353493175e9.18.1767102655949; Tue, 30 Dec 2025 05:50:55 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel , Oleksii Kurochko Subject: [PATCH 1/5] xen: Fix endian handling in muldiv64.c Date: Tue, 30 Dec 2025 13:50:46 +0000 Message-Id: <20251230135050.188191-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com> References: <20251230135050.188191-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1767102677639158500 WORDS_BIGENDIAN is a QEMU-ism. In the very dim and distant past, we had a fork of QEMU living in xen.git which wired WORDS_BIGENDIAN in the userspace part of the build, but nothing ever wired it up in the hypervisor build. Fixes: 86d5da49a6f7 ("[HVM] Support multiple HVM time device models coming = soon.") Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Michal Orzel CC: Oleksii Kurochko I'm not sure that this wants backporting, seeing as we have no big-endian architectures at all. Otherwse, 4.20 and older can't rely on the existence= of __LITTLE_ENDIAN on older toolchains. --- xen/lib/muldiv64.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xen/lib/muldiv64.c b/xen/lib/muldiv64.c index 79411f5d59ea..f281578c09a4 100644 --- a/xen/lib/muldiv64.c +++ b/xen/lib/muldiv64.c @@ -13,10 +13,12 @@ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c) union { uint64_t ll; struct { -#ifdef WORDS_BIGENDIAN +#if defined(__BIG_ENDIAN) uint32_t high, low; -#else +#elif defined(__LITTLE_ENDIAN) uint32_t low, high; +#else +# error Unknown Endianness #endif } l; } u, res; --=20 2.39.5 From nobody Thu Jan 8 12:42:47 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; 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; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1767102681; cv=none; d=zohomail.com; s=zohoarc; b=ZeT+M6fJxuapMyWd4Q7FAdbewSjj62VI4K4IzNZgDLKMXruF29+4KM/ZQhH/teNbzCMP9te9aOlO+kkGSG66YytdURVZ2q4jkgN10SQJxTWlqXTDFaIzry1jq7GlBGKovbfBBbygNPuvEXMvEzMTPnOB76JygKdIfOo/hY5XaBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767102681; 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=1UY7wHDyhy76HSLMO+hhfmsr41moB2Cd+smhrFbq1w4=; b=Jk/MdxHd/lE5CFCj/46TU99WmmrN4duZ2UjOdz0nr0bM6kkhdcfE4McJlPn/ocuio9aIi41kgPJmW9pG1hrBX7CPeGIgwjMyC68otH7mCyI0Cy/HE08aWmlI8MA2mEYIDAQDzTCs4H/OTx/bLcjCiH9AikQ9q4htO+2a16rI19U= ARC-Authentication-Results: i=1; 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; 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 1767102681271523.1274652585637; Tue, 30 Dec 2025 05:51:21 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1194178.1512628 (Exim 4.92) (envelope-from ) id 1vaa7p-0004mV-8g; Tue, 30 Dec 2025 13:51:01 +0000 Received: by outflank-mailman (output) from mailman id 1194178.1512628; Tue, 30 Dec 2025 13:51:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7p-0004m1-2q; Tue, 30 Dec 2025 13:51:01 +0000 Received: by outflank-mailman (input) for mailman id 1194178; Tue, 30 Dec 2025 13:50:59 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7n-0003x2-Lr for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:59 +0000 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [2a00:1450:4864:20::332]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 913cc739-e586-11f0-9ccf-f158ae23cfc8; Tue, 30 Dec 2025 14:50:57 +0100 (CET) Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-47d493a9b96so15241325e9.1 for ; Tue, 30 Dec 2025 05:50:57 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 05:50:56 -0800 (PST) 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" X-Inumbo-ID: 913cc739-e586-11f0-9ccf-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1767102657; x=1767707457; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1UY7wHDyhy76HSLMO+hhfmsr41moB2Cd+smhrFbq1w4=; b=ESfyf2lgf19tc2wGmLc+OROXcyM1Z0y9ILPtNWkZ9QEicMozKjhmxgvHh4UweXZpe6 4mY/wvmtgKOW09uYfvJr9XZTXTogoavwemHV5W/+fKFPAdCV7pwNUI+ZT2odlhICACIo 9X2aeQrzED/kZZoqSr7LZJqhUCJEIiVG2XHzI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767102657; x=1767707457; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1UY7wHDyhy76HSLMO+hhfmsr41moB2Cd+smhrFbq1w4=; b=PuZX68xEAAhips6a49bYnfyVQ6AYWE46i9ndgD6rSuGIyfVZonq8C6EpQtx6PXcH9F sTrdl3QPWaw/wFzLqvJys+Prj7P3pPUKSE8I/KGK22z22y7q9HOTOBw148Tg+48r4ntg iFq5rbAJuJrXgh3umY9wcDGbVfw0PUALkhMt3x+bLDu+UOtv4z/wX7LltMm450YulvFM /zpkRXHfKYr2SCPBNwh8FD0z8MdvADj2IPMW0IJSrggUP17+KGB3lkq1R+Nb1uog+wlb IwaxrUOCTmRY57dZWBBMJrkGwAM+0U0xe7souLYqaAQ/QKWdEeOF3thBhecsGJQHetAp up8A== X-Gm-Message-State: AOJu0YzfAO6c6tWxhxLSSw+DlWSltL89GHx8BnQmfis3Q9r6SG2vLK98 bAGEGzbIWUBd+wmWRw09ljlUjdbGRPmezEr6c9COPRMoLhiRhjjoVr/0Q3AEYLd9ltYdj3qbo1l IlICz X-Gm-Gg: AY/fxX5BDU9M9rUZtOw8BrBnaGiOld6PSd6+ksjFvN5fMljIxH86UdM08xqhKYmnlAx /UyjXhxQ2aCWS6zuFgg4/xfNpQBRP+/c83S4ej0IAivZ4LuNCu4QLUEbMOdPpEHelMdVmYYpggd echXWCm+fCqnwij9htiLTSN94h6uu28W4XLljZHwOMmiTFjbd7zhsfbcnoXy1+mRDhKKUtnCbru rtoWWzGcT0InjqEVw7CD2srjAuDGi5Mwibsu8Lt0DVdMdzZROgZmiDlds8L1duAt5ESmLQ+GQ4C 2dfOWCJ5xWxQISJ2lKomwkZ2EuWZ68QzMnZy38+Oeoyc4Tm6+7yGSq/tDk/i47vkWe3475h6DKi kK2R4NJxLsujynIVQKRi5fH0BdtSnl2y3uHVUvfhvPn/E5SrdjE4RPP8UPMAhCzUkHtitn8yFog 2cAS+NEK0cutbmQreKIO1Zf3kYpkjYhRQVIT2kIsZZT1jS90fl67hMkTJ50cDiHQ== X-Google-Smtp-Source: AGHT+IGy5/FRM8UYMBjx296u1jcZ+PTdZEgmV9Spx3067pocOa7sOZEZT6PNJl7+yi0f/WXrIhKJmQ== X-Received: by 2002:a05:600c:540e:b0:47a:7fd0:9f01 with SMTP id 5b1f17b1804b1-47d195522f7mr427457905e9.16.1767102656562; Tue, 30 Dec 2025 05:50:56 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel , Oleksii Kurochko Subject: [PATCH 2/5] arm/time: Sort headers Date: Tue, 30 Dec 2025 13:50:47 +0000 Message-Id: <20251230135050.188191-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com> References: <20251230135050.188191-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1767102704482158500 ... in preparation for a logical change. No functional change. Signed-off-by: Andrew Cooper Reviewed-by: Michal Orzel --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Michal Orzel CC: Oleksii Kurochko --- xen/arch/arm/time.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c index 3710eab109d9..03dc5b51a890 100644 --- a/xen/arch/arm/time.c +++ b/xen/arch/arm/time.c @@ -8,26 +8,27 @@ * Copyright (c) 2011 Citrix Systems. */ =20 +#include #include +#include +#include #include +#include #include #include #include #include -#include +#include #include -#include -#include #include -#include -#include -#include -#include +#include +#include + +#include +#include #include #include #include -#include -#include =20 uint64_t __read_mostly boot_count; =20 --=20 2.39.5 From nobody Thu Jan 8 12:42:47 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; 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; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1767102681; cv=none; d=zohomail.com; s=zohoarc; b=mz3qe7K1flR2nnWSE6grY+EnajC+FpOlVCKrSxn+fpkNyq8obwfOrsu1mCB0zLzpwqxoF8donrdOsqU8MjxYzVFsn3dAn3WygEkeWmj1HPfgm1G3jJSn4WD1nbmW+G/IraMf6KdapzKd09g0iMV3kh8Og82xQEKGjBJhmTxNjxc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767102681; 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=Nd20J3v7uhZuwD0WalGtR1GIlt9QmVuIoVXjLZvsMiU=; b=OXl+FAHjjrkSwdSE4wJ1pjQuIzmTjfoKRhpxRC/H4EXEOMpHQZ0F1baPTIx1Y/pfqjZVaKxiHeNvZxOq4Q+oE4rHi71eVSJPboSXCck97Gx/2EGKzPPzgoKmxwMbJ6AL9AnXVG2FVgLGI1+awA98c4NPYKkrSa0mRIMWVlZZy8Q= ARC-Authentication-Results: i=1; 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; 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 1767102681688227.25740440381855; Tue, 30 Dec 2025 05:51:21 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1194177.1512623 (Exim 4.92) (envelope-from ) id 1vaa7o-0004jz-Tp; Tue, 30 Dec 2025 13:51:00 +0000 Received: by outflank-mailman (output) from mailman id 1194177.1512623; Tue, 30 Dec 2025 13:51:00 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7o-0004jG-QF; Tue, 30 Dec 2025 13:51:00 +0000 Received: by outflank-mailman (input) for mailman id 1194177; Tue, 30 Dec 2025 13:50:59 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7n-0004Hp-2X for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:59 +0000 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [2a00:1450:4864:20::330]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 91bc9c58-e586-11f0-b15c-2bf370ae4941; Tue, 30 Dec 2025 14:50:58 +0100 (CET) Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4779adb38d3so65504725e9.2 for ; Tue, 30 Dec 2025 05:50:58 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 05:50:56 -0800 (PST) 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" X-Inumbo-ID: 91bc9c58-e586-11f0-b15c-2bf370ae4941 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1767102657; x=1767707457; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Nd20J3v7uhZuwD0WalGtR1GIlt9QmVuIoVXjLZvsMiU=; b=YKzEsi9AZ9awpWfhpN5LaKGr3wHEoS72QftTJYnIwliSfHBj/2cAsV1PDeuh5Dm5QE PGgrhRTzGE0775NU+qciVzBy8+sRfyKS84YfIFUHxsHLTw4zqOPiCx9IR5/Q/yj87J/C k46KWRaQuRQF4pqiqhG1bO+V+MczrmOZMkVVQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767102657; x=1767707457; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Nd20J3v7uhZuwD0WalGtR1GIlt9QmVuIoVXjLZvsMiU=; b=gEq/t9BctY9K1wUjzYIy1WPbEKqJg69oVXe0NGYBHIJm+xxqz578TqdgceShxeLoc/ NpfhRvInkrY/xSqO7Hd8cJrZBOyp+EKhG/NByUTpedhxz7oXJSrLv8ID/b2cUDtQzNyk qYs+CP/2Z7Map5boYRcJ3xIxgMgU+kcN/jvirKTvzRSeHsgyXu5uFwpP9M1BHqCtH4GG KdFztd4HA0EIP3K47jx6EjZ3mO/Ikn5Xr9F9JS9M3xK7smfM9Z4v5xrODwKgY7/y33nL sIDtWQAtBqgpin+LuksZiPs+xnTVp6YSaF6Pk9+KLJidJQHyqkKznppn/P/8DThqzGwa Eb9Q== X-Gm-Message-State: AOJu0YyG6fOancUeHv72yhZo0Zkhxm9fWkWlCbg2WzsZ0CZwBCkFNEcD oyHIPmdpas4N0TRp5lR8hCrDzi2anA22irmX02KXwyopOKeg69T+iKrQfIxAINHbyHj1aEdnZWn 6bPQZ X-Gm-Gg: AY/fxX5eTVrooJToFBZCV6rD+C9XlJe0EmDWjYsOY6rfw8Q3DsYwOGI3qYK2TNdF7ed E4hd3PR9K4DIDHXSuai9CZHzsDUWX/AHtYbDiem28oSrv4cqt6O+tTKIvbdBvMYqrCAHGeBYYDL 0t4fXe0E7+dSj+sgXwtGZkNQ3o2a840D0egbsyfeADCjUVYC3ylNX9Ggp+m4F08iNZ2QG/xa046 oqsxsKu9k5uwProSVWN0zA+e3W4kLxuF6roln7ysmizDXi4MV/Hx7Zwdt/KNscFmZH9mbhDnEVY J20W8gW0XVpAc0YBD0b2HVKniBgYi2muUDuD7omnjPFDPt12oROPaRCkibH/8DZS7jBMu5ljYUr 8Nke1i+Zs9W0/a2BmsIl77WIAfkGj4v+IGpOAcXD2nop5ZmHYfmQsGsaCg2Go+zE1GW/p6Oe4Hz UaXZ5i3a+K+EjIs9WGfOBV+OwJi8PifQf2fU0PW88YkOpx7GI1R8zr10Q4Bukptg== X-Google-Smtp-Source: AGHT+IEIrik/fSPnMFz32DPXSX6e7Ax0GK/XGex1e8Y/JwbScl0g+FWVTaUY/mmvFyW9YrfmzedVog== X-Received: by 2002:a05:600c:1991:b0:479:3a86:dc1d with SMTP id 5b1f17b1804b1-47d195a63b0mr355075415e9.37.1767102657490; Tue, 30 Dec 2025 05:50:57 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel , Oleksii Kurochko Subject: [PATCH 3/5] x86/time: Sort headers Date: Tue, 30 Dec 2025 13:50:48 +0000 Message-Id: <20251230135050.188191-4-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com> References: <20251230135050.188191-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1767102683773158500 ... in preparation for a logical change. No functional change. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Michal Orzel CC: Oleksii Kurochko --- xen/arch/x86/emul-i8254.c | 12 +++++------ xen/arch/x86/time.c | 42 ++++++++++++++++++++------------------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c index 144aa168a3f0..c16ed0bead87 100644 --- a/xen/arch/x86/emul-i8254.c +++ b/xen/arch/x86/emul-i8254.c @@ -24,19 +24,19 @@ * IN THE SOFTWARE. */ =20 -#include -#include -#include -#include #include +#include +#include #include #include -#include +#include + +#include #include #include #include #include -#include +#include =20 #define domain_vpit(x) (&(x)->arch.vpit) #define vcpu_vpit(x) (domain_vpit((x)->domain)) diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index ece9ae0b342e..1aeb144c837a 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -9,38 +9,40 @@ * Copyright (c) 1991, 1992, 1995 Linus Torvalds */ =20 +#include +#include #include #include -#include -#include +#include #include -#include -#include -#include -#include #include +#include +#include +#include #include +#include +#include #include -#include -#include #include -#include -#include +#include +#include + +#include #include -#include -#include -#include -#include -#include +#include #include #include -#include -#include -#include -#include #include #include -#include /* for early_time_init */ +#include +#include +#include +#include +#include +#include +#include +#include + #include =20 /* opt_clocksource: Force clocksource to one of: pit, hpet, acpi. */ --=20 2.39.5 From nobody Thu Jan 8 12:42:47 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; 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; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1767102685; cv=none; d=zohomail.com; s=zohoarc; b=U2QYAdTvd2FL3WfhTJk+o71oqpZziotfSkuEFkhE1ttMPjhEzOu8unR+mDHEhOD82WLcAoI6vvnajOU3wUKTMOcTeUK9gq22ypRz9aQ0Kayy1SrhZ9B/VB52cpu6dvJpT6bAO6rpknM0jyiJC0+9jVZBoPGbXt0FVHj51MB5oEk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767102685; 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=BA95S3BhSIKto2edzOKUoBHlxbVHXxGpOHtfMAICa9E=; b=B8YgsQxUPRYZnAReSfholC97Og1+wsaPIZ2CLlB6hWf7YBzb20PVUEH2m4GVDTqC5GzC67WW8RkKTa92d9gayBs69EE4BF2LHc/IqkPKrS/9ZWk77kL2BIOOVH+oL/reiDsXl3y5KWr83mEfwWaSxmXGilIJRQIu29CQuEcnumM= ARC-Authentication-Results: i=1; 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; 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 1767102685117884.192141701686; Tue, 30 Dec 2025 05:51:25 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1194179.1512632 (Exim 4.92) (envelope-from ) id 1vaa7p-0004sM-IZ; Tue, 30 Dec 2025 13:51:01 +0000 Received: by outflank-mailman (output) from mailman id 1194179.1512632; Tue, 30 Dec 2025 13:51:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7p-0004qt-E4; Tue, 30 Dec 2025 13:51:01 +0000 Received: by outflank-mailman (input) for mailman id 1194179; Tue, 30 Dec 2025 13:50:59 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7n-0004Hp-QX for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:50:59 +0000 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [2a00:1450:4864:20::336]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 9243bd90-e586-11f0-b15c-2bf370ae4941; Tue, 30 Dec 2025 14:50:59 +0100 (CET) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-47d493a9b96so15241485e9.1 for ; Tue, 30 Dec 2025 05:50:59 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 05:50:57 -0800 (PST) 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" X-Inumbo-ID: 9243bd90-e586-11f0-b15c-2bf370ae4941 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1767102658; x=1767707458; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BA95S3BhSIKto2edzOKUoBHlxbVHXxGpOHtfMAICa9E=; b=OX6Qz1SjNO2ia+XIOznlQAuD20OlUeULYcUW5wuWRODxOcev+slGvGyvGVtZKwGoU8 jtwuxVXOFPTUPl/njO3PaGDwx6G1lxQqCsjDg7IC+tIK+Miowuvk4EVinl068mKKA/ix tQ3LSp/o1NUI0V9S5/Vlypq8jGJc9W8+hYsDo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767102658; x=1767707458; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BA95S3BhSIKto2edzOKUoBHlxbVHXxGpOHtfMAICa9E=; b=RUeVkdxXCHejDL6VjI27hGFQEf72DS+FrWxTGnzkuq9XdkyOlt/BLKMisscYL8pZfa apVrTHXHZz81TvUS8/uqyyJUEDk5XFK9B5ETUFS/D1sw6UWRWM3eYmd5I6qCrB8rdUaL FUoKrfJlp4L8qOwJ44chrnzKCSYF8Sm0cRtRPwaC09BxEt9mMBOFAbFuWp1N5xmkfwJM PVFUn2ClioXg1wVFaSTI4+oV97ej0kOwTg/Il1eqfWNwm45OcuKuwXcO7BPiigzdu5/k jMVp8CRXukyzLVjOVSjUHsFlJaFgXcnvWaqjL7qKXv8/ar+TQl5mVhEWpDES/eD3k7Zr A5Kw== X-Gm-Message-State: AOJu0Ywi7OJUy28nGhFTm4Hx0799+E3wDdc90fL36K10QH959/bsEkCZ 7vkYitKTmPO6xi6FJjGddtBVLD0bT3qgvzQZpSCNNHzDZWFRiYGwkJVNKjKw74+h27rxm+lOEd9 VLbFQ X-Gm-Gg: AY/fxX4L8vMftTx4GWCSbPM8r0fh2wrxfKbx1zBn6nPvEedjhbDrweEP16XaBzOnTgI 2BSK7KSuzMjESB9yQSiIqh+ykEiGkgroMp9i8j4I0GTFUw4KpjCk14wAyGpAd66uCfPf+hwBbQk CNcA9lZYOLzmsKPMq65NgeBxWuekVdAc9JL6MmqriXsnUhL8579aVATa51uQH7423CEbNcUDWwS yJ02NxULbIaFPxZI9kmelLBLBGaFpdDMkRno8VNRVeG812McXGUCLho+3jA7GWYajnMo6VeblL5 zTKVsQbilJHdqZ9LGB1RAUKIJjWnEOxviGl0E19K3QCfmfwNo8WEVH+MIftk58KUudde4grpFp/ Qm4bRMzP+OBTM1TKEcJAJtsdtNB141f/E5Nmi38ecIoZyQq8Qwxz+AOmBpa0jYBrCM8jImPYAQH sJmOhft4Wzmih3wSs6MKTSdkCKgaEd+o6eTJhtnV7YcQVL/cOEqulm7+gr6sYQtw== X-Google-Smtp-Source: AGHT+IGHHSTZHncvNOn5fM7OrVg5QV+HhJ37AY1we+U46sqn0o99VgKmX7EW8/pGnd+VQat7Trgrng== X-Received: by 2002:a05:600c:45d3:b0:47d:4044:4ada with SMTP id 5b1f17b1804b1-47d40444b44mr238890195e9.13.1767102658310; Tue, 30 Dec 2025 05:50:58 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel , Oleksii Kurochko Subject: [PATCH 4/5] xen: Split muldiv64() out of lib.h Date: Tue, 30 Dec 2025 13:50:49 +0000 Message-Id: <20251230135050.188191-5-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com> References: <20251230135050.188191-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1767102685749158501 muldiv64() has 7 users across all architectures, and is limited to time handling functions. Therefore, move it's declaration out of lib.h into a dedicated header. Rename the library function to generic_muldiv64(), as x86 is going to provi= de an arch_muldiv64() in a subsequent change. Explain what the function does, including the limitations; x86's version wi= ll suffer a divide error rather than truncate the result to 64 bits. Annotate it with attr_const, not that this allows the optimiser to improve = any of Xen's current users. Add one selftest to check the internal precision, putting it in bitops.c for want of any better place to locate it. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich Acked-by: Michal Orzel --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Michal Orzel CC: Oleksii Kurochko The reason the selftest can't go in lib/muldiv64.c is because doing so would exclude the test when the arch variant is used. --- xen/arch/arm/time.c | 2 +- xen/arch/riscv/include/asm/time.h | 4 ++-- xen/arch/x86/emul-i8254.c | 2 +- xen/arch/x86/time.c | 2 +- xen/common/bitops.c | 12 ++++++++++++ xen/include/xen/lib.h | 2 -- xen/include/xen/muldiv.h | 18 ++++++++++++++++++ xen/lib/muldiv64.c | 5 ++--- 8 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 xen/include/xen/muldiv.h diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c index 03dc5b51a890..7d8b9c0032c1 100644 --- a/xen/arch/arm/time.c +++ b/xen/arch/arm/time.c @@ -16,8 +16,8 @@ #include #include #include -#include #include +#include #include #include #include diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm= /time.h index 63bdd471ccac..34e46353cce5 100644 --- a/xen/arch/riscv/include/asm/time.h +++ b/xen/arch/riscv/include/asm/time.h @@ -3,8 +3,8 @@ #define ASM__RISCV__TIME_H =20 #include -#include -#include +#include + #include =20 /* Clock cycles count at Xen startup */ diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c index c16ed0bead87..5e90a14a5957 100644 --- a/xen/arch/x86/emul-i8254.c +++ b/xen/arch/x86/emul-i8254.c @@ -25,8 +25,8 @@ */ =20 #include -#include #include +#include #include #include #include diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 1aeb144c837a..c6323143eaf8 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/xen/common/bitops.c b/xen/common/bitops.c index 14e6265037f1..1ed88c966cfd 100644 --- a/xen/common/bitops.c +++ b/xen/common/bitops.c @@ -247,3 +247,15 @@ static void __init __constructor test_bitops(void) test_multiple_bits_set(); test_hweight(); } + +#include + +/* Not a bitop, but here in lieu of any any better location */ +static void __init __constructor test_muldiv64(void) +{ + uint64_t res =3D muldiv64(0xffffffffffffffffULL, + HIDE(0xffffffffU), + HIDE(0xffffffffU)); + if ( res !=3D 0xffffffffffffffffULL ) + panic("muldiv64(), expecting -1ULL, got 0x%"PRIx64"\n", res); +} diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h index 559e87636c02..bb0fd446b484 100644 --- a/xen/include/xen/lib.h +++ b/xen/include/xen/lib.h @@ -136,8 +136,6 @@ unsigned long long simple_strtoull( =20 unsigned long long parse_size_and_unit(const char *s, const char **ps); =20 -uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c); - /* * A slightly more typesafe variant of cmpxchg() when the entities dealt w= ith * are pointers. diff --git a/xen/include/xen/muldiv.h b/xen/include/xen/muldiv.h new file mode 100644 index 000000000000..8ed2c68caf84 --- /dev/null +++ b/xen/include/xen/muldiv.h @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef XEN_MULDIV_H +#define XEN_MULDIV_H + +#include + +uint64_t attr_const generic_muldiv64(uint64_t a, uint32_t b, uint32_t c); + +/* + * Calculate a * b / c using at least 96-bit internal precision. The + * behaviour is undefined if the end result does not fit in a uint64_t. + */ +static inline uint64_t attr_const muldiv64(uint64_t a, uint32_t b, uint32_= t c) +{ + return generic_muldiv64(a, b, c); +} + +#endif /* XEN_MULDIV_H */ diff --git a/xen/lib/muldiv64.c b/xen/lib/muldiv64.c index f281578c09a4..5e6db1b2f4d2 100644 --- a/xen/lib/muldiv64.c +++ b/xen/lib/muldiv64.c @@ -1,7 +1,6 @@ -#include +#include =20 -/* Compute with 96 bit intermediate result: (a*b)/c */ -uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c) +uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c) { #ifdef CONFIG_X86 asm ( "mulq %1; divq %2" : "+a" (a) --=20 2.39.5 From nobody Thu Jan 8 12:42:47 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; 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; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1767102682; cv=none; d=zohomail.com; s=zohoarc; b=No6K09AQdznK6a4WckgUmjcnM0+IqYrSY16B5INF0XQRRC41bdtqpp2ScxBfRMAnbGuES+AVgkJJRLFkagh52jy2Tyg61eP07BawTPg7Cem5Umofr3o68VK0RwOLnvpvgoKUadlCj0sxTcQq2ERUIbMWKmC6E053bfMhH7eYXEA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767102682; 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=ksrdaSIqpwx0gSdwMJzQe6JesX3RHk4cyQkoMRTQARM=; b=CK84CvId7HruU8IOox4AVDTPvuUOfvfnRagfz/p0jKTHpYCeMa3WVi/e/g7LsK3mQz/eHlhB4scgZKPlOPHAK41nUD9FVIDMCP1BCckhQS0knjceqWVdhOuHIgN7saOPvyDZeKN24G7jmpAS9qUxcaAwPpGDW+rMzltVlzkV0RA= ARC-Authentication-Results: i=1; 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; 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 1767102682520691.9086094701305; Tue, 30 Dec 2025 05:51:22 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1194180.1512642 (Exim 4.92) (envelope-from ) id 1vaa7q-00054j-BC; Tue, 30 Dec 2025 13:51:02 +0000 Received: by outflank-mailman (output) from mailman id 1194180.1512642; Tue, 30 Dec 2025 13:51:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7q-00052P-39; Tue, 30 Dec 2025 13:51:02 +0000 Received: by outflank-mailman (input) for mailman id 1194180; Tue, 30 Dec 2025 13:51:00 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vaa7o-0004Hp-QZ for xen-devel@lists.xenproject.org; Tue, 30 Dec 2025 13:51:00 +0000 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [2a00:1450:4864:20::32b]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 92899115-e586-11f0-b15c-2bf370ae4941; Tue, 30 Dec 2025 14:50:59 +0100 (CET) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-477a219dbcaso80801895e9.3 for ; Tue, 30 Dec 2025 05:50:59 -0800 (PST) Received: from localhost.localdomain (host-92-26-102-188.as13285.net. [92.26.102.188]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d193d4f09sm609436115e9.12.2025.12.30.05.50.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 05:50:58 -0800 (PST) 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" X-Inumbo-ID: 92899115-e586-11f0-b15c-2bf370ae4941 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1767102659; x=1767707459; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ksrdaSIqpwx0gSdwMJzQe6JesX3RHk4cyQkoMRTQARM=; b=bMMYNXN/EGK0xjrft53fh6BnE1Fx+Wcx9W4XVLGsqmU659IAc0hy5RFvxbfYgCLW2o uLIWI0gIqm1evIigzD6KK26cFoYQz7D8nwtoQY+62nWdX8ITxsZ9FIgB3tSJkCaY4/U/ I68XYWwA/uRkTYmH/a5a0OF5jvxp4zOgkGEGE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767102659; x=1767707459; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ksrdaSIqpwx0gSdwMJzQe6JesX3RHk4cyQkoMRTQARM=; b=qiq/EbfjaFe0Xb6LP41jKOkRPBiPeRrt6ifdny40TJkVZmcdhwgQw1R7CYIKWMblrL HZ9sWplHDwZAWCH7i9+pBmU3Ny5HRegJIaRrbxPWTht0KwXGHqY0pCciIUXPgfER2vWu BjcU2qjT1IgxhM6ywMYJ/IaLFnjXuFEUo+kXwK6di9w3u0OEmpdbD2aaMKaQHER3gc6P kgs13oyaKq+XdhOZbs8gSWOGr0tVawA5F+skv8A67dPPVhmWCwkHdPchb0ifD6yJ4Gux 6b2z9l6e733PBqK01rBx//JLar1fPzQoLoAzI5kawuNBFYo1aP/HVZJ1J9246EvCyvIX v5ZQ== X-Gm-Message-State: AOJu0Yx50b0jx8eJEJcFDVhloeBcc3zqjv6TYSQN37dAtW7xX4VTpQtq 02AO9tXn/r38BUrxfdysXRuNEaATocSMB1Jc/+dpMYwBDQNsv83hGg4as9GVautaSVkeQ07kETU xenAF X-Gm-Gg: AY/fxX5HQ19Y0dLv47WOmpCqghbuSHSPLHYyHiNLZPnkeCAU3OuPeeyoP9K3ct0xiHS hGO138xMcSLXcR6K5ScXRQmv+X1sxxJrVJfh1y+i0JYbqEP8O+RE9nahIqJWZqHgoYXUyy2b3e5 P0y0FTVV0dsweRp02siXsGytGbM5KpMlZO0tZ73bn/Ewu6rId7cZ9NkaSN9IERrQUOMoKRGvnwW vVrsvrTvkPmOtowz2hw54EE5vWEv3cgbKWgbwrQ4YsfAbV5VuAQtsYrWuzbw5CcYYe590qo26bk WwTYKeD+GBCADcGIEMzBEdDF/hSWgFlxPhsG0XtubA2zQzPRtqnJm/ZT4n3bsjYz4cZRcNQVWmt IZRRiBG0uHbqu8PV2tN4apBNvIgzkKWCqBQgZk0Qly/XStKxlxeuuQpQpXiI9OaOJohluO/M46b /WL72OJ5qN127C9Qmj2SkJ8DDJDcAfB+LMaUDLzBiwDBcnwoiDykkcKzzyasisC8lW1GhCd9wK X-Google-Smtp-Source: AGHT+IFAEAT50mQmYWs22sCfPa37f8gLLjVlGYupZVaAxHbVUmEJjNhoe4o1wd6cNKhK2hePrh8pkA== X-Received: by 2002:a05:600c:6812:b0:477:63b5:7148 with SMTP id 5b1f17b1804b1-47d1955b97cmr412637705e9.6.1767102658924; Tue, 30 Dec 2025 05:50:58 -0800 (PST) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , Julien Grall , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel , Oleksii Kurochko Subject: [PATCH 5/5] xen: Move x86-ism out of muldiv64.c Date: Tue, 30 Dec 2025 13:50:50 +0000 Message-Id: <20251230135050.188191-6-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20251230135050.188191-1-andrew.cooper3@citrix.com> References: <20251230135050.188191-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1767102683754158500 Having an #ifdef CONFIG_X86 section in a common library is rude. Furthermore, for x86 the main logic is 6 bytes, meaning it's ripe for inlining. Create an x86-specific asm/muldiv.h implementing arch_muldiv64(). Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Michal Orzel CC: Oleksii Kurochko bloat-o-meter results: add/remove: 0/1 grow/shrink: 1/2 up/down: 10/-39 (-29) Function old new delta get_count 240 250 +10 calibrate_apic_timer 211 203 -8 calibrate_tsc 190 177 -13 muldiv64 18 - -18 The increase in get_count is from different register scheduling. --- xen/arch/x86/include/asm/muldiv.h | 20 ++++++++++++++++++++ xen/include/xen/muldiv.h | 8 ++++++++ xen/lib/muldiv64.c | 8 -------- 3 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 xen/arch/x86/include/asm/muldiv.h diff --git a/xen/arch/x86/include/asm/muldiv.h b/xen/arch/x86/include/asm/m= uldiv.h new file mode 100644 index 000000000000..563cab0564da --- /dev/null +++ b/xen/arch/x86/include/asm/muldiv.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef X86_MULDIV_H +#define X86_MULDIV_H + +#include + +static inline uint64_t attr_const arch_muldiv64(uint64_t a, uint32_t b, ui= nt32_t c) +{ + asm_inline ( + "mulq %[b]\n\t" + "divq %[c]" + : "+a" (a) + : [b] "rm" ((uint64_t)b), [c] "rm" ((uint64_t)c) + : "rdx" ); + + return a; +} +#define arch_muldiv64 arch_muldiv64 + +#endif /* X86_MULDIV_H */ diff --git a/xen/include/xen/muldiv.h b/xen/include/xen/muldiv.h index 8ed2c68caf84..e7f8fdcf01ea 100644 --- a/xen/include/xen/muldiv.h +++ b/xen/include/xen/muldiv.h @@ -4,6 +4,10 @@ =20 #include =20 +#if __has_include() +# include +#endif + uint64_t attr_const generic_muldiv64(uint64_t a, uint32_t b, uint32_t c); =20 /* @@ -12,7 +16,11 @@ uint64_t attr_const generic_muldiv64(uint64_t a, uint32_= t b, uint32_t c); */ static inline uint64_t attr_const muldiv64(uint64_t a, uint32_t b, uint32_= t c) { +#ifdef arch_muldiv64 + return arch_muldiv64(a, b, c); +#else return generic_muldiv64(a, b, c); +#endif } =20 #endif /* XEN_MULDIV_H */ diff --git a/xen/lib/muldiv64.c b/xen/lib/muldiv64.c index 5e6db1b2f4d2..6ee86d124a21 100644 --- a/xen/lib/muldiv64.c +++ b/xen/lib/muldiv64.c @@ -2,13 +2,6 @@ =20 uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c) { -#ifdef CONFIG_X86 - asm ( "mulq %1; divq %2" : "+a" (a) - : "rm" ((uint64_t)b), "rm" ((uint64_t)c) - : "rdx" ); - - return a; -#else union { uint64_t ll; struct { @@ -31,7 +24,6 @@ uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_= t c) res.l.low =3D (((rh % c) << 32) + (uint32_t)rl) / c; =20 return res.ll; -#endif } =20 /* --=20 2.39.5