hal forks many hald-addon-storage processes

David Zeuthen david at fubar.dk
Thu Sep 7 10:00:24 PDT 2006


On Thu, 2006-09-07 at 09:30 +0300, David Peer wrote:
> Hi,
> 
> I have some SunFire X4100 servers that run Debian on it.
> When dbus loads hald, hald-runner forks 9 hald-addon-storage process 

I'm curious why that happens. We only fork a hald-addon-storage add-on
if the storage device got removable media. It sounds weird that you
would have 9 devices that accepts removable media on such a box.

So, what is the hardware setup and hal version? 

Also, for one of the devices that hald-addon-storage touches, let's
assume it's /dev/sda, what's the output of 

 $ cat /sys/block/sda/removable

Can you also attach the output of lshal?

> which cuase cpu load when the machine should be idle.
> I've check it when they where "dead" = machine complitly idle!

Huh? Basically, each of these processes just do

 while (TRUE) {
     fd = open ("/dev/sd?", O_RDONLY);
     close (fd);
     sleep (2);
 }

to poll for media changes so if this puts a huge load on the machine
it's a bug with the driver and/or hardware. 

Mind you, we've seen instances where some USB host controller driver
went haywire - IIRC this was caused by a bad USB board - look at the
archives of this list.

> How can I limit those child processes to one process? 

No, this wouldn't be safe. 

We used to poll from one process but if a driver goes haywire and puts
the polling process in state D (uninteruptible IO) it's game over for
the whole process. This used to happen a lot in early Linux 2.6 but it's
much better now. 

> or disable 
> hald-addon-storage from loading?

Not something you want either. 

It looks to me like you have issues with either the driver or the
hardware itself. But I would need to look at lshal output to make sure.
It may suck to hear this but on the upside it means that maybe someone
gets to fix a driver and many people will benefit from this bug report
of yours. Thanks.

    David



More information about the hal mailing list