Red Hat Bugzilla – Bug 353391
script wastes quadratic time with /sys/block/sdX/sdXN/slaves
Last modified: 2008-03-13 02:19:44 EDT
Description of problem: During a fresh installation from DVD, two shell scripts
each waste time quadratically in the number of partitions on each harddrive. On
a box with three drives of (4, 7, 15} partitions, system calls such as
open("/sys/block/sdc/sdc15/slaves", O_RDONLY|O_NONBLOCK|O_DIRECTORY|0x80000) =
ccount for more than 1% of all system calls during the entire installation.
Version-Release number of selected component (if applicable):
How reproducible: always
Steps to Reproduce:
1. Install on a box that has at least one drive with many partitions.
2. as soon as vtty2 is available:
strace -f -o '|gzip' -p <pid-of-anaconda> > strace.out &
(you must supply strace on a USB flash drive before boot, and mount the device
3. inspect strace.out (63MB compressed, 1GB uncompressed) for:
open("/sys/block/sdX/sdXN/slaves", ...) = -1 ENOENT.
Actual results: 142,718 such ENOENT when three drives of 4, 7, 15 partitions.
(Output will be attached to this bz report.) All calls come from two /sbin/nash
processes. There are only 13,238,719 system calls in the whole install.
Expected results: quadratic algorithms are not allowed when they exceed 1% of
the total effort.
Created attachment 238151 [details]
summarized strace output involving /sys/block/sdX/sdXN/slaves
The columns are: count, pid, syscall from strace
*** This bug has been marked as a duplicate of 277271 ***