NAME¶
hal-disable-polling - disable polling on drives with removable media
SYNOPSIS¶
hal-disable-polling [options]
DESCRIPTION¶
hal-disable-polling can be used to to disable and enable media detection
on drives with removable storage. For more information about both the big
picture and specific
HAL properties, refer to the
HAL spec which
can be found in
/usr/share/doc/hal-doc/spec/hal-spec.html depending on
the distribution.
OPTIONS¶
The following options are supported:
- --udi
- The UDI (Unique Device Identifier) of the device
object.
- --device
- The device file of the drive.
- --enable-polling
- Enable polling instead of disabling it.
- --help
- Print out usage.
- --version
- Print the version.
NOTES¶
This program requires super user privileges.
RETURN VALUE¶
If the requested operation was successful, this program will exit with exit code
0.
HISTORY¶
Polling a storage drive is a necessary evil to detect when the user inserts or
removes media. Human computer interaction studies have shown that a broad
class of users expect their system to react within a few seconds of this.
Thus, the
hald daemon polls through the
hald-addon-storage addon
(one instance for each drive with removable media).
The purpose of the
hald-addon-storage addon is simply to open the special
device file at a regular interval (either every 2 or every 16 seconds) to
check for new media. This program tries to open the device file using the
O_EXCL option which means that programs like
cdrecord(1) that
uses
O_EXCL automatically prevents the
hald-addon-storage for
interferring by continously opening the device file. In addition, if the drive
is locked using HAL (see
hal-lock(1)) the addon also stops polling.
Unfortunately, polling a storage drive can have adverse side effects if the
hardware and/or device driver for the hardware is malfunctioning.
Additionally, the operating system kernel itself may offer multiple interfaces
for the same device (e.g.
/dev/sg0 and
/dev/scd0) so even
O_EXCL won't work. Also, polling a drive may decrease throughput in
certain (odd and/or broken) configurations; for example, if two IDE drives
shares the same host (master/slave), bus traffic and contention caused by
polling e.g. the optical drive (slave) can reduce throughput to the hard disk
(master) and/or interfere with CD burning on another optical drive (master).
Finally, polling a drive incurs an overhead both in the host system (processes
get woken up often, preventing the CPU to stay in a deep power saving states)
and it may prevent the actual drive from reaching deep power states as well.
As a result, more power is consumed and this affects battery life for laptops.
Despite the existence of support for asynchronous media change notification in
recent MMC (Multi-Media Commands) specifications, virtually no optical drives
are compliant with the specification. Fortunately newer SATA ATAPI hardware
seems to support Asynchronous Notification (AN) and at this time of writing
(March 2007) work is underway to make both the
Linux operating system
kernel and
HAL take advantage of this.
It is the position of the
HAL team that polling should be avoided at all
costs as long as it doesn't heavily impact the user experience in a negative
way. This tool is provided as a stop-gap measure to use if a system is
rendered useless due to bugs in drivers and/or hardware that is provoked by
HAL polling the drive. If such a bug is encountered it should be reported (see
the
BUGS section below) so it can be fixed - historically
hald
have triggered a number of bugs in
Linux storage drivers and related
subsystems (such as USB) that have later been fixed.
BUGS¶
Please send bug reports to either the distribution or the HAL mailing list, see
http://lists.freedesktop.org/mailman/listinfo/hal on how to subscribe.
SEE ALSO¶
hald(8),
lshal(1),
hal-lock(1),
open(2),
http://www.t10.org/scsi-3.htm,
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=halpolling
AUTHOR¶
Written by David Zeuthen <david@fubar.dk> with a lot of help from many
others.