[PATCH v2 1/3] KVM: s390: Add signal_exits counter

Andrew Donnellan posted 3 patches 5 days, 18 hours ago
[PATCH v2 1/3] KVM: s390: Add signal_exits counter
Posted by Andrew Donnellan 5 days, 18 hours ago
Add a signal_exits counter for s390, as exists on arm64, loongarch, mips,
powerpc, riscv and x86.

This is used by kvm_handle_signal_exit(), which we will use when we
later enable CONFIG_VIRT_XFER_TO_GUEST_WORK.

Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
---
 arch/s390/include/asm/kvm_host.h | 1 +
 arch/s390/kvm/kvm-s390.c         | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index c2ba3d4398c5371526ddfd53b43607c00abc35a1..1b08a250fb341f7bd2d19810392c1c6e21673b64 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -146,6 +146,7 @@ struct kvm_vcpu_stat {
 	u64 instruction_diagnose_500;
 	u64 instruction_diagnose_other;
 	u64 pfault_sync;
+	u64 signal_exits;
 };
 
 #define PGM_OPERATION			0x01
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 16ba04062854a99ab7d48ac427b690006ea8e7eb..fa6b5150ca31e4d9f0bdafabc1fb1d90ef3f3d0d 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -185,7 +185,8 @@ const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = {
 	STATS_DESC_COUNTER(VCPU, instruction_diagnose_308),
 	STATS_DESC_COUNTER(VCPU, instruction_diagnose_500),
 	STATS_DESC_COUNTER(VCPU, instruction_diagnose_other),
-	STATS_DESC_COUNTER(VCPU, pfault_sync)
+	STATS_DESC_COUNTER(VCPU, pfault_sync),
+	STATS_DESC_COUNTER(VCPU, signal_exits)
 };
 
 const struct kvm_stats_header kvm_vcpu_stats_header = {
@@ -5364,6 +5365,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
 
 	if (signal_pending(current) && !rc) {
 		kvm_run->exit_reason = KVM_EXIT_INTR;
+		vcpu->stat.signal_exits++;
 		rc = -EINTR;
 	}
 

-- 
2.52.0
Re: [PATCH v2 1/3] KVM: s390: Add signal_exits counter
Posted by Janosch Frank 5 days, 11 hours ago
On 11/26/25 06:33, Andrew Donnellan wrote:
> Add a signal_exits counter for s390, as exists on arm64, loongarch, mips,
> powerpc, riscv and x86.
> 
> This is used by kvm_handle_signal_exit(), which we will use when we
> later enable CONFIG_VIRT_XFER_TO_GUEST_WORK.
> 
> Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>

Reviewed-by: Janosch Frank <frankja@linux.ibm.com>

> ---
>   arch/s390/include/asm/kvm_host.h | 1 +
>   arch/s390/kvm/kvm-s390.c         | 4 +++-
>   2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
> index c2ba3d4398c5371526ddfd53b43607c00abc35a1..1b08a250fb341f7bd2d19810392c1c6e21673b64 100644
> --- a/arch/s390/include/asm/kvm_host.h
> +++ b/arch/s390/include/asm/kvm_host.h
> @@ -146,6 +146,7 @@ struct kvm_vcpu_stat {
>   	u64 instruction_diagnose_500;
>   	u64 instruction_diagnose_other;
>   	u64 pfault_sync;
> +	u64 signal_exits;
>   };
>   
>   #define PGM_OPERATION			0x01
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index 16ba04062854a99ab7d48ac427b690006ea8e7eb..fa6b5150ca31e4d9f0bdafabc1fb1d90ef3f3d0d 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -185,7 +185,8 @@ const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = {
>   	STATS_DESC_COUNTER(VCPU, instruction_diagnose_308),
>   	STATS_DESC_COUNTER(VCPU, instruction_diagnose_500),
>   	STATS_DESC_COUNTER(VCPU, instruction_diagnose_other),
> -	STATS_DESC_COUNTER(VCPU, pfault_sync)
> +	STATS_DESC_COUNTER(VCPU, pfault_sync),
> +	STATS_DESC_COUNTER(VCPU, signal_exits)
>   };
>   
>   const struct kvm_stats_header kvm_vcpu_stats_header = {
> @@ -5364,6 +5365,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
>   
>   	if (signal_pending(current) && !rc) {
>   		kvm_run->exit_reason = KVM_EXIT_INTR;
> +		vcpu->stat.signal_exits++;
>   		rc = -EINTR;
>   	}
>   
>