From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
Alexander Duyck <alexander.duyck@gmail.com>,
Keith Busch <kbusch@kernel.org>,
Leon Romanovsky <leon@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Jakub Kicinski <kuba@kernel.org>,
linux-pci <linux-pci@vger.kernel.org>,
linux-rdma@vger.kernel.org, Netdev <netdev@vger.kernel.org>,
Don Dutile <ddutile@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
"David S . Miller" <davem@davemloft.net>
Subject: Re: [PATCH mlx5-next v7 0/4] Dynamically assign MSI-X vectors count
Date: Wed, 31 Mar 2021 08:38:39 +0200 [thread overview]
Message-ID: <YGQY72LnGB6bfIsI@kroah.com> (raw)
In-Reply-To: <20210330224341.GW2710221@ziepe.ca>
On Tue, Mar 30, 2021 at 07:43:41PM -0300, Jason Gunthorpe wrote:
> > With 0000:01:00.0/sriov/BB:DD.F/vf_msix_count, sriov/ will contain
> > 1 file and 1K subdirectories.
>
> The smallest directory sizes is with the current patch since it
> re-uses the existing VF directory. Do we care about directory size at
> the sysfs level?
No, that should not matter.
The "issue" here is that you "broke" the device chain here by adding a
random kobject to the directory tree: "BB:DD.F"
Again, devices are allowed to have attributes associated with it to be
_ONE_ subdirectory level deep.
So, to use your path above, this is allowed:
0000:01:00.0/sriov/vf_msix_count
as these are sriov attributes for the 0000:01:00.0 device, but this is
not:
0000:01:00.0/sriov/BB:DD.F/vf_msix_count
as you "threw" a random kobject called BB:DD.F into the middle.
If you want to have "BB:DD.F" in there, then it needs to be a real
struct device and _THEN_ it needs to point its parent to "0000:01:00.0",
another struct device, as "sriov" is NOT ANYTHING in the heirachy here
at all.
Does that help? The rules are:
- Once you use a 'struct device', all subdirs below that device
are either an attribute group for that device or a child
device.
- A struct device can NOT have an attribute group as a parent,
it can ONLY have another struct device as a parent.
If you break those rules, the kernel has the ability to get really
confused unless you are very careful, and userspace will be totally lost
as you can not do anything special there.
> > I'm dense and don't fully understand Greg's subdirectory comment.
>
> I also don't know udev well enough. I've certainly seen drivers
> creating extra subdirectories using kobjects.
And those drivers are broken. Please point them out to me and I will be
glad to go fix them. Or tell their authors why they are broken :)
> > But it doesn't seem like that level of control would be in a udev rule
> > anyway. A PF udev rule might *start* a program to manage MSI-X
> > vectors, but such a program should be able to deal with whatever
> > directory structure we want.
>
> Yes, I can't really see this being used from udev either.
It doesn't matter if you think it could be used, it _will_ be used as
you are exposing this stuff to userspace.
> I assume there is also the usual race about triggering the uevent
> before the subdirectories are created, but we have the
> dev_set_uevent_suppress() thing now for that..
Unless you are "pci bus code" you shouldn't be using that :)
thanks,
greg k-h
next prev parent reply other threads:[~2021-03-31 6:39 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-01 7:55 [PATCH mlx5-next v7 0/4] Dynamically assign MSI-X vectors count Leon Romanovsky
2021-03-01 7:55 ` [PATCH mlx5-next v7 1/4] PCI: Add a sysfs file to change the MSI-X table size of SR-IOV VFs Leon Romanovsky
2021-03-01 8:14 ` Greg Kroah-Hartman
2021-03-01 8:32 ` Leon Romanovsky
2021-03-01 8:37 ` Greg Kroah-Hartman
2021-03-01 8:53 ` Leon Romanovsky
2021-03-01 7:55 ` [PATCH mlx5-next v7 2/4] net/mlx5: Add dynamic MSI-X capabilities bits Leon Romanovsky
2021-03-01 7:55 ` [PATCH mlx5-next v7 3/4] net/mlx5: Dynamically assign MSI-X vectors count Leon Romanovsky
2021-03-01 7:55 ` [PATCH mlx5-next v7 4/4] net/mlx5: Implement sriov_get_vf_total_msix/count() callbacks Leon Romanovsky
2021-03-07 8:11 ` [PATCH mlx5-next v7 0/4] Dynamically assign MSI-X vectors count Leon Romanovsky
2021-03-07 18:55 ` Alexander Duyck
2021-03-07 19:19 ` Leon Romanovsky
2021-03-08 16:33 ` Alexander Duyck
2021-03-08 19:20 ` Leon Romanovsky
2021-03-10 19:09 ` Bjorn Helgaas
2021-03-10 20:10 ` Leon Romanovsky
2021-03-10 20:21 ` Greg Kroah-Hartman
2021-03-11 8:37 ` Leon Romanovsky
2021-03-10 23:34 ` Alexander Duyck
2021-03-11 18:17 ` Bjorn Helgaas
2021-03-11 19:16 ` Keith Busch
2021-03-11 19:21 ` Leon Romanovsky
2021-03-11 20:22 ` Jason Gunthorpe
2021-03-11 20:50 ` Keith Busch
2021-03-11 21:44 ` Jason Gunthorpe
2021-03-25 17:21 ` Bjorn Helgaas
2021-03-25 17:36 ` Jason Gunthorpe
2021-03-25 18:20 ` Bjorn Helgaas
2021-03-25 18:28 ` Jason Gunthorpe
2021-03-26 6:44 ` Leon Romanovsky
2021-03-26 16:00 ` Alexander Duyck
2021-03-26 16:56 ` Jason Gunthorpe
2021-03-26 17:08 ` Bjorn Helgaas
2021-03-26 17:12 ` Jason Gunthorpe
2021-03-27 6:00 ` Leon Romanovsky
2021-03-26 17:29 ` Keith Busch
2021-03-26 17:31 ` Jason Gunthorpe
2021-03-26 18:50 ` Alexander Duyck
2021-03-26 19:01 ` Jason Gunthorpe
2021-03-30 1:29 ` Bjorn Helgaas
2021-03-30 13:57 ` Jason Gunthorpe
2021-03-30 15:00 ` Bjorn Helgaas
2021-03-30 19:47 ` Jason Gunthorpe
2021-03-30 20:41 ` Bjorn Helgaas
2021-03-30 22:43 ` Jason Gunthorpe
2021-03-31 6:38 ` Greg Kroah-Hartman [this message]
2021-03-31 12:19 ` Jason Gunthorpe
2021-03-31 15:03 ` Greg Kroah-Hartman
2021-03-31 17:07 ` Jason Gunthorpe
2021-03-31 4:08 ` Leon Romanovsky
2021-04-01 1:23 ` Bjorn Helgaas
2021-04-01 11:49 ` Leon Romanovsky
2021-03-30 18:10 ` Keith Busch
2021-03-26 19:36 ` Bjorn Helgaas
2021-03-27 12:38 ` Greg Kroah-Hartman
2021-03-25 18:31 ` Keith Busch
2021-03-25 18:36 ` Jason Gunthorpe
2021-03-11 19:17 ` Leon Romanovsky
2021-03-11 19:37 ` Alexander Duyck
2021-03-11 19:51 ` Leon Romanovsky
2021-03-11 20:11 ` Alexander Duyck
2021-03-11 20:19 ` Jason Gunthorpe
2021-03-11 21:49 ` Alexander Duyck
2021-03-11 23:20 ` Jason Gunthorpe
2021-03-12 2:53 ` Alexander Duyck
2021-03-12 6:32 ` Leon Romanovsky
2021-03-12 16:59 ` Alexander Duyck
2021-03-12 17:03 ` Jason Gunthorpe
2021-03-12 18:34 ` Leon Romanovsky
2021-03-12 18:41 ` Leon Romanovsky
2021-03-12 13:00 ` Jason Gunthorpe
2021-03-12 13:36 ` Keith Busch
2021-03-11 20:31 ` Jason Gunthorpe
2021-03-10 5:58 ` Leon Romanovsky
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=YGQY72LnGB6bfIsI@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=alex.williamson@redhat.com \
--cc=alexander.duyck@gmail.com \
--cc=bhelgaas@google.com \
--cc=davem@davemloft.net \
--cc=ddutile@redhat.com \
--cc=helgaas@kernel.org \
--cc=jgg@ziepe.ca \
--cc=kbusch@kernel.org \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=saeedm@nvidia.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;
as well as URLs for NNTP newsgroup(s).