From patchwork Fri Jun 20 13:06:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 898321 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f54:0:b0:3a4:ee3f:8f15 with SMTP id cm20csp1324867wrb; Fri, 20 Jun 2025 06:15:07 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWtkI2PPstkwzcp9ryV65t4UMIrcAtFb3x/aJ60R5A5wPCEhFtnTrM/X75ETDPvQUJnWSM6gw==@linaro.org X-Google-Smtp-Source: AGHT+IFHdbtJqK4jHqfEb17pt+TNF4EL5B8TC8pj78BxcHegdGR/Aez4TIS2+R1FfezrrDoRm4CE X-Received: by 2002:a05:6102:3046:b0:4e6:e126:6238 with SMTP id ada2fe7eead31-4e9c278f4d6mr1555259137.3.1750425307598; Fri, 20 Jun 2025 06:15:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1750425307; cv=none; d=google.com; s=arc-20240605; b=S+Lq8GFJ1+xKtDZp2ZYaQB2hOQVBBv83QVEmpYObPJonO9PJjJYDeKsoeYwPmr9OkW cffnGxExEkVpD4Pas34FXPPN3DDPccXa9FkC9Fzk2SZs47f8N+qT1Q+DtX7X7FwpNPk3 HHcNXj2BaWytWY7alLml1cU3sO3gGQvL1CrVQP0zSVZsBmm93HqRYWJzOuRXJFIS4tTa w93oqTS2V80HUuiRkzFLxPRYR63LxjlhfUQ4wgoL/yf8aON1C+TUvwBg+c8YlfVQoDPE fkP10oq+/aXiYRuYETZpPSzGSenOy79NA2qRo7ldQnRQnrZleLO8+GUiQinsGG8qPMva iKpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=qyHQEfn6inWyZRMUVI/8b1HegzN318xDx/IKxFDD3c0=; fh=rvFFfFUeajrBSZUZbNRiqOinI+1sct87Q5T4lCmXKcc=; b=bATi0Fd5f5APRr+xaeep/f0xmBHviXw8oyZLDeUiR01F6wa7X/aEjLuNSzUZELFdHB Ae0etFIOVUWzP7hEPRXzyRxDddhQjw44FClTKNvX1UpHXL7BQcnDtgFujpvWQG7MbHED FbI/lLmP9qnMzuk/zJWXdr26zT719c0whCExcHOm6y6Y4OaIUvWXzMbi9lCAdw/3pj42 /kjztW6wWiO6jmPvxvEBqwBvgt3F8+TBD5dvYSbiBNIvpecxpAWU9BG9Nzi1+rNpjKln tSkbURsxSogjqMUJ3+C2yiIpSjSoPMgIiwG/+UQlZc2F9ugZTWOXLIgkh9iyag7gGugg 55Yw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=reQtFOxd; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4e9c2d67a92si262561137.58.2025.06.20.06.15.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 20 Jun 2025 06:15:07 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=reQtFOxd; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uSbTO-0002Za-Dj; Fri, 20 Jun 2025 09:08:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uSbTM-0002YG-NE for qemu-devel@nongnu.org; Fri, 20 Jun 2025 09:08:00 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uSbTK-0004a6-VG for qemu-devel@nongnu.org; Fri, 20 Jun 2025 09:08:00 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4530921461aso15623115e9.0 for ; Fri, 20 Jun 2025 06:07:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1750424877; x=1751029677; darn=nongnu.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=qyHQEfn6inWyZRMUVI/8b1HegzN318xDx/IKxFDD3c0=; b=reQtFOxdZrO2AIStYH0aWZCh1TJOcskhZPBWMnOLhfty/lUoEGlSwigAXToc8ngw3m Om+nC8u4eYjH3EdQgeobe9f9c4GgbVciBKI5F1N03KTiAjBHF6Pj+LK+ZVctmA6/uUkH wl6A7jeKqxCHWZ2E0+8n8dC/ERX9oaMemhOCjg2ZMIe/UlVA/v7QbKzakPqVuq1xC6QH u1C+0/W9LB2ABHtrR2gxSu/CC0M7xsPLkt2mrQ6OsojSJprjXOIBCgoH66egUFiyBuWN zMUGlxFXWsnB3opCewYOqF09jFWT+mfId1QbSQY5kME5miwhSHfiztXpMpeLmwMjyZu3 ysDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750424877; x=1751029677; 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=qyHQEfn6inWyZRMUVI/8b1HegzN318xDx/IKxFDD3c0=; b=RiJlgFHbTrDllqkADWwcxzQObj/Jhu+bQICJ/GXtQyZYN/S/edqKtEmc0nUiucwm2C OffNHonNBH9fLp7tJ8I6qYKnPOxgjJ+Z9ynmLMYNDrKsMlPeGZ6r4MZqLCTm+hziSveW M1WV0MkcWLDlm2WxB4TaDb08oiklMXYA+mVaEPPZiT+KZSDC+KVq+spUM64xMOQQ9nYu sGNvBtLsVCoDk9CzY2IK2HHCjx0+JsOFYdt2/KRCFPg6FVaZ0kz0ZKOfI8aXvGbUwjTh 9/utX61JbK5Ncl/2vO//N6bqrdbU8YNbTRKX3lbleqnXbVbq0WccgS9soJ+8wprVCwHw nAXQ== X-Gm-Message-State: AOJu0YyK0q44wgzTqzH9ph5uyagGwca8yJBxIBcuO2q/417fefz3Sqr4 t4NimUHLDPsOhCJaOTnG5MDMvPkCaKXUWOJYocF0SS6YWqEcpzuU7xwaGsqKQVKAdaPapUBJbWR AgLpRCZI= X-Gm-Gg: ASbGncuHP3BCbOeG6/Sa2UN/4OMJPlAnJpqeR9G6+y+mAnoiIFk5zKJyqc5F0gyMgS7 UUyf44RTGJou3PqqVdipXTvmkG/f31KbJmPDFqcE9T1te7N6FpOtah+pn9uxrMJQ1pymUCO9qvN 6RlQIa4vD0BhFdY1hM/fTrL/6LE9LLSpNJeRXjFRMoi6vr0GXLcQV+enjZ8Wwr9AS7H9bvSHJG5 dcljXaM+lHc2SyKV0tSwTLmtF0VPTGYW3VvY6/LFENFqIrecbQ66vRsP9mu7aELpzNpvg7b12Oz 42XGDzoCqH/XdHD26Y+6PsGXKKSRtbQgR4nshbT/6xgJy0TMq078t5PSqP17YErzG+Op6Z3eZIR TMoVjM2701PV7+WG+xgjRa93Gzu6FpNqQ1pJ9 X-Received: by 2002:a05:600c:3b14:b0:43d:2313:7b49 with SMTP id 5b1f17b1804b1-4536539c469mr27259205e9.12.1750424876897; Fri, 20 Jun 2025 06:07:56 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4535eac8c16sm58396345e9.19.2025.06.20.06.07.55 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 20 Jun 2025 06:07:56 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Leif Lindholm , Richard Henderson , Radoslaw Biernacki , Alexander Graf , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Paolo Bonzini , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Phil Dennis-Jordan , =?utf-8?q?Alex_Benn=C3=A9e?= , Bernhard Beschow , Cleber Rosa , Peter Maydell , Cameron Esfahani , kvm@vger.kernel.org, qemu-arm@nongnu.org, Eric Auger , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Thomas Huth , Roman Bolshakov , John Snow Subject: [PATCH v2 08/26] target/arm/hvf: Log $pc in hvf_unknown_hvc() trace event Date: Fri, 20 Jun 2025 15:06:51 +0200 Message-ID: <20250620130709.31073-9-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250620130709.31073-1-philmd@linaro.org> References: <20250620130709.31073-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=philmd@linaro.org; helo=mail-wm1-x329.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Tracing $PC for unknown HVC instructions to not have to look at the disassembled flow of instructions. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- target/arm/hvf/hvf.c | 4 ++-- target/arm/hvf/trace-events | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index cc5bbc155d2..d4c58516e8b 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -2071,12 +2071,12 @@ int hvf_vcpu_exec(CPUState *cpu) cpu_synchronize_state(cpu); if (arm_cpu->psci_conduit == QEMU_PSCI_CONDUIT_HVC) { if (!hvf_handle_psci_call(cpu)) { - trace_hvf_unknown_hvc(env->xregs[0]); + trace_hvf_unknown_hvc(env->pc, env->xregs[0]); /* SMCCC 1.3 section 5.2 says every unknown SMCCC call returns -1 */ env->xregs[0] = -1; } } else { - trace_hvf_unknown_hvc(env->xregs[0]); + trace_hvf_unknown_hvc(env->pc, env->xregs[0]); hvf_raise_exception(cpu, EXCP_UDEF, syn_uncategorized()); } break; diff --git a/target/arm/hvf/trace-events b/target/arm/hvf/trace-events index a4870e0a5c4..b49746f28d1 100644 --- a/target/arm/hvf/trace-events +++ b/target/arm/hvf/trace-events @@ -5,10 +5,10 @@ hvf_inject_irq(void) "injecting IRQ" hvf_data_abort(uint64_t pc, uint64_t va, uint64_t pa, bool isv, bool iswrite, bool s1ptw, uint32_t len, uint32_t srt) "data abort: [pc=0x%"PRIx64" va=0x%016"PRIx64" pa=0x%016"PRIx64" isv=%d iswrite=%d s1ptw=%d len=%d srt=%d]" hvf_sysreg_read(uint32_t reg, uint32_t op0, uint32_t op1, uint32_t crn, uint32_t crm, uint32_t op2, uint64_t val) "sysreg read 0x%08x (op0=%d op1=%d crn=%d crm=%d op2=%d) = 0x%016"PRIx64 hvf_sysreg_write(uint32_t reg, uint32_t op0, uint32_t op1, uint32_t crn, uint32_t crm, uint32_t op2, uint64_t val) "sysreg write 0x%08x (op0=%d op1=%d crn=%d crm=%d op2=%d, val=0x%016"PRIx64")" -hvf_unknown_hvc(uint64_t x0) "unknown HVC! 0x%016"PRIx64 +hvf_unknown_hvc(uint64_t pc, uint64_t x0) "pc=0x%"PRIx64" unknown HVC! 0x%016"PRIx64 hvf_unknown_smc(uint64_t x0) "unknown SMC! 0x%016"PRIx64 hvf_exit(uint64_t syndrome, uint32_t ec, uint64_t pc) "exit: 0x%"PRIx64" [ec=0x%x pc=0x%"PRIx64"]" -hvf_psci_call(uint64_t x0, uint64_t x1, uint64_t x2, uint64_t x3, uint32_t cpuid) "PSCI Call x0=0x%016"PRIx64" x1=0x%016"PRIx64" x2=0x%016"PRIx64" x3=0x%016"PRIx64" cpu=0x%x" +hvf_psci_call(uint64_t x0, uint64_t x1, uint64_t x2, uint64_t x3, uint32_t cpuid) "PSCI Call x0=0x%016"PRIx64" x1=0x%016"PRIx64" x2=0x%016"PRIx64" x3=0x%016"PRIx64" cpuid=0x%x" hvf_vgic_write(const char *name, uint64_t val) "vgic write to %s [val=0x%016"PRIx64"]" hvf_vgic_read(const char *name, uint64_t val) "vgic read from %s [val=0x%016"PRIx64"]" hvf_illegal_guest_state(void) "HV_ILLEGAL_GUEST_STATE"