From: Omar Elghoul <oelghoul@linux.ibm.com>
To: Matthew Rosato <mjrosato@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 12:38:59 -0400 [thread overview]
Message-ID: <f826f068-b716-4cff-8c3d-620790db58c5@linux.ibm.com> (raw)
In-Reply-To: <dae3c7cd-21aa-4263-bec5-792b018d21e2@linux.ibm.com>
On 9/17/26 11:28 AM, Matthew Rosato wrote:
> 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().
Makes sense, I will fix this in the next version.
>
>> 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 16:39 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
2026-09-17 16:38 ` Omar Elghoul [this message]
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=f826f068-b716-4cff-8c3d-620790db58c5@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=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®