Bugzilla – Bug 154171
building the list of modules takes 10 minutes
Last modified: 2006-04-03 13:48:24 UTC
At the end of the installation of opensuse 10.1 beta 5, -> configure hardware -> tv card building the list of kernel modules for Technotrend/Hauppauge DVB takes 10 minutes (16:28:54->16:38:34) Need for optimisation?
Created attachment 70681 [details] /var/log/YaST2
-> yast2-tv, can this be reproduced ?
I reproduced it with a less dramatic result: First install was a full install (most selections were checked), there was also activity going on in the background. This time, default kde installation, waited until system idle : it took 2 minutes, which is also too long. Attaching selection from y2log and repeated (date ; ps -afx)
Created attachment 70701 [details] y2log + repeated ps -afx
same problem in beta8 : there seems to be a back-reference to the root file system from /lib/modules/2.6.16-rc6-git1-4-default/extra/ ... seen with ps : 11051 tty1 R+ 0:00 \_ /usr/bin/perl /usr/lib/YaST2/servers_non_y2/ag_modinfo 13329 tty1 R+ 0:00 \_ sh -c cd /lib/modules/2.6.16-rc6-git1-4-default/extra/./opt/kde3/share/d oc/HTML/en/kcontrol/ebrowsing 2> /dev/null; ls *.ko 2> /dev/null
I can't find any "extra" directory on my system. Which package owns the directory (rpm -qf /lib/modules/2.6.16-rc6-git1-4-default/extra/)? How can I reproduce the bug?
I found a possible explanation with these lines from attachchment #70701: 12901 tty1 S+ 0:00 \_ sh -c cd /lib/modules/2.6.16-rc4-3-default/extra 2> /dev/null ; find -type d 2> /dev/null 12902 tty1 R+ 0:03 \_ find -type d If "cd /lib/modules/2.6.16-rc4-3-default/extra" fails (if it does not exist or is no directory ...), we could land in /. Then we begin to select all directories in the filesystem. Afterwards, we catenate the prefix +"/"+ each path in / and run "cd .... ; ls *.ko" in a new shell tens of thousands times A solution could be to replace "; find -type d" with "&& find -type d"
Tv module uses call SCR::Dir(.modinfo.extra) for scanning available kernel drivers. Martin, modinfo is a perl agent, could you look at it?
Thanks for your findings, Michel. "&&" applied in yast2-core-2.13.20 Lada, perhaps "extra" has a different name now?
Right, now it's "updates" directory. Thanks!
Also the firmware directory has been changed to "/lib/firmware/" Fixed in yast2-tv-2.13.8