From nobody Wed Oct 29 22:02:31 2025 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 header.i=teddy.astie@vates.tech; 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=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1761586036; cv=none; d=zohomail.com; s=zohoarc; b=IsYBn6mcOZF4Rz86J/1foC2LYhLFQ4bMPAgYoVBzgwGXUX0RqOjoF5APkWGZF59MeF7vOIt0jc8qnpWuwy7VlRnyYYvbjneVolhUQhMJaNn9G4niyjKYp8Ue5snTqfoyHScffiKNJCaMrtUol+YeN4bl19bbfNwdMg1ZDNlH/NA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761586036; 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=cXuN84KuaZFRe6aRXpvY17AsdlfQZOrMM+Ab77LOAIc=; b=AFuFpDfn3DW7PgUuBcjyjOVWqd0EvdPpmFyfUVpXTFMAzQmQYhY16wtzK8l7H0Z5oFH98XrKgAk092lXv+ygexMhSlxNEzSHHaQ1C32e6mpDqpEkVwjdL7jCotFpR1IZxVAa6PV90tOj+14JtZCvJAeq8DMzeHLCBrS8gF7xRIo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=teddy.astie@vates.tech; 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 1761586036054413.03344944963465; Mon, 27 Oct 2025 10:27:16 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1151699.1482261 (Exim 4.92) (envelope-from ) id 1vDQzS-0002t5-RY; Mon, 27 Oct 2025 17:26:42 +0000 Received: by outflank-mailman (output) from mailman id 1151699.1482261; Mon, 27 Oct 2025 17:26:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vDQzS-0002su-O0; Mon, 27 Oct 2025 17:26:42 +0000 Received: by outflank-mailman (input) for mailman id 1151699; Mon, 27 Oct 2025 17:26:40 +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 1vDQzQ-0002R5-Qb for xen-devel@lists.xenproject.org; Mon, 27 Oct 2025 17:26:40 +0000 Received: from mail132-22.atl131.mandrillapp.com (mail132-22.atl131.mandrillapp.com [198.2.132.22]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 162cf369-b35a-11f0-980a-7dc792cee155; Mon, 27 Oct 2025 18:26:35 +0100 (CET) Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail132-22.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4cwL5k0J97zGlswD6 for ; Mon, 27 Oct 2025 17:26:34 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id e398a002f6d4460abb9430a6f194f0fa; Mon, 27 Oct 2025 17:26:34 +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" X-Inumbo-ID: 162cf369-b35a-11f0-980a-7dc792cee155 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1761585994; x=1761855994; bh=cXuN84KuaZFRe6aRXpvY17AsdlfQZOrMM+Ab77LOAIc=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=eQ/8YMJk7r4Q/ctdhb4rkSnYx5u8VhqGPdh9/nO7h0HwdrfuxuKfAK7gR5v98Kit1 lA9uyt+16WOtHK/mkJFe7ND/OBwv8GgJ38XZ6nhknszwREwonxo/VLN7Pxdssf0M3G 27c1TMSD0KnxrhwFG9i5TfD1aBpe2bx9mBEuqnZj3CCmohpJUSD7VG7fpm0SSaLpwT BDCs793tjs2Yylww0URlle5YmpctMLO+8AWQxr+8el5CQ4PFhoF9HXcr3QZ1+cc4Sq 4SkESlIqJXmiuFYJuOzPSCPbP5axUqTaK5lHgDWwzYDfSVB9ofa8ot14vYND6T73FZ 1iYfdm3tMzJIg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1761585994; x=1761846494; i=teddy.astie@vates.tech; bh=cXuN84KuaZFRe6aRXpvY17AsdlfQZOrMM+Ab77LOAIc=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=GaK9Y2iXiuz8m9vUZUouueuiCSdLyei80/nQmg7hSvtAVLuqAtwul6kax+8KLxyJ2 dxuRkPaxXbiyScIsA/4Y+E6b8VaKkfSoTOoH29blkvolY+I/DJQmezGfuOTuq1kYcb nuRfjA3zjRewNslX+FFHlqurhvGFPhvziTbpG2PgTHiYA5dJy/+wGVtC2492/23iOM ENn+IUhzX7h132wCCMXxEDCid51BwXKOllmSodtT5BZ9Fpc2JKbJ+zqQVYzpaNN8u/ j3oJ+LT/mI0PmK/px1ZMWrTFHa6E9MmN8cvlVPzmoLCkQD24ztgvuP/UAU10dCYkHM L1uruMFtWOuSQ== From: "Teddy Astie" Subject: =?utf-8?Q?[RFC=20PATCH=20for-4.22=201/2]=20x86/platform:=20Expose=20DTS=20sensors=20MSR?= X-Mailer: git-send-email 2.51.1 X-Bm-Disclaimer: Yes X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1761585993124 To: xen-devel@lists.xenproject.org Cc: "Teddy Astie" , "Jan Beulich" , "Andrew Cooper" , "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" Message-Id: <48b15617f248852560a0e0674eea65d25330c605.1761585640.git.teddy.astie@vates.tech> In-Reply-To: References: X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.e398a002f6d4460abb9430a6f194f0fa?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20251027:md Date: Mon, 27 Oct 2025 17:26:34 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity teddy.astie@vates.tech) (identity @mandrillapp.com) X-ZM-MESSAGEID: 1761586038647158500 Content-Type: text/plain; charset="utf-8" Intel provide CPU sensors through "DTS" MSRs. As there MSR are core-specific (or package-specific), we can't reliably fetch them from Dom0 directly. Expose these MSR (if supported) through XENPF_resource_op so that it is accessible through hypercall. Suggested-by: Jan Beulich Signed-off-by: Teddy Astie --- I'm not a fan of doing a inline cpuid check here, but I don't have a better approach in mind. xen/arch/x86/include/asm/msr-index.h | 2 ++ xen/arch/x86/platform_hypercall.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/as= m/msr-index.h index df52587c85..98dda629e5 100644 --- a/xen/arch/x86/include/asm/msr-index.h +++ b/xen/arch/x86/include/asm/msr-index.h @@ -510,6 +510,8 @@ #define MSR_IA32_THERM_INTERRUPT 0x0000019b #define MSR_IA32_THERM_STATUS 0x0000019c #define MSR_IA32_MISC_ENABLE 0x000001a0 +#define MSR_IA32_TEMPERATURE_TARGET 0x000001a2 +#define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1 #define MSR_IA32_MISC_ENABLE_FAST_STRING (1<<0) #define MSR_IA32_MISC_ENABLE_PERF_AVAIL (1<<7) #define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL (1<<11) diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hype= rcall.c index 79bb99e0b6..3190803cc2 100644 --- a/xen/arch/x86/platform_hypercall.c +++ b/xen/arch/x86/platform_hypercall.c @@ -86,6 +86,12 @@ static bool msr_read_allowed(unsigned int msr) =20 case MSR_MCU_OPT_CTRL: return cpu_has_srbds_ctrl; + =20 + case MSR_IA32_TEMPERATURE_TARGET: + case MSR_IA32_THERM_STATUS: + case MSR_IA32_PACKAGE_THERM_STATUS: + return boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL && + (cpuid_eax(0x6) & 0x1); /* Digital temperature sensor */ } =20 if ( ppin_msr && msr =3D=3D ppin_msr ) --=20 2.51.1 -- Teddy Astie | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech From nobody Wed Oct 29 22:02:31 2025 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 header.i=teddy.astie@vates.tech; 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=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1761586036; cv=none; d=zohomail.com; s=zohoarc; b=JzkmPP4SqQOTuD54oZL5HcTxrr+kAPke8ONQEyBml6XLkvK8Y++CLbg0g7/K204c4nKrOntHiZ8oi1NmbiD+vkfMyotaWK0nimE2pUI1Pry54oUSYoGAPxTBpcYmSqxWtT14ZeCRxvihaPnevXU3+baFDeYxYWy+YoydfZtcQig= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761586036; 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=akIZjurkfx4umR6HXIbRiCq0LksKkl71LpPu/xGEBqY=; b=KjIEOFi5ADZgxc6TI8OAdDMOf+9R0vYfXtxNxpFz08PLUqi/g2Z6qKCRuVeQ7prZQ8DEolCor4UQXrcdiILK+gjV7BuFN23gjKOwp8+8jKA+1DO760NyCmRKfpJXcVYTzlVQC7GeazU8csvooRHq0MuKDtBlTZ9Tdy6bWwa5hIs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=teddy.astie@vates.tech; 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 1761586036036535.7360445398702; Mon, 27 Oct 2025 10:27:16 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1151697.1482241 (Exim 4.92) (envelope-from ) id 1vDQzP-0002RE-Dv; Mon, 27 Oct 2025 17:26:39 +0000 Received: by outflank-mailman (output) from mailman id 1151697.1482241; Mon, 27 Oct 2025 17:26:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vDQzP-0002R7-AT; Mon, 27 Oct 2025 17:26:39 +0000 Received: by outflank-mailman (input) for mailman id 1151697; Mon, 27 Oct 2025 17:26:38 +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 1vDQzN-0002Qy-Qc for xen-devel@lists.xenproject.org; Mon, 27 Oct 2025 17:26:38 +0000 Received: from mail132-22.atl131.mandrillapp.com (mail132-22.atl131.mandrillapp.com [198.2.132.22]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1634a743-b35a-11f0-9d16-b5c5bf9af7f9; Mon, 27 Oct 2025 18:26:35 +0100 (CET) Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail132-22.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4cwL5j6jF6zGlsvQD for ; Mon, 27 Oct 2025 17:26:33 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id 5b31a19e18894c109ce18d0fd42be2bb; Mon, 27 Oct 2025 17:26:33 +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" X-Inumbo-ID: 1634a743-b35a-11f0-9d16-b5c5bf9af7f9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1761585993; x=1761855993; bh=akIZjurkfx4umR6HXIbRiCq0LksKkl71LpPu/xGEBqY=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=aszSUeVZFL8Hd9lyl7Nral3H5btfCkdY2jxgxU0ppK2G1ew2C8GNE+revuGEhc96b OWIx5Zj0AHhnQI/EHbah6X7+vcvxzRKooBGQBb9CxuWBLEX3Us6J80U79v6w0xv/dy XnSjtA4rzHlw5PjRaX68eql8rcs1xe6lgN0Q/iYN7kSqqLF6wldT3974j9AOtIKy8I NfdTbUA3x5C0LtBpBXDjxvs9ZBsQ1U3jiRBDI1uQ39Zcfl+VOWZJ8IGvTlPPTyu6FG Jj2TZZ57QRvMeR7qNO7TtV5pc8e6yWjrLPidHBRAHxQXoEOiXZXFIA7RzrddITMA8N BQmIR9XLiZt9g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1761585993; x=1761846493; i=teddy.astie@vates.tech; bh=akIZjurkfx4umR6HXIbRiCq0LksKkl71LpPu/xGEBqY=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=cwi1khAOZLDIHFRxADBKLFOZDZDwDNNc070ME6l6HeJ6/cTEFUQk9H5qXcLE2IyYF lznS2qfCBqhlwKz6fv41fqBC0+no+3rwkUpZnmZcXiSL0A+ILDTRYREmDCkYFhYeJ+ 19D8oiuacKt0+ENIM4TohPc5NSg2bo10+k5Q63pppEql9FZa8t76ijdi1hK+K1jO6I aYRE9bcOk2R+yljtokoUIx6QjJl8B2ACbNVal90TJ1G6vztIWQZR9FGtKTa4reY//K FvMTOMzDjGS7mSpgxfCKngptzUQfHW9uu7dx0WkM5f/mNcijjffu/qRZWm3FX7tyIG M/oxHc5hWSXzg== From: "Teddy Astie" Subject: =?utf-8?Q?[RFC=20PATCH=20for-4.22=202/2]=20tools:=20Introduce=20xen-inteltemp=20tool?= X-Mailer: git-send-email 2.51.1 X-Bm-Disclaimer: Yes X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1761585993392 To: xen-devel@lists.xenproject.org Cc: "Teddy Astie" , "Anthony PERARD" Message-Id: In-Reply-To: References: X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.5b31a19e18894c109ce18d0fd42be2bb?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20251027:md Date: Mon, 27 Oct 2025 17:26:33 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity teddy.astie@vates.tech) (identity @mandrillapp.com) X-ZM-MESSAGEID: 1761586038830154100 Content-Type: text/plain; charset="utf-8" Introduce a new tool to fetch Intel CPU temperatures through the Intel DTS interface using XENPF_resource_op hypercall. Signed-off-by: Teddy Astie --- tools/misc/.gitignore | 1 + tools/misc/Makefile | 4 ++ tools/misc/xen-inteltemp.c | 98 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 tools/misc/xen-inteltemp.c diff --git a/tools/misc/.gitignore b/tools/misc/.gitignore index 28af46280f..65048eb901 100644 --- a/tools/misc/.gitignore +++ b/tools/misc/.gitignore @@ -5,6 +5,7 @@ xen-diag xen-hptool xen-hvmcrash xen-hvmctx +xen-inteltemp xen-livepatch xen-lowmemd xen-mceinj diff --git a/tools/misc/Makefile b/tools/misc/Makefile index c26e544e83..6498b47ec0 100644 --- a/tools/misc/Makefile +++ b/tools/misc/Makefile @@ -25,6 +25,7 @@ INSTALL_SBIN-$(CONFIG_X86) +=3D xen-memshare INSTALL_SBIN-$(CONFIG_X86) +=3D xen-mfndump INSTALL_SBIN-$(CONFIG_X86) +=3D xen-ucode INSTALL_SBIN-$(CONFIG_X86) +=3D xen-vmtrace +INSTALL_SBIN-$(CONFIG_X86) +=3D xen-inteltemp INSTALL_SBIN +=3D xencov INSTALL_SBIN +=3D xenhypfs INSTALL_SBIN +=3D xenlockprof @@ -89,6 +90,9 @@ xen-memshare: xen-memshare.o xen-vmtrace: xen-vmtrace.o $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenforeignmemo= ry) $(APPEND_LDFLAGS) =20 +xen-inteltemp: xen-inteltemp.o + $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS) + xen-mceinj: xen-mceinj.o $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LD= LIBS_libxenstore) $(APPEND_LDFLAGS) =20 diff --git a/tools/misc/xen-inteltemp.c b/tools/misc/xen-inteltemp.c new file mode 100644 index 0000000000..624c74ca7f --- /dev/null +++ b/tools/misc/xen-inteltemp.c @@ -0,0 +1,98 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * xen-inteltemp.c + * + * Get the CPU temperature of Intel processors. + * + * Copyright 2025 Teddy Astie + */ + +#include +#include +#include + +#define MSR_IA32_THERM_STATUS 0x0000019c +#define MSR_IA32_TEMPERATURE_TARGET 0x000001a2 +#define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1 + +int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *tem= p) +{ + xc_resource_entry_t entries[2] =3D { + (xc_resource_entry_t){ + .idx =3D package ? MSR_IA32_PACKAGE_THERM_STATUS : MSR_IA32_TH= ERM_STATUS + }, + (xc_resource_entry_t){ .idx =3D MSR_IA32_TEMPERATURE_TARGET }, + }; + struct xc_resource_op ops =3D { + .cpu =3D cpu, + .entries =3D entries, + .nr_entries =3D 2, + }; + int tjmax; + + int ret =3D xc_resource_op(xch, 1, &ops); + + if ( ret <=3D 0 ) + /* This CPU isn't online or can't query this MSR */ + return ret ?: -EOPNOTSUPP; + + if ( ret =3D=3D 2 ) + tjmax =3D (entries[1].val >> 16) & 0xff; + else + { + /* + * The CPU doesn't support MSR_IA32_TEMPERATURE_TARGET, we assume = it's 100 which + * is correct aside a few selected Atom CPUs. Check coretemp sourc= e code for more + * information. + */ + fprintf(stderr, "CPU%d doesn't support MSR_IA32_TEMPERATURE_TARGET= , assume " + "tjmax=3D100=C2=B0C, readings may be incorrect\n", cpu); + tjmax =3D 100; + } + =20 + *temp =3D tjmax - ((entries[0].val >> 16) & 0xff); + return 0; +} + +int main(void) +{ + int rc =3D 0, temp, cpu, socket; + bool has_data =3D false; + xc_interface *xch =3D xc_interface_open(0, 0, 0); + xc_physinfo_t info; + + if ( (rc =3D xc_physinfo(xch, &info)) < 0 ) + { + perror("Getting physinfo failed"); + return rc; + } + + /* Per socket measurement */ + for ( socket =3D 0, cpu =3D 0; + cpu < (info.max_cpu_id + 1); + socket++, cpu +=3D info.cores_per_socket * info.threads_per_core= ) + { + if ( !fetch_dts_temp(xch, cpu, true, &temp) ) + { + has_data =3D true; + printf("Package%d: %d=C2=B0C\n", socket, temp); + } + } + + printf("\n"); + + for ( cpu =3D 0; cpu < (info.max_cpu_id + 1); cpu +=3D info.threads_pe= r_core ) + { + if ( fetch_dts_temp(xch, cpu, false, &temp) ) + continue; + + has_data =3D true; + printf("CPU%d: %d=C2=B0C\n", cpu, temp); + } + + if ( !has_data ) + printf("No data\n"); + + xc_interface_close(xch); + return 0; +} \ No newline at end of file --=20 2.51.1 -- Teddy Astie | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech