public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: udev is too slow creating devices
@ 2004-09-18 19:44 Ihar 'Philips' Filipau
  2004-09-18 20:37 ` Marc Ballarin
                   ` (2 more replies)
  0 siblings, 3 replies; 70+ messages in thread
From: Ihar 'Philips' Filipau @ 2004-09-18 19:44 UTC (permalink / raw)
  To: Greg KH, Linux Kernel ML

> That will be soon going away with my multi-threaded device discovery
> work.  And I run pci hotplug boxes (and so do all of the PCMCIA/CardBus
> users), so don't discard PCI from being a async bus type :)
> 
> Async is now the norm, and drivers like the microcode module are the
> exception.

   I wanted you to say that.

   That's wrong attitude. I'm working on workstation where 95% of 
hardware plugged 100% of time. That's not exception. Not eerything is 
hot-pluggable USB/FireWire/whatever.

   Event-based hot-plug scripts are great thing. As an implementation. 
But user cares about one thing: 'modprobe usb-storage; mount /whatever' 
working reliably.

   /etc/dev.d probably great thing - but I'm not going to implement FSM 
into every shell script which does modprobe for sake being Ok with 
dynamic /dev/.

   You need to change your attitude for first. For second - come up with 
a way for user space to block until device is here, and if it is not 
here/error detected - fail.

   As it was said before - /all/ we need, is to be able to tell 
discovery phase from idle state of driver. "/All/" is quite much here - 
but it must be a goal.

   I'm absolutely sure, that for PCI devices it is implementable quite 
easy - probing is already done outside of modules. And we know precisely 
are we Ok, or are we not. And we know when we are done. If it is not so 
for USB yet - then it is bug which must be fixed.

^ permalink raw reply	[flat|nested] 70+ messages in thread
* Re: udev is too slow creating devices
@ 2004-09-18 19:25 Ihar 'Philips' Filipau
  2004-09-18 21:24 ` Greg KH
  0 siblings, 1 reply; 70+ messages in thread
From: Ihar 'Philips' Filipau @ 2004-09-18 19:25 UTC (permalink / raw)
  To: Greg KH; +Cc: Linux Kernel ML

> The fact that a static /dev keeps these race conditions from showing up
> as often as they really are there is no reason to keep trying to rely on
> old, undefined behaviour :)

   [ I'm late to discussion, and do not have much time at all.
   Just observation from aside by driver writer and OS builder. ]

   You really do not solve problem - problem as I see it - but just move 
it around.

   When I did first release of device driver for some obscure device, I 
used to wait in init script for "touch /dev/whatever" to be Ok. My 
device was ok with dumb open()/close() sequence.

   What I was really missing - is a way to tell user space that not only 
driver loaded Ok, but that device was found, diagnosed and upped Ok. 
Diagnostics was taking time - that's why I tryed to do it async. While 
device does some inernal spinning, I can load up other drivers.

   I haven't found any reasonable solution. module_init() is locking 
everything - I cannot load any other module, while one module is 
loading. But from user space point of view this is the only way to 
return error from device driver.

   IOW, mapping my experience to this discussion, we need to have a way 
for user space to wait for discover process to end. After all user space 
knows better than enyone in kernel what to expect from loaded driver.

   We are not talking about hot-plug and preloading of modules. We are 
talking more about the case where system cannot go on without requested 
device & its device node. We need a way for modprobe to be able to wait 
for driver initialization phases (we do not have them - make it sense to 
have them?): driver initialization, device discovery, device 
initialization, device node ready. So then user space will be able to 
wait for driver to reach any of given phases. If init script needs 
/dev/sda1 and after all phases completed Ok we failed to locate it - it 
can mean only one thing - /dev/sda1 is not here. Since modprobe will 
wait - it will mean that we will be able to return error, if any. IMHO 
that what need to be implemented. Polling is crappy solution: we do not 
need to poll for something we can reliably find out.

   We have all info in kernel in drivers - we need a way to give it back 
to user space for both play nice with each other.

   My 0.02 Euro.

^ permalink raw reply	[flat|nested] 70+ messages in thread
[parent not found: <http://lkml.org/lkml/2004/9/15/119@localhost.localdomain>]
[parent not found: <http://lkml.org/lkml/2004/9/14/316@localhost.localdomain>]
* udev is too slow creating devices
@ 2004-09-14 18:33 Giacomo A. Catenazzi
  2004-09-14 18:42 ` Greg KH
                   ` (2 more replies)
  0 siblings, 3 replies; 70+ messages in thread
From: Giacomo A. Catenazzi @ 2004-09-14 18:33 UTC (permalink / raw)
  To: linux-kernel, greg; +Cc: Tigran Aivazian

Hello people!

When I load a module (with modprobe) the relative device is too
slowly created with udev, so modprobe return before the device
is really created. Because of this my init.d script will
fail with modular microcode + udev

test case:

udev + modular microcode:
$ modprobe -r microcode
$ modprobe microcode ; microcode_ctl -u
=> microcode_ctl does NOT find the device

$ modprobe -r microcode
$ modprobe microcode ; sleep 3; microcode_ctl -u
=> microcode_ctl FIND the device

[without udev it is OK, so I assume no errors
in modprobe]

Is it a bug of udev?
Else what workaround I can use? (sleep is to slow for
an already to sloow system initialitation)


ciao
	cate

^ permalink raw reply	[flat|nested] 70+ messages in thread

end of thread, other threads:[~2004-09-29 23:54 UTC | newest]

Thread overview: 70+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-18 19:44 udev is too slow creating devices Ihar 'Philips' Filipau
2004-09-18 20:37 ` Marc Ballarin
2004-09-18 21:30 ` Greg KH
2004-09-19  0:06   ` Ihar 'Philips' Filipau
2004-09-19  0:41     ` Greg KH
2004-09-19  8:18       ` Ihar 'Philips' Filipau
2004-09-20  4:19         ` Greg KH
2004-09-19  4:38 ` Benjamin Herrenschmidt
2004-09-19  8:27   ` Ihar 'Philips' Filipau
2004-09-19 11:53     ` Alexander E. Patrakov
2004-09-19 17:32       ` Greg KH
2004-09-19 18:43         ` Grzegorz Kulewski
2004-09-20  4:11           ` Greg KH
2004-09-20 10:52             ` Jon Masters
2004-09-19 12:00     ` Marc Ballarin
2004-09-19 14:25       ` Ihar 'Philips' Filipau
2004-09-19 15:14         ` Marc Ballarin
2004-09-19 16:00           ` Alexander E. Patrakov
2004-09-19 17:11             ` Marc Ballarin
2004-09-19 17:30             ` Greg KH
2004-09-20  2:29               ` Alexander E. Patrakov
2004-09-20 16:17                 ` Giacomo A. Catenazzi
2004-09-29 23:38               ` Randy.Dunlap
2004-09-29 23:53                 ` Greg KH
2004-09-19 19:40           ` Ihar 'Philips' Filipau
2004-09-20  0:05             ` Kyle Moffett
2004-09-20  4:06             ` Greg KH
2004-09-20  8:54             ` Marc Ballarin
2004-09-20  0:03         ` Benjamin Herrenschmidt
  -- strict thread matches above, loose matches on Subject: below --
2004-09-18 19:25 Ihar 'Philips' Filipau
2004-09-18 21:24 ` Greg KH
     [not found] <http://lkml.org/lkml/2004/9/15/119@localhost.localdomain>
2004-09-15 14:26 ` Michael Thonke
     [not found] <http://lkml.org/lkml/2004/9/14/316@localhost.localdomain>
2004-09-14 20:30 ` Michael Thonke
2004-09-14 18:33 Giacomo A. Catenazzi
2004-09-14 18:42 ` Greg KH
2004-09-14 19:21 ` Chris Meadors
2004-09-14 19:40 ` Chris Friesen
2004-09-14 19:52   ` Greg KH
2004-09-14 20:00     ` Chris Friesen
2004-09-14 20:43     ` Giacomo A. Catenazzi
2004-09-14 21:35       ` Greg KH
2004-09-14 21:45         ` Marco d'Itri
2004-09-14 21:51           ` Greg KH
2004-09-14 22:47             ` Andrea Arcangeli
2004-09-14 23:04               ` Greg KH
2004-09-14 23:20                 ` Andrea Arcangeli
2004-09-14 23:34                   ` Gianni Tedesco
2004-09-14 23:58                     ` Andrea Arcangeli
2004-09-15 16:15                   ` Greg KH
2004-09-15 19:21                     ` Andrea Arcangeli
2004-09-15 22:09                       ` Chris Friesen
2004-09-15 22:15                         ` Andrea Arcangeli
2004-09-15 22:25                           ` Greg KH
2004-09-15 22:23                       ` Greg KH
2004-09-15 22:46                         ` Andrea Arcangeli
2004-09-15 13:55                 ` Giacomo A. Catenazzi
2004-09-15 14:36                   ` Ian Campbell
2004-09-15 15:20                     ` Tonnerre
2004-09-15 15:45                       ` Giacomo A. Catenazzi
2004-09-15 16:12                         ` Greg KH
2004-09-15 16:51                         ` Marc Ballarin
2004-09-15 18:00                           ` Greg KH
2004-09-19 16:51                             ` Jon Masters
2004-09-19 18:53                             ` Andreas Jellinghaus
2004-09-20  2:16                               ` Alexander E. Patrakov
2004-09-17  8:06                           ` Alexander E. Patrakov
2004-09-15 16:11                     ` Greg KH
2004-09-15 16:09                   ` Greg KH
2004-09-17  7:48             ` Alexander E. Patrakov
2004-09-14 22:03       ` Marc Ballarin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox