From: Andrew Jones <ajones@ventanamicro.com> To: kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, virtualization@lists.linux-foundation.org Cc: anup@brainfault.org, atishp@atishpatra.org, pbonzini@redhat.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, jgross@suse.com, srivatsa@csail.mit.edu, guoren@kernel.org, conor.dooley@microchip.com, Atish Patra <atishp@rivosinc.com> Subject: [PATCH v4 05/13] RISC-V: KVM: Add steal-update vcpu request Date: Wed, 20 Dec 2023 17:00:18 +0100 [thread overview] Message-ID: <20231220160012.40184-20-ajones@ventanamicro.com> (raw) In-Reply-To: <20231220160012.40184-15-ajones@ventanamicro.com> Add a new vcpu request to inform a vcpu that it should record its steal-time information. The request is made each time it has been detected that the vcpu task was not assigned a cpu for some time, which is easy to do by making the request from vcpu-load. The record function is just a stub for now and will be filled in with the rest of the steal-time support functions in following patches. Reviewed-by: Anup Patel <anup@brainfault.org> Reviewed-by: Atish Patra <atishp@rivosinc.com> Signed-off-by: Andrew Jones <ajones@ventanamicro.com> --- arch/riscv/include/asm/kvm_host.h | 3 +++ arch/riscv/kvm/vcpu.c | 5 +++++ arch/riscv/kvm/vcpu_sbi_sta.c | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h index 0eefd9c991ae..230b82c3118d 100644 --- a/arch/riscv/include/asm/kvm_host.h +++ b/arch/riscv/include/asm/kvm_host.h @@ -41,6 +41,7 @@ KVM_ARCH_REQ_FLAGS(4, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) #define KVM_REQ_HFENCE \ KVM_ARCH_REQ_FLAGS(5, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) +#define KVM_REQ_STEAL_UPDATE KVM_ARCH_REQ(6) enum kvm_riscv_hfence_type { KVM_RISCV_HFENCE_UNKNOWN = 0, @@ -372,4 +373,6 @@ bool kvm_riscv_vcpu_has_interrupts(struct kvm_vcpu *vcpu, u64 mask); void kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu); void kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu); +void kvm_riscv_vcpu_record_steal_time(struct kvm_vcpu *vcpu); + #endif /* __RISCV_KVM_HOST_H__ */ diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index bf3952d1a621..6995b8b641e4 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -541,6 +541,8 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) kvm_riscv_vcpu_aia_load(vcpu, cpu); + kvm_make_request(KVM_REQ_STEAL_UPDATE, vcpu); + vcpu->cpu = cpu; } @@ -614,6 +616,9 @@ static void kvm_riscv_check_vcpu_requests(struct kvm_vcpu *vcpu) if (kvm_check_request(KVM_REQ_HFENCE, vcpu)) kvm_riscv_hfence_process(vcpu); + + if (kvm_check_request(KVM_REQ_STEAL_UPDATE, vcpu)) + kvm_riscv_vcpu_record_steal_time(vcpu); } } diff --git a/arch/riscv/kvm/vcpu_sbi_sta.c b/arch/riscv/kvm/vcpu_sbi_sta.c index 839911dcd837..e28351c9488b 100644 --- a/arch/riscv/kvm/vcpu_sbi_sta.c +++ b/arch/riscv/kvm/vcpu_sbi_sta.c @@ -8,6 +8,10 @@ #include <asm/kvm_vcpu_sbi.h> #include <asm/sbi.h> +void kvm_riscv_vcpu_record_steal_time(struct kvm_vcpu *vcpu) +{ +} + static int kvm_sbi_sta_steal_time_set_shmem(struct kvm_vcpu *vcpu) { return SBI_ERR_FAILURE; -- 2.43.0 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Jones <ajones@ventanamicro.com> To: kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, virtualization@lists.linux-foundation.org Cc: anup@brainfault.org, atishp@atishpatra.org, pbonzini@redhat.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, jgross@suse.com, srivatsa@csail.mit.edu, guoren@kernel.org, conor.dooley@microchip.com, Atish Patra <atishp@rivosinc.com> Subject: [PATCH v4 05/13] RISC-V: KVM: Add steal-update vcpu request Date: Wed, 20 Dec 2023 17:00:18 +0100 [thread overview] Message-ID: <20231220160012.40184-20-ajones@ventanamicro.com> (raw) In-Reply-To: <20231220160012.40184-15-ajones@ventanamicro.com> Add a new vcpu request to inform a vcpu that it should record its steal-time information. The request is made each time it has been detected that the vcpu task was not assigned a cpu for some time, which is easy to do by making the request from vcpu-load. The record function is just a stub for now and will be filled in with the rest of the steal-time support functions in following patches. Reviewed-by: Anup Patel <anup@brainfault.org> Reviewed-by: Atish Patra <atishp@rivosinc.com> Signed-off-by: Andrew Jones <ajones@ventanamicro.com> --- arch/riscv/include/asm/kvm_host.h | 3 +++ arch/riscv/kvm/vcpu.c | 5 +++++ arch/riscv/kvm/vcpu_sbi_sta.c | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h index 0eefd9c991ae..230b82c3118d 100644 --- a/arch/riscv/include/asm/kvm_host.h +++ b/arch/riscv/include/asm/kvm_host.h @@ -41,6 +41,7 @@ KVM_ARCH_REQ_FLAGS(4, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) #define KVM_REQ_HFENCE \ KVM_ARCH_REQ_FLAGS(5, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) +#define KVM_REQ_STEAL_UPDATE KVM_ARCH_REQ(6) enum kvm_riscv_hfence_type { KVM_RISCV_HFENCE_UNKNOWN = 0, @@ -372,4 +373,6 @@ bool kvm_riscv_vcpu_has_interrupts(struct kvm_vcpu *vcpu, u64 mask); void kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu); void kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu); +void kvm_riscv_vcpu_record_steal_time(struct kvm_vcpu *vcpu); + #endif /* __RISCV_KVM_HOST_H__ */ diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index bf3952d1a621..6995b8b641e4 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -541,6 +541,8 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) kvm_riscv_vcpu_aia_load(vcpu, cpu); + kvm_make_request(KVM_REQ_STEAL_UPDATE, vcpu); + vcpu->cpu = cpu; } @@ -614,6 +616,9 @@ static void kvm_riscv_check_vcpu_requests(struct kvm_vcpu *vcpu) if (kvm_check_request(KVM_REQ_HFENCE, vcpu)) kvm_riscv_hfence_process(vcpu); + + if (kvm_check_request(KVM_REQ_STEAL_UPDATE, vcpu)) + kvm_riscv_vcpu_record_steal_time(vcpu); } } diff --git a/arch/riscv/kvm/vcpu_sbi_sta.c b/arch/riscv/kvm/vcpu_sbi_sta.c index 839911dcd837..e28351c9488b 100644 --- a/arch/riscv/kvm/vcpu_sbi_sta.c +++ b/arch/riscv/kvm/vcpu_sbi_sta.c @@ -8,6 +8,10 @@ #include <asm/kvm_vcpu_sbi.h> #include <asm/sbi.h> +void kvm_riscv_vcpu_record_steal_time(struct kvm_vcpu *vcpu) +{ +} + static int kvm_sbi_sta_steal_time_set_shmem(struct kvm_vcpu *vcpu) { return SBI_ERR_FAILURE; -- 2.43.0
next prev parent reply other threads:[~2023-12-20 16:00 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-12-20 16:00 [PATCH v4 00/13] RISC-V: Add steal-time support Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 01/13] RISC-V: paravirt: Add skeleton for pv-time support Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-29 0:16 ` Palmer Dabbelt 2023-12-29 0:16 ` Palmer Dabbelt 2023-12-20 16:00 ` [PATCH v4 02/13] RISC-V: Add SBI STA extension definitions Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-29 0:16 ` Palmer Dabbelt 2023-12-29 0:16 ` Palmer Dabbelt 2023-12-20 16:00 ` [PATCH v4 03/13] RISC-V: paravirt: Implement steal-time support Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-29 0:16 ` Palmer Dabbelt 2023-12-29 0:16 ` Palmer Dabbelt 2023-12-20 16:00 ` [PATCH v4 04/13] RISC-V: KVM: Add SBI STA extension skeleton Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` Andrew Jones [this message] 2023-12-20 16:00 ` [PATCH v4 05/13] RISC-V: KVM: Add steal-update vcpu request Andrew Jones 2023-12-20 16:00 ` [PATCH v4 06/13] RISC-V: KVM: Add SBI STA info to vcpu_arch Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 07/13] RISC-V: KVM: Add support for SBI extension registers Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 08/13] RISC-V: KVM: Add support for SBI STA registers Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 09/13] RISC-V: KVM: Implement SBI STA extension Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 10/13] RISC-V: KVM: selftests: Move sbi_ecall to processor.c Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 11/13] RISC-V: KVM: selftests: Add guest_sbi_probe_extension Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 12/13] RISC-V: KVM: selftests: Add steal_time test support Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:00 ` [PATCH v4 13/13] RISC-V: KVM: selftests: Add get-reg-list test for STA registers Andrew Jones 2023-12-20 16:00 ` Andrew Jones 2023-12-20 16:11 ` [PATCH v4 00/13] RISC-V: Add steal-time support Anup Patel 2023-12-20 16:11 ` Anup Patel 2023-12-29 6:52 ` Anup Patel 2023-12-29 6:52 ` Anup Patel 2024-01-20 21:09 ` patchwork-bot+linux-riscv 2024-01-20 21:09 ` patchwork-bot+linux-riscv
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231220160012.40184-20-ajones@ventanamicro.com \ --to=ajones@ventanamicro.com \ --cc=anup@brainfault.org \ --cc=aou@eecs.berkeley.edu \ --cc=atishp@atishpatra.org \ --cc=atishp@rivosinc.com \ --cc=conor.dooley@microchip.com \ --cc=guoren@kernel.org \ --cc=jgross@suse.com \ --cc=kvm-riscv@lists.infradead.org \ --cc=linux-riscv@lists.infradead.org \ --cc=palmer@dabbelt.com \ --cc=paul.walmsley@sifive.com \ --cc=pbonzini@redhat.com \ --cc=srivatsa@csail.mit.edu \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.