From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: KVM <kvm@vger.kernel.org>, Janosch Frank <frankja@linux.ibm.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
linux-s390 <linux-s390@vger.kernel.org>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>
Subject: [GIT PULL 14/17] KVM: s390: Add a routine for setting userspace CPU state
Date: Sun, 31 Oct 2021 13:11:01 +0100 [thread overview]
Message-ID: <20211031121104.14764-15-borntraeger@de.ibm.com> (raw)
In-Reply-To: <20211031121104.14764-1-borntraeger@de.ibm.com>
From: Eric Farman <farman@linux.ibm.com>
This capability exists, but we don't record anything when userspace
enables it. Let's refactor that code so that a note can be made in
the debug logs that it was enabled.
Signed-off-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/20211008203112.1979843-7-farman@linux.ibm.com
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
arch/s390/kvm/kvm-s390.c | 6 +++---
arch/s390/kvm/kvm-s390.h | 9 +++++++++
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 1c97493d21e1..6482ea9139bb 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -2487,8 +2487,8 @@ long kvm_arch_vm_ioctl(struct file *filp,
case KVM_S390_PV_COMMAND: {
struct kvm_pv_cmd args;
- /* protvirt means user sigp */
- kvm->arch.user_cpu_state_ctrl = 1;
+ /* protvirt means user cpu state */
+ kvm_s390_set_user_cpu_state_ctrl(kvm);
r = 0;
if (!is_prot_virt_host()) {
r = -EINVAL;
@@ -3802,7 +3802,7 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu,
vcpu_load(vcpu);
/* user space knows about this interface - let it control the state */
- vcpu->kvm->arch.user_cpu_state_ctrl = 1;
+ kvm_s390_set_user_cpu_state_ctrl(vcpu->kvm);
switch (mp_state->mp_state) {
case KVM_MP_STATE_STOPPED:
diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h
index 52bc8fbaa60a..c07a050d757d 100644
--- a/arch/s390/kvm/kvm-s390.h
+++ b/arch/s390/kvm/kvm-s390.h
@@ -208,6 +208,15 @@ static inline int kvm_s390_user_cpu_state_ctrl(struct kvm *kvm)
return kvm->arch.user_cpu_state_ctrl != 0;
}
+static inline void kvm_s390_set_user_cpu_state_ctrl(struct kvm *kvm)
+{
+ if (kvm->arch.user_cpu_state_ctrl)
+ return;
+
+ VM_EVENT(kvm, 3, "%s", "ENABLE: Userspace CPU state control");
+ kvm->arch.user_cpu_state_ctrl = 1;
+}
+
/* implemented in pv.c */
int kvm_s390_pv_destroy_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc);
int kvm_s390_pv_create_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc);
--
2.31.1
next prev parent reply other threads:[~2021-10-31 12:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-31 12:10 [GIT PULL 00/17] KVM: s390: Fixes and Features for 5.16 Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 01/17] s390/gmap: validate VMA in __gmap_zap() Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 02/17] s390/gmap: don't unconditionally call pte_unmap_unlock() " Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 03/17] s390/mm: validate VMA in PGSTE manipulation functions Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 04/17] s390/mm: fix VMA and page table handling code in storage key handling functions Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 05/17] s390/uv: fully validate the VMA before calling follow_page() Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 06/17] s390/mm: no need for pte_alloc_map_lock() if we know the pmd is present Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 07/17] s390/mm: optimize set_guest_storage_key() Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 08/17] s390/mm: optimize reset_guest_reference_bit() Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 09/17] KVM: s390: pv: add macros for UVC CC values Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 10/17] KVM: s390: pv: avoid double free of sida page Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 11/17] KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm Christian Borntraeger
2021-10-31 12:10 ` [GIT PULL 12/17] KVM: s390: pv: avoid stalls when making pages secure Christian Borntraeger
2021-10-31 12:11 ` [GIT PULL 13/17] KVM: s390: Simplify SIGP Set Arch handling Christian Borntraeger
2021-10-31 12:11 ` Christian Borntraeger [this message]
2021-10-31 12:11 ` [GIT PULL 15/17] KVM: s390: Fix handle_sske page fault handling Christian Borntraeger
2021-10-31 12:11 ` [GIT PULL 16/17] KVM: s390: pv: properly handle page flags for protected guests Christian Borntraeger
2021-10-31 12:11 ` [GIT PULL 17/17] KVM: s390: add debug statement for diag 318 CPNC data Christian Borntraeger
2021-11-01 7:35 ` [GIT PULL 00/17] KVM: s390: Fixes and Features for 5.16 Paolo Bonzini
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=20211031121104.14764-15-borntraeger@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pbonzini@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).