From: Gautam Gala <ggala@linux.ibm.com>
To: borntraeger@linux.ibm.com, imbrenda@linux.ibm.com,
kvm@vger.kernel.org, linux-s390@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org
Cc: frankja@linux.ibm.com, david@kernel.org, hca@linux.ibm.com,
gor@linux.ibm.com, agordeev@linux.ibm.com, svens@linux.ibm.com,
pbonzini@redhat.com, seanjc@google.com, shuah@kernel.org
Subject: [PATCH v2 0/2] KVM: s390: fix ESSA addressing exception injection in migration mode
Date: Thu, 15 Oct 2026 12:48:20 +0200 [thread overview]
Message-ID: <20261015104822.77062-1-ggala@linux.ibm.com> (raw)
ESSA emulation in migration mode silently dropped addressing exceptions
when the guest page-table walk failed, so the guest never received the
expected PGM_ADDRESSING interrupt during live migration.
Patch 1 fixes dat_perform_essa() to return PGM_ADDRESSING on a walk
failure, and __do_essa() to inject the program interrupt when it sees
that return value.
Patch 2 adds a regression test integrated into the existing cmma_test
selftest.
Changes since v1:
- dat_perform_essa() now returns +PGM_ADDRESSING instead of
-PGM_ADDRESSING; kvm_s390_inject_program_int() takes an unsigned u16
so passing -5 would have wrapped to 0xFFFB and injected a bogus PIC.
__do_essa() comparison and inject call updated accordingly. The
kernel-doc return-value entry is corrected to %PGM_ADDRESSING.
- Selftest: pgm_handler_c() now reads the actual PIC from lowcore
(__LC_PGM_INT_CODE) instead of hard-coding PGM_ADDRESSING, so the
test would have caught the sign error above had it been in v1.
- Selftest: virt_map(vm, 0, 0, 1) added so the DAT-on guest can
access the lowcore to read the PIC.
- Selftest: PGM_ADDRESSING, __LC_PGM_INT_CODE and __LC_PGM_NEW_PSW
constants moved to the shared s390/processor.h header.
- Selftest: SIGALRM/alarm() timeout wrapper removed.
Gautam Gala (2):
KVM: s390: fix ESSA addressing exception injection in migration mode
KVM: s390: selftests: add ESSA migration mode PGM_ADDRESSING
regression test
arch/s390/kvm/gmap/dat.c | 5 +-
arch/s390/kvm/s390/priv.c | 2 +
.../selftests/kvm/include/s390/processor.h | 7 ++
tools/testing/selftests/kvm/s390/cmma_test.c | 69 +++++++++++++++++++
4 files changed, 82 insertions(+), 1 deletion(-)
--
2.55.0
next reply other threads:[~2026-10-15 10:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-15 10:48 Gautam Gala [this message]
2026-10-15 10:48 ` [PATCH v2 1/2] KVM: s390: fix ESSA addressing exception injection in migration mode Gautam Gala
2026-10-15 10:48 ` [PATCH v2 2/2] KVM: s390: selftests: add ESSA migration mode PGM_ADDRESSING regression test Gautam Gala
2026-10-15 10:56 ` [PATCH v2 0/2] KVM: s390: fix ESSA addressing exception injection in migration mode Claudio Imbrenda
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=20261015104822.77062-1-ggala@linux.ibm.com \
--to=ggala@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=borntraeger@linux.ibm.com \
--cc=david@kernel.org \
--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-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=shuah@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