From: Christoph Schlameuss <schlameuss@linux.ibm.com>
To: kvm@vger.kernel.org
Cc: linux-s390@vger.kernel.org,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Janosch Frank <frankja@linux.ibm.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Christoph Schlameuss <schlameuss@linux.ibm.com>
Subject: [PATCH v2 0/3] KVM: s390: Use ESCA instead of BSCA at VM init
Date: Mon, 19 May 2025 13:36:08 +0200 [thread overview]
Message-ID: <20250519-rm-bsca-v2-0-e3ea53dd0394@linux.ibm.com> (raw)
All modern IBM Z and Linux One machines do offer support for the
Extended System Control Area (ESCA). The ESCA is available since the
z114/z196 released in 2010.
KVM needs to allocate and manage the SCA for guest VMs. Prior to this
change the SCA was setup as Basic SCA only supporting a maximum of 64
vCPUs when initializing the VM. With addition of the 65th vCPU the SCA
was needed to be converted to a ESCA.
Instead we will now allocate the ESCA directly upon VM creation
simplifying the code in multiple places as well as completely removing
the need to convert an existing SCA.
In cases where the ESCA is not supported (z10 and earlier) the use of
the SCA entries and with that SIGP interpretation are disabled for VMs.
This increases the number of exits from the VM in multiprocessor
scenarios and thus decreases performance.
The same is true for VSIE where SIGP is currently disabled and thus no
SCA entries are used.
--
v2:
- properly apply checkpatch --strict (Thanks Claudio)
- some small comment wording changes
- rebased
---
Christoph Schlameuss (3):
KVM: s390: Set KVM_MAX_VCPUS to 256
KVM: s390: Always allocate esca_block
KVM: s390: Specify kvm->arch.sca as esca_block
arch/s390/include/asm/kvm_host.h | 7 +-
arch/s390/include/asm/kvm_host_types.h | 2 +
arch/s390/kvm/gaccess.c | 10 +-
arch/s390/kvm/interrupt.c | 67 ++++----------
arch/s390/kvm/kvm-s390.c | 161 ++++++---------------------------
arch/s390/kvm/kvm-s390.h | 9 +-
6 files changed, 52 insertions(+), 204 deletions(-)
---
base-commit: a5806cd506af5a7c19bcd596e4708b5c464bfd21
change-id: 20250513-rm-bsca-ab1e8649aca7
Best regards,
--
Christoph Schlameuss <schlameuss@linux.ibm.com>
next reply other threads:[~2025-05-19 11:37 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-19 11:36 Christoph Schlameuss [this message]
2025-05-19 11:36 ` [PATCH v2 1/3] KVM: s390: Set KVM_MAX_VCPUS to 256 Christoph Schlameuss
2025-05-20 5:31 ` Thomas Huth
2025-05-19 11:36 ` [PATCH v2 2/3] KVM: s390: Always allocate esca_block Christoph Schlameuss
2025-05-19 11:49 ` Claudio Imbrenda
2025-05-20 5:41 ` Thomas Huth
2025-05-20 8:35 ` Christoph Schlameuss
2025-05-20 9:18 ` Thomas Huth
2025-05-19 11:36 ` [PATCH v2 3/3] KVM: s390: Specify kvm->arch.sca as esca_block Christoph Schlameuss
2025-05-20 5:43 ` Thomas Huth
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=20250519-rm-bsca-v2-0-e3ea53dd0394@linux.ibm.com \
--to=schlameuss@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=borntraeger@linux.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=svens@linux.ibm.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