From: Lukas Wunner <lukas@wunner.de>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Alistair Francis <alistair23@gmail.com>,
bhelgaas@google.com, linux-pci@vger.kernel.org,
Jonathan.Cameron@huawei.com, alex.williamson@redhat.com,
christian.koenig@amd.com, kch@nvidia.com,
gregkh@linuxfoundation.org, logang@deltatee.com,
linux-kernel@vger.kernel.org, chaitanyak@nvidia.com,
rdunlap@infradead.org,
Alistair Francis <alistair.francis@wdc.com>
Subject: Re: [PATCH v9 2/3] PCI/DOE: Expose the DOE features via sysfs
Date: Thu, 19 Oct 2023 21:32:46 +0200 [thread overview]
Message-ID: <20231019193246.GA16112@wunner.de> (raw)
In-Reply-To: <20231019165829.GA1381099@bhelgaas>
On Thu, Oct 19, 2023 at 11:58:29AM -0500, Bjorn Helgaas wrote:
> On Fri, Oct 13, 2023 at 01:41:57PM +1000, Alistair Francis wrote:
> > + xa_for_each(&pdev->doe_mbs, index, doe_mb) {
> > + xa_for_each(&doe_mb->feats, j, entry)
> > + return a->mode;
> > + }
> > +
> > + return 0;
>
> The nested loops that don't test anything look a little weird and
> maybe I'm missing something, but this looks like it returns a->mode if
> any mailbox with a feature exists, and 0 otherwise.
>
> Is that the same as this:
>
> if (pdev->doe_mbs)
> return a->mode;
>
> return 0;
>
> since it sounds like a mailbox must support at least one feature?
In theory it's the same, in practice there *might* be non-compliant
devices which lack support for the discovery feature.
> > + attrs[i].attr.name = kasprintf(GFP_KERNEL,
> > + "0x%04lX:%02lX", vid, type);
>
> What's the rationale for using "0x" on the vendor ID but not on the
> type? "0x1234:10" hints that the "10" might be decimal since it lacks
> "0x".
>
> Suggest lower-case "%04lx:%02lx" either way.
>
> FWIW, there's no "0x" prefix on the hex vendor IDs in "lspci -n"
> output and dmesg messages like this:
>
> pci 0000:01:00.0: [10de:13b6] type 00
The existing attributes "vendor", "device" etc do emit the "0x".
From drivers/pci/pci-sysfs.c:
pci_config_attr(vendor, "0x%04x\n");
pci_config_attr(device, "0x%04x\n");
pci_config_attr(subsystem_vendor, "0x%04x\n");
pci_config_attr(subsystem_device, "0x%04x\n");
pci_config_attr(revision, "0x%02x\n");
pci_config_attr(class, "0x%06x\n");
> I try hard to avoid calling *anything* from the
> pci_create_sysfs_dev_files() path because it has the nasty
> "sysfs_initialized" check and the associated pci_sysfs_init()
> initcall.
What's the purpose of sysfs_initialized anyway?
It was introduced by this historic commit:
https://git.kernel.org/tglx/history/c/f6d553444da2
Can PCI_ROM_RESOURCEs appear after device enumeration but before
the late_initcall stage?
If sysfs_initialized is only needed for PCI_ROM_RESOURCEs, can we
constrain pci_sysfs_init() to those and avoid creating all the
other runtime sysfs attributes in the initcall?
Thanks,
Lukas
next prev parent reply other threads:[~2023-10-19 19:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-13 3:41 [PATCH v9 1/3] PCI/DOE: Rename DOE protocol to feature Alistair Francis
2023-10-13 3:41 ` [PATCH v9 2/3] PCI/DOE: Expose the DOE features via sysfs Alistair Francis
2023-10-17 8:34 ` Lukas Wunner
2023-11-03 1:27 ` Alistair Francis
2023-10-19 16:58 ` Bjorn Helgaas
2023-10-19 19:32 ` Lukas Wunner [this message]
2023-10-19 20:01 ` Bjorn Helgaas
2023-11-03 2:17 ` Alistair Francis
2024-08-04 5:55 ` Lukas Wunner
2023-10-13 3:41 ` [PATCH v9 3/3] PCI/DOE: Allow enabling DOE without CXL Alistair Francis
2023-10-18 22:24 ` [PATCH v9 1/3] PCI/DOE: Rename DOE protocol to feature Bjorn Helgaas
2023-11-03 0:18 ` Alistair Francis
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=20231019193246.GA16112@wunner.de \
--to=lukas@wunner.de \
--cc=Jonathan.Cameron@huawei.com \
--cc=alex.williamson@redhat.com \
--cc=alistair.francis@wdc.com \
--cc=alistair23@gmail.com \
--cc=bhelgaas@google.com \
--cc=chaitanyak@nvidia.com \
--cc=christian.koenig@amd.com \
--cc=gregkh@linuxfoundation.org \
--cc=helgaas@kernel.org \
--cc=kch@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=rdunlap@infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.