Wed, Feb 26, 2025 at 02:40:05AM +0100, kuba@xxxxxxxxxx wrote: >On Tue, 25 Feb 2025 14:36:07 +0100 Jiri Pirko wrote: >> >The problem comes from having a devlink instance per function / >> >port rather than for the ASIC. Spawn a single instance and the >> >problem will go away 🤷️ >> >> Yeah, we currently have VF devlink ports created under PF devlink instance. >> That is aligned with PCI geometry. If we have a single per-ASIC parent >> devlink, this does not change and we still need to configure cross >> PF devlink instances. > >Why would there still be PF instances? I'm not suggesting that you >create a hierarchy of instances. I'm not sure how you imagine getting rid of them. One PCI PF instantiates one devlink now. There are lots of configuration (e.g. params) that is per-PF. You need this instance for that, how else would you do per-PF things on shared ASIC instance? Creating SFs is per-PF operation for example. I didn't to thorough analysis, but I'm sure there are couple of per-PF things like these. Also not breaking the existing users may be an argument to keep per-PF instances. > >> The only benefit I see is that we don't need rate domain, but >> we can use parent devlink instance lock instead. The locking ordering >> might be a bit tricky to fix though.