Hi, On Friday 17 February 2017 10:45 PM, Christoph Hellwig wrote: > I'm commenting on the configfs layout here instead of the patch with the > code as the issues are easier to explain that way. I think the layout > is a bit confusing and could be cleaner by making use of pre-created > entries and symlinks. Here is my suggestion: > > /sys/kernel/config/pci_ep/functions/ > .. test/ # a directory for each function driver > ... user-specified-name1/ > ... user-specified-name2 > .. nvme/ > ... user-specified-name42/ > > Each directory under /sys/kernel/config/pci_ep/functions/ is owned > by a function drivers. Under that function driver's directory you > can create a directory for each instance of a function driver. The > configfs layout is controlled by the function driver. E.g. your current > EPF fields would move into the test function driver, while the nvme > function would expose totally different fields. > > > /sys/kernel/config/pci_ep/controllers/ > ... dwc-0/ > ... function > ... dwc-1/ > ... function > ... vhost-0/ > ... function > > Here you have a directory for each controller that can be bound > to a function. The directories are pre-created for each > controller port that is EP capable. > Function is a symlink to the function instance above. > Additional parameters might also be present depending on the > EPC driver. I've changed the configfs entry according to your suggestion. However I've considered only the generic test function and a standard EP controller and implemented the configfs in a single file pci-ep-cfs.c. But I think this will get more complex as we add custom parameters for individual EPC, new functions etc.. Thanks Kishon