Re: [RFC PATCH 0/1] Initialize debugfs/ksysfs earlier?

From: Adrian Ratiu
Date: Thu Jun 03 2021 - 16:00:08 EST


Hi and thank you for the quick response!

On Thu, 03 Jun 2021, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
On Thu, Jun 03, 2021 at 03:55:33PM +0300, Adrian Ratiu wrote:
Hi Greg & all, I would like to add a new debugfs file like in the next patch but I'm having a problem with commit 56348560d495 ("debugfs: do not attempt to create a new file before the filesystem is initalized").

You should have had a problem before that commit happened as well, right?

Actually no, it works without problems before commit 56348560d495 and also works if I revert that commit or move the debugfs_init() and its dependency ksysfs_init() before the driver core init.

All these 3 cases work without issues while testing, but none of them seem to be viable ideas and especially moving debugfs init earlier just to add this new attr file to the driver core is some thin reasoning, so that's why I asked via this RFC. :)

The problem is debugfs is initialized after the driver core, during the core initcall, so I get an -ENOENT failure due to the above commit. My first reaction is to move the ksysfs_init() and debugfs_init() calls before the driver core init which works. Would that be ok? An alternative would be to create the new debugfs file somewhere else than the driver core, but I'm not sure where would be a good location, maybe in debugfs_init()? Doesn't seem right.

I don't really want the driver core to be messing with debugfs at all, why is that needed? I'll respond on your patch...

KernelCI maintainers asked me to add some tests for driver probe() results similar to how the -EPROBE_DEFER is tested via the existing debugfs devices_deferred and at the same time to add a new debugfs interface similar to devices_deferred to avoid parsing the printk buffer for non-EPROBE_DEFER results.

If you think adding such an interface is a bad idea, please just tell me so and I will use it as amunition to push back and get the info from printk. :)

thanks,

greg k-h