From: Christian Borntraeger <borntraeger@linux.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@kernel.org>,
linux-s390 <linux-s390@vger.kernel.org>,
Christian Borntraeger <borntraeger@linux.ibm.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>,
Eric Farman <farman@linux.ibm.com>,
Sean Christopherson <seanjc@google.com>,
Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
Matthew Rosato <mjrosato@linux.ibm.com>,
Farhan Ali <alifm@linux.ibm.com>,
Tony Krowiak <akrowiak@linux.ibm.com>,
Halil Pasic <pasic@linux.ibm.com>,
Jason Herne <jjherne@linux.ibm.com>,
Harald Freudenberger <freude@linux.ibm.com>,
Holger Dengler <dengler@linux.ibm.com>,
Alex Williamson <alex@shazbot.org>,
linux-kernel@vger.kernel.org,
Steffen Eiden <seiden@linux.ibm.com>,
Jason Gunthorpe <jgg@ziepe.ca>
Subject: [GIT PULL 0/6] KVM/vfio: Use file-based reference counting for KVM
Date: Fri, 9 Oct 2026 16:27:43 +0200 [thread overview]
Message-ID: <20261009142749.186650-1-borntraeger@linux.ibm.com> (raw)
Paolo,
The following changes since commit df2908090cda368b01ff43709f51890076c56157:
Linux 7.3-rc2 (2026-09-06 15:07:20 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git tags/kvm-s390-next-7.4-1
for you to fetch changes up to c22295d0d75f5590fdde5493cb90e2d50d5f508e:
KVM: Remove unused file_is_kvm (2026-10-02 10:40:01 +0200)
The tag points to the vfio_file_reference branch of the kvms390 repo
https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git/log/?h=vfio_file_reference
----------------------------------------------------------------
KVM/vfio: Use file-based reference counting for KVM
This series switches the KVM-VFIO interface and external consumers over to
standard file-based reference counting, eliminating all external KVM symbol
exports.
Currently, VFIO integrates with KVM by looking up kvm_get_kvm_safe() and
kvm_put_kvm() dynamically using symbol_get(), manually tracking module
reference counts and storing a put_kvm function pointer in struct
vfio_device.
In the ARM64-on-s390 architecture, a second concurrent KVM module
(kvm-arm64) is introduced alongside native KVM to host hardware-accelerated
ARM64 guests. Having exported global symbols (like kvm_get_kvm/kvm_put_kvm)
creates symbol conflicts and prevents clean coexistence of two KVM modules.
Additionally, the file based counting simplifies the code and reuses
the existing fs refcounting.
Instead of passing raw KVM pointers and managing module symbols manually, the
interface now passes the underlying VM file descriptor throughout VFIO and
associated architecture subsystems. To safely extract the KVM instance from a
file, an architecture-namespaced helper mechanism is introduced that verifies
the file belongs to the expected KVM implementation before accessing its
internal state. A back-pointer from the KVM instance to its associated file is
maintained across its lifecycle so subsystems can safely acquire file
references on demand. Finally, with VFIO, architecture page tracking, and
device hooks converted to use file references, the remaining KVM reference-
counting exports are restricted strictly to internal KVM modules.
----------------------------------------------------------------
Steffen Eiden (6):
KVM: Introduce file_to_kvm_<arch>() infrastructure
KVM: Add file back-pointer to struct kvm
KVM: x86: Use file_to_kvm_x86() in SEV
KVM/vfio: Use file-based reference counting for KVM
KVM: Restrict kvm_get_kvm/kvm_put_kvm export to internal KVM modules
KVM: Remove unused file_is_kvm
arch/s390/include/asm/kvm_host_s390.h | 4 ++-
arch/s390/kvm/s390/pci.c | 9 ++++--
arch/x86/include/asm/kvm_host.h | 2 ++
arch/x86/include/asm/kvm_page_track.h | 10 +++---
arch/x86/kvm/Makefile | 4 +--
arch/x86/kvm/mmu/page_track.c | 22 +++++++++-----
arch/x86/kvm/svm/sev.c | 8 ++---
drivers/s390/crypto/vfio_ap_ops.c | 20 ++++++++----
drivers/vfio/device_cdev.c | 2 +-
drivers/vfio/group.c | 13 ++++++--
drivers/vfio/vfio.h | 14 ++++-----
drivers/vfio/vfio_main.c | 57 +++++++++++------------------------
include/linux/kvm_host.h | 19 +++++++++++-
include/linux/vfio.h | 5 ++-
virt/kvm/kvm_main.c | 21 +++++++++----
virt/kvm/vfio.c | 13 +++++---
16 files changed, 132 insertions(+), 91 deletions(-)
next reply other threads:[~2026-10-09 14:28 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 14:27 Christian Borntraeger [this message]
2026-10-09 14:27 ` [GIT PULL 1/6] KVM: Introduce file_to_kvm_<arch>() infrastructure Christian Borntraeger
2026-10-09 14:27 ` [GIT PULL 2/6] KVM: Add file back-pointer to struct kvm Christian Borntraeger
2026-10-09 14:27 ` [GIT PULL 3/6] KVM: x86: Use file_to_kvm_x86() in SEV Christian Borntraeger
2026-10-09 14:27 ` [GIT PULL 4/6] KVM/vfio: Use file-based reference counting for KVM Christian Borntraeger
2026-10-09 14:27 ` [GIT PULL 5/6] KVM: Restrict kvm_get_kvm/kvm_put_kvm export to internal KVM modules Christian Borntraeger
2026-10-09 14:27 ` [GIT PULL 6/6] KVM: Remove unused file_is_kvm Christian Borntraeger
2026-10-09 16:30 ` [GIT PULL 0/6] KVM/vfio: Use file-based reference counting for KVM 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=20261009142749.186650-1-borntraeger@linux.ibm.com \
--to=borntraeger@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=akrowiak@linux.ibm.com \
--cc=alex@shazbot.org \
--cc=alifm@linux.ibm.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=david@kernel.org \
--cc=dengler@linux.ibm.com \
--cc=farman@linux.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=freude@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=hpa@zytor.com \
--cc=imbrenda@linux.ibm.com \
--cc=jgg@ziepe.ca \
--cc=jjherne@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mjrosato@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=schlameuss@linux.ibm.com \
--cc=seanjc@google.com \
--cc=seiden@linux.ibm.com \
--cc=svens@linux.ibm.com \
--cc=tglx@kernel.org \
--cc=x86@kernel.org \
/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
all inboxes | Powered by JetHome®