From: Andrew Jones <ajones@ventanamicro.com>
To: kvm-riscv@lists.infradead.org
Subject: [PATCH v2 05/13] RISC-V: KVM: Add steal-update vcpu request
Date: Thu, 14 Dec 2023 11:15:57 +0100 [thread overview]
Message-ID: <20231214101552.100721-20-ajones@ventanamicro.com> (raw)
In-Reply-To: <20231214101552.100721-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.
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
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
Subject: [PATCH v2 05/13] RISC-V: KVM: Add steal-update vcpu request
Date: Thu, 14 Dec 2023 11:15:57 +0100 [thread overview]
Message-ID: <20231214101552.100721-20-ajones@ventanamicro.com> (raw)
In-Reply-To: <20231214101552.100721-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.
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
Subject: [PATCH v2 05/13] RISC-V: KVM: Add steal-update vcpu request
Date: Thu, 14 Dec 2023 11:15:57 +0100 [thread overview]
Message-ID: <20231214101552.100721-20-ajones@ventanamicro.com> (raw)
In-Reply-To: <20231214101552.100721-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.
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-14 10:15 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-14 10:15 [PATCH v2 00/13] RISC-V: Add steal-time support Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` [PATCH v2 01/13] RISC-V: paravirt: Add skeleton for pv-time support Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-15 5:37 ` Anup Patel
2023-12-15 5:37 ` Anup Patel
2023-12-15 5:37 ` Anup Patel
2023-12-14 10:15 ` [PATCH v2 02/13] RISC-V: Add SBI STA extension definitions Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-15 5:38 ` Anup Patel
2023-12-15 5:38 ` Anup Patel
2023-12-15 5:38 ` Anup Patel
2023-12-14 10:15 ` [PATCH v2 03/13] RISC-V: paravirt: Implement steal-time support Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-15 5:54 ` Anup Patel
2023-12-15 5:54 ` Anup Patel
2023-12-15 5:54 ` Anup Patel
2023-12-15 8:19 ` Andrew Jones
2023-12-15 8:19 ` Andrew Jones
2023-12-15 8:19 ` Andrew Jones
2023-12-14 10:15 ` [PATCH v2 04/13] RISC-V: KVM: Add SBI STA extension skeleton Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-15 6:11 ` Anup Patel
2023-12-15 6:11 ` Anup Patel
2023-12-15 6:11 ` Anup Patel
2023-12-14 10:15 ` Andrew Jones [this message]
2023-12-14 10:15 ` [PATCH v2 05/13] RISC-V: KVM: Add steal-update vcpu request Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-15 6:16 ` Anup Patel
2023-12-15 6:16 ` Anup Patel
2023-12-15 6:16 ` Anup Patel
2023-12-14 10:15 ` [PATCH v2 06/13] RISC-V: KVM: Add SBI STA info to vcpu_arch Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-15 9:07 ` Anup Patel
2023-12-15 9:07 ` Anup Patel
2023-12-15 9:07 ` Anup Patel
2023-12-15 12:52 ` Andrew Jones
2023-12-15 12:52 ` Andrew Jones
2023-12-15 12:52 ` Andrew Jones
2023-12-14 10:15 ` [PATCH v2 07/13] RISC-V: KVM: Add support for SBI extension registers Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-14 10:15 ` Andrew Jones
2023-12-15 9:09 ` Anup Patel
2023-12-15 9:09 ` Anup Patel
2023-12-15 9:09 ` Anup Patel
2023-12-14 10:16 ` [PATCH v2 08/13] RISC-V: KVM: Add support for SBI STA registers Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-15 9:16 ` Anup Patel
2023-12-15 9:16 ` Anup Patel
2023-12-15 9:16 ` Anup Patel
2023-12-19 20:30 ` Atish Patra
2023-12-19 20:30 ` Atish Patra
2023-12-19 20:30 ` Atish Patra
2023-12-14 10:16 ` [PATCH v2 09/13] RISC-V: KVM: Implement SBI STA extension Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-15 9:18 ` Anup Patel
2023-12-15 9:18 ` Anup Patel
2023-12-15 9:18 ` Anup Patel
2023-12-14 10:16 ` [PATCH v2 10/13] RISC-V: KVM: selftests: Move sbi_ecall to processor.c Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-15 9:20 ` Anup Patel
2023-12-15 9:20 ` Anup Patel
2023-12-15 9:20 ` Anup Patel
2023-12-19 21:53 ` Atish Patra
2023-12-19 21:53 ` Atish Patra
2023-12-19 21:53 ` Atish Patra
2023-12-14 10:16 ` [PATCH v2 11/13] RISC-V: KVM: selftests: Add guest_sbi_probe_extension Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-15 9:21 ` Anup Patel
2023-12-15 9:21 ` Anup Patel
2023-12-15 9:21 ` Anup Patel
2023-12-14 10:16 ` [PATCH v2 12/13] RISC-V: KVM: selftests: Add steal_time test support Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-15 9:24 ` Anup Patel
2023-12-15 9:24 ` Anup Patel
2023-12-15 9:24 ` Anup Patel
2023-12-14 10:16 ` [PATCH v2 13/13] RISC-V: KVM: selftests: Add get-reg-list test for STA registers Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-14 10:16 ` Andrew Jones
2023-12-15 9:27 ` Anup Patel
2023-12-15 9:27 ` Anup Patel
2023-12-15 9:27 ` Anup Patel
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=20231214101552.100721-20-ajones@ventanamicro.com \
--to=ajones@ventanamicro.com \
--cc=kvm-riscv@lists.infradead.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: link
Be 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.