From nobody Sat Nov 15 17:42:31 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4d81YM5qmQz6GgDl; Sat, 15 Nov 2025 17:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d81YM5K4Zz3WVT; Sat, 15 Nov 2025 17:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763228551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hgUNZ87NJlcD1buGjKIoJqadmT9fvwUKHjA72pxDmD4=; b=iNGPjgggI17GbWfZrtHc+CyVZHnDaHvXuSujHu7/4vs7ulomZ4WXu+e/QinWSJOQ8HQ0fq 7iJxQhT8ThU6xYDzgrzwm+Elr2OXQt3EDJeq8zGerGiFqFAd/hT9mlM+ZZ4nhsBCLLvRIy UXXlTkaEwnGf8BlG5gLIWxGx18AFhBqwpuhU9SCWSlSVhg6h8/svDLY4TajuxdFIGxTF0P jIr30mQO9b7ZhwDlDwkvbqrjIoBPb+I/RuZavzZLvtzZlHDsn+9djRMt3YbidfEm2A4xCE dsugRhJuAOWjTLbAKtB6sJJpXdNpgWLeNnl6zZ+5rxdAae31KCL1IclKJv0NsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763228551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hgUNZ87NJlcD1buGjKIoJqadmT9fvwUKHjA72pxDmD4=; b=XSbnx22dL1XMbnvqrnXg8YSXv+zNqJV2Rmg1jm4no6wpZorCQtI3/6KnD4Y++GaLewSztC h+OFwIdvBXFd8MNNlYEORAQNDV/2tDzkFiXUMA+jBRsboyepogZkIlQNXwl+6ozui89Ksn 28trq7/YPfeRk9GtKkXwmccWhbiWVG87AXh8xyLPjUA20PklDXSWPa1jo+cVUkclBndcyr bRKTL1SBgEV5BQhskAbvGlYSiOnO356nNKt7uFivfRxaY1zyJBLiY+7uYJN1Bcm1ieBpqT GFtB4gHNaQUtE5E/at3IPb7HMkIiFplMC4EA+5aMgKRxTvUjHpEkgXPfVvDHDw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763228551; a=rsa-sha256; cv=none; b=kS4pBran0Tc2K+q1thKpI3c2qLn8z8lX9A16HCdD3zNp+1omMVKAm7Yq+2ugcFwhUKW7df 7jxvUe052lf5ZvO9sO8FqyzWvue47uoluyMWy4f70edI6JCMHN/clbEKKkcPPvdidF4+jO jU81MBYEtZOg5fD4piURODL/T14n+inAv5+YgD2cIzCuNtDEuxSGibs3CnvfVcl3eCAC+e PueCuPMho1D3NALjEvSALvO+DGUw0bxjVY05RtRMS/Ti8ol7bRL2GdO5r5tyU4KAlwatFd 634jimJFOYrJg6tQASALVYFSXP0m77apWtuTkY05I/t7Gpk6Zg3+4vzsJq8PpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4d81YM4tV9z13Cy; Sat, 15 Nov 2025 17:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5AFHgVQu022444; Sat, 15 Nov 2025 17:42:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5AFHgVaF022439; Sat, 15 Nov 2025 17:42:31 GMT (envelope-from git) Date: Sat, 15 Nov 2025 17:42:31 GMT Message-Id: <202511151742.5AFHgVaF022439@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 47fdacee69ec - stable/15 - arm64/vmm: Don't set MDSCR_EL1.KDE when enabling single-stepping List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 47fdacee69ec8ccb18df76b7584ffc5ce9862ec2 Auto-Submitted: auto-generated The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=47fdacee69ec8ccb18df76b7584ffc5ce9862ec2 commit 47fdacee69ec8ccb18df76b7584ffc5ce9862ec2 Author: Mark Johnston AuthorDate: 2025-11-05 20:54:30 +0000 Commit: Mark Johnston CommitDate: 2025-11-15 17:42:08 +0000 arm64/vmm: Don't set MDSCR_EL1.KDE when enabling single-stepping When VHE mode is enabled, this results in a hang on the host. In particular, when MDSCR_EL2.KDE is set to 1 and the CPU is executing at EL_D, i.e., EL2, debug exceptions are enabled. In non-VHE mode, we call into the guest by trapping to EL2, which implicitly masks debug exceptions by setting PSTATE.D. However, in VHE mode, PSTATE.D remains clear, so when the guest's MDSCR_EL1 value is loaded, we immediately begin single-stepping. In non-VHE mode there is no need to set KDE either, so just stop setting it. Reviewed by: andrew MFC after: 3 days Sponsored by: CHERI Research Centre (EPSRC grant UKRI3001) Differential Revision: https://reviews.freebsd.org/D48965 (cherry picked from commit ac0032344ca256f758a5eeb0fd6089dd647b0496) --- sys/arm64/vmm/vmm_arm64.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sys/arm64/vmm/vmm_arm64.c b/sys/arm64/vmm/vmm_arm64.c index e293c99a6646..5bb038dec2d3 100644 --- a/sys/arm64/vmm/vmm_arm64.c +++ b/sys/arm64/vmm/vmm_arm64.c @@ -1365,19 +1365,18 @@ vmmops_setcap(void *vcpui, int num, int val) if (val != 0) { hypctx->debug_spsr |= (hypctx->tf.tf_spsr & PSR_SS); - hypctx->debug_mdscr |= hypctx->mdscr_el1 & - (MDSCR_SS | MDSCR_KDE); + hypctx->debug_mdscr |= (hypctx->mdscr_el1 & MDSCR_SS); hypctx->tf.tf_spsr |= PSR_SS; - hypctx->mdscr_el1 |= MDSCR_SS | MDSCR_KDE; + hypctx->mdscr_el1 |= MDSCR_SS; hypctx->mdcr_el2 |= MDCR_EL2_TDE; } else { hypctx->tf.tf_spsr &= ~PSR_SS; hypctx->tf.tf_spsr |= hypctx->debug_spsr; hypctx->debug_spsr &= ~PSR_SS; - hypctx->mdscr_el1 &= ~(MDSCR_SS | MDSCR_KDE); + hypctx->mdscr_el1 &= ~MDSCR_SS; hypctx->mdscr_el1 |= hypctx->debug_mdscr; - hypctx->debug_mdscr &= ~(MDSCR_SS | MDSCR_KDE); + hypctx->debug_mdscr &= ~MDSCR_SS; hypctx->mdcr_el2 &= ~MDCR_EL2_TDE; } break;