From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Sun, 20 Mar 2005 19:17:55 +0000 Subject: Re: Rework of request firmware Message-Id: <1111346275.23995.39.camel@localhost.localdomain> List-Id: References: <9e473391050319200625032789@mail.gmail.com> In-Reply-To: <9e473391050319200625032789@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org On Sun, 2005-03-20 at 13:24 -0500, Jon Smirl wrote: > On Sun, 20 Mar 2005 18:52:12 +0100, Kay Sievers wrote: > > o Emit events for devices to request a userspace-action on that > > device like copying data into a sysfs file or run a userspace > > program to setup this device. > > -Is this limited to physical devices? > > Do virtual devices have a 'struct device' too? It could be generalized > even more to work off from a kobject instead of device. No, class devices have only a pointer to struct device. > > o Events can happen anytime, not only on device creation time. > > true, I also have a problem with monitor hotplug needing to run a user > space helper. > > > o We need an efficient way for the dumb hotplug-multiplexer to recognize > > that kind of events to prevent the execution of just another script > > for every hotplug event. > > > > o The events should act asynchronously and the kernel should detect or is > > to be notified that the request has finished. > > -Do we need any timeout here? > > Timeout may the source of a problem. If user space is messed up and > the event doesn't get run correctly the timeout happens. Timeout > removes the attributes and reports an error. Now the user fixes > whatever was wrong in user space. How do they restart the event? > > It might be better to get rid of the timeouts and just leave > everything in place. Then you could just rerun the user space app that > failed. How can we remove the module with a waiting request? Cancel the request it sysfs first? And yes, good question: How do we trigger a new init if it has failed the first time? Seems we need the userspace driver binding stuff. Greg? > > o For data-loading-requests like the firmware case we need to be able to > > request more than one file for one single device. > > I would just do these sequentially. If everything is working the loads > happen quickly. > > > o The DEVPATH of the request should be the device itself, that asks for data > > or setup. > > -Should the requests create a own child at the device directory or just > > attributes there? > > Doesn't creating a directory cause a hotplug add event? You can easily prevent that with a hotplug-filter. > There are only > two attributes: status and data. We could just pick standard names for > them. Alternatively those two attributes could always be present in > the device directory reporting a status of inactive. It would be nice to get the state of the request-waiting device at any time from sysfs and not only with the environment of the hotplug event. > > -How should attributes be named if we have multiple request for the > > same device? > > I would not allow this Hmm, if we never need this, that's fine. But we need to make sure before we implement it. Otherwise we will run into problems and start everything again. :) If we create child devices below the requesting object, we would get our own subsystem parameter and /sbin/hotplug can act only on that and does not need to filter all events... Attributes at the device itself may look easier in the first place, but we need to check that carefully to cover the requirements. Thanks, Kay ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel