From: Matthew Rosato <mjrosato@linux.ibm.com>
To: Omar Elghoul <oelghoul@linux.ibm.com>,
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, alifm@linux.ibm.com,
farman@linux.ibm.com, gbayer@linux.ibm.com, pasic@linux.ibm.com,
alex@shazbot.org
Subject: Re: [PATCH v6 2/4] s390/pci: Reuse FMB buffer and preserve state in device re-enablement
Date: Thu, 17 Sep 2026 11:28:25 -0400 [thread overview]
Message-ID: <dae3c7cd-21aa-4263-bec5-792b018d21e2@linux.ibm.com> (raw)
In-Reply-To: <85cb647d-b1c8-4804-b206-2cae1e03e20d@linux.ibm.com>
On 9/17/26 9:32 AM, Omar Elghoul wrote:
> On 9/16/26 10:21 PM, Matthew Rosato wrote:
>>
>>> +int zpci_fmb_reenable_device(struct zpci_dev *zdev)
>>> +{
>>> + u64 req = ZPCI_CREATE_REQ(zdev->fh, 0, ZPCI_MOD_FC_SET_MEASURE);
>>> + struct zpci_fib fib = {0};
>>> + u8 cc, status;
>>> +
>>> + lockdep_assert_held(&zdev->fmb_lock);
>>> +
>>> + if (!zdev->fmb_enabled)
>>> + return zpci_fmb_enable_device(zdev);
>>
>> Sashiko has a point here, won't all paths that call zpci_reenable_device
>> now unconditionally turn on FMB here even if it was purposely disabled?
>>
>> The pattern of callers for zpci_reenable_device() is:
>>
>> zpci_disable_device()
>> ...
>> zpci_reenable_device()
>>
>> We only care to re-enable the FMB during device re-enable if the device
>> had FMB enabled at the time zpci_disable_device() was called.
>
> The way I thought of it was pcibios_enable_device() already enables
> measurement, so we might as well ensure it is enabled when the zdev is
Yes, FMB starts enabled by default but then it could be disabled
intentionally via sysfs; if a recovery action occurs on the device
sometime after I manually disabled FMB for a device, I'd expect it to
still be disabled after the recovery action but AFAICT with this
codepath it will always get re-enabled.
Completely removing the device and re-introducing it to the system is a
different matter; in that case yeah we'd be back to FMB-enabled because
that's our default starting state via pcibios_enable_device().
> re-enabled. That default state is also helpful for the later patches
> because kvm_s390_pci_register_kvm() calls zpci_reenable_device().
>
> But I guess if we didn't want to conflate the two, we could also add an
> unconditional zpci_fmb_reenable_device() within the KVM register hook,
> to run after the zpci_reenable_device(), whichever you'd prefer.
Do we even want it to be part of the KVM register hook at all, or could
we leave it off until we get a VFIO_DEVICE_FEATURE_ZPCI_FMB_ENABLE?
That way if a guest isn't using FMB (we never intercepted the associated
MPCIFC to enable measurement), QEMU would never issue
VFIO_DEVICE_FEATURE_ZPCI_FMB_ENABLE and then we just leave the host FMB off.
In practice, yes, FMB is always on by default for a linux guest today
but if we were to ever move to a model where we make it opt-in, it would
be nice to only enable the host FMB when the guest actually wants it.
next prev parent reply other threads:[~2026-09-17 15:28 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-16 21:32 [PATCH v6 0/4] vfio-pci/zdev: Improved zPCI Function Measurement Support Omar Elghoul
2026-09-16 21:32 ` [PATCH v6 1/4] s390/pci: Hold fmb_lock when enabling or disabling PCI devices Omar Elghoul
2026-09-17 2:21 ` Matthew Rosato
2026-09-16 21:32 ` [PATCH v6 2/4] s390/pci: Reuse FMB buffer and preserve state in device re-enablement Omar Elghoul
2026-09-17 2:21 ` Matthew Rosato
2026-09-17 13:32 ` Omar Elghoul
2026-09-17 15:28 ` Matthew Rosato [this message]
2026-09-17 16:38 ` Omar Elghoul
2026-09-16 21:32 ` [PATCH v6 3/4] s390/pci: Fence FMB enable/disable via debugfs for passthrough devices Omar Elghoul
2026-09-17 2:23 ` Matthew Rosato
2026-09-16 21:32 ` [PATCH v6 4/4] vfio-pci/zdev: Add VFIO FMB device features Omar Elghoul
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=dae3c7cd-21aa-4263-bec5-792b018d21e2@linux.ibm.com \
--to=mjrosato@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=oelghoul@linux.ibm.com \
--cc=pasic@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®