RISC-V: KVM: Record number of signal exits as a vCPU stat
authorJisheng Zhang <jszhang@kernel.org>
Sun, 2 Oct 2022 04:49:16 +0000 (10:19 +0530)
committerAnup Patel <anup@brainfault.org>
Sun, 2 Oct 2022 04:49:16 +0000 (10:19 +0530)
Record a statistic indicating the number of times a vCPU has exited
due to a pending signal.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Reviewed-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Anup Patel <anup@brainfault.org
arch/riscv/include/asm/kvm_host.h
arch/riscv/kvm/vcpu.c

index 60c517e4d57643708b64469ac78ffdb64978e613..dbbf43d526234822d396e26d6e0c18a2ecca9699 100644 (file)
@@ -67,6 +67,7 @@ struct kvm_vcpu_stat {
        u64 mmio_exit_kernel;
        u64 csr_exit_user;
        u64 csr_exit_kernel;
+       u64 signal_exits;
        u64 exits;
 };
 
index f55d15a8a410fc7908ccb5a5c6e5715cdde149c0..5414bf56bce554c752519bc81dc1bdef1601bae2 100644 (file)
@@ -29,6 +29,7 @@ const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = {
        STATS_DESC_COUNTER(VCPU, mmio_exit_kernel),
        STATS_DESC_COUNTER(VCPU, csr_exit_user),
        STATS_DESC_COUNTER(VCPU, csr_exit_kernel),
+       STATS_DESC_COUNTER(VCPU, signal_exits),
        STATS_DESC_COUNTER(VCPU, exits)
 };
 
@@ -993,6 +994,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
                if (signal_pending(current)) {
                        ret = -EINTR;
                        run->exit_reason = KVM_EXIT_INTR;
+                       ++vcpu->stat.signal_exits;
                }
 
                /*