From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456067; cv=none; d=zohomail.com; s=zohoarc; b=asYcqrY95Ih0iYjymci99uSufOsZJpri1MrVVXXf4a//mXIzq5CJdjV3trZ0YQ9/KW8fyxMWIwQLjuZJDYheZSWRXs2Lry6P4dIVCnDlTk2xfhqIFKjs3JJP0LAJRbyKZAa1AtHuuu6nnzhEUyahBDNsQxztaYf5hOR85A04Nks= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456067; 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=Eees8l7HYHFwD1RvaaoHSAMU8I8IDqz7LF2ScnBEH/o=; b=C2iaK0BXPlsEl7UsaMo33OvmAydCf/Y7SW7fW4P3J7joP4IL4kZiOp2A2e8PX1gP480dmJ85n+D008dXZGdET17SB8VEu5x35Du5HvPSET5ks9BxsV0yV2w1lwhAC+y6aPDpmJzt//dQvS2Gt1fff063JC8JAKsi94NcX1bOvjU= 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 1753456067173628.6226687580297; Fri, 25 Jul 2025 08:07:47 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058070.1425845 (Exim 4.92) (envelope-from ) id 1ufK1A-0005l1-50; Fri, 25 Jul 2025 15:07:28 +0000 Received: by outflank-mailman (output) from mailman id 1058070.1425845; Fri, 25 Jul 2025 15:07:28 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK19-0005jV-UI; Fri, 25 Jul 2025 15:07:27 +0000 Received: by outflank-mailman (input) for mailman id 1058070; Fri, 25 Jul 2025 15:07:26 +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 1ufK17-0002MQ-VN for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:25 +0000 Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [2a00:1450:4864:20::533]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 113f549f-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:23 +0200 (CEST) Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-608acb0a27fso3685337a12.0 for ; Fri, 25 Jul 2025 08:07:23 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:19 -0700 (PDT) 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: 113f549f-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456042; x=1754060842; 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=Eees8l7HYHFwD1RvaaoHSAMU8I8IDqz7LF2ScnBEH/o=; b=LOsMqoHEo2gUxzqYyrvXw8T2oCMa/M/qoSV4kKoqOrBVP+FQmOukKTopbLKxzW5qK/ Sgim8nbQRX5OiC2OKk6XeSITaPSshMuTR04qtPH+uEemlwKylTmELPCUePiIQfwohcy6 7YLre7DPspp2JiXwfTIxi/FX0mGttwkQuR2zY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456042; x=1754060842; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Eees8l7HYHFwD1RvaaoHSAMU8I8IDqz7LF2ScnBEH/o=; b=gNjozB/SZ5jBycCkcYcbXEt8Y2MSFKWT8R8cXZA8AkB8u3NRV9/P+y17H37l3wh7WA UB2SsEQBPJdgr0V/OD6ZAulC6fGSRQ1603uc7q36QQITWrJDws5BAaPGHvWk//Pq5qBF YrQYN044/c+rmzzmdS0nnltneOV0/1Fd3bNP6YAsjS/1th9k0S9nMH6UBlWs9WXjmtzO 5Jd0aVVnTjtvUf8Huxn3mge2rZtdQM86LHbwiwCFMXVBwaIYuTMfu1OvAxs8FM0LtNbJ fNUVDjVnSolXorSzYhzLKK7A4Cq1pB+J4BF6Wv/BgbBl/fHXNd8zVA6xudwu3XjkvtuP oX1Q== X-Gm-Message-State: AOJu0YyKdBuaaajabfh92i7T/E7bXcYhxMUB32yrXjT0Y9InBTxfv2E/ iNUiUtDTMyMNPXIRl7ZHq9nSUdZCDg/t9LxwSfUwW9Mc1bi3R1/jIMdqDKcBg1y5CX6/6MznMP9 YFvxvq4E= X-Gm-Gg: ASbGncsDcDkRNi9IEQ17lCobAMPGM45bg7Z5Nr0PHkUtEW4OZaAvwnBXz/m0feHxeNV /ruCmEAljKHXjsHOEx48ISi9fEtWHWMShlCR8Xd8CrQQ4o/UnItyOV+C7Qq6J40Hk83yjt//wIA iquqMgHEVde4ziEFrGM4xj59dgopp3WIEk9cTgtxe7fsSrnlpwTOofnrT8ZZ/gM6a73yfiPVMgP qtESVoeFrc3Je83G2qJAhystc9NTHf2HSumj/h5iH6hSUxX8WXFSrTjXReT4elSaOYHbeAYuVHk b5cBlJ276pg/uy2+6SBm+rg+9hitWGv+s9ZO9Hf+ZMplwUqMysdQeMOh/jNw010dkQxTP77CcDf GcahWA9r6doTm8IckFRLhB6t0HeQJXz5zsEel X-Google-Smtp-Source: AGHT+IGS405VXxW1EPdupffOjwjXEufOUvMG1R4Zwk95ZKFsAjWD0uSJlXHO9E6I0o/Tw2TQqyFbMA== X-Received: by 2002:a05:6402:354e:b0:606:fef3:7c3e with SMTP id 4fb4d7f45d1cf-614f1b98612mr2222567a12.3.1753456040127; Fri, 25 Jul 2025 08:07:20 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Subject: [RFC LINUX PATCH v1 1/3] perf kvm: introduce a hypervisor_callchain callback Date: Fri, 25 Jul 2025 16:06:47 +0100 Message-ID: <20250725150719.472782-1-edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456068708116600 `perf kvm` currently assumes that it can construct a stacktrace by looking up stack pointer addresses in the current kernel's address space. That only works if the hypervisor is the same as the kernel (i.e. KVM), but doesn't work if the hypervisor is separate from the kernel (Xen, with Linux as Dom0). Introduce a callback to enable Xen to retrieve the stacktrace from Xen instead when a sample is inside the hypervisor (domid =3D=3D DOMID_XEN instead of DOMID_SELF). The callback can replace the registers with the guest kernel's registers upon return when domid =3D=3D DOMID_SELF, so that we can continue with the kernel stacktrace. Both KVM and Xen define this as NULL, a followup commit will implement the callback for Xen (KVM doesn't need a callback implementation). No functional change. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- arch/x86/xen/pmu.c | 2 ++ include/linux/perf_event.h | 12 ++++++++++++ kernel/events/core.c | 5 +++++ virt/kvm/kvm_main.c | 1 + 4 files changed, 20 insertions(+) diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c index 246d67dab510..b92dc739fdfb 100644 --- a/arch/x86/xen/pmu.c +++ b/arch/x86/xen/pmu.c @@ -466,6 +466,7 @@ static unsigned long xen_get_guest_ip(void) static struct perf_guest_info_callbacks xen_guest_cbs =3D { .state =3D xen_guest_state, .get_ip =3D xen_get_guest_ip, + .hypervisor_callchain =3D NULL }; =20 /* Convert registers from Xen's format to Linux' */ @@ -489,6 +490,7 @@ static void xen_convert_regs(const struct xen_pmu_regs = *xen_regs, } } =20 + irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id) { int err, ret =3D IRQ_NONE; diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 90c782749b05..d82aeaddadb8 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -29,10 +29,14 @@ #define PERF_GUEST_ACTIVE 0x01 #define PERF_GUEST_USER 0x02 =20 +struct perf_callchain_entry_ctx; + struct perf_guest_info_callbacks { unsigned int (*state)(void); unsigned long (*get_ip)(void); unsigned int (*handle_intel_pt_intr)(void); + void (*hypervisor_callchain)(struct perf_callchain_entry_ctx *pc, + struct pt_regs *regs); }; =20 #ifdef CONFIG_HAVE_HW_BREAKPOINT @@ -1514,6 +1518,7 @@ extern struct perf_guest_info_callbacks __rcu *perf_g= uest_cbs; DECLARE_STATIC_CALL(__perf_guest_state, *perf_guest_cbs->state); DECLARE_STATIC_CALL(__perf_guest_get_ip, *perf_guest_cbs->get_ip); DECLARE_STATIC_CALL(__perf_guest_handle_intel_pt_intr, *perf_guest_cbs->ha= ndle_intel_pt_intr); +DECLARE_STATIC_CALL(__perf_hypervisor_callchain, *perf_guest_cbs->hypervis= or_callchain); =20 static inline unsigned int perf_guest_state(void) { @@ -1527,12 +1532,19 @@ static inline unsigned int perf_guest_handle_intel_= pt_intr(void) { return static_call(__perf_guest_handle_intel_pt_intr)(); } +static inline void +perf_hypervisor_callchain(struct perf_callchain_entry_ctx *entry, + struct pt_regs *regs) +{ + static_call(__perf_hypervisor_callchain)(entry, regs); +} extern void perf_register_guest_info_callbacks(struct perf_guest_info_call= backs *cbs); extern void perf_unregister_guest_info_callbacks(struct perf_guest_info_ca= llbacks *cbs); #else static inline unsigned int perf_guest_state(void) { return 0; } static inline unsigned long perf_guest_get_ip(void) { return 0; } static inline unsigned int perf_guest_handle_intel_pt_intr(void) { return = 0; } +static inline void perf_hypervisor_callchain(struct perf_callchain_entry_c= tx *) { return; } #endif /* CONFIG_GUEST_PERF_EVENTS */ =20 extern void perf_event_exec(void); diff --git a/kernel/events/core.c b/kernel/events/core.c index 3a33d9c1b1b2..a8535294018b 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -6917,6 +6917,7 @@ struct perf_guest_info_callbacks __rcu *perf_guest_cb= s; DEFINE_STATIC_CALL_RET0(__perf_guest_state, *perf_guest_cbs->state); DEFINE_STATIC_CALL_RET0(__perf_guest_get_ip, *perf_guest_cbs->get_ip); DEFINE_STATIC_CALL_RET0(__perf_guest_handle_intel_pt_intr, *perf_guest_cbs= ->handle_intel_pt_intr); +DEFINE_STATIC_CALL_NULL(__perf_hypervisor_callchain, *perf_guest_cbs->hype= rvisor_callchain); =20 void perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *= cbs) { @@ -6931,6 +6932,9 @@ void perf_register_guest_info_callbacks(struct perf_g= uest_info_callbacks *cbs) if (cbs->handle_intel_pt_intr) static_call_update(__perf_guest_handle_intel_pt_intr, cbs->handle_intel_pt_intr); + if (cbs->hypervisor_callchain) + static_call_update(__perf_hypervisor_callchain, + cbs->hypervisor_callchain); } EXPORT_SYMBOL_GPL(perf_register_guest_info_callbacks); =20 @@ -6944,6 +6948,7 @@ void perf_unregister_guest_info_callbacks(struct perf= _guest_info_callbacks *cbs) static_call_update(__perf_guest_get_ip, (void *)&__static_call_return0); static_call_update(__perf_guest_handle_intel_pt_intr, (void *)&__static_call_return0); + static_call_update(__perf_hypervisor_callchain, (void *)&__static_call_re= turn0); synchronize_rcu(); } EXPORT_SYMBOL_GPL(perf_unregister_guest_info_callbacks); diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 44c228bcd699..20a03dd9cc42 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -6038,6 +6038,7 @@ static struct perf_guest_info_callbacks kvm_guest_cbs= =3D { .state =3D kvm_guest_state, .get_ip =3D kvm_guest_get_ip, .handle_intel_pt_intr =3D NULL, + .hypervisor_callchain =3D NULL }; =20 void kvm_register_perf_callbacks(unsigned int (*pt_intr_handler)(void)) base-commit: dbcb8d8e4163e46066f43e2bd9a6779e594ec900 --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456053; cv=none; d=zohomail.com; s=zohoarc; b=gMo8fbpc2NpP0e93FeQPpcBW2D2BrfohPP6jxT/BU7YPBEZGyckM/4EiuJY9SS4KSLfwcNxx5ORCbFmyYWijf7IrxrptlRjxMvVlPX0H5yp0ZSOXTaWZcAhFzTXmmr3raJ+7DhmvSiDh7ULcsOb+aW9cu72QrbEg/LjOQhpWh4Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456053; 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=1gldfYEC90AFOymeYiJGOOlK0XDlSS3TK6PUeJ5xsBI=; b=FbvqqKXn/zz8m3oe7Lagux23BPF11fEZnLmrfHxdJDdytUN6hBrdOmk5/THWZ5/fBGYwUPD32uKCMo0Uz6tpUHqoBmZVgB2cc/JQp9w3vqVuzl/JtrRE3ofNq/CQMrS4F3paYskd7aHdNc1qj2EQZ+pBwGl/Tz5eQlo83DjRojI= 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 1753456053208968.0306426969181; Fri, 25 Jul 2025 08:07:33 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058056.1425719 (Exim 4.92) (envelope-from ) id 1ufK0y-0002Pz-7p; Fri, 25 Jul 2025 15:07:16 +0000 Received: by outflank-mailman (output) from mailman id 1058056.1425719; Fri, 25 Jul 2025 15:07:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK0y-0002OZ-3h; Fri, 25 Jul 2025 15:07:16 +0000 Received: by outflank-mailman (input) for mailman id 1058056; Fri, 25 Jul 2025 15:07:14 +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 1ufK0w-0002MQ-GV for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:14 +0000 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [2a00:1450:4864:20::532]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0b3b2364-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:13 +0200 (CEST) Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-612b67dcb89so3504813a12.1 for ; Fri, 25 Jul 2025 08:07:13 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:12 -0700 (PDT) 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: 0b3b2364-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456032; x=1754060832; 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=1gldfYEC90AFOymeYiJGOOlK0XDlSS3TK6PUeJ5xsBI=; b=cBHv1C3FDjwscy8jGz/R5WDHwVMSSs0oHTJhNMocrIkehQXHZSZ9iHEQFJu/Ys4M5w 73v0o42BBjNC5gO4OSY913E8QSC9Bi4T+l+EW8lSNzAhZMVCGAdlQNra+5E1IX7ysW3j 9eyak0V7jDYGBY8q4TZeh5yVHrnIQAe7MXXjQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456032; x=1754060832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1gldfYEC90AFOymeYiJGOOlK0XDlSS3TK6PUeJ5xsBI=; b=HCCtoRFP925ZL8sNMefn9O8EoS+8HAUslVK+7kLfqGNYxYEXzJJ9D2M9gQJW4cIw/z J0UT7J0US0nzdrQ3fGfgz8rWF9BgPfFVG9VUw+D7lx20pxRHAwCHQalnyxDSMLLvWP6I v9HzYx95V5s3zRJiMHJKbCupUpBynCS0++goWsKEVJi5A3MfYOFeVTEG4JLKlK1QCaAT 42OfV+pbBxi29L7FWCxd2Uj7PpHG615PIyurPQW/paHWDG1Xqzs4z8UpyCZ26GJz1v4X /+zuw/0S/wvhqSxc/lX+ePgjgWzmjg3A2hKK9Dw6PKzfCTScRueG9HdqGMhvJkQFsdy3 1qHw== X-Gm-Message-State: AOJu0Yyvl6xTvQNjtimb78BSVB5ABgh6LxhILMGz6YZxregRhkgCp9M2 ruUnNRIBBuDDF1MNFWn9rqivm9unOb6uHKlkZQ1pnOFew25X1rF0hZsP283OM2MDtIHk2ua6LQq UPJ+OwX4= X-Gm-Gg: ASbGncvS2dffXDc9aekUFp32uXNUQGIxZx3N1HhaoSORdTStRj7atWJGTxZsSHi9pZ7 DK8shiTfsfki7LDZolUUaSEJ7jsYiLGUwjCyU1TLA5aXM4vUOsSzvSn7OkTRqvs8wGwktYmTAa1 3Ho4D4Wrlo9NHPwQMDfE6vxGUjkP0fkEr8cQptmh70tFWEdJaBvUsB/8m387WNwueF0qVeOTF4e 8f23YXreSAwin6mILbmyY/agCWdu62DnQOIpujKvLl+/mrrZHu75aKLVJSYh8EcWNMMo4vjfESN EvkqbykneZItNKmee61yFcI9U2Z6GaYrNkWhObIBJILtOwVtyXIs04cW3t72pQp35Aw1RFuS410 H4fO9c4+LRmDUbQo6DNuHaIgWy2rUuAPOaMt3ZrFjRKClx90= X-Google-Smtp-Source: AGHT+IFAm1oNjhbrdoGhR81wq/e3CncUbkScUIHos9elHA3eI3eDgJstaeMlhqb8CDcy8aQ3pUiwAA== X-Received: by 2002:a05:6402:270b:b0:612:d3ce:26be with SMTP id 4fb4d7f45d1cf-614f1dccaa6mr2276305a12.16.1753456032472; Fri, 25 Jul 2025 08:07:12 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Anthony PERARD , Michal Orzel , Julien Grall , Stefano Stabellini , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 01/10] pmu.h: add a BUILD_BUG_ON to ensure it fits within one page Date: Fri, 25 Jul 2025 16:06:37 +0100 Message-ID: <80e7ae8bc1546b004e2b3dcc3f3e57563ff741d2.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456060379116600 Linux already has a similar BUILD_BUG_ON. Currently this struct is ~224 bytes on x86-64. No functional change. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/arch/x86/cpu/vpmu.c | 1 + xen/include/public/pmu.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index c28192ea26..7be79c2d00 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -401,6 +401,7 @@ static int vpmu_arch_initialise(struct vcpu *v) uint8_t vendor =3D current_cpu_data.x86_vendor; int ret; =20 + BUILD_BUG_ON(sizeof(struct xen_pmu_data) > PAGE_SIZE); BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ); BUILD_BUG_ON(sizeof(struct xen_pmu_amd_ctxt) > XENPMU_CTXT_PAD_SZ); BUILD_BUG_ON(sizeof(struct xen_pmu_regs) > XENPMU_REGS_PAD_SZ); diff --git a/xen/include/public/pmu.h b/xen/include/public/pmu.h index af8b7babdd..15decc024d 100644 --- a/xen/include/public/pmu.h +++ b/xen/include/public/pmu.h @@ -93,6 +93,9 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_params_t); * Architecture-independent fields of xen_pmu_data are WO for the hypervis= or * and RO for the guest but some fields in xen_pmu_arch can be writable * by both the hypervisor and the guest (see arch-$arch/pmu.h). + * + * PAGE_SIZE bytes of memory are allocated. + * This struct cannot be larger than PAGE_SIZE. */ struct xen_pmu_data { /* Interrupted VCPU */ --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456066; cv=none; d=zohomail.com; s=zohoarc; b=gA223qrl35lueOOMPACp/01q6Rv/v0oFL3WqG4A1qhx//FuFQGwGgOkwasUNYNWnIqxPf44xek6VZEq4SGANIez0Er+TPjUfx7a6YdpuR0xizEY09BL6w2MD4JbZtJB7yHvDzRP4aDC3cXD8YMt0lqpLPKQugax97drziFyQ6dg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456066; 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=rjLnX+fH5gil9prH4kBa9sfut1mpPWzceTrfUuPtI2E=; b=ZeZgLwC1B6D0FJbNADYwk4HN2Nb8us4C2A2t1fwgSMxRQ5u4xvt+G2YfklzLPJqXQrB9wzKYkdTVDothZUNzHfKE7mIvoKm7wbRS/aUniLcvEDaxTJtsC6zNRiF6hb85PDYs1P0WBjsjsCR5I7MGs/GDM0pu33dcJRyzyaocLuk= 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 1753456066086100.98320921712661; Fri, 25 Jul 2025 08:07:46 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058066.1425815 (Exim 4.92) (envelope-from ) id 1ufK16-0004i0-4n; Fri, 25 Jul 2025 15:07:24 +0000 Received: by outflank-mailman (output) from mailman id 1058066.1425815; Fri, 25 Jul 2025 15:07:24 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK15-0004aa-Kw; Fri, 25 Jul 2025 15:07:23 +0000 Received: by outflank-mailman (input) for mailman id 1058066; Fri, 25 Jul 2025 15:07:22 +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 1ufK14-0002MW-1A for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:22 +0000 Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [2a00:1450:4864:20::52b]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 105dff62-6969-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 17:07:21 +0200 (CEST) Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-60c6fea6742so4469227a12.1 for ; Fri, 25 Jul 2025 08:07:21 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:20 -0700 (PDT) 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: 105dff62-6969-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456041; x=1754060841; 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=rjLnX+fH5gil9prH4kBa9sfut1mpPWzceTrfUuPtI2E=; b=J3L8E7Nwe/vDv1Eno8H4HIQjFqjvkzyKcPF1/dX0RrROey6Sn2qV7d5+1fY8kf157Y ic6sI9GkduWC7z/zlWpePH40LwTTCDEzRZ0mIoAaQWvT9ZoBoxgZSy7FaZ+N4pzPtRfm sysa0wB0R0t1AULntltU8bbAjcHpx2mMAjKBc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456041; x=1754060841; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rjLnX+fH5gil9prH4kBa9sfut1mpPWzceTrfUuPtI2E=; b=Bubk1PrPRmAvTDquI967Ff1Sy40HQszmgchqsxeZ6Nbyx/7pYOD/ZFhIpi5n21Saiq Lywzz7yF4AYFDPd619T6RZ2bptD8/r9896QcQOCLWmBvXXBjoSco4L//THTGyH16luqt PhlYgbe7FiIaS+d6DgIwsbHnbsoc5GKXrYgH8SZOE8iaQ+ROODN1qjiNjeswzmKPlgBG xmv3rSmdhM9rp8h6TbHQUUodAdp25GoJmyvtIw5NPlGkYA53mbd+ZtWYxE3jx2fM4f82 fTRRvIKp5GJrYUBNhUtZ1Vxku12NBKUgIgcrwiAMDlh++eiIGYNS+1MI+jFliEjo2ArW guFw== X-Gm-Message-State: AOJu0YwVg3zgPo8sEL2ntw8vBJkpWZ5ykKhRXzM0nto3BICzMaHEB9t9 7XIeW5pd0vfytvD1UFFo7/cl+DrsSl2y7p6FeT4plSTgltbExC8I/5VE4KDcudsmleSlvK0YHvX yDydqjB4= X-Gm-Gg: ASbGnct2/WGq1ZcqaJdf6bPJrWlN4rPpglI2NkBdkd42bRPU3LSBgDZR/E+2FKHs7Lx MzaSnFVrK1kjBQb4r2U3mRTfMdVoa3Ms3g0BDvQOO8C2kLET5StSU5TJxYTa9Yl+h88tdcHL/4a SciGO9dSJIP83xeKbiO8BFuMXxj3faN+E6HqC+8SmrukLioQizjPhGxAjdaDJiZHzGq0hbw4h/r cCSoiN+LbDbyY0UZCwK4UHr1mAGidYhVWKwNJqnY39JAu8jYAE0d0adzMXbNHOfSfMBBq0+NwVO raYYMg1okk8hMLPWRAf/xoYpiYnckEmBvkqPVbIqL4p+geC63/8ulli8yuYaenedvB9+4TX+Bw8 tDN6nH879Xoflzaeq7mXEXlgOmWte4U+R6nFc X-Google-Smtp-Source: AGHT+IF5gs9N23kxw49YxqZRd7WNq3oUh6TRbwBrMbt0qYB0CkPBnAUsIdeLbuSHuKOiQO7z9FxKvg== X-Received: by 2002:a05:6402:1d4b:b0:612:d3cf:d1e4 with SMTP id 4fb4d7f45d1cf-614f1d042a5mr2350340a12.8.1753456040862; Fri, 25 Jul 2025 08:07:20 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Subject: [RFC LINUX PATCH v1 2/3] xen/{interface,xenpmu}.h: update with VPMU 0.2 from Xen Date: Fri, 25 Jul 2025 16:06:48 +0100 Message-ID: <20250725150719.472782-2-edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456072761116600 Signed-off-by: Edwin T=C3=B6r=C3=B6k --- arch/x86/include/asm/xen/interface.h | 100 +++++++++++++++++++++++++++ include/xen/interface/xenpmu.h | 56 +++++++++++++-- 2 files changed, 152 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xe= n/interface.h index baca0b00ef76..f3667831573f 100644 --- a/arch/x86/include/asm/xen/interface.h +++ b/arch/x86/include/asm/xen/interface.h @@ -320,6 +320,25 @@ struct xen_pmu_regs { #define PMU_SAMPLE_REAL (1<<2) /* Sample is from realmode */ #define PMU_SAMPLE_PV (1<<3) /* Sample from a PV guest */ =20 +/* + * Architecture-specific information describing state of the guest at + * the time of PMU interrupt. + * Even if the interrupt arrived while inside Xen, this will always contain + * the guest's state. + */ +struct xen_pmu_arch_guest { + union { + /* + * Processor's registers at the time of interrupt. + * WO for hypervisor, RO for guests. + */ + struct xen_pmu_regs regs; + /* Padding for adding new registers to xen_pmu_regs in the future */ +#define XENPMU_REGS_PAD_SZ 64 + uint8_t pad[XENPMU_REGS_PAD_SZ]; + } r; +}; + /* * Architecture-specific information describing state of the processor at * the time of PMU interrupt. @@ -376,6 +395,87 @@ struct xen_pmu_arch { } c; }; =20 +/* Memory layout: + * =E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95= =AE + * =E2=94=82 struct xen_pmu_data =E2=94=82 + * =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=94=82 + * =E2=94=82 vcpu_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 pcpu_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 domain_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =A4=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 pmu=E2=94=82 =E2=94=82 r =E2=94=82 regs =E2=94=82= =E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=9C=E2=94= =80=E2=94=80=E2=94=80=E2=95=AF (xen or guest) =E2=94=82=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=94=82 =E2=94=82 pmu_flags = =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=94=82 =E2=94=82 l =E2=94=82 lapic_lvtpc =E2=94=82=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=AA=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=94=82 =E2=94=82 c =E2=94=82 =E2=94=82 =E2=94=82 amd =E2= =94=82 =E2=94=82 =E2=94=82 intel =E2=94=82 =E2=94=82=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 = =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF = =E2=94=82 =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=95=AF =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 counter =E2=94=82 fixed= _counters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 ctrls =E2=94=82 arch_= counters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=94=9C=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 regs[] =E2=94=82 = =E2=94=86=E2=94=82 global_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=86= =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82struct =E2=94=86=E2=94= =82 global_ovf_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82xen_pmu_cntr_pair=E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82[counters] =E2=94=86=E2=94= =82 global_status =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 fixed_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 ds_area =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 pebs_enable =E2=94=82=E2=96=88pad=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=96=BD=E2=94= =82 debugctl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=95=9E=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 regs[] =E2=94=82 =E2=94=86[0]=E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=95=AF =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 uint64_t = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 [fixed_coun= ters] =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 struct = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 xen_pmu_cnt= r_pair=E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 [arch_count= ers] =E2=94=86 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=A1 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=86 =E2=94=82 =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 = =E2=96=BD =E2=94=82 =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 + * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=95=AE=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 struct xen_pmu_hv_stacktrace =E2=94= =82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 =E2=96=B3 [stacktrace_nr-1] = =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=86 = =E2=94=82 =E2=94=82 + * =E2=94=82 stacktrace[stacktrace_nr] =E2=94=86 [0] = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 stacktrace_nr = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 guest_domain_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=A4=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 guest =E2=94=82 =E2=94=82 r =E2=94=82 regs =E2=94= =82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=95=AF =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF (xen or guest) = =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 =E2=94=82=E2=96=88=E2=96=88pad2=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=94=82 =E2=94=82 PAGE_SIZE + * =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=97=81=E2=95=AF + */ + #endif /* !__ASSEMBLY__ */ =20 /* diff --git a/include/xen/interface/xenpmu.h b/include/xen/interface/xenpmu.h index e2ee73d91bd6..c4dfa8e349f7 100644 --- a/include/xen/interface/xenpmu.h +++ b/include/xen/interface/xenpmu.h @@ -5,7 +5,7 @@ #include "xen.h" =20 #define XENPMU_VER_MAJ 0 -#define XENPMU_VER_MIN 1 +#define XENPMU_VER_MIN 2 =20 /* * ` enum neg_errnoval @@ -22,8 +22,7 @@ #define XENPMU_init 4 #define XENPMU_finish 5 #define XENPMU_lvtpc_set 6 -#define XENPMU_flush 7 - +#define XENPMU_flush 7 /* Write cached MSR values to HW */ /* ` } */ =20 /* Parameters structure for HYPERVISOR_xenpmu_op call */ @@ -56,8 +55,20 @@ struct xen_pmu_params { /* * PMU features: * - XENPMU_FEATURE_INTEL_BTS: Intel BTS support (ignored on AMD) + * - XENPMU_FEATURE_IPC_ONLY: Restrict PMCs to the most minimum set poss= ible. + * Instructions, cycles, and ref cycles. Can = be + * used to calculate instructions-per-cycle (= IPC) + * (ignored on AMD). + * - XENPMU_FEATURE_ARCH_ONLY: Restrict PMCs to the Intel Pre-Defined + * Architectural Performance Events exposed by + * cpuid and listed in the Intel developer's = manual + * (ignored on AMD). + * - XENPMU_FEATURE_HV_STACKTRACE: Hypervisor stacktraces (when compiled w= ith frame pointers) */ -#define XENPMU_FEATURE_INTEL_BTS 1 +#define XENPMU_FEATURE_INTEL_BTS (1<<0) +#define XENPMU_FEATURE_IPC_ONLY (1<<1) +#define XENPMU_FEATURE_ARCH_ONLY (1<<2) +#define XENPMU_FEATURE_HV_STACKTRACE (1<<3) =20 /* * Shared PMU data between hypervisor and PV(H) domains. @@ -67,6 +78,9 @@ struct xen_pmu_params { * Architecture-independent fields of xen_pmu_data are WO for the hypervis= or * and RO for the guest but some fields in xen_pmu_arch can be writable * by both the hypervisor and the guest (see arch-$arch/pmu.h). + * + * PAGE_SIZE bytes of memory are allocated. + * This struct cannot be larger than PAGE_SIZE. */ struct xen_pmu_data { /* Interrupted VCPU */ @@ -92,4 +106,38 @@ struct xen_pmu_data { struct xen_pmu_arch pmu; }; =20 +/* stacktrace entry populated from the end, + * so stacktrace_nr =3D=3D 1, means that stacktrace[PMU_MAX_STACKTRCE-1] i= s valid. + * This is done, so that PMU_MAX_STACKTRACE can be changed in the future, = without breaking the ABI. + * The struct itself (and thus the stacktrace_nr field) will always be pla= ced at the end of a page. + * + * See arch-x86/pmu.h for an example memory layout on x86. + * + */ +#define PMU_MAX_STACKTRACE 127 + +/* WO for hypervisor, RO for guest */ +struct xen_pmu_hv_stacktrace { + uint64_t stacktrace[PMU_MAX_STACKTRACE]; + uint64_t stacktrace_nr; + + /* Like xen_pmu_data.domain_id, but instead of DOMID_XEN always contains = the + * domain that was interrupted (DOMID_SELF if it matches the sampling + * domain). + */ + domid_t guest_domain_id; + uint8_t pad[6]; + + /* When xen_pmu_data.domain_id =3D=3D DOMID_XEN, this will contain + * the registers of the guest that was interrupted. + * This is useful for Dom0 kernel stacktraces, even if the interrupt + * arrives while in Xen. + */ + struct xen_pmu_arch_guest guest; +#define XEN_PMU_STACKTRACE_PAD 56 + uint8_t pad2[XEN_PMU_STACKTRACE_PAD]; +}; + +#define MAX_XEN_PMU_DATA_SIZE (PAGE_SIZE - sizeof(struct xen_pmu_hv_stackt= race)) + #endif /* __XEN_PUBLIC_XENPMU_H__ */ --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456068; cv=none; d=zohomail.com; s=zohoarc; b=RPzEFUJpBjzMCJeKY3hqtDX2MGvMmYJsHeiVSOjTl4K9DKeUSLjAeH7ai5NNi7yCFeFMorAT4nkdtkNoaiQWblT2EZg10l12HfPr4YLB95Sa+SHFigF5Y8mbeVyZ0vPQQIwqP+GV4BgT+nyOcJ7Iy0ZfZbKZB4IYZ3pZGxtpAyY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456068; 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=WjJUuOkVkjeeAsMY8i9Mv8bOHKA0v2O1WG6n4OAsjLs=; b=FsS7xWgCOeAODDmMarjHYNn6UVL2ppdP5YF5q0kj6nWh9j6yIpMVJOLqZRBg2fbWsXFk0DbxEkdLV8ieG544s47BTzpKmR34/fCv60nfHuyQPg9arsMP7l6RFEEvYCAJcEZPM5SqGl2T4Ss1a6zJxEwmrwwN9JsicpVWZ1YZZGQ= 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 1753456068549845.9256725100956; Fri, 25 Jul 2025 08:07:48 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058057.1425727 (Exim 4.92) (envelope-from ) id 1ufK0y-0002Z7-JM; Fri, 25 Jul 2025 15:07:16 +0000 Received: by outflank-mailman (output) from mailman id 1058057.1425727; Fri, 25 Jul 2025 15:07:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK0y-0002VC-E0; Fri, 25 Jul 2025 15:07:16 +0000 Received: by outflank-mailman (input) for mailman id 1058057; Fri, 25 Jul 2025 15:07:15 +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 1ufK0x-0002MQ-GZ for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:15 +0000 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [2a00:1450:4864:20::532]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0ba6d494-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:13 +0200 (CEST) Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-60c5b8ee2d9so4565899a12.2 for ; Fri, 25 Jul 2025 08:07:13 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:12 -0700 (PDT) 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: 0ba6d494-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456033; x=1754060833; 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=WjJUuOkVkjeeAsMY8i9Mv8bOHKA0v2O1WG6n4OAsjLs=; b=V7R/CHIEcs+Qh4oC+N3xAobvNmlCX8H3WOOMPQcUkYJAAS2Ep68MKbefaRZJru0rk2 YLBsfNZONcRP9sn5mckq129mcyUpzzQpcLZ52mWUrt8o6x1+mDenJiq8e0xNMZsrVn9B 1C/kv6V+rwu09tjEOSpdaM/0XTMNeOzWANCCU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456033; x=1754060833; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WjJUuOkVkjeeAsMY8i9Mv8bOHKA0v2O1WG6n4OAsjLs=; b=sOFIBt4u6gZd4YQj4JbD+BqjBtf56ruA7b5FnlcOVkHaqcTo0KSxdA92E6CJTXeGwU NHcPNb+Q1Cxdbmth/PrVfVqQJNhQeiN/B+2YqAQ6FGBPmUolivAZDZIQpnz/Vs4NjKU8 Cjk/r4teU24bJa3BBW746yzO2oCPHuSExyYhi7TOVXsXx4kbKyR9j/PgpK4aEzc32e3G tyCZBpEWDmWv5hKJ/JkmsUQj7DkuimJ6rsJx0WKSE2Erp3W6nETZvupbgnDD1IS3coUg dEEvpK0zf+vWr/d8sZHRXh4DdlfQAnYWnAtVDrLZ1jgzicayTOFBD7cIFfbqgR2ZYbb9 rafQ== X-Gm-Message-State: AOJu0YxSUGCnuKQJdB8ujRSyRg8RPO+6KUbzTqCimhG8dkPGFFBvmMlh NsxqV3iS3hBh6mHbp6S9/wJ1H62aXuRpJ61mIxdM4X+BVwikPkcmUyViEYoNB51GJjgu1h1VnrI GuKR/oIU= X-Gm-Gg: ASbGnct1GBID54CDFwspivGH3/n+ocAC0XsGoeBb9d1mVou1nl8c7vdix9VVh5wRgV8 SbgYcsmjnZMelJVWoX8hD8V4pikjgnmbihqGeWpRyykJUl7DLf4YUXMHRy0bjzkaGVi2Q10SyRd 5Bqj+N2V8Z1MYUnXGfJFvj09IgPHZhLfwToBYlbint3yMx1ONrOcAPUroMt9dK3C8NdMcIdDeei PfuXsD6iM3gDHvxfXw4MBrTlFssRiL3vLXzSJrlaxgolhP1vQTelX1dnTPFlv/wukW/hxZbFObv 62Sy4wiSaJlaC5A0rnPxTBtG+qLHu5juJ1Y87UDn3dUEhadamPaHBbfCsW2zBl/KveFAzOT6vY5 NeOIONYGa22I7OV6wGgJf9K3/pqYVz+IotYpr X-Google-Smtp-Source: AGHT+IE1RlHK5S4tEzuYbFc3r98R2pHtlcQZi02L4eIuKkTVKrqlsurFhfmiXkDse6o9kTwjD6XcgQ== X-Received: by 2002:a05:6402:1ed6:b0:60c:461e:7199 with SMTP id 4fb4d7f45d1cf-614f1bb98f0mr2068972a12.9.1753456033074; Fri, 25 Jul 2025 08:07:13 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 02/10] arch-x86/pmu.h: document current memory layout for VPMU Date: Fri, 25 Jul 2025 16:06:38 +0100 Message-ID: <5602e488bfa9b06e46e2a374d40ff4a617feb512.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456072620116600 There are nested structs, unions, padding and flexible array members. The interpretation of the flexible array members is all done with pointer arithmetic, it is useful to visualize the actual memory layout. The ascii-art drawing is compatible with ascii-art-to-unicode (aa2u) fro m hackage. No functional change. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/include/public/arch-x86/pmu.h | 63 +++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/xen/include/public/arch-x86/pmu.h b/xen/include/public/arch-x8= 6/pmu.h index d0a99268af..8be71a88ee 100644 --- a/xen/include/public/arch-x86/pmu.h +++ b/xen/include/public/arch-x86/pmu.h @@ -129,6 +129,69 @@ struct xen_pmu_arch { typedef struct xen_pmu_arch xen_pmu_arch_t; DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t); =20 +/* Memory layout: +* .---------------------. +* | struct xen_pmu_data | +* +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ <. +* | vcpu_id | | +* +------------------------------------------------------------+ | +* | pcpu_id | | +* +------------------------------------------------------------+ | +* | domain_id | | +* +------------------------------------------------------------+ | +* |##pad#######################################################| | +* +=3D=3D=3D=3D+=3D+=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | +* | pmu| | r | regs |##pad#########################| | +* +----. +---. (xen or guest) |##############################| | +* | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+ | +* | | pmu_flags | | +* | +=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D+ | +* | | l | lapic_lvtpc |############################| | +* | +---. ###################|##pad#######################| | +* | | ###################|############################| | +* | +=3D=3D=3D+=3D+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D+=3D=3D=3D=3D= +=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D= =3D=3D+ | +* | | c | | | amd | | | intel | |#####| | +* | +---+ | .-----. | .-------. |#####| | +* | | | counter | fixed_counters |#####| |=20 +* | | +------------------+----------------------+#####| | +* | | | ctrls | arch_counters |#####| | +* | | +=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D+-------= ---------------+#####| | +* | | | | regs[] | :| global_ctrl |#####| | +* | | | +--------. :+----------------------+#####| | +* | | |struct :| global_ovf_ctrl |#####| | +* | | |xen_pmu_cntr_pair:+----------------------+#####| | +* | | |[counters] :| global_status |#####| | +* | | | :+----------------------+#####| | +* | | | :| fixed_ctrl |#####| | +* | | | :+----------------------+#####| | +* | | | :| ds_area |#####| | +* | | | :+----------------------+#####| | +* | | | :| pebs_enable |#pad#| | +* | | | :+----------------------+#####| | +* | | | v| debugctl |#####| | +* | | |##################+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D= =3D=3D=3D+=3D=3D=3D=3D=3D+#####| | +* | | |##################| | regs[] | :[0]|#####| | +* | | |##################| +--------. : |#####| | +* | | |##################| uint64_t : |#####| | +* | | |##################| [fixed_counters] : |#####| | +* | | |##################| : |#####| | +* | | |##################| : |#####| | +* | | |##################| -----------------: |#####| | +* | | |##################| struct : |#####| | +* | | |##################| xen_pmu_cntr_pair: |#####| | +* | | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ [a= rch_counters] : +=3D=3D=3D=3D=3D+ |=20 +* | | | : | | | +* | | | v | | | +* | | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D+ | | +* | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+ | +* +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | +* |############################################################| | +* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : +* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : +* |############################################################| | PAGE_S= IZE +* +=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ <. +*/ + #endif /* __XEN_PUBLIC_ARCH_X86_PMU_H__ */ /* * Local variables: --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456059; cv=none; d=zohomail.com; s=zohoarc; b=b0NsH0lUhstcePHvJT0v2RxdzKOcg390yi7ghn57UrESZEOtMqtmH3Z5Wfw+pGgP18/CYkVNLEyX2PzEDcYwarfcKJhiqeqPjZF+VNlr7Ty1C0ckeX2PMp/d11RXD1RZQY1lZDoVCYrpHK+YNCd8Qc0JsgpRDHs4MxcXjtfZgdM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456059; 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=l2apShFwR46Beomu8PA+jY3aycyZQMB8hT+3xioaatM=; b=YPAjqyKmAIIKIqbDNphEMgSzxng1rGHBXoPkAdfKes2Bxwsra4kvrlOVoTefESh2SunQFmrHfR+Q7Av5sEBoUcGPWj1ce0zeQjdHblqjcD5XwGW6NBLJowOZo6BeD3T4js11dCFwbWeofbn5EdU1GlYUmnPc9ZxrJ0BYmDotmBA= 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 17534560599848.473243041419892; Fri, 25 Jul 2025 08:07:39 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058067.1425828 (Exim 4.92) (envelope-from ) id 1ufK17-0005B0-Mo; Fri, 25 Jul 2025 15:07:25 +0000 Received: by outflank-mailman (output) from mailman id 1058067.1425828; Fri, 25 Jul 2025 15:07: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 1ufK17-000594-Ep; Fri, 25 Jul 2025 15:07:25 +0000 Received: by outflank-mailman (input) for mailman id 1058067; Fri, 25 Jul 2025 15:07:24 +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 1ufK15-0002MQ-Uk for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:23 +0000 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [2a00:1450:4864:20::532]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 10a4df44-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:22 +0200 (CEST) Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-607cf70b00aso4372661a12.2 for ; Fri, 25 Jul 2025 08:07:22 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:21 -0700 (PDT) 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: 10a4df44-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456041; x=1754060841; 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=l2apShFwR46Beomu8PA+jY3aycyZQMB8hT+3xioaatM=; b=CB9cZ043cVDiQR7VWQZSZoEJ/GN8koFEtyDEAJ7DjQ6slR3HVhiyJdqCs3kofo8hR6 McoxAUEmx8r7LUUwgcDSPuV0kBM2Y34j9YV3vtZX+CdCHwlGG5VAbA/Xu38mFhutXllS Wb/aMtS7UxnfgUPCZiqlVZuWoOJzU4RYg658U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456041; x=1754060841; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l2apShFwR46Beomu8PA+jY3aycyZQMB8hT+3xioaatM=; b=Dad0yg3x9CqRPZUVEu9g+OkzxQkkWiyJbFjhvmr/VBbH3lok58y3EZvsz+5yT0cho7 URkDMtHaiLQrp1H5PutBnfBCqizyZrlgPSayiPGU60HxlFtE/WFBOUaCA+ivNexEU/XQ HN5USuoItdaVInVM+2Vo6YXZhNHmutCSE+AG8kUXIEzvpM2r9oPXnTG8FcE1WZO02stH AvQqD34OGBzgoKonzXOSxKdTxWv/nyc7nMA+VNud2VCDubbk/r2bWyEycGSpwtfdnUgv vjTtvHydBeZ6MrDNqg/SV2sOTWCP0UIZxchDdIudtNhwQzzlGGbmWbGOojilc49qN6jV rnOA== X-Gm-Message-State: AOJu0YyQbX5FVGF0Z12PyBtK7z0BOUKcJdA4iwsCxSYzBF5EozqEVGyK pWsSBczGYdWBZ1kl87bi80Xkg1DveHG1EJYlSRGgyGYa0SrZZL9lkwLdMXjIP+aHk8Vnpyy9ygj HL3Gg2MU= X-Gm-Gg: ASbGnct+KUagY5SlRZD50fWVUdhSvFo9NEYvRiUhhfo/DLcOTFDaCU0luzIUa1sDspj PSiw9Umw2BY0HdO/1kfWv+ZlGDaMv+cwCpkYHiLpGRyj8CKt+/56FWo2uCRWaPT6VPDePkcEwP8 pfNhDTuWVHhIF/H9lAARJ1Igp8b7deNQlLzULUkW3QBUfK1wouNCC7QU5kWxX+xRQE9cRE6sfoW WgNgFlF1vokLnkjgHdRhcgtIaWiDg/X2lP+3phpGL6zl4qljjASe6YkCwlQLO9U3oDLQd4f6B2C +u7l5hQfnIXQARO6FH8p+sC4fOCKcH9ENcc8wGju/2Shrtbp9PnJQckdxOcU4FpOyQe77ODtRh7 HpIpfJyZ2Tij3epTI78oYuqQ78+p8k4jByBjHB7iQhMllKq4= X-Google-Smtp-Source: AGHT+IFlClga9zdb0mqz4kAT4vlSkIUpH4lY4DIuGqB2I8twj25k6WbdynM8YuKiO0Mc2iuVyYXOnA== X-Received: by 2002:a05:6402:3495:b0:612:c2a3:6b5e with SMTP id 4fb4d7f45d1cf-614f1df644cmr2162573a12.20.1753456041507; Fri, 25 Jul 2025 08:07:21 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Subject: [RFC LINUX PATCH v1 3/3] perf kvm: implement Xen hypervisor stacktraces Date: Fri, 25 Jul 2025 16:06:49 +0100 Message-ID: <20250725150719.472782-3-edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456060326116600 Using the new VPMU 0.2 interface. This is backwards compatible with VPMU 0.1: the new 'struct xen_pmu_hv_stacktrace` is stored at the end of the page, and stacktrace_nr would be 0 on old hypervisors. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- arch/x86/events/core.c | 4 ++- arch/x86/xen/pmu.c | 73 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 70 insertions(+), 7 deletions(-) diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index ad63bd408cd9..1fca4a77f353 100644 --- a/arch/x86/events/core.c +++ b/arch/x86/events/core.c @@ -2764,12 +2764,14 @@ perf_callchain_kernel(struct perf_callchain_entry_c= tx *entry, struct pt_regs *re struct unwind_state state; unsigned long addr; =20 + perf_hypervisor_callchain(entry, regs); + if (perf_guest_state()) { /* TODO: We don't support guest os callchain now */ return; } =20 - if (perf_callchain_store(entry, regs->ip)) + if (!regs->ip || perf_callchain_store(entry, regs->ip)) return; =20 if (perf_hw_regs(regs)) diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c index b92dc739fdfb..4996b6904e0b 100644 --- a/arch/x86/xen/pmu.c +++ b/arch/x86/xen/pmu.c @@ -19,11 +19,13 @@ struct xenpmu { /* Shared page between hypervisor and domain */ struct xen_pmu_data *xenpmu_data; + const struct xen_pmu_hv_stacktrace *xenpmu_hv_stacktrace; =20 uint8_t flags; }; static DEFINE_PER_CPU(struct xenpmu, xenpmu_shared); #define get_xenpmu_data() (this_cpu_ptr(&xenpmu_shared)->xenpmu_data) +#define get_xenpmu_hv_stacktrace() (this_cpu_ptr(&xenpmu_shared)->xenpm= u_hv_stacktrace) #define get_xenpmu_flags() (this_cpu_ptr(&xenpmu_shared)->flags) =20 /* Macro for computing address of a PMU MSR bank */ @@ -436,8 +438,19 @@ static unsigned int xen_guest_state(void) return state; } =20 - if (!xen_initial_domain() || (xenpmu_data->domain_id >=3D DOMID_SELF)) - return state; + if (!xen_initial_domain() || (xenpmu_data->domain_id >=3D DOMID_SELF)) { + if (xenpmu_data->domain_id =3D=3D DOMID_XEN) { + /* when inside Xen we output the hypervisor stacktrace if available, + * but only look at guest stacktrace if this is our domid + */ + const struct xen_pmu_hv_stacktrace *xenpmu_hv_stacktrace =3D + get_xenpmu_hv_stacktrace(); + if (!xenpmu_hv_stacktrace || + xenpmu_hv_stacktrace->guest_domain_id =3D=3D DOMID_SELF) + return state; + } else + return state; + } =20 state |=3D PERF_GUEST_ACTIVE; =20 @@ -463,10 +476,54 @@ static unsigned long xen_get_guest_ip(void) return xenpmu_data->pmu.r.regs.ip; } =20 +static void xen_convert_regs(const struct xen_pmu_regs *xen_regs, + struct pt_regs *regs, uint64_t pmu_flags); + +static void xen_hypervisor_callchain(struct perf_callchain_entry_ctx *entr= y, + struct pt_regs *regs) +{ + if (!entry) + return; + + const struct xen_pmu_data *xenpmu_data =3D get_xenpmu_data(); + + if (!xenpmu_data) { + pr_warn_once("%s: pmudata not initialized\n", __func__); + return; + } + + if (xenpmu_data->domain_id !=3D DOMID_XEN) + return; + + if (!regs->ip || perf_callchain_store(entry, regs->ip)) + return; + + const struct xen_pmu_hv_stacktrace *pmu_stack =3D + get_xenpmu_hv_stacktrace(); + + const unsigned int stacktrace_nr =3D pmu_stack->stacktrace_nr; + + if (stacktrace_nr > ARRAY_SIZE(pmu_stack->stacktrace)) { + pr_warn_once("%s: stacktrace_nr out of bounds: %d", __func__, + stacktrace_nr); + return; + } + + for (unsigned int i =3D 0; i < stacktrace_nr; i++) { + uint64_t addr =3D + pmu_stack->stacktrace[PMU_MAX_STACKTRACE - 1 - i]; + if (!addr || perf_callchain_store(entry, addr)) + break; + } + + xen_convert_regs(&pmu_stack->guest.r.regs, regs, + xenpmu_data->pmu.pmu_flags); +} + static struct perf_guest_info_callbacks xen_guest_cbs =3D { .state =3D xen_guest_state, .get_ip =3D xen_get_guest_ip, - .hypervisor_callchain =3D NULL + .hypervisor_callchain =3D xen_hypervisor_callchain }; =20 /* Convert registers from Xen's format to Linux' */ @@ -490,7 +547,6 @@ static void xen_convert_regs(const struct xen_pmu_regs = *xen_regs, } } =20 - irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id) { int err, ret =3D IRQ_NONE; @@ -527,7 +583,7 @@ void xen_pmu_init(int cpu) { int err; struct xen_pmu_params xp; - unsigned long pfn; + unsigned long pfn, pmu_page; struct xen_pmu_data *xenpmu_data; =20 BUILD_BUG_ON(sizeof(struct xen_pmu_data) > PAGE_SIZE); @@ -535,7 +591,8 @@ void xen_pmu_init(int cpu) if (xen_hvm_domain() || (cpu !=3D 0 && !is_xen_pmu)) return; =20 - xenpmu_data =3D (struct xen_pmu_data *)get_zeroed_page(GFP_KERNEL); + pmu_page =3D get_zeroed_page(GFP_KERNEL); + xenpmu_data =3D (struct xen_pmu_data *)pmu_page; if (!xenpmu_data) { pr_err("VPMU init: No memory\n"); return; @@ -551,6 +608,10 @@ void xen_pmu_init(int cpu) goto fail; =20 per_cpu(xenpmu_shared, cpu).xenpmu_data =3D xenpmu_data; + per_cpu(xenpmu_shared, cpu).xenpmu_hv_stacktrace =3D + (const struct xen_pmu_hv_stacktrace *) + (pmu_page + PAGE_SIZE - + sizeof(struct xen_pmu_hv_stacktrace)); per_cpu(xenpmu_shared, cpu).flags =3D 0; =20 if (!is_xen_pmu) { --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456057; cv=none; d=zohomail.com; s=zohoarc; b=cm5rVHDY8LJwJv2pOQisewuWfeXXm4xe8vb3U0lQ1xxRiwx1w4q5cUOHJ4Hbtin5RIn2qL+H85vtaUdd4kqEfn4dr0L9k4WzBSboGeSprog9eSXgKoRskmmeQ0fBnBvcuLDqJapZvEtlai0E7Y2WGQNawuI36JnwGmh62Ao9Iok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456057; 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=pVEUFIrsCWteOZOdQHJQjh3H/B/OmFPnYtoY93IX3Z8=; b=MXn6QSjlekUgTv6XI6geDfaVUaHNxoC1Q/1kriPGS7/9AL6FgflsrUbYRCiWEInpeDkOXh4rcUtkQZaPDi5A04mExTbbsvXCI+W42awE8KTi5tMmybRlLb+PRbScF+JbB9j/UHlrvM4nHASc6/HmemkLkhaXRcNMVH3j/lBdgh4= 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 1753456057698657.8406871564013; Fri, 25 Jul 2025 08:07:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058059.1425751 (Exim 4.92) (envelope-from ) id 1ufK10-00035S-8N; Fri, 25 Jul 2025 15:07:18 +0000 Received: by outflank-mailman (output) from mailman id 1058059.1425751; Fri, 25 Jul 2025 15:07:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK10-00035J-3a; Fri, 25 Jul 2025 15:07:18 +0000 Received: by outflank-mailman (input) for mailman id 1058059; Fri, 25 Jul 2025 15:07:16 +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 1ufK0y-0002MQ-Go for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:16 +0000 Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [2a00:1450:4864:20::52e]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0c148a98-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:14 +0200 (CEST) Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-614fd1a5790so274416a12.3 for ; Fri, 25 Jul 2025 08:07:14 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:13 -0700 (PDT) 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: 0c148a98-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456034; x=1754060834; 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=pVEUFIrsCWteOZOdQHJQjh3H/B/OmFPnYtoY93IX3Z8=; b=Q5JpWw9O/Lt4Pmgx+OFb5QqXL2xXiPKHAL0aePFQHZpCF6LD58kKfHD1U/9EH0bxmW Asp/YN3mzmSqSjg0PX8s4ddkHGhDBnYHbm5JTmZMz/U93n3a9Abn4ZJyAl1fWpq5GK1K PNto/4s+y9eBwI06UvhfCWfz7FsxJrfHHe+NA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456034; x=1754060834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pVEUFIrsCWteOZOdQHJQjh3H/B/OmFPnYtoY93IX3Z8=; b=GT2Bv/WiIhGQJQv+nxFy3z9txpUdDpdYdhyEpWuhN8RMW/fOlP8A3gUniqE5pW/k8H F9WXjy6zZIwZEwpkODxloJ+g4bseBGz7f6QGg9BzOg+KqWFHSGeBnMcWB4vecZxGsYIz TM0Yzx+LGYtQjiN/iukyxwcwFUHuLug3sYkOwqFZ8mOQa7SUS0k866+qBmROVHVjYdX3 IKmNBplAAjl67RSsaa0sgmkJnO0aG8U2nAxkjhaKZ789pk55r/LU6ZmXWw43W79vjaUO 2KLBKYvopOzQnxMUBg0YmWgP6BUoCmJO5aQ4gQEdq9O+O1CvQ0JxWkIR/SLf18kEfCxa at8w== X-Gm-Message-State: AOJu0YxAW1EYKVmeh88xYpO/LjGWIh/WpTCDmnRjpqjPlkIgIWm0CZw5 kOik5XtW+To1WROg7LguYvYfnwakMrBuUocDqf5dDC5zjqT6HWTxkLhtcAXb2BVpykpVYZ5idk1 6aXQGS2U= X-Gm-Gg: ASbGnctFrFLkQLHg0is6HmgrSWBym2DjuJgVUUwtDKCeTybEmLd60QdfTp0q9FVlSTC DdoiZsttP0bnHucrBvKj13Gmf6iYEWceOU0venzkT5VLxqHkXPnyoS6KKG6GSqKRSvQwL5sxhGS X42asarQB+/LqWCLn/6818gnmUcj1bQ+I3XY0/UIIPZNu+t5vD6oSurpwt9I08pLFkjgRKSl++c KTHyyDemP/f7sOBCk2CJQ9bVy4jFY67G27QTKwgMa3XLGB0JCvYSkMmwic0XPyhEWoATrA40hDE a+JMQ6hijVP2ivj70MSDzqyKWdFvplpqA56qgB+Ec5g/dq3axzim71cvUcNinPW9/SnxoankViA C9gBajHKM50Kg0NiQXiK8n7YQsID9jdglgDUYeNm5IcWTiIE= X-Google-Smtp-Source: AGHT+IHecPa0fHUDYt9VuBiYwJLKcyO0z7ZDAxUoe90D5hB3q1z7LH7eTcHh6J8JrrWout0puCJZIg== X-Received: by 2002:a05:6402:34d5:b0:606:ebd9:c58b with SMTP id 4fb4d7f45d1cf-614f1bdd877mr2055311a12.1.1753456033718; Fri, 25 Jul 2025 08:07:13 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 03/10] arch-x86/pmu.h: convert ascii art drawing to Unicode Date: Fri, 25 Jul 2025 16:06:39 +0100 Message-ID: <99651231c4b535cdba21c852f3ec7c28c00a8088.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456058762116600 Use `aa2u` (ascii-art-to-unicode from Hackage) to convert to Unicode box drawing characters. The full list of supported drawing characters can be seen in the examples at: https://github.com/fmthoma/ascii-art-to-unicode/blob/master/src/Text/AsciiA= rt.hs For future maintenance: conversion can be done incrementally (mixing ascii art with already converted Unicode, and running the conversion tool again), or by hand. No functional change. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/include/public/arch-x86/pmu.h | 120 +++++++++++++++--------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/xen/include/public/arch-x86/pmu.h b/xen/include/public/arch-x8= 6/pmu.h index 8be71a88ee..5bd0aa6f77 100644 --- a/xen/include/public/arch-x86/pmu.h +++ b/xen/include/public/arch-x86/pmu.h @@ -130,66 +130,66 @@ typedef struct xen_pmu_arch xen_pmu_arch_t; DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t); =20 /* Memory layout: -* .---------------------. -* | struct xen_pmu_data | -* +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ <. -* | vcpu_id | | -* +------------------------------------------------------------+ | -* | pcpu_id | | -* +------------------------------------------------------------+ | -* | domain_id | | -* +------------------------------------------------------------+ | -* |##pad#######################################################| | -* +=3D=3D=3D=3D+=3D+=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | -* | pmu| | r | regs |##pad#########################| | -* +----. +---. (xen or guest) |##############################| | -* | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+ | -* | | pmu_flags | | -* | +=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D+ | -* | | l | lapic_lvtpc |############################| | -* | +---. ###################|##pad#######################| | -* | | ###################|############################| | -* | +=3D=3D=3D+=3D+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D+=3D=3D=3D=3D= +=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D= =3D=3D+ | -* | | c | | | amd | | | intel | |#####| | -* | +---+ | .-----. | .-------. |#####| | -* | | | counter | fixed_counters |#####| |=20 -* | | +------------------+----------------------+#####| | -* | | | ctrls | arch_counters |#####| | -* | | +=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D+-------= ---------------+#####| | -* | | | | regs[] | :| global_ctrl |#####| | -* | | | +--------. :+----------------------+#####| | -* | | |struct :| global_ovf_ctrl |#####| | -* | | |xen_pmu_cntr_pair:+----------------------+#####| | -* | | |[counters] :| global_status |#####| | -* | | | :+----------------------+#####| | -* | | | :| fixed_ctrl |#####| | -* | | | :+----------------------+#####| | -* | | | :| ds_area |#####| | -* | | | :+----------------------+#####| | -* | | | :| pebs_enable |#pad#| | -* | | | :+----------------------+#####| | -* | | | v| debugctl |#####| | -* | | |##################+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D= =3D=3D=3D+=3D=3D=3D=3D=3D+#####| | -* | | |##################| | regs[] | :[0]|#####| | -* | | |##################| +--------. : |#####| | -* | | |##################| uint64_t : |#####| | -* | | |##################| [fixed_counters] : |#####| | -* | | |##################| : |#####| | -* | | |##################| : |#####| | -* | | |##################| -----------------: |#####| | -* | | |##################| struct : |#####| | -* | | |##################| xen_pmu_cntr_pair: |#####| | -* | | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ [a= rch_counters] : +=3D=3D=3D=3D=3D+ |=20 -* | | | : | | | -* | | | v | | | -* | | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D+ | | -* | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+ | -* +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | -* |############################################################| | -* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : -* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : -* |############################################################| | PAGE_S= IZE -* +=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ <. +* =E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AE +* =E2=94=82 struct xen_pmu_data =E2=94=82 +* =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=95=AE +* =E2=94=82 vcpu_id =E2= =94=82 =E2=94=82 +* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 +* =E2=94=82 pcpu_id =E2= =94=82 =E2=94=82 +* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 +* =E2=94=82 domain_id =E2= =94=82 =E2=94=82 +* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 +* =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=94=82 =E2=94=82 +* =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=A4= =E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 +* =E2=94=82 pmu=E2=94=82 =E2=94=82 r =E2=94=82 regs =E2=94=82= =E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=9C=E2=94= =80=E2=94=80=E2=94=80=E2=95=AF (xen or guest) =E2=94=82=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 +* =E2=94=82 =E2=94=82 pmu_flags = =E2=94=82 =E2=94=82 +* =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 +* =E2=94=82 =E2=94=82 l =E2=94=82 lapic_lvtpc =E2=94=82=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2= =95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=AA=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 +* =E2=94=82 =E2=94=82 c =E2=94=82 =E2=94=82 =E2=94=82 amd =E2= =94=82 =E2=94=82 =E2=94=82 intel =E2=94=82 =E2=94=82=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 = =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2= =94=82 =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=95=AF =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 counter =E2=94=82 fixed_= counters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94= =82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 ctrls =E2=94=82 arch_c= ounters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94= =82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=94=9C=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 regs[] =E2=94=82 = =E2=94=86=E2=94=82 global_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=86= =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82struct =E2=94=86=E2=94= =82 global_ovf_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82xen_pmu_cntr_pair=E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82[counters] =E2=94=86=E2=94= =82 global_status =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 fixed_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 ds_area =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 pebs_enable =E2=94=82=E2=96=88pad=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 =E2=96=BD=E2=94= =82 debugctl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=95=9E=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 regs[] =E2=94=82 =E2=94=86[0]=E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=95=AF =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 uint64_t = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 [fixed_coun= ters] =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 struct = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 xen_pmu_cnt= r_pair=E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 [arch_count= ers] =E2=94=86 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=A1 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=86 =E2=94=82 =E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=94=82 = =E2=96=BD =E2=94=82 =E2=94=82 =E2=94=82 +* =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=94=82 =E2=94=82 +* =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 +* =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 +* =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 +* =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 +* =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 +* =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 PAGE_SIZE +* =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=97=81=E2=95=AF */ =20 #endif /* __XEN_PUBLIC_ARCH_X86_PMU_H__ */ --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456056; cv=none; d=zohomail.com; s=zohoarc; b=MPzGL0Pp1WjQhaJdB/3fcoT2Mv+Bn1RDj2mpeTgmnPSAoGJgR4bNX3vLo4EL9X4C4O2u6Q5PrDW2HDx9R4a5b5pduZHsm1Grb6KmMKB4ANM8cDxx5uaEKYVMxZ28ODa0ffgIijcTwEzhcY1osPLOPO6RGE/cHVewWehYuGnbmxA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456056; 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=GFPAOu/9gkzbl/oCx0D05uHVhcWBMmy98vsflQBFGec=; b=jIyjIMGpjmQIp9MTEe4G6FcuWtwrO1/i9I2JsQEkY1vq2R0+3bj0GJxVjb0bfOPRQTa34sEVJ91xKRT90//Ta4osWskI29IyqvEebVfa4rPRaAcwCRDKCs8gHn4qeDRfJn0DOa+PRMGsjvEQ5HCMMnpVBsTnFpZT4tJ+RdOr5CI= 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 1753456056159671.4517281090895; Fri, 25 Jul 2025 08:07:36 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058061.1425763 (Exim 4.92) (envelope-from ) id 1ufK11-0003KO-BI; Fri, 25 Jul 2025 15:07:19 +0000 Received: by outflank-mailman (output) from mailman id 1058061.1425763; Fri, 25 Jul 2025 15:07:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK11-0003Jn-2k; Fri, 25 Jul 2025 15:07:19 +0000 Received: by outflank-mailman (input) for mailman id 1058061; Fri, 25 Jul 2025 15:07:17 +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 1ufK0z-0002MQ-Gq for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:17 +0000 Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [2a00:1450:4864:20::531]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0c581299-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:15 +0200 (CEST) Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-60700a745e5so4743685a12.3 for ; Fri, 25 Jul 2025 08:07:14 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:14 -0700 (PDT) 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: 0c581299-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456034; x=1754060834; 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=GFPAOu/9gkzbl/oCx0D05uHVhcWBMmy98vsflQBFGec=; b=kYlYxTjZYvCb4ZEXAZ+3PgmO7Bl2F5SQ672e7VcS+sIR7HvKQaI+dye5Y0HgMf/AVm fxQcWYRuHAhnMJVZO9BExGu6b6bOJjMx9t2ve/TYv1oujPWIfnNYFEZOY5yZNQ9rdD27 BQv+yWIPOJ9PI6ip6leNLs0TCIyznXH4YgH5k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456034; x=1754060834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GFPAOu/9gkzbl/oCx0D05uHVhcWBMmy98vsflQBFGec=; b=m3dxguyyJexW4YmnOdzVf0UI3d+40SX8dwKGImnGtEq4kPyMYupg5i8ONYuMtcNKdN RQZKjTW86XIv6D/1lJ1gMVJNkyosW8yvaNGxxX3ayf+g/jgJF4RsvEnU1s1z1AvMtF58 w3tTvn4RT0u4C3kF9GPfiMKAoh/A43ZzqUqN3ebjSbfRjIuFkcQi1lF1E3OC+RBonH7g zDni4997qme4EOBISPjk8+fFD6oP8GOhj8glWS9S3nPO7Yv1IylTHtriGIhk4IgzyuPR CIj6yEBaDbzJBCzBvh+ZjGtHzV+MxFA/UEe0qxuKwAFtMubVt79ZO6CTVmlzombWJ/Uk sLAQ== X-Gm-Message-State: AOJu0YxKn9AbD8uAa9MwncruXXKPs1dO4BFsxAnWSAWEsjKlmdsoqC22 OcUneLM+78QtoZbULcilKGwCYLkbtEkrTU6zDlGQmWl0f8RfggkdyM/8bYv39rxxSFdrXXumcAd DdeSylBU= X-Gm-Gg: ASbGncv+phzWxqFc1sqZR3UjfPmL2l6ksQ0AbxfQssaTz6bcsZV7yKuRpBasTlRngF2 akeCo1aiINqq9rut7EUnsO1EZdz3qfiPrhXA+7zkreSYEjgiRmQnKzX8c2Txdmiai7FqtMIN66D 4NIgO4lsqlwG6Nz58r12e92sW9iHHUnC8aZTFUJBnAByXTev3hPbt0ljRdFTNTOzLR9jSC2Iz7g k/Z6hKeu+OhyaDus9Mphl6cXzP+aufJ3jIsBtC9LgYQC3sS8JJUMV0obGtFhUjQmpvmxU+Ny7Ov TAJ/XOY0b33CXsb/9fAtj0X3cD4LSINW5sFNqCEa/vyqwWcJi8O7Q0YPMf3Ac0QBtxm7gKXDgpX j8wFluGtTdkH1OVGQ1C9gnb4H5YJHI7ZNm1Y+ X-Google-Smtp-Source: AGHT+IHIN7LUuu8VUc3HA+w2Xu/S+7Lq1b3PTONMxBIWuDYb2JySYlwwQG5r9CKPl54iNuqPXblNvw== X-Received: by 2002:a05:6402:30a7:b0:60c:39e4:93e6 with SMTP id 4fb4d7f45d1cf-614f1dd3d16mr1512251a12.24.1753456034338; Fri, 25 Jul 2025 08:07:14 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 04/10] vpmu.c: factor out register conversion Date: Fri, 25 Jul 2025 16:06:40 +0100 Message-ID: X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456058498116600 A followup commit will use this to store the guest's regs when domid =3D=3D DOMID_XEN. To avoid code duplication move the code into a function. No functional change. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/arch/x86/cpu/vpmu.c | 49 ++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index 7be79c2d00..713311a1ac 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -160,6 +160,31 @@ static inline struct vcpu *choose_hwdom_vcpu(void) return hardware_domain->vcpu[idx]; } =20 +static inline void vpmu_convert_regs(struct xen_pmu_regs *r, uint64_t *fla= gs, + struct vcpu *sampled, + const struct cpu_user_regs *cur_regs)= { + r->ip =3D cur_regs->rip; + r->sp =3D cur_regs->rsp; + r->flags =3D cur_regs->rflags; + + if (!is_hvm_vcpu(sampled)) { + r->ss =3D cur_regs->ss; + r->cs =3D cur_regs->cs; + if (!(sampled->arch.flags & TF_kernel_mode)) + *flags |=3D PMU_SAMPLE_USER; + } else { + struct segment_register seg; + + hvm_get_segment_register(sampled, x86_seg_cs, &seg); + r->cs =3D seg.sel; + hvm_get_segment_register(sampled, x86_seg_ss, &seg); + r->ss =3D seg.sel; + r->cpl =3D seg.dpl; + if (!(sampled->arch.hvm.guest_cr[0] & X86_CR0_PE)) + *flags |=3D PMU_SAMPLE_REAL; + } +} + void vpmu_do_interrupt(void) { struct vcpu *sampled =3D current, *sampling; @@ -255,29 +280,7 @@ void vpmu_do_interrupt(void) else cur_regs =3D guest_cpu_user_regs(); =20 - r->ip =3D cur_regs->rip; - r->sp =3D cur_regs->rsp; - r->flags =3D cur_regs->rflags; - - if ( !is_hvm_vcpu(sampled) ) - { - r->ss =3D cur_regs->ss; - r->cs =3D cur_regs->cs; - if ( !(sampled->arch.flags & TF_kernel_mode) ) - *flags |=3D PMU_SAMPLE_USER; - } - else - { - struct segment_register seg; - - hvm_get_segment_register(sampled, x86_seg_cs, &seg); - r->cs =3D seg.sel; - hvm_get_segment_register(sampled, x86_seg_ss, &seg); - r->ss =3D seg.sel; - r->cpl =3D seg.dpl; - if ( !(sampled->arch.hvm.guest_cr[0] & X86_CR0_PE) ) - *flags |=3D PMU_SAMPLE_REAL; - } + vpmu_convert_regs(r, flags, sampled, cur_regs); } =20 vpmu->xenpmu_data->domain_id =3D domid; --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456058; cv=none; d=zohomail.com; s=zohoarc; b=Q0dnnPznsaP04yrSe+gpn4lhEjCHjkYzILb+0Tm/WaMwt0TcoZ6FHEaCC0C1YoX53eAhhgiGrZOFTEexhelU2Af597B9W/s8AwD4IBNI5sdYUxotRwaMOvLQdFHb9Hw/7V2D5Fvcq2X7TvRX1CIZutK2b81ELtGYWYxllYj5TO4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456058; 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=QchLTL4pNHawbG2hL22qtH22Q+AVTiF/+XhlKzTWvl4=; b=SCGQeZl6vluTebzR3/d3MGKkH8nTCwDUhqqb1YEr7FKrJtZD0U6D0PB2rBFLEYNud5eNJzV7ILERtsv5GeqWOR911lkbf9EB3V/YpJ7n8hI5AEndFXlj5n4km5z5ZmtINn6j6lK5+Ly8JGs2InlWHeVNWDDmAyPdPOz+zg6onLw= 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 1753456058191530.8265599992495; Fri, 25 Jul 2025 08:07:38 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058058.1425745 (Exim 4.92) (envelope-from ) id 1ufK0z-00032D-VT; Fri, 25 Jul 2025 15:07:17 +0000 Received: by outflank-mailman (output) from mailman id 1058058.1425745; Fri, 25 Jul 2025 15:07:17 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK0z-000324-R9; Fri, 25 Jul 2025 15:07:17 +0000 Received: by outflank-mailman (input) for mailman id 1058058; Fri, 25 Jul 2025 15:07:16 +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 1ufK0y-0002MW-Ca for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:16 +0000 Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [2a00:1450:4864:20::535]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 0ce78d46-6969-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 17:07:15 +0200 (CEST) Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-606b58241c9so3427598a12.3 for ; Fri, 25 Jul 2025 08:07:15 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:14 -0700 (PDT) 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: 0ce78d46-6969-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456035; x=1754060835; 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=QchLTL4pNHawbG2hL22qtH22Q+AVTiF/+XhlKzTWvl4=; b=Sm6u2MlLavfMPWOyafDWR1KISJLR3uXACbGN9JZ6YlxrDtXZYZpGnimnQBTJaSwyls IRhGWGzG+HicM0yGBcdGjd4dq6bpnxu44Blzz35dnmscz2JhmEgYfIJNifMkNHXl8y5z yKelbSL0fOzGn7pvAN6/7eYxw1s64QtfXRoa8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456035; x=1754060835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QchLTL4pNHawbG2hL22qtH22Q+AVTiF/+XhlKzTWvl4=; b=PnLab73gqq03TYV0CvP8rWEnHN/SGE9/prKo+4ujme71NT1Tk4zB66UiXKAgWASEJD QvodA7ohRYVqDgjaJuzI3y4Xzu3Yx7k4XNqorUqGWSCaanyjynesJvxUh49kHmGU3+AU DG9jtlK6TrO8y20426MD/xBJttx9j+8afKilwZcNMIj7QtwgItNzRfzdr7tKxliJ9jPS 2QGPmy7/yjWahGSXDu4PHQI9c+V3sMnuJyz5yfMaPY2s+xAM2Zy0bjR+OV+l2jM9VuFT TR0O8zqkUENI6BDDv5rYRDueMvwalSouDmd6GhS3Oc8aU5sU2xaBFoAQU82txlMxgKri qbiw== X-Gm-Message-State: AOJu0YwejXLAJPhYabtxN6WfK3gmaBPYbmbKppZ8TQnWj3wbni/nsj5G 0MGR10RU7UdJe4WjgWR3+O5Ys9XUpj60Hoop1jqk2Zv66iAylAx9EtT91tUGxrtUzHQmJC1+Cg7 dVLDezf4= X-Gm-Gg: ASbGncsWt+h6iTiN4gEl7U6RaLA+s68w3unNFsPZd4VL0CeKTUC1wcmDMVazM5iLfkH GWhz9E+AthUO0K5V89PiD26hb0DNije6I8baefYs9KNjdgr8DQVJpLFv1th1G9SLofpJwzEdZWw ZaE+pw4Pxe4hk7MemYVEiMnqXMHiQ8kw2uUN+b9FjkO/txhE/E1ShF1JGOXrFcfJUXUkqbwacQw qYGM/VEoWakAzxbkA8scevt9OfYTQmC/QuVFQx7fMja8xy14CFEZgSrXuzwJihhvHU0BvhH97hP jUZwx0wURbH1ygIuXfX/m3RiZpe67xOsbBqhL6tJsd+ibdNPLqE7nrU507nFyjoHCZuHEIOfo5V qdIsCwJCG01D5GLu9o/PSVRP7RNycxabNujIQoIZ+th0LbKc= X-Google-Smtp-Source: AGHT+IHu8VTmucitzUR40DJT/UDeQs8TsDr5/S7Y/ciVHP8v1ipD+71BH2x3Du7DmNBzTVzDO3TC4Q== X-Received: by 2002:a05:6402:50ce:b0:5f7:f55a:e5e1 with SMTP id 4fb4d7f45d1cf-614f1d84518mr1987743a12.24.1753456035118; Fri, 25 Jul 2025 08:07:15 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Anthony PERARD , Michal Orzel , Julien Grall , Stefano Stabellini , Bertrand Marquis , Volodymyr Babchuk , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 05/10] pmu.h: introduce a stacktrace area Date: Fri, 25 Jul 2025 16:06:41 +0100 Message-ID: <49cbbacdc5f4fec624ae164a01eaa574aa771854.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456064657116600 The guest always allocates a full page that is mapped for 'struct xen_pmu_data' (there is no smaller mapping granularity). The existing struct contains a flexible array member that is used to store architectural performance counters on Intel (their number is dynamically determined from CPUID). AFAICT their number is currently limited to 32 due to the bitmap in the CPUID only having 32 bits defined for this, although the cpuid has 8 bits reserved to specify the number of these counters, so this may grow. For backwards compatibility and to leave as much room for future growth in these counters as possible: the newly introduced hypervisor stacktrace area will be stored at the end of the page. Conceptually this would've been: ``` struct xen_pmu_data_v2 { union { struct xen_pmu_data v1; uint8_t pad[PAGE_SIZE - sizeof(struct xen_pmu_hv_stacktrace)]; }; struct xen_pmu_hv_stacktrace pmu_stack; }; ``` But that is not valid C due to the flexible array member in v1. 127 is chosen as the stacktrace limit to match the default stacktrace limit in Linux. This is also compatible with old hypervisors, where stacktrace_nr would be left at 0 (the entire page is zeroed at allocation), and would just never return a stacktrace (compatible behaviour). Even on hypervisors that support the stacktrace struct, the stacktrace may only be available in certain configurations for now (e.g. CONFIG_FRAME_POINTER on x86-64 only for now). The guest registers however will be available whenever domain_id =3D=3D DOMID_XEN, to enable guest kernels to profile themselves. There is code duplication in 'struct xen_pmu_arch_guest', but xlat.h checker fails if I try to reuse that in the definition of xen_pmu_arch_t. There is padding at the end of `xen_pmu_hv_stacktrace` for future-proofing. No functional change. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/arch/x86/cpu/vpmu.c | 2 +- xen/arch/x86/cpu/vpmu_amd.c | 2 +- xen/arch/x86/cpu/vpmu_intel.c | 2 +- xen/include/public/arch-arm.h | 1 + xen/include/public/arch-ppc.h | 1 + xen/include/public/arch-riscv.h | 1 + xen/include/public/arch-x86/pmu.h | 157 ++++++++++++++++++------------ xen/include/public/pmu.h | 36 ++++++- 8 files changed, 137 insertions(+), 65 deletions(-) diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index 713311a1ac..286dc2af5f 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -404,7 +404,7 @@ static int vpmu_arch_initialise(struct vcpu *v) uint8_t vendor =3D current_cpu_data.x86_vendor; int ret; =20 - BUILD_BUG_ON(sizeof(struct xen_pmu_data) > PAGE_SIZE); + BUILD_BUG_ON(sizeof(struct xen_pmu_data) > MAX_XEN_PMU_DATA_SIZE); BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ); BUILD_BUG_ON(sizeof(struct xen_pmu_amd_ctxt) > XENPMU_CTXT_PAD_SZ); BUILD_BUG_ON(sizeof(struct xen_pmu_regs) > XENPMU_REGS_PAD_SZ); diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c index a6117dfebf..024d0c1eb7 100644 --- a/xen/arch/x86/cpu/vpmu_amd.c +++ b/xen/arch/x86/cpu/vpmu_amd.c @@ -543,7 +543,7 @@ static const struct arch_vpmu_ops *__init common_init(v= oid) } =20 if ( sizeof(struct xen_pmu_data) + - 2 * sizeof(uint64_t) * num_counters > PAGE_SIZE ) + 2 * sizeof(uint64_t) * num_counters > MAX_XEN_PMU_DATA_SIZE) { printk(XENLOG_WARNING "VPMU: Register bank does not fit into VPMU shared page\n"); diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c index 7ce98ee42e..9c8b5c1907 100644 --- a/xen/arch/x86/cpu/vpmu_intel.c +++ b/xen/arch/x86/cpu/vpmu_intel.c @@ -967,7 +967,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void) pmc_quirk =3D current_cpu_data.x86 =3D=3D 6; =20 if ( sizeof(struct xen_pmu_data) + sizeof(uint64_t) * fixed_pmc_cnt + - sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > PAGE_SIZE ) + sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > MAX_XEN_PMU_DAT= A_SIZE) { printk(XENLOG_WARNING "VPMU: Register bank does not fit into VPMU share page\n"); diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h index e2412a1747..3d61337fda 100644 --- a/xen/include/public/arch-arm.h +++ b/xen/include/public/arch-arm.h @@ -540,6 +540,7 @@ typedef uint64_t xen_callback_t; #ifndef __ASSEMBLY__ /* Stub definition of PMU structure */ typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t; +struct xen_pmu_arch_guest { uint8_t dummy; }; #endif =20 #endif /* __XEN_PUBLIC_ARCH_ARM_H__ */ diff --git a/xen/include/public/arch-ppc.h b/xen/include/public/arch-ppc.h index 4ca453a284..5e019ac8d5 100644 --- a/xen/include/public/arch-ppc.h +++ b/xen/include/public/arch-ppc.h @@ -101,6 +101,7 @@ struct xen_arch_domainconfig { }; =20 typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t; +struct xen_pmu_arch_guest { uint8_t dummy; }; =20 #endif /* !__ASSEMBLY__ */ =20 diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-risc= v.h index 168263b920..30f9ec609a 100644 --- a/xen/include/public/arch-riscv.h +++ b/xen/include/public/arch-riscv.h @@ -78,6 +78,7 @@ typedef struct arch_shared_info arch_shared_info_t; =20 /* Stub definition of PMU structure */ typedef struct xen_pmu_arch { uint8_t dummy; } xen_pmu_arch_t; +struct xen_pmu_arch_guest { uint8_t dummy; }; #endif =20 #endif /* __XEN_PUBLIC_ARCH_RISCV_H__ */ diff --git a/xen/include/public/arch-x86/pmu.h b/xen/include/public/arch-x8= 6/pmu.h index 5bd0aa6f77..bdc8218cbe 100644 --- a/xen/include/public/arch-x86/pmu.h +++ b/xen/include/public/arch-x86/pmu.h @@ -74,6 +74,23 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_regs_t); #define PMU_SAMPLE_REAL (1<<2) /* Sample is from realmode */ #define PMU_SAMPLE_PV (1<<3) /* Sample from a PV guest */ =20 +/* + * Architecture-specific information describing the state of the guest at + * the time of a PMU interrupt. + */ +struct xen_pmu_arch_guest { + union { + /* + * Processor's registers at the time of interrupt. + * WO for hypervisor, RO for guests. + */ + xen_pmu_regs_t regs; + /* Padding for adding new registers to xen_pmu_regs in the future = */ +#define XENPMU_REGS_PAD_SZ 64 + uint8_t pad[XENPMU_REGS_PAD_SZ]; + } r; +}; + /* * Architecture-specific information describing state of the processor at * the time of PMU interrupt. @@ -129,67 +146,86 @@ struct xen_pmu_arch { typedef struct xen_pmu_arch xen_pmu_arch_t; DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t); =20 + /* Memory layout: -* =E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AE -* =E2=94=82 struct xen_pmu_data =E2=94=82 -* =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=95=AE -* =E2=94=82 vcpu_id =E2= =94=82 =E2=94=82 -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 -* =E2=94=82 pcpu_id =E2= =94=82 =E2=94=82 -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 -* =E2=94=82 domain_id =E2= =94=82 =E2=94=82 -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 -* =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=94=82 =E2=94=82 -* =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=A4= =E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 -* =E2=94=82 pmu=E2=94=82 =E2=94=82 r =E2=94=82 regs =E2=94=82= =E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=9C=E2=94= =80=E2=94=80=E2=94=80=E2=95=AF (xen or guest) =E2=94=82=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 -* =E2=94=82 =E2=94=82 pmu_flags = =E2=94=82 =E2=94=82 -* =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 -* =E2=94=82 =E2=94=82 l =E2=94=82 lapic_lvtpc =E2=94=82=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2= =95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=AA=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 -* =E2=94=82 =E2=94=82 c =E2=94=82 =E2=94=82 =E2=94=82 amd =E2= =94=82 =E2=94=82 =E2=94=82 intel =E2=94=82 =E2=94=82=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 = =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2= =94=82 =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=95=AF =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 counter =E2=94=82 fixed_= counters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94= =82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 ctrls =E2=94=82 arch_c= ounters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94= =82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=94=9C=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 regs[] =E2=94=82 = =E2=94=86=E2=94=82 global_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=86= =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82struct =E2=94=86=E2=94= =82 global_ovf_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82xen_pmu_cntr_pair=E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82[counters] =E2=94=86=E2=94= =82 global_status =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 fixed_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 ds_area =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 pebs_enable =E2=94=82=E2=96=88pad=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 =E2=96=BD=E2=94= =82 debugctl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=95=9E=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 regs[] =E2=94=82 =E2=94=86[0]=E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=95=AF =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 uint64_t = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 [fixed_coun= ters] =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 struct = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 xen_pmu_cnt= r_pair=E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 [arch_count= ers] =E2=94=86 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=A1 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=86 =E2=94=82 =E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=94=82 = =E2=96=BD =E2=94=82 =E2=94=82 =E2=94=82 -* =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=94=82 =E2=94=82 -* =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 -* =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 -* =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 -* =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 -* =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 -* =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 PAGE_SIZE -* =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=97=81=E2=95=AF + * =E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95= =AE + * =E2=94=82 struct xen_pmu_data =E2=94=82 + * =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=95=AE + * =E2=94=82 vcpu_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 pcpu_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 domain_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =A4=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 pmu=E2=94=82 =E2=94=82 r =E2=94=82 regs =E2=94=82= =E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=9C=E2=94= =80=E2=94=80=E2=94=80=E2=95=AF (xen or guest) =E2=94=82=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=94=82 =E2=94=82 pmu_flags = =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=94=82 =E2=94=82 l =E2=94=82 lapic_lvtpc =E2=94=82=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=AA=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=94=82 =E2=94=82 c =E2=94=82 =E2=94=82 =E2=94=82 amd =E2= =94=82 =E2=94=82 =E2=94=82 intel =E2=94=82 =E2=94=82=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 = =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF = =E2=94=82 =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=95=AF =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 counter =E2=94=82 fixed= _counters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 ctrls =E2=94=82 arch_= counters =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=94=9C=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 regs[] =E2=94=82 = =E2=94=86=E2=94=82 global_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=86= =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82struct =E2=94=86=E2=94= =82 global_ovf_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82xen_pmu_cntr_pair=E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82[counters] =E2=94=86=E2=94= =82 global_status =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 fixed_ctrl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 ds_area =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =82 pebs_enable =E2=94=82=E2=96=88pad=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=86=E2=94= =9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 =E2=96=BD=E2=94= =82 debugctl =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=95=9E=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 regs[] =E2=94=82 =E2=94=86[0]=E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=95=AF =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 uint64_t = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 [fixed_coun= ters] =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2= =94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 struct = =E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 xen_pmu_cnt= r_pair=E2=94=86 =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 [arch_count= ers] =E2=94=86 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=A1 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=86 =E2=94=82 =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=94=82 = =E2=96=BD =E2=94=82 =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=82 =E2=95=98=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94= =82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 + * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * |############################################################| | + * |##########.------------------------------.##################| | + * |##########| struct xen_pmu_hv_stacktrace |##################| | + * +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | + * | ^ [stacktrace_nr-1] | | + * | : | | + * | stacktrace[stacktrace_nr] : [0] | | + * +------------------------------------------------------------+ | + * | stacktrace_nr | | + * +------------------------------------------------------------+ | + * | guest_domain_id | | + * +------------------------------------------------------------+ | + * |##pad#######################################################| | + * +=3D=3D=3D=3D=3D=3D=3D+=3D+=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | + * | guest | | r | regs |##pad######################| | + * +-------. +---. (xen or guest) |###########################| | + * | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D+ | + * | |##pad2############################################| | PAGE_= SIZE + * +=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ <. */ =20 #endif /* __XEN_PUBLIC_ARCH_X86_PMU_H__ */ @@ -202,4 +238,3 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t); * indent-tabs-mode: nil * End: */ - diff --git a/xen/include/public/pmu.h b/xen/include/public/pmu.h index 15decc024d..1879914ea6 100644 --- a/xen/include/public/pmu.h +++ b/xen/include/public/pmu.h @@ -20,7 +20,7 @@ #endif =20 #define XENPMU_VER_MAJ 0 -#define XENPMU_VER_MIN 1 +#define XENPMU_VER_MIN 2 =20 /* * ` enum neg_errnoval @@ -120,6 +120,40 @@ struct xen_pmu_data { xen_pmu_arch_t pmu; }; =20 +/* stacktrace entry populated from the end, + * so stacktrace_nr =3D=3D 1, means that stacktrace[PMU_MAX_STACKTRCE-1] i= s valid. + * This is done, so that PMU_MAX_STACKTRACE can be changed in the future, = without breaking the ABI. + * The struct itself (and thus the stacktrace_nr field) will always be pla= ced at the end of a page. + * + * See arch-x86/pmu.h for an example memory layout on x86. + * + * */ +#define PMU_MAX_STACKTRACE 127 + +/* WO for hypervisor, RO for guest */ +struct xen_pmu_hv_stacktrace { + uint64_t stacktrace[PMU_MAX_STACKTRACE]; + uint64_t stacktrace_nr; + + /* Like xen_pmu_data.domain_id, but instead of DOMID_XEN always contai= ns the + * domain that was interrupted (DOMID_SELF if it matches the sampling + * domain). + */ + domid_t guest_domain_id; + uint8_t pad[6]; + + /* When xen_pmu_data.domain_id =3D=3D DOMID_XEN, this will contain + * the registers of the guest that was interrupted. + * This is useful for Dom0 kernel stacktraces, even if the interrupt + * arrives while in Xen. + * */ + struct xen_pmu_arch_guest guest; +#define XEN_PMU_STACKTRACE_PAD 48 + uint8_t pad2[XEN_PMU_STACKTRACE_PAD]; +}; + +#define MAX_XEN_PMU_DATA_SIZE (PAGE_SIZE - sizeof(struct xen_pmu_hv_stackt= race)) + #endif /* __XEN_PUBLIC_PMU_H__ */ =20 /* --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456061; cv=none; d=zohomail.com; s=zohoarc; b=RrOBNjbmhyxu7Y+mOb7/HGe6Url91z8MyBxLc1mZIwnGEvbUHk2Ot2c5dRe7sexoN10hae7hiD+g7+oOVFrQKkmebTT9jz4iXpNF8VO56V1Xns7jPkfdkDcU2ZfS//bsEmSPVWHcQUYQkuxBmTxwyT0GudsCIIU6L3r1W36/0xc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456061; 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=gBTBBpfNZ3jKYuwP0HG6qEtafO3YUXLjWIrMoIhtdBk=; b=B3H0btxX0tptGayC32I5rlRNBuQYEgixvYfWSgGKv4P5nWj/FmDtzZnZAcxVKTxS0HtDu8Ww+HzjlfJIHQrKaL9tj/5liAs2dsn8LKLQjrE+8e1YrMmIdOshi6xe1BmLQhjqP5V6Mu0SIO7+mgNOh8uNVvknZy5jvieWrrAjjro= 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 1753456061564272.8856689551966; Fri, 25 Jul 2025 08:07:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058060.1425758 (Exim 4.92) (envelope-from ) id 1ufK10-0003EN-U5; Fri, 25 Jul 2025 15:07:18 +0000 Received: by outflank-mailman (output) from mailman id 1058060.1425758; Fri, 25 Jul 2025 15:07:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK10-0003Cp-Mf; Fri, 25 Jul 2025 15:07:18 +0000 Received: by outflank-mailman (input) for mailman id 1058060; Fri, 25 Jul 2025 15:07:17 +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 1ufK0z-0002MW-7l for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:17 +0000 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [2a00:1450:4864:20::52c]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 0d7c54d9-6969-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 17:07:16 +0200 (CEST) Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-607cf70b00aso4372514a12.2 for ; Fri, 25 Jul 2025 08:07:16 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:15 -0700 (PDT) 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: 0d7c54d9-6969-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456036; x=1754060836; 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=gBTBBpfNZ3jKYuwP0HG6qEtafO3YUXLjWIrMoIhtdBk=; b=h8GDILNGtWv+NXF+NWv6Gv4dIos4IpdVHnyWDR8gD0oMpexmQyxRvjGUSTyZS/f2X0 VFCAnk/ICN+7Em5eaXT6HF/E5FH1uxnX+2vcPhtcqsWHnHgcg+zalSHDD3vW+wThaqOr gWlsqVrKpKapnlFl6XFBlO+PJfon3sIEFyz4E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456036; x=1754060836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gBTBBpfNZ3jKYuwP0HG6qEtafO3YUXLjWIrMoIhtdBk=; b=xHq71RuHzP0NKOrq/FqwZVpXD5B5VSi5QInkmMJzE9NH0vOOOPLVv9l2rNGKUVx6JC ecA053XgZV97SJM0b/IFecrUvR4fiSXY1NTRXIQiN4n82BWG/U/Q+uuMN39+m09ulMww wDInkayRBhf9RDHtLsY1a+j/7ofHAU074bsuoRExWkRV1iGMwcQAc7uKXWZEdkpw25V9 TkwMS+9gPvIatpOaC12bE7bguvlzLJxUL6nKYPp77ubQOqOSBrw2bc6pexp2+cuS0vYz FIrDW7tJB1JbnJyD4mU11lwaQ38yx1vh6sL68mVwZVc0k3ficQrwcj0X29gW6vZ+ZY7v +uqw== X-Gm-Message-State: AOJu0Yz+HmdLciw9Q6dtDv8RoUjgjCkmf0CR9aiekiSOp6RDTzI1pKap hVJTjZSIx0cUfMqdCC2z1HcDvQ3IFwL8nG5ORGzTj1AN/jCPmQAunEJxL2oBaQHlKKnm/ycfEGc 71zaQdao= X-Gm-Gg: ASbGncuJTBYxw2/9OwdAkmsB0ymq3Wa9eIJd0/hFCz5RjcbZNqSZlZAhHG1XV97JPRb 30VJwzrIOq9pLlg3I5FqAXS7o2g0qVI9bqJx/+gx/yZrdJ4S0m574E9a6gZIVieOe+B00J158Ai ukUjOYQC8Lzz1ZqNdkwmZ+reTGOhb195c6DcNVkAgEA2sEvOV1CTGSJRVRbUxm+WN1lfnXp2bbe 8C0WVp0gpZ2NG+EFSc7kpFe7eJL6KGyQF5JEIr9w6DbnAkT2FKMMpYrFOAR+v/2utgPXPxX9Kf7 3uAKUoNX1zM2/06ziBw4w8NRY75zNAq4cOpkZZlwH2dfunOS1eoUw8PeTwrdFUzBTPlClod7yWe bnw/zhEPVrgi+GaqztMAf4gagIHJ5PeN/x5IgLvVqvlE5VLU= X-Google-Smtp-Source: AGHT+IG/spP0GWSnONilxK1+9gXs6Zxei3E+09IcWOveIX+iJJMWiaRBLqLA3PqKOT8ixlrSyJPXxA== X-Received: by 2002:a05:6402:3489:b0:608:3a2d:686b with SMTP id 4fb4d7f45d1cf-614f0b782fbmr2086056a12.0.1753456036121; Fri, 25 Jul 2025 08:07:16 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Anthony PERARD , Michal Orzel , Julien Grall , Stefano Stabellini , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 06/10] arch-x86/pmu.h: convert ascii art diagram to Unicode Date: Fri, 25 Jul 2025 16:06:42 +0100 Message-ID: <8d7f3eb14bee79c63af02b228fa02761ae2db6c5.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456062611116600 Using `aa2u` tool. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/include/public/arch-x86/pmu.h | 47 ++++++++++++++++--------------- xen/include/public/pmu.h | 2 +- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/xen/include/public/arch-x86/pmu.h b/xen/include/public/arch-x8= 6/pmu.h index bdc8218cbe..92ae4dbb1d 100644 --- a/xen/include/public/arch-x86/pmu.h +++ b/xen/include/public/arch-x86/pmu.h @@ -75,8 +75,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_regs_t); #define PMU_SAMPLE_PV (1<<3) /* Sample from a PV guest */ =20 /* - * Architecture-specific information describing the state of the guest at - * the time of a PMU interrupt. + * Architecture-specific information describing state of the guest at + * the time of PMU interrupt. + * Even if the interrupt arrived while inside Xen, this will always contain + * the guest's state. */ struct xen_pmu_arch_guest { union { @@ -146,11 +148,10 @@ struct xen_pmu_arch { typedef struct xen_pmu_arch xen_pmu_arch_t; DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t); =20 - /* Memory layout: * =E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95= =AE * =E2=94=82 struct xen_pmu_data =E2=94=82 - * =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=95=AE + * =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=94=82 * =E2=94=82 vcpu_id = =E2=94=82 =E2=94=82 * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 * =E2=94=82 pcpu_id = =E2=94=82 =E2=94=82 @@ -207,25 +208,25 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t); * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86= =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2= =94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94= =86=E2=94=86=E2=94=86=E2=94=86=E2=94=86 =E2=94=86 * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 - * |############################################################| | - * |##########.------------------------------.##################| | - * |##########| struct xen_pmu_hv_stacktrace |##################| | - * +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | - * | ^ [stacktrace_nr-1] | | - * | : | | - * | stacktrace[stacktrace_nr] : [0] | | - * +------------------------------------------------------------+ | - * | stacktrace_nr | | - * +------------------------------------------------------------+ | - * | guest_domain_id | | - * +------------------------------------------------------------+ | - * |##pad#######################################################| | - * +=3D=3D=3D=3D=3D=3D=3D+=3D+=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ | - * | guest | | r | regs |##pad######################| | - * +-------. +---. (xen or guest) |###########################| | - * | +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D+ | - * | |##pad2############################################| | PAGE_= SIZE - * +=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ <. + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=95=AE=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 struct xen_pmu_hv_stacktrace =E2=94= =82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 =E2=96=B3 [stacktrace_nr-1] = =E2=94=82 =E2=94=82 + * =E2=94=82 =E2=94=86 = =E2=94=82 =E2=94=82 + * =E2=94=82 stacktrace[stacktrace_nr] =E2=94=86 [0] = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 stacktrace_nr = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82 guest_domain_id = =E2=94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 + * =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=94=82 =E2=94=82 + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=A4=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 guest =E2=94=82 =E2=94=82 r =E2=94=82 regs =E2=94= =82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =94=82 =E2=94=82 + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=95=AF =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF (xen or guest) = =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=82 + * =E2=94=82 =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 =E2=94=82 + * =E2=94=82 =E2=94=82=E2=96=88=E2=96=88pad2=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2= =96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96= =88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88= =E2=94=82 =E2=94=82 PAGE_SIZE + * =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=97=81=E2=95=AF */ =20 #endif /* __XEN_PUBLIC_ARCH_X86_PMU_H__ */ diff --git a/xen/include/public/pmu.h b/xen/include/public/pmu.h index 1879914ea6..6366a79169 100644 --- a/xen/include/public/pmu.h +++ b/xen/include/public/pmu.h @@ -148,7 +148,7 @@ struct xen_pmu_hv_stacktrace { * arrives while in Xen. * */ struct xen_pmu_arch_guest guest; -#define XEN_PMU_STACKTRACE_PAD 48 +#define XEN_PMU_STACKTRACE_PAD 56 uint8_t pad2[XEN_PMU_STACKTRACE_PAD]; }; =20 --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456061; cv=none; d=zohomail.com; s=zohoarc; b=fDgc9SpFeG847Xx9ofuWRlHJO6KvZFi4UIZXQfduxWmuf6MEMKC4SoZSfET4OEvTbs5H2GoEcICco6f095GBYKDmrOgp9bvBPPwdfYP/zIpKBYAalfsUR/8064cv5rtOEj+wL6eRNk8ZRieAFhSVwMckWad9xpOjrZzr7g1K6gQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456061; 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=UCFciTsMth7BhTHNua6fPncP83jM+wUQoTTdBleaR9Q=; b=WPFT7vbZLB9GIu+c+wQUbEh21C1kaxgyAs7VW4M01qqzHNGB4W2W5sunOULy1KCO6AL7u3nOTZdcMk9NqxdQM8nz1VqgmWsddmNfcxdVLShAhWWWA4zLafdr6ADXo1elZ2riipkj2x53WJd8GF5ckhx+UWvB7cWaqdawoMyDgFc= 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 1753456061892103.89996894210344; Fri, 25 Jul 2025 08:07:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058062.1425782 (Exim 4.92) (envelope-from ) id 1ufK13-0003qN-1H; Fri, 25 Jul 2025 15:07:21 +0000 Received: by outflank-mailman (output) from mailman id 1058062.1425782; Fri, 25 Jul 2025 15:07:20 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK12-0003p8-Mt; Fri, 25 Jul 2025 15:07:20 +0000 Received: by outflank-mailman (input) for mailman id 1058062; Fri, 25 Jul 2025 15:07:18 +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 1ufK10-0002MW-4q for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:18 +0000 Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [2a00:1450:4864:20::52f]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 0e025fd7-6969-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 17:07:17 +0200 (CEST) Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-60c9d8a169bso3705046a12.1 for ; Fri, 25 Jul 2025 08:07:17 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:16 -0700 (PDT) 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: 0e025fd7-6969-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456037; x=1754060837; 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=UCFciTsMth7BhTHNua6fPncP83jM+wUQoTTdBleaR9Q=; b=h56eLmGHVShfsrvvhHe1HTZ4tdhF95kbMdyYB3djpI3STd7jsw/Bwp2muq2rlU2Q3O 50/H0Wppn+sZR/JpZ5n040ayQcGJE4WLmRUh3hupRU6cKxm4yP80mS3kzfj7n/NUK1Ff fReOWJEHB/Z5tHT8E+N425cdIjuFY4fEvd/D4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456037; x=1754060837; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UCFciTsMth7BhTHNua6fPncP83jM+wUQoTTdBleaR9Q=; b=r3SUi9RRTcZKKAlQcfjWb8ckEYCJKjYzeLobavHbCWnrp/n/Ek3AntrMluhtpxkUOy kHzFy9Ryy68N2d+wqAYFv4zj2SU7lPhVQnGubrgs1TC+EAXn9h9sc2B3w/0FMxgVP1QU Kh+Zlw5nxQdBS/20pM0qGDrfWvznAuqdGZgvqva6M1PSUJhJoGqXwGVBdj0FIE37qSke 4i7fNsLUMNnkU2loj4N0kC5nxC++pPs/FtKYNZIrI1rKztDqXSSSH87Kwd+Oh+aLxbDm fgsDY7UuoV5OVBVJSIzXzLg87mkIk0TaxBWim0+1Xk3PJxiZpMi2QXcJKyEVKiEXOsd8 5hbQ== X-Gm-Message-State: AOJu0YyKbs0uyfIG6zZ9fFdoWykyt3H+ii6zYwC2zozf8Fhn/Wgc7mkw 0Who61kxRV9tAM0Qfl60OjvFoNSkJ/0Cpfe4SxzOZQxhTpE9IWKY9mHKIEChdOv3qDX1v2SrPZw mei9/LI0= X-Gm-Gg: ASbGnctlFvMriIfXZzV5a/QRS9ILS6elIN1Pfd4kECfwVh3jXucdEyW1X9fVN0D3VGB pm3vF57zARHcavMUJrKqLPQsiYZl9YearYIeGowmNF1oV9dwGPnDMmL8GVoT2qahctrjGdBkp0N FqczwfLrIYLVWMkBoMoQ+KZh1QkSYu6ACXTKoyHE/tUoJFotbdCQY6v1vH7Bba3Ii/GIUbFb3FQ iK7EPkMmumE+qGin1KurxQTAT5V+YIzCQbk2Jd+6Q6BgmyVEJJzLvSksLwkugfyWmgidqCXUT4U TiR7uMf6/Taov6a/3eIr79mwJ5CgMDeTbvdAKTd52SRyKQPJpX4TSIzwDu/suQhX5M0Bl1S+0tP Gw8BJI/3eD2TR1OLU3WJVgOF7pHgqR7eaF5+v X-Google-Smtp-Source: AGHT+IFfATSAiprGPxJLV6Aw5jVT7uW2HsF0Ca3Wr1ARDQsUeqtiope6oGWN1oyYHE+OynZp5Gdpyg== X-Received: by 2002:a05:6402:1e96:b0:607:e3ec:f8ea with SMTP id 4fb4d7f45d1cf-614f1bbc9demr2173711a12.6.1753456036974; Fri, 25 Jul 2025 08:07:16 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 07/10] arch-x86/vpmu.c: store guest registers when domain_id == DOMID_XEN Date: Fri, 25 Jul 2025 16:06:43 +0100 Message-ID: <4c2c02ae7de1c218b8f51a3c6a78f01bc81e79bd.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456062615116600 When Xen profiling is enabled (for HW domain only), then domain_id is set to DOMID_XEN, and Xen's IP is reported as the sample location. With VPMU >=3D 0.2 we can now report more information to help a guest construct a stacktrace, and store the guest's registers and domain_id into the new 'struct xen_pmu_hv_stracktrace'. Privileged (HW domain) guests can then trace themselves, even if the sample interrupt triggered inside Xen. This is useful if kernel or userspace stacktrace gather is enabled. For this to be effective a kernel change is required too, but it is backwards compatible with old kernels, that: * would ignore the newly stored data (it is towards the end of the page, in a previously unused area) * would report VPMU 0.1, and thus Xen would have xen_pmu_hv_stacktrace =3D= =3D NULL, and not report this information To avoid stale values the guest_domain_id is always initialized to the correct value, and ip is set to 0. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/arch/x86/cpu/vpmu.c | 33 ++++++++++++++++++++++++++++----- xen/arch/x86/include/asm/vpmu.h | 1 + 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index 286dc2af5f..770f63f95a 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -170,7 +170,7 @@ static inline void vpmu_convert_regs(struct xen_pmu_reg= s *r, uint64_t *flags, if (!is_hvm_vcpu(sampled)) { r->ss =3D cur_regs->ss; r->cs =3D cur_regs->cs; - if (!(sampled->arch.flags & TF_kernel_mode)) + if (flags && !(sampled->arch.flags & TF_kernel_mode)) *flags |=3D PMU_SAMPLE_USER; } else { struct segment_register seg; @@ -180,7 +180,7 @@ static inline void vpmu_convert_regs(struct xen_pmu_reg= s *r, uint64_t *flags, hvm_get_segment_register(sampled, x86_seg_ss, &seg); r->ss =3D seg.sel; r->cpl =3D seg.dpl; - if (!(sampled->arch.hvm.guest_cr[0] & X86_CR0_PE)) + if (flags && !(sampled->arch.hvm.guest_cr[0] & X86_CR0_PE)) *flags |=3D PMU_SAMPLE_REAL; } } @@ -240,6 +240,14 @@ void vpmu_do_interrupt(void) else domid =3D sampled->domain->domain_id; =20 + if (vpmu->xenpmu_hv_stacktrace) + { + vpmu->xenpmu_hv_stacktrace->guest_domain_id =3D domid; + + /* avoid stale values when domid !=3D DOMID_XEN */ + vpmu->xenpmu_hv_stacktrace->guest.r.regs.ip =3D 0; + } + /* Store appropriate registers in xenpmu_data */ #ifdef CONFIG_COMPAT /* FIXME: 32-bit PVH should go here as well */ @@ -275,6 +283,11 @@ void vpmu_do_interrupt(void) is_hardware_domain(sampling->domain) ) { cur_regs =3D regs; + if (vpmu->xenpmu_hv_stacktrace) + { + vpmu_convert_regs(&vpmu->xenpmu_hv_stacktrace->guest.r= .regs, + NULL, sampled, guest_cpu_user_regs()= ); + } domid =3D DOMID_XEN; } else @@ -546,6 +559,7 @@ static void vpmu_cleanup(struct vcpu *v) vpmu_arch_destroy(v); xenpmu_data =3D vpmu->xenpmu_data; vpmu->xenpmu_data =3D NULL; + vpmu->xenpmu_hv_stacktrace =3D NULL; =20 spin_unlock(&vpmu->vpmu_lock); =20 @@ -572,6 +586,7 @@ static int pvpmu_init(struct domain *d, xen_pmu_params_= t *params) struct vpmu_struct *vpmu; struct page_info *page; uint64_t gfn =3D params->val; + void *vpmu_page; =20 if ( (params->vcpu >=3D d->max_vcpus) || (d->vcpu[params->vcpu] =3D=3D= NULL) ) return -EINVAL; @@ -601,7 +616,8 @@ static int pvpmu_init(struct domain *d, xen_pmu_params_= t *params) return -EEXIST; } =20 - v->arch.vpmu.xenpmu_data =3D __map_domain_page_global(page); + vpmu_page =3D __map_domain_page_global(page); + v->arch.vpmu.xenpmu_data =3D vpmu_page; if ( !v->arch.vpmu.xenpmu_data ) { spin_unlock(&vpmu->vpmu_lock); @@ -609,8 +625,15 @@ static int pvpmu_init(struct domain *d, xen_pmu_params= _t *params) return -ENOMEM; } =20 - if ( vpmu_arch_initialise(v) ) - put_vpmu(v); + if (params->version.maj > 0 || params->version.min >=3D 2) + v->arch.vpmu.xenpmu_hv_stacktrace =3D + (void *)((uint8_t *)vpmu_page + PAGE_SIZE - + sizeof(struct xen_pmu_hv_stacktrace)); + else + v->arch.vpmu.xenpmu_hv_stacktrace =3D NULL; + + if (vpmu_arch_initialise(v)) + put_vpmu(v); =20 spin_unlock(&vpmu->vpmu_lock); =20 diff --git a/xen/arch/x86/include/asm/vpmu.h b/xen/arch/x86/include/asm/vpm= u.h index dae9b43dac..df28f80f0f 100644 --- a/xen/arch/x86/include/asm/vpmu.h +++ b/xen/arch/x86/include/asm/vpmu.h @@ -55,6 +55,7 @@ struct vpmu_struct { size_t context_size; size_t priv_context_size; struct xen_pmu_data *xenpmu_data; + struct xen_pmu_hv_stacktrace *xenpmu_hv_stacktrace; /* only set if cli= ent vpmu >=3D 0.2 */ spinlock_t vpmu_lock; }; =20 --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456066; cv=none; d=zohomail.com; s=zohoarc; b=Jr0pB2dUxAXh9OlbYi9sHX1yZ98+GN8GVzlbZ47kRxjyLLBfOHBS0llw9D0DDol33W3G3AYVC/OGbDj7ckqchxiC/eRfqqlIz6LwET/eqb3Cke5XHjW4C0TIyi8gvSogZ+uzaYsRwxJ5m6u78II2LfJKJdQSaYOsiH4rlYG5K68= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456066; 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=pgdrUaRK51EGFDQFL2vaOaEhFZOTQJ0jVrsmZeYmDCg=; b=UkZTJsZFgi5zfgclspvxUEqk6k5C6kmEYNoMQRGi+kbYEngIlJTUlS0Rkf4GyFCMS5KD1U+tMQrX3BAEiC/3nZnN6/56Z0RC3b8joxLQMS56DtmoNcGGgvwfQKyUCkrqA0JbTg+0dbNaPeStLhlI9w4wZAIzjznm6rJpmGJYGx4= 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 1753456065974976.279515304926; Fri, 25 Jul 2025 08:07:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058063.1425790 (Exim 4.92) (envelope-from ) id 1ufK13-0003vr-MA; Fri, 25 Jul 2025 15:07:21 +0000 Received: by outflank-mailman (output) from mailman id 1058063.1425790; Fri, 25 Jul 2025 15:07:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufK13-0003tk-1G; Fri, 25 Jul 2025 15:07:21 +0000 Received: by outflank-mailman (input) for mailman id 1058063; Fri, 25 Jul 2025 15:07:20 +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 1ufK11-0002MQ-VR for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:19 +0000 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [2a00:1450:4864:20::536]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0e778261-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:18 +0200 (CEST) Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-60c5b8ee2d9so4566074a12.2 for ; Fri, 25 Jul 2025 08:07:18 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:17 -0700 (PDT) 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: 0e778261-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456038; x=1754060838; 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=pgdrUaRK51EGFDQFL2vaOaEhFZOTQJ0jVrsmZeYmDCg=; b=SO6IRMWh/gS8wuFAIEbGqOVFcHgvJkfdkqWy8zzRA5BIVj72v6/d9a2Dh0cUkvcTMk DHpmCTngqCx0DWW8ynTcbLXgZknWevpnS6jtF4TvnHlfOoUf1/hhqLrrQb5gt+j/0qIO 7Ka9or+FzHgRdit1h9tSdQ1ZrQ4vqq5TDLTR0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456038; x=1754060838; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pgdrUaRK51EGFDQFL2vaOaEhFZOTQJ0jVrsmZeYmDCg=; b=BEp5Gy/5uS2CjwKjhd920y2LqZ0r6pIdO/50ft4+b5z0G2rjpbs4w9c09YD7vyYAeT PWMWvYsKh4+2QO4EsmxeaHg5v9xQ73YbtfphbudeZrJTsBTIgsUhCQaql7KwTFZvpM0X 10yRrwJOeXFEmquhoT8YjHz7mTOpSqZasbmXQ5UFnjvAyDkQzVONMVr9+ilksRlaaUzW ruru6tdgHzZfHOdwYyuh6qOW08R08hpIl4JbnUQF/DgHPhRvCrOD8oRi64pUZzZA8mHs aX42YEPcoBm2kJ1VO4J8lLF/c36NAL+nJpDdigP+Ni1rXHQ6jvnIT4Ggqm9ZdRBsu+FF FYBg== X-Gm-Message-State: AOJu0YwhsrMzbyShYbjyUuHOxYMt40qd2/h1nFdiSu4lYU6g+JkmTxnR Rkdb/UuSHEx7HBoIoD4D3ni4K7keRmD4IjBHGCF7He6faHNFCaPTOHDZOiItrpijQoWueaD9QkT hEYSPuJQ= X-Gm-Gg: ASbGnctHKNuqbfU3JyyD4EBSWsmHpJQDsLeg/8INDglFDXPZXBu6XR0CQhUbVQKv1Os BhwPEzDDMq7Ra6qEtKAhEQMnNlueovgdh3O0hFqQMsnpmTXKfHE56VcMANnyf2KpLPo2CB01QQt eyFdldThyD5hjCf89FEAsAgUGBf7vQx41V3jxFT1Lfwo02YeeQxc069TzovZVbLLQ8OEU0kdMNy BQn4D3w4w0AAlLxmeWeIReCi4XRfLrASGa3xR3UjtOoQxcGdNY33/XTCvh1qd8YoLUMAvvAzXbN bLm29UHEF+9rwAG2G76iYnsXgAYLZCMnkRNLxvEEfCAO6FIMCitZez+bh6OzsJhE/liSz7CTnWS fMCkV3vB+Eeic7Fkj47R1uS07R+prBpwDMhZu X-Google-Smtp-Source: AGHT+IFkZB1eCc3nFd05rIzbxLA6V7k3SXjt0e1xZdY+847AaGsGEpk/zqlZBztde+fqnZoNbtS/7A== X-Received: by 2002:a05:6402:354f:b0:612:a77e:1816 with SMTP id 4fb4d7f45d1cf-614f0b348ebmr2142898a12.0.1753456037883; Fri, 25 Jul 2025 08:07:17 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 08/10] pmu.h: expose a hypervisor stacktrace feature Date: Fri, 25 Jul 2025 16:06:44 +0100 Message-ID: <16c0a94b10578eaf1e033307dc2b8a9c4321a79b.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456072454116600 For now this'll only be expected to work when the hypervisor is compiled with frame pointers, and only when the domain is privileged enough to profile Xen (i.e. it is the hardware domain running in HV or ALL modes). The stacktrace feature is a flag, rather than a new mode, and would simply report a stacktrace of depth 0 in other cases. Old hypervisors with VPMU 0.1 would also report a stracktrace of depth 0, due to implicit zero-filling of the page that contains 'struct xen_pmu_d= ata'. This is just the interface, followup commit implements it. No functional change. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/include/public/pmu.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xen/include/public/pmu.h b/xen/include/public/pmu.h index 6366a79169..85b2bbed74 100644 --- a/xen/include/public/pmu.h +++ b/xen/include/public/pmu.h @@ -80,10 +80,12 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_params_t); * Architectural Performance Events exposed by * cpuid and listed in the Intel developer's = manual * (ignored on AMD). + * - XENPMU_FEATURE_HV_STACKTRACE: Hypervisor stacktraces (when compiled w= ith frame pointers) */ #define XENPMU_FEATURE_INTEL_BTS (1<<0) #define XENPMU_FEATURE_IPC_ONLY (1<<1) #define XENPMU_FEATURE_ARCH_ONLY (1<<2) +#define XENPMU_FEATURE_HV_STACKTRACE (1<<3) =20 /* * Shared PMU data between hypervisor and PV(H) domains. --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456060; cv=none; d=zohomail.com; s=zohoarc; b=Hug2R09WqgKk4HqkFyZAN+dfsIGEYyX3rFEGNnHdaVggIGkBweaji8rNH2UEKUZOmu00cYa8yJOV5/qi3tHzy+/cZ5hK69vQNEF3uCMwO6BzqbCVLdkfxTVDAZG2z8gALKB81HC7Q0t74OWKHXf1qxi86G7W8xWJZ0kjh90XPIM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456060; 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=YYnUasTV+zm9xSwC+rnNPtEif5Y37T5yyWBhUxrNmT8=; b=g75ga4aHvLWbsilZ9w6NiUZZ3ISqYqetywKVBXREPCLfA1Qwbki8lXoTzbGWRVWjmyhR11eOIltVRjDw6FvZxHbi83zYwXf3kkTu4In/5bPakFicORh+9VVdd1yyKxYjdlGwTd66ykWgeQ3bS6pkBm6YTuTPW3jqEbsRFU11VqU= 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 1753456060147410.1219577725685; Fri, 25 Jul 2025 08:07:40 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058065.1425806 (Exim 4.92) (envelope-from ) id 1ufK15-0004Qx-4c; Fri, 25 Jul 2025 15:07:23 +0000 Received: by outflank-mailman (output) from mailman id 1058065.1425806; Fri, 25 Jul 2025 15:07: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 1ufK14-0004Ol-N2; Fri, 25 Jul 2025 15:07:22 +0000 Received: by outflank-mailman (input) for mailman id 1058065; Fri, 25 Jul 2025 15:07:21 +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 1ufK12-0002MQ-UY for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:20 +0000 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [2a00:1450:4864:20::52a]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 0f0b6679-6969-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 17:07:19 +0200 (CEST) Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-60c01b983b6so4925254a12.0 for ; Fri, 25 Jul 2025 08:07:19 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:18 -0700 (PDT) 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: 0f0b6679-6969-11f0-b895-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456039; x=1754060839; 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=YYnUasTV+zm9xSwC+rnNPtEif5Y37T5yyWBhUxrNmT8=; b=Cu2wZGheDi6f4FMrEZ/V37AauQOumI62Ave2fXouj04woWNDej8K5NpN4n2v6ExEr0 hq4goRgAAcgu/dj7xJG1opTC6+wG45iu/Oy8jvNYx9Y3ASVDcsyn3bh+gSEqtkk9Tf+4 GITw9xrUXwOeECpUNU58nkntVqWhyjyxCLAQI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456039; x=1754060839; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YYnUasTV+zm9xSwC+rnNPtEif5Y37T5yyWBhUxrNmT8=; b=bAoNxvl0D1GeFpq7UKz80vNU5d+zZoA/cnAuhENuaaVvrwLcaassRknb/xnUa43/xa eQ/l8TcbxRH198hgd0IAei3ZbzoWfkGeRztpSCFTXMAkb2agC5UlglEIGIU6ffHNBh/U whvb6/ZiJfe1390DOF35RFMX/jVn/OyPeosZEdt1dsLE0nN7dTiVYzaVRKrlp9TTfOLp QN/AGiDJSH7nA0Qr1fL/T8acEcDCoT2gGpEhu9dtJROSVkiQGfgXG9UdtmgQrpX4ErXo hLk6k1aiGyo2lvEQIoZD7qjInQIuFCdEIgEe41DdkPGviU36i+/givxfHYWOZHkq8G+p Mj3w== X-Gm-Message-State: AOJu0Ywu+I8O/JrGghMpCuD/TUte4TbZx3+PaYa4lWMcAkaD13673wvo VsEz0uOEZpP0ye0ZY/D1IdJzlw6ag9iW7BP679eGJVayTBKfnHVxU0a1S7em31s1og5mFDpKSst cUUhzfoA= X-Gm-Gg: ASbGnctE3MfD8BB7tbx3TR+lTJ+VVVqR/uONTZrvJgqWJxU35TNB79bs8XlCAkHnyiy icIQatyACzpU3H5JFxLiKpnSdaSIyHT2oVU08uJZKpf8ZCLuNGHXmCIU3MizLHCWSpBRLMOwKgF aOdWkegK6c80LB8S1Vy6iXZKDjkRSMtzxptnJwv30EP0JI7yxvv7SAhpqOJS4b9HzXbndATNSOJ ZqfbAADHF5519+CKlz8NZ06lorHFul519+nMtj5zkMCeRP9wFxIlWahjXiErbu5z4HKqe0dpuvt 9M0dcPA++cIBYWnva9aYGSB9YTJzWqLprl52kjR8DtidIrU0/FB/9EhyQbqStDB4AyGwYwE+a1O eoi0S8CqS1ioYx8Kw6E/VEacOONMZswv3QdFvcKpDGk/l6gM= X-Google-Smtp-Source: AGHT+IF0fD1fZ1Kqp6yAx992EiFvQyLihF4nuLIh9Le7Zvu5Ge5vBP/ssk+x4md1HyxOI5uZpm+i9A== X-Received: by 2002:a50:a44b:0:b0:60c:3ecd:5140 with SMTP id 4fb4d7f45d1cf-614d130ccc0mr4264934a12.0.1753456038794; Fri, 25 Jul 2025 08:07:18 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 09/10] vpmu.c hypervisor stacktrace support in vPMU Date: Fri, 25 Jul 2025 16:06:45 +0100 Message-ID: <385774cdae27518e9f8e907e3e8b0c64ee701735.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456062545116600 Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/arch/x86/cpu/vpmu.c | 53 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index 770f63f95a..ad02ab9dd8 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -160,9 +160,51 @@ static inline struct vcpu *choose_hwdom_vcpu(void) return hardware_domain->vcpu[idx]; } =20 +static inline void vpmu_hypervisor_stacktrace(struct xen_pmu_hv_stacktrace= *xenpmu_stack, uint64_t rsp, uint64_t rbp) +{ +#ifdef CONFIG_FRAME_POINTER + /* Based on _show_trace in ../traps.c, + * TODO: there should be an iterator to share this code + * */ + unsigned long *frame, addr; + uint64_t low =3D rsp, high =3D get_stack_trace_bottom(rsp), next =3D r= bp; + + while(xenpmu_stack->stacktrace_nr < sizeof(xenpmu_stack->stacktrace) /= sizeof(xenpmu_stack->stacktrace[0])) { + /* Valid frame pointer? */ + if ( (next < low) || (next >=3D high) ) + { + /* + * Exception stack frames have a different layout, denoted by = an + * inverted frame pointer. + */ + next =3D ~next; + if ( (next < low) || (next >=3D high) ) + break; + frame =3D (unsigned long *)next; + next =3D frame[0]; + addr =3D frame[(offsetof(struct cpu_user_regs, rip) - + offsetof(struct cpu_user_regs, rbp)) + / BYTES_PER_LONG]; + } + else + { + /* Ordinary stack frame. */ + frame =3D (unsigned long *)next; + next =3D frame[0]; + addr =3D frame[1]; + } + + xenpmu_stack->stacktrace[PMU_MAX_STACKTRACE - 1 - xenpmu_stack->st= acktrace_nr++] =3D addr; + + low =3D (unsigned long)&frame[2]; + } +#endif +} + static inline void vpmu_convert_regs(struct xen_pmu_regs *r, uint64_t *fla= gs, struct vcpu *sampled, - const struct cpu_user_regs *cur_regs)= { + const struct cpu_user_regs *cur_regs) +{ r->ip =3D cur_regs->rip; r->sp =3D cur_regs->rsp; r->flags =3D cur_regs->rflags; @@ -246,6 +288,7 @@ void vpmu_do_interrupt(void) =20 /* avoid stale values when domid !=3D DOMID_XEN */ vpmu->xenpmu_hv_stacktrace->guest.r.regs.ip =3D 0; + vpmu->xenpmu_hv_stacktrace->stacktrace_nr =3D 0; } =20 /* Store appropriate registers in xenpmu_data */ @@ -287,6 +330,11 @@ void vpmu_do_interrupt(void) { vpmu_convert_regs(&vpmu->xenpmu_hv_stacktrace->guest.r= .regs, NULL, sampled, guest_cpu_user_regs()= ); + + /* can only call this when domid =3D=3D DOMID_XEN */ + if (vpmu_features & XENPMU_FEATURE_HV_STACKTRACE) + vpmu_hypervisor_stacktrace(vpmu->xenpmu_hv_stacktrac= e, + regs->rsp, regs->rbp); } domid =3D DOMID_XEN; } @@ -747,7 +795,8 @@ long do_xenpmu_op( case XENPMU_feature_set: if ( pmu_params.val & ~(XENPMU_FEATURE_INTEL_BTS | XENPMU_FEATURE_IPC_ONLY | - XENPMU_FEATURE_ARCH_ONLY)) + XENPMU_FEATURE_ARCH_ONLY | + XENPMU_FEATURE_HV_STACKTRACE)) return -EINVAL; =20 spin_lock(&vpmu_lock); --=20 2.47.1 From nobody Sun Dec 14 01:39:23 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; 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=cloud.com ARC-Seal: i=1; a=rsa-sha256; t=1753456066; cv=none; d=zohomail.com; s=zohoarc; b=GhEhz8qtz5r/ytPlavhP20XkgAGr+xS0gJ8utXK7YUFqGUqhXGrnrvJbEvAOvXDllSxp7hhTEkA1hABnv3+NCPfZtjMgubbF1GFOgS9kc9T+Fm3NKVYgTtcz5BkyIv0X54YTlwfeYy5t/zGJfrd7us5I6KEoRcjlg5GTcq3OTHM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753456066; 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=vInKQUDym/V0LtSN5zjRIc7mW05wzM+9RxF82LfYmjw=; b=jgGklQcjb0WpPkRW/L7gmHC6IrRr/FvXIPzcS1qBm8TA/p6iHkq/LFVU4QaAH54ggeuLFTMxtxSaPMJbzLqhw2wdwlFGnmeSObq1YuNulnoFxWjFiXfUUftGvfTvr+hSsxlFiCJxUpKxo1b2d2MEAl30qBxSgN9AIpr8MSPMBkM= 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 1753456066100582.7498151129151; Fri, 25 Jul 2025 08:07:46 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1058064.1425800 (Exim 4.92) (envelope-from ) id 1ufK14-0004KE-Ia; Fri, 25 Jul 2025 15:07:22 +0000 Received: by outflank-mailman (output) from mailman id 1058064.1425800; Fri, 25 Jul 2025 15:07: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 1ufK14-0004J2-Aw; Fri, 25 Jul 2025 15:07:22 +0000 Received: by outflank-mailman (input) for mailman id 1058064; Fri, 25 Jul 2025 15:07:20 +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 1ufK12-0002MW-IN for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 15:07:20 +0000 Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [2a00:1450:4864:20::533]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 0f76e888-6969-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 17:07:20 +0200 (CEST) Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-60bfcada295so3616927a12.1 for ; Fri, 25 Jul 2025 08:07:20 -0700 (PDT) Received: from localhost.localdomain ([185.25.67.249]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-614cd0f730fsm2194208a12.22.2025.07.25.08.07.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 08:07:19 -0700 (PDT) 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: 0f76e888-6969-11f0-a31e-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.com; s=cloud; t=1753456040; x=1754060840; 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=vInKQUDym/V0LtSN5zjRIc7mW05wzM+9RxF82LfYmjw=; b=BMJsbxxQFYlyCl0IirpPW2WAPBsOeOWK24MLsJZCrRRsVD0ulQyf780JQGykKwUw97 a48aaOz+qd8i+THY3+P84GXV/CAPUiyhPo4y/s5VnJXg544CL3NBeq2eU3tmzxAGEzgn OeJmhv43ZqBG7LgOH202S1zwwHoNgD3A+PD1k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753456040; x=1754060840; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vInKQUDym/V0LtSN5zjRIc7mW05wzM+9RxF82LfYmjw=; b=gZICQEXOUPx8Eb53kyX5OPW8bEGiobw6iMT81LQ0K8MXb/0/+YsykaUqlSn10myb/t jwZeTDdYXAaKEm3v/4IkEmf+QNBqj9B8PG+4JXG0wr1YUipHkX6tzaOWYnK+C3ZetKmw jn48GgU+ctDStB+wlOQ1Pij9wkQjhT7ShonD897HbUuEf10lZq73L7YPi0/YAu9bxMzi nFJpO7X+iE7N+Oc68dwx/h9GbTIb5RmKG2gvx/5q7YflbtAHbi1Q4leqAjSUVCQu6jIp XL9WlD5eDLMUMyj8YSuTcWevbbTcHVVkTpd/kuRvy8hqTo5fS6SD9kpn7KwC1u0B+f4d 87Ew== X-Gm-Message-State: AOJu0YzSoqScmWd9R/0vZiSh0asjmH1IAuYO+xb/MqwjCgjeri3+ACvd qR0lHrd2huGPxf+noDYaVrXMzcowvHtlIx/x5SHLAanwM8j2/xYut9b6GZiJVcq0MVJH0cVaILE RyyMOfkI= X-Gm-Gg: ASbGnctjmApeSIcFEJ0YX8F8o6nzchePtzBAKOZyVeDNfIpnrJLqMoF2H5c+GIUqRb/ nd2hBOhc+wI0YRrN9m5v/iJDDS8t49IQ+1ze2uO+ACDzrWcrRS8IqBvpI9HSJ+m90WiId0OXgyk ISOUcsarTSckeZPzIy/jj5R1dn3fQz1T08lK6zmnrBIqir524vWOW1WW16pfpOxCNBBlUTxAi3/ mmSvvlhWrt4COiD3YrIGkNNOyYQ9Fys11Zgw74VJzCnLQ1tQTcK2DpAY3Y8EGkGvcokxcV9w8wS MFAo/HeBqItCooZBbh0JujRlnSbtqKULFU9KLmz8IZhXtiQtceWVAxvqNoJko8/4EKlbRKJEByJ hA2NimH8vGW3HxnsQnOvkEo7yYZIle5jAgMoY X-Google-Smtp-Source: AGHT+IFVNKsEQIGegS9fag3H4TJHSLllipGdqgNb69TweprTYiCTydPYPubRbaeQMd1VQlHtchNYRg== X-Received: by 2002:a50:baaa:0:b0:608:493a:cccf with SMTP id 4fb4d7f45d1cf-614f1dfa8d5mr1774213a12.30.1753456039518; Fri, 25 Jul 2025 08:07:19 -0700 (PDT) From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= To: xen-devel@lists.xenproject.org Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini , andriy.sultanov@vates.tech, boris.ostrovsky@oracle.com Subject: [RFC PATCH v1 10/10] xen/tools/pyperf.py: example script to parse perf output Date: Fri, 25 Jul 2025 16:06:46 +0100 Message-ID: <570fac654441fd0700a2a322d71c68f2e7b4e27d.1753372928.git.edwin.torok@cloud.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @cloud.com) X-ZM-MESSAGEID: 1753456068559116600 Looks up symbols by parsing the output of 'perf script -i perf.data.kvm'. Note that addr2line is very slow, and invoking it for each symbol would results in the script taking several minutes to process a trace that only lasts a few seconds. Processing only unique addresses, and processing multiple addresses in one go reduces this to acceptable running times. Based on an earlier script by Andriy Sultanov for parsing 'perf kvm report --stdio' output. This doesn't have to be added to the tree, eventually perf itself should be capable of performing this lookup, but meanwhile it is useful to have some way for automatically converting stacktraces. Signed-off-by: Edwin T=C3=B6r=C3=B6k --- xen/tools/pyperf.py | 146 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 xen/tools/pyperf.py diff --git a/xen/tools/pyperf.py b/xen/tools/pyperf.py new file mode 100644 index 0000000000..881e6e1e0b --- /dev/null +++ b/xen/tools/pyperf.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python3 +## run after 'perf kvm --host --guest record -a -F 99 -- xe vm-list' +# wraps the call to 'perf script' to get xen symbols instead of just addre= sses, like: +# +# perf 236848 [000] 67971.504330: 1 cycles:P: +# ffff82d04029fc73 [unknown] ([unknown]) +# ffff82d04029ebc2 [unknown] ([unknown]) +# ffff82d04029ef1f [unknown] ([unknown]) +# ffff82d0403081df [unknown] ([unknown]) +# ffff82d0402012d3 [unknown] ([unknown]) +# 7f2ea410469d __GI___ioctl+0x3d (/usr/lib64/libc.so.6) +# 55f9b3a8df5c perf_evsel__run_ioctl+0x6c (/usr/bin/perf) +# 55f9b397b152 __evlist__enable.constprop.0+0x112 (/usr/bin/per= f) +# 55f9b38c2643 __cmd_record.constprop.0+0x2833 (/usr/bin/perf) +# 55f9b38c3e1c cmd_record+0xeec (/usr/bin/perf) +# 55f9b38e3ed0 cmd_kvm+0x7d0 (/usr/bin/perf) +# 55f9b3961ff1 run_builtin+0x71 (/usr/bin/perf) +# 55f9b38adbeb main+0x68b (/usr/bin/perf) +# 7f2ea403314a __libc_start_call_main+0x7a (/usr/lib64/libc.so.= 6) +# 7f2ea403320b __libc_start_main@@GLIBC_2.34+0x8b (/usr/lib64/l= ibc.so.6) +# 55f9b38ade55 _start+0x25 (/usr/bin/perf) +#=20 +# Or with perf script -F+srcline: +# perf 236848 [000] 67971.504330: 1 cycles:P: +# ffff82d04029fc73 [unknown] ([unknown]) +# ffff82d04029ebc2 [unknown] ([unknown]) +# ffff82d04029ef1f [unknown] ([unknown]) +# ffff82d0403081df [unknown] ([unknown]) +# ffff82d0402012d3 [unknown] ([unknown]) +# 7f2ea410469d __GI___ioctl+0x3d (/usr/lib64/libc.so.6) +# libc.so.6[d569d] +# 55f9b3a8df5c perf_evsel__run_ioctl+0x6c (/usr/bin/perf) +# evsel.c:435 +# 55f9b397b152 __evlist__enable.constprop.0+0x112 (/usr/bin/per= f) +# evlist.c:573 +# 55f9b38c2643 __cmd_record.constprop.0+0x2833 (/usr/bin/perf) +# builtin-record.c:2524 +# 55f9b38c3e1c cmd_record+0xeec (/usr/bin/perf) +# builtin-record.c:4215 +# 55f9b38e3ed0 cmd_kvm+0x7d0 (/usr/bin/perf) +# builtin-kvm.c:2081 +# 55f9b3961ff1 run_builtin+0x71 (/usr/bin/perf) +# perf.c:322 +# 55f9b38adbeb main+0x68b (/usr/bin/perf) +# perf.c:375 +# 7f2ea403314a __libc_start_call_main+0x7a (/usr/lib64/libc.so.= 6) +# libc.so.6[414a] +# 7f2ea403320b __libc_start_main@@GLIBC_2.34+0x8b (/usr/lib64/l= ibc.so.6) +# libc.so.6[420b] +# 55f9b38ade55 _start+0x25 (/usr/bin/perf) +# ??:0 +#=20 +# TODO: BUG when we have only 1 unknown and not from hypervisor we print 2= bogus values +# and claim it was hypervisor +# This is useful for FlameGraphs + +from collections import defaultdict +from typing import Optional +import subprocess +import tempfile + +with open('/sys/hypervisor/version/major', 'r') as f: + major =3D f.read().rstrip() +with open('/sys/hypervisor/version/minor', 'r') as f: + minor =3D f.read().rstrip() +with open('/sys/hypervisor/version/extra', 'r') as f: + extra =3D f.read().rstrip() + +xen_version =3D f'{major}.{minor}{extra}' +xen_symbols =3D f'/boot/xen-syms-{xen_version}' +# TODO: srcline transform as we do for ours +report: bytes =3D subprocess.check_output(['perf', 'script', '-i', 'perf.d= ata.kvm']) + +# invoking addr2line for each symbol is very slow +# (takes several minutes to process a trace that way) +# Instead collect all addresses, and invoke addr2line once +# (this way we can also query it only for unique addresses) +maybe_in_hypervisor =3D False + +addresses =3D set() +lines =3D [] + +for rawline in report.splitlines(): + line =3D rawline.decode() + columns =3D line.split() + if line and line[0] !=3D ' ': + # beginning of new stacktrace, could start in hypervisor + maybe_in_hypervisor =3D True + if len(columns) =3D=3D 3 and maybe_in_hypervisor and columns[1] =3D=3D= '[unknown]' and columns[2] =3D=3D '([unknown])': + addr =3D columns[0] + addresses.add(addr) + lines.append((line, columns)) + else: + maybe_in_hypervisor =3D False + lines.append((line, [])) + +addr2loc: defaultdict[str, list[str]] =3D defaultdict(list) +with tempfile.NamedTemporaryFile() as tmp: + # TODO: add back -i, but sharing needs to be fixed + tmp.write(f"-asfe {xen_symbols}\n".encode("utf-8")) + for addr in addresses: + tmp.write((addr + "\n").encode("utf-8")) + tmp.flush() + cmd =3D ['addr2line', '@' + tmp.name] + symbols =3D subprocess.check_output(cmd).decode().splitlines() + # output format: + # address + # function_name + # source_file:line_number + # inlined by function_name + # inlined by source_file:line_number + # we keep each of these separate, but change the order, + # so that it works for a flamegraph (from callees to callers) + # source_file:line_number + # function_name + # inlined by source_file:line_number + # inlined by function_name + + # sometimes we get extra info in parenthesis, drop it: + # /builddir/build/BUILD/xen-4.21.0/xen/build-xen-debug/../arch/x86/pv/= emul-priv-op.c:1349 (discriminator 8) + addr =3D "" + prev: Optional[str] =3D None + for symline in symbols: + if symline.startswith("0x"): + addr =3D symline[2:] + addr2loc[addr] =3D [] + prev =3D None + else: + if prev: + for line in [symline, prev]: + addr2loc[addr].append("%024s %s_[h] ([%s])" % + (addr, line.split()[0], xen_symb= ols)) + prev =3D symline + + for (line, columns) in lines: + if len(columns) =3D=3D 3: + addr =3D columns[0] + loc =3D addr2loc.get(addr) + if loc: + # TODO: stacktrace needs to be shared when inlined functio= ns have common parent + for out in loc: + print(out) + else: + print(line) + else: + print(line) --=20 2.47.1