Am 15.10.26 um 12:48 schrieb Gautam Gala:
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(-)



Thanks, applied.

Reply via email to