lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250708092742.104309-1-ajd@linux.ibm.com>
Date: Tue,  8 Jul 2025 19:27:40 +1000
From: Andrew Donnellan <ajd@...ux.ibm.com>
To: linux-kernel@...r.kernel.org, linux-s390@...r.kernel.org,
        kvm@...r.kernel.org
Cc: Mark Rutland <mark.rutland@....com>,
        Christian Borntraeger <borntraeger@...ux.ibm.com>,
        Frederic Weisbecker <frederic@...nel.org>,
        Heiko Carstens <hca@...ux.ibm.com>,
        Janosch Frank <frankja@...ux.ibm.com>,
        Paolo Bonzini <pbonzini@...hat.com>,
        "Paul E. McKenney" <paulmck@...nel.org>,
        Sven Schnelle <svens@...ux.ibm.com>, Vasily Gorbik <gor@...ux.ibm.com>,
        Claudio Imbrenda <imbrenda@...ux.ibm.com>,
        Alexander Gordeev <agordeev@...ux.ibm.com>,
        Andy Lutomirski <luto@...nel.org>,
        Peter Zijlstra <peterz@...radead.org>,
        Thomas Gleixner <tglx@...utronix.de>
Subject: [PATCH 0/2] KVM: s390: Fix latent guest entry/exit bugs

In [0], the guest_{enter,exit}_irqoff() helpers were deprecated, in favour
of guest_timing_{enter,exit}_irqoff() and
guest_context_{enter,exit}_irqoff(). This was to fix a number of latent
guest entry/exit bugs, relating to the enabling of interrupts during an
RCU extended quiescent state, instrumentation code, and correct handling
of lockdep and tracing.

However, while arm64, mips, riscv and x86 have been migrated to the new
helpers, s390 hasn't been. There was an initial attempt at [1] to do this,
but that didn't work for reasons discussed at [2].

Since then, Claudio Imbrenda has reworked much of the interrupt handling.
Moving interrupt handling into vcpu_post_run() avoids the issues in [2],
so we can now move to the new helpers.

I've rebased Mark's patches from [1]. kvm-unit-tests, the kvm selftests,
and IBM's internal test suites pass under debug_defconfig.

These patches do introduce some overhead - in my testing, a few of the
tests in the kvm-unit-tests exittime test suite appear 6-11% slower, but
some noticeable overhead may be unavoidable (we introduce a new function
call and the irq entry/exit paths change a bit).

[0] https://lore.kernel.org/lkml/20220201132926.3301912-1-mark.rutland@arm.com/
[1] https://lore.kernel.org/all/20220119105854.3160683-7-mark.rutland@arm.com/
[2] https://lore.kernel.org/all/a4a26805-3a56-d264-0a7e-60bed1ada9f3@linux.ibm.com/
[3] https://lore.kernel.org/all/20241022120601.167009-1-imbrenda@linux.ibm.com/

Mark Rutland (2):
  entry: Add arch_in_rcu_eqs()
  KVM: s390: Rework guest entry logic

 arch/s390/include/asm/entry-common.h | 10 ++++++
 arch/s390/include/asm/kvm_host.h     |  3 ++
 arch/s390/kvm/kvm-s390.c             | 51 +++++++++++++++++++++-------
 arch/s390/kvm/vsie.c                 | 17 ++++------
 include/linux/entry-common.h         | 16 +++++++++
 kernel/entry/common.c                |  3 +-
 6 files changed, 77 insertions(+), 23 deletions(-)

-- 
2.50.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ