From: Omar Elghoul <oelghoul@linux.ibm.com>
To: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org
Cc: hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com,
borntraeger@linux.ibm.com, svens@linux.ibm.com,
schnelle@linux.ibm.com, mjrosato@linux.ibm.com,
alifm@linux.ibm.com, farman@linux.ibm.com, gbayer@linux.ibm.com,
alex@shazbot.org
Subject: Re: [PATCH v4 0/4] vfio-pci/zdev: Improved zPCI Function Measurement Support
Date: Mon, 22 Jun 2026 14:06:11 -0400 [thread overview]
Message-ID: <4d576959-dbf7-4393-9179-0e31797227ca@linux.ibm.com> (raw)
In-Reply-To: <20260612181048.91548-1-oelghoul@linux.ibm.com>
Polite ping :)
Thanks in advance.
On 6/12/26 2:10 PM, Omar Elghoul wrote:
> Hi,
>
> This patch series improves support for function measurement for zPCI
> passthrough devices on s390x.
>
> Changelog
> =========
> v3 -> v4:
> * Patch 2/3:
> - Replace mutex_lock/unlock in zpci_reenable_device() with a guard
>
> * Patch 3/4:
> - Allow usercopy of the FMB when initializing its kmem_cache
> - Move the guard in vfio_pci_zdev_feature_fmb_enable() lower to only
> protect the FMB
> - Ensure vfio_pci_zdev_feature_fmb_enable() fails on double-enable for
> consistency with the documentation
> - Eliminate the bounce buffer in vfio_pci_zdev_feature_fmb_read()
> - Replace the void pointer with __aligned_u64 in the FMB read uAPI
> structure
>
> v2 -> v3:
> * Patch 1/4 (new patch):
> - Fix race conditions in pcibios_enable/disable_device() with regard to
> the FMB enable/disable
> - Assert that fmb_lock is held within zpci_fmb_enable_device() and
> zpci_fmb_disable_device()
>
> * Patch 2/4 (previously 1/3):
> - Move the FMB enable logic into a static function zpci_fmb_do_enable()
> to reduce code duplication between zpci_fmb_enable_device() and
> zpci_fmb_reenable_device()
> - Reword commit message to use the imperative voice more consistently
>
> * Patch 3/4 (previously 2/3):
> - Split the previous VFIO feature into a SET-only and a GET-only feature
> for enabling/disabling and reading the FMB respectively
> - Remove FMB definitions from the VFIO uAPI and instead treat it as an
> opaque structure
>
> * Patch 4/4 (previously 3/3):
> - Clarify goto label name to reduce misunderstandings
>
> v1 -> v2:
> * Patch 1/3:
> - Address a possible race condition in zpci_reenable_device() caused by
> calling zpci_fmb_reenable_device() without holding fmb_lock
> - Assert that fmb_lock is held within zpci_fmb_reenable_device()
>
> * Patch 3/3:
> - Address a possible race condition in pci_perf_seq_write() caused by
> consuming zdev->kzdev without holding kzdev_lock
>
> Motivation
> ==========
> The firmware on s390x machines allows for tracking a variety of statistics
> relating to zPCI devices in a function measurement block (FMB). However,
> the kernel currently lacks a structured mechanism of sharing this
> information with userspace, beyond /sys/kernel/debug/pci/ID/statistics.
> This can lead to shortcomings when running a guest on KVM with PCI
> passthrough devices, as QEMU is unable to provide an accurate FMB snapshot
> to the guest.
>
> Proposal
> ========
> We propose adding a new VFIO device feature to zPCI passthrough devices,
> allowing userspace programs to read the latest FMB snapshot as it is
> written by the firmware. We ensure that function measurement enablement is
> preserved across device resets on the host. Furthermore, we guard against
> host tampering with the FMB via sysfs when the zPCI device is in
> passthrough to protect the VM's state.
>
> I'd appreciate some feedback on these patches.
>
> Thanks in advance.
>
> Omar Elghoul (4):
> s390/pci: Hold fmb_lock when enabling or disabling PCI devices
> s390/pci: Preserve FMB state in device re-enablement
> vfio-pci/zdev: Add VFIO FMB device features
> s390/pci: Fence FMB enable/disable via sysfs for passthrough devices
>
> arch/s390/include/asm/pci.h | 1 +
> arch/s390/pci/pci.c | 107 +++++++++++++++++++++++++------
> arch/s390/pci/pci_debug.c | 11 +++-
> drivers/vfio/pci/vfio_pci_core.c | 4 ++
> drivers/vfio/pci/vfio_pci_priv.h | 18 ++++++
> drivers/vfio/pci/vfio_pci_zdev.c | 55 ++++++++++++++++
> include/uapi/linux/vfio.h | 29 +++++++++
> 7 files changed, 206 insertions(+), 19 deletions(-)
>
prev parent reply other threads:[~2026-06-22 18:06 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-12 18:10 Omar Elghoul
2026-06-12 18:10 ` [PATCH v4 1/4] s390/pci: Hold fmb_lock when enabling or disabling PCI devices Omar Elghoul
2026-06-12 18:10 ` [PATCH v4 2/4] s390/pci: Preserve FMB state in device re-enablement Omar Elghoul
2026-06-22 20:22 ` Alex Williamson
2026-06-22 21:40 ` Omar Elghoul
2026-06-12 18:10 ` [PATCH v4 3/4] vfio-pci/zdev: Add VFIO FMB device features Omar Elghoul
2026-06-22 20:22 ` Alex Williamson
2026-06-22 21:30 ` Omar Elghoul
2026-06-12 18:10 ` [PATCH v4 4/4] s390/pci: Fence FMB enable/disable via sysfs for passthrough devices Omar Elghoul
2026-06-22 18:06 ` Omar Elghoul [this message]
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=4d576959-dbf7-4393-9179-0e31797227ca@linux.ibm.com \
--to=oelghoul@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=alex@shazbot.org \
--cc=alifm@linux.ibm.com \
--cc=borntraeger@linux.ibm.com \
--cc=farman@linux.ibm.com \
--cc=gbayer@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mjrosato@linux.ibm.com \
--cc=schnelle@linux.ibm.com \
--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
all inboxes | Powered by JetHome®