Author Topic: Process named udevd in a CPU loop [SOLVED]  (Read 3987 times)

Offline Old-Polack

  • Administrator
  • Super Villain
  • *****
  • Posts: 11688
  • ----IOFLU----
Re: Process named udevd in a CPU loop
« Reply #30 on: February 11, 2012, 11:24:52 PM »
Old-Polack:

Next set of results:
Code: [Select]
[root@localhost ~]# lspci
00:00.0 RAM memory: nVidia Corporation C51 Host Bridge (rev a2)
00:00.1 RAM memory: nVidia Corporation C51 Memory Controller 0 (rev a2)
00:00.2 RAM memory: nVidia Corporation C51 Memory Controller 1 (rev a2)
00:00.3 RAM memory: nVidia Corporation C51 Memory Controller 5 (rev a2)
00:00.4 RAM memory: nVidia Corporation C51 Memory Controller 4 (rev a2)
00:00.5 RAM memory: nVidia Corporation C51 Host Bridge (rev a2)
00:00.6 RAM memory: nVidia Corporation C51 Memory Controller 3 (rev a2)
00:00.7 RAM memory: nVidia Corporation C51 Memory Controller 2 (rev a2)
00:03.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1)
00:04.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1)
00:05.0 VGA compatible controller: nVidia Corporation C51G [GeForce 6100] (rev a2)
00:09.0 RAM memory: nVidia Corporation MCP51 Host Bridge (rev a2)
00:0a.0 ISA bridge: nVidia Corporation MCP51 LPC Bridge (rev a3)
00:0a.1 SMBus: nVidia Corporation MCP51 SMBus (rev a3)
00:0a.2 RAM memory: nVidia Corporation MCP51 Memory Controller 0 (rev a3)
00:0b.0 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3)
00:0b.1 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3)
00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev a1)
00:0e.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1)
00:10.0 PCI bridge: nVidia Corporation MCP51 PCI Bridge (rev a2)
00:10.2 Multimedia audio controller: nVidia Corporation MCP51 AC97 Audio Controller (rev a2)
00:14.0 Bridge: nVidia Corporation MCP51 Ethernet Controller (rev a3)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
Code: [Select]
[root@localhost ~]# ls -l /boot |grep init
-rw------- 1 root root 5653907 Feb  8 19:47 initrd-2.6.38.8-pclos3.bfs.img
lrwxrwxrwx 1 root root      30 Jul  9  2011 initrd.img -> initrd-2.6.38.8-pclos3.bfs.img

(BTW, the 40 wire vs 80 wire cable was a dead end, as was using master instead of slave; changed to 80 wire cable, and configured drive as slave (with no master) and the problem remains.)

First we want to cd to the boot directory.

[root@localhost ~]# cd /boot                     <Enter>

[root@localhost boot]#               <-- The prompt changes to show the new location

Next we want to save the existing initrd image, in case something goes wrong with the rebuild.

[root@localhost boot]# mv initrd-2.6.38.8-pclos3.bfs.img initrd-2.6.38.8-pclos3.bfs.img-bak                <Enter>

Then a check, to see if that was successful.

[root@localhost boot]# ls -l |grep init                  <Enter>

The link should be broken, and the only initrd image should be initrd-2.6.38.8-pclos3.bfs.img-bak

Now we rebuild the initrd, loading the pata_amd module first, followed by the sata_nv module. Here, I'm just guessing, based on the information from the Magia bug report link. The idea is to get the optical device seen as /dev/sr0.

[root@localhost boot]# mkinitrd -v --preload pata_amd --preload sata_nv initrd-2.6.38.8-pclos3.bfs.img 2.6.38.8-pclos3.bfs           <Enter>

You should see a whole bunch of rolling text as the process progresses. When you are returned to the prompt, the build should be complete.

Again, try the command;

[root@localhost boot]# lsinitrd /boot/initrd.img |grep modprobe         <Enter>

You should get a list similar to the first time the command was entered, except the first two items in the list should be pata_amd and sata_nv.

Post the results of the last command.
Old-Polack

Of what use be there for joy, if not for the sharing thereof?



Lest we forget...

Offline Software Monkey

  • Jr. Member
  • **
  • Posts: 21
    • Software Monkey's Web Site
Re: Process named udevd in a CPU loop
« Reply #31 on: February 12, 2012, 12:02:34 AM »
Old-Polack:

I appreciate the help.  Followed your instructions precisely, using copy/paste.  Output was as hoped, with the pata_amd and sata_nv as the first two modprobe lines:
Code: [Select]
[root@localhost boot]# lsinitrd /boot/initrd.img |grep modprobe
-rwxr-xr-x   1 root     root        24332 Jun 13  2011 lib/libmodprobe.so.0.0.0
lrwxrwxrwx   1 root     root           25 Feb 11 22:59 lib/libmodprobe.so.0 -> /lib/libmodprobe.so.0.0.0
-rwxr-xr-x   1 root     root        26832 Jun 13  2011 bin/modprobe
init
modprobe -q pata_amd
modprobe -q sata_nv
modprobe -q usbhid
modprobe -q ehci-hcd
modprobe -q ohci-hcd
modprobe -q uhci-hcd
modprobe -q ext4
modprobe -q ide-core
modprobe -q ide-disk
modprobe -q ide-gd_mod
modprobe -q scsi_mod
modprobe -q sd_mod
modprobe -q libata
modprobe -q amd74xx
modprobe -q pata_acpi
modprobe -q ide-pci-generic
modprobe -q ata_generic
modprobe -q ide_generic

EDIT: And then I rebooted, and viola! the udevadm monitor no longer reports a steady stream of change events on the optical drive, which now shows as .../sr0 instead of .../hdc.  After a few minutes, CPU load settles down to next to nothing. And the drive works, at least for reading (have yet to try burning with it).

I have to say a huge thank you, for your patience and stepping me through the solution.  Even with over 20 years in commercial programming, a fair bit of it with a *nix system, this stuff is completely arcane unless you know the answer.
« Last Edit: February 12, 2012, 12:18:03 PM by Software Monkey »

Offline Old-Polack

  • Administrator
  • Super Villain
  • *****
  • Posts: 11688
  • ----IOFLU----
Re: Process named udevd in a CPU loop
« Reply #32 on: February 12, 2012, 12:09:52 AM »
Old-Polack:

I appreciate the help.  Followed your instructions precisely, using copy/paste.  Output was as hoped, with the pata_amd and sata_nv as the first two modprobe lines:
Code: [Select]
[root@localhost boot]# lsinitrd /boot/initrd.img |grep modprobe
-rwxr-xr-x   1 root     root        24332 Jun 13  2011 lib/libmodprobe.so.0.0.0
lrwxrwxrwx   1 root     root           25 Feb 11 22:59 lib/libmodprobe.so.0 -> /lib/libmodprobe.so.0.0.0
-rwxr-xr-x   1 root     root        26832 Jun 13  2011 bin/modprobe
init
modprobe -q pata_amd
modprobe -q sata_nv
modprobe -q usbhid
modprobe -q ehci-hcd
modprobe -q ohci-hcd
modprobe -q uhci-hcd
modprobe -q ext4
modprobe -q ide-core
modprobe -q ide-disk
modprobe -q ide-gd_mod
modprobe -q scsi_mod
modprobe -q sd_mod
modprobe -q libata
modprobe -q amd74xx
modprobe -q pata_acpi
modprobe -q ide-pci-generic
modprobe -q ata_generic
modprobe -q ide_generic

Time to reboot, and see what good this has done, if any. Once rebooted, again from a terminal, as root;

[root@localhost ~]# ls -l /dev |grep cdrom                  <Enter>

Post your results.
Old-Polack

Of what use be there for joy, if not for the sharing thereof?



Lest we forget...

Offline Just17

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 11064
  • MLUs Forever!
Re: Process named udevd in a CPU loop [SOLVED]
« Reply #33 on: February 12, 2012, 05:38:10 AM »
Nice result!     ....  and good to know  ;)
MLUs rule the roost!

Linux XPS 3.4.48-pclos1.bfs  64 bit
Intel Core2 Quad CPU Q9450 @ 2.66GHz
4 GB RAM
MCP51 High Def Audio
GeForce GTX 550 Ti
PHILIPS  ‎DVD+-RW DVD8701
‎Logitech ‎BT Mini-Receiver
Afatech DTT

Offline AS

  • Hero Member
  • *****
  • Posts: 4098
  • Have a nice ... night!
Re: Process named udevd in a CPU loop
« Reply #34 on: February 12, 2012, 05:40:54 AM »
EDIT: And then I rebooted, and viola! there udevadm monitor no longer reports a steady stream of change events on the optical drive, which now shows as .../sr0 instead of .../hdc.  After a few minutes, CPU load settles down to next to nothing. And the drive works, at least for reading (have yet to try burning with it).

Great!  :)

Quote
I have to say a huge thank you, for your patience and stepping me through the solution.  Even with over 20 years in commercial programming, a fair bit of it with a *nix system, this stuff is completely arcane unless you know the answer.

I'm adding a few info here, mainly for our kernel developers, it appears that the issue depends from module amd74xx loaded before pata_amd,
Quote
# modinfo amd74xx
filename:       /lib/modules/3.2.5-as.pae/kernel/drivers/ide/amd74xx.ko
license:        GPL
description:    AMD PCI IDE driver
author:         Vojtech Pavlik, Bartlomiej Zolnierkiewicz
alias:          pci:v00001022d0000209Asv*sd*bc*sc*i*
alias:          pci:v000010DEd00000759sv*sd*bc*sc*i*
alias:          pci:v000010DEd0000056Csv*sd*bc*sc*i*
alias:          pci:v000010DEd00000560sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000448sv*sd*bc*sc*i*
alias:          pci:v000010DEd000003ECsv*sd*bc*sc*i*
alias:          pci:v000010DEd0000036Esv*sd*bc*sc*i*
alias:          pci:v000010DEd00000265sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000035sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000053sv*sd*bc*sc*i*
alias:          pci:v000010DEd000000E5sv*sd*bc*sc*i*
alias:          pci:v000010DEd000000D5sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000085sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000065sv*sd*bc*sc*i*
alias:          pci:v000010DEd000001BCsv*sd*bc*sc*i*
alias:          pci:v00001022d00007469sv*sd*bc*sc*i*
alias:          pci:v00001022d00007441sv*sd*bc*sc*i*
alias:          pci:v00001022d00007411sv*sd*bc*sc*i*
alias:          pci:v00001022d00007409sv*sd*bc*sc*i*
alias:          pci:v00001022d00007401sv*sd*bc*sc*i*
depends:        ide-core
intree:         Y
vermagic:       3.2.5-as.pae SMP mod_unload CORE2

Quote
# modinfo pata_amd
filename:       /lib/modules/3.2.5-as.pae/kernel/drivers/ata/pata_amd.ko
version:        0.4.1
license:        GPL
description:    low-level driver for AMD and Nvidia PATA IDE
author:         Alan Cox
srcversion:     8ED64C2B5339A94DA5C209C
alias:          pci:v00001022d0000209Asv*sd*bc*sc*i*
alias:          pci:v000010DEd00000759sv*sd*bc*sc*i*
alias:          pci:v000010DEd0000056Csv*sd*bc*sc*i*
alias:          pci:v000010DEd00000560sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000448sv*sd*bc*sc*i*
alias:          pci:v000010DEd000003ECsv*sd*bc*sc*i*
alias:          pci:v000010DEd0000036Esv*sd*bc*sc*i*
alias:          pci:v000010DEd00000265sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000035sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000053sv*sd*bc*sc*i*
alias:          pci:v000010DEd000000E5sv*sd*bc*sc*i*
alias:          pci:v000010DEd000000D5sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000085sv*sd*bc*sc*i*
alias:          pci:v000010DEd00000065sv*sd*bc*sc*i*
alias:          pci:v000010DEd000001BCsv*sd*bc*sc*i*
alias:          pci:v00001022d00007469sv*sd*bc*sc*i*
alias:          pci:v00001022d00007441sv*sd*bc*sc*i*
alias:          pci:v00001022d00007411sv*sd*bc*sc*i*
alias:          pci:v00001022d00007409sv*sd*bc*sc*i*
alias:          pci:v00001022d00007401sv*sd*bc*sc*i*
depends:        libata
intree:         Y
vermagic:       3.2.5-as.pae SMP mod_unload CORE2

also:
Quote
# modprobe --show-depends amd74xx
insmod /lib/modules/3.2.5-as.pae/kernel/drivers/ide/ide-core.ko
insmod /lib/modules/3.2.5-as.pae/kernel/drivers/ide/amd74xx.ko

Quote
# modprobe --show-depends pata_amd
insmod /lib/modules/3.2.5-as.pae/kernel/drivers/scsi/scsi_mod.ko
insmod /lib/modules/3.2.5-as.pae/kernel/drivers/ata/libata.ko
insmod /lib/modules/3.2.5-as.pae/kernel/drivers/ata/pata_amd.ko

Apparently both modules support the same devices, is there any reason to not drop completely the module amd74xx ?

Offline Old-Polack

  • Administrator
  • Super Villain
  • *****
  • Posts: 11688
  • ----IOFLU----
Re: Process named udevd in a CPU loop [SOLVED]
« Reply #35 on: February 12, 2012, 09:14:00 AM »
AS:

Hold that thought. The amd74xx is an old legacy driver, used by older kernels, and kept as a fallback when libata and pata_amd were under early development. One of my earlier builds had IDE controllers that simply refused to work with the then current pata_amd module, but worked perfectly with the amd74xx module. I doubt that this is the case with the current builds of pata_amd; they seem quite mature and reliable these days. I too think that the amd74xx module could be discarded on any new kernel builds, but there may still be cases where some older hardware, (no SATA) could still use it, if libata were not loaded.

Software Monkey:

Would you please show me the contents of your /etc/modprobe.conf and /etc/modprobe.preload files?

[root@localhost ~]# cat /etc/modprobe.conf                <Enter>

[root@localhost ~]# cat /etc/modprobe.preload                <Enter>

Post your results.

Old-Polack

Of what use be there for joy, if not for the sharing thereof?



Lest we forget...

Offline Software Monkey

  • Jr. Member
  • **
  • Posts: 21
    • Software Monkey's Web Site
Re: Process named udevd in a CPU loop [SOLVED]
« Reply #36 on: February 12, 2012, 12:22:07 PM »
Old-Polack:

cat /etc/modprobe.conf

Code: [Select]
[root@localhost ~]# cat /etc/modprobe.conf
install scsi_hostadapter /sbin/modprobe sata_nv; /bin/true
install ide-controller /sbin/modprobe amd74xx; /sbin/modprobe ide_generic; /bin/true
install usb-interface /sbin/modprobe ehci_hcd; /sbin/modprobe ohci_hcd; /bin/true
alias eth0 forcedeth
alias sound-slot-0 snd_intel8x0

cat /etc/modprobe.preload

Code: [Select]
[root@localhost ~]# cat /etc/modprobe.preload
# /etc/modprobe.preload: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line.  Comments begin with
# a `#', and everything on the line after them are ignored.
# this file is for module-init-tools (kernel 2.5 and above) ONLY
# for old kernel use /etc/modules
fuse
raw1394
sbp2
ohci1394

evdev

And if it helps at all, this is an older mobo (circa 2007/2008, I think), with two IDE channels and two SATA ports.  The last BIOS update for it was May 2008.
« Last Edit: February 12, 2012, 12:24:24 PM by Software Monkey »

Offline Old-Polack

  • Administrator
  • Super Villain
  • *****
  • Posts: 11688
  • ----IOFLU----
Re: Process named udevd in a CPU loop [SOLVED]
« Reply #37 on: February 12, 2012, 12:40:40 PM »
Old-Polack:

cat /etc/modprobe.conf

Code: [Select]
[root@localhost ~]# cat /etc/modprobe.conf
install scsi_hostadapter /sbin/modprobe sata_nv; /bin/true
install ide-controller /sbin/modprobe amd74xx; /sbin/modprobe ide_generic; /bin/true
install usb-interface /sbin/modprobe ehci_hcd; /sbin/modprobe ohci_hcd; /bin/true
alias eth0 forcedeth
alias sound-slot-0 snd_intel8x0

cat /etc/modprobe.preload

Code: [Select]
[root@localhost ~]# cat /etc/modprobe.preload
# /etc/modprobe.preload: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line.  Comments begin with
# a `#', and everything on the line after them are ignored.
# this file is for module-init-tools (kernel 2.5 and above) ONLY
# for old kernel use /etc/modules
fuse
raw1394
sbp2
ohci1394

evdev

And if it helps at all, this is an older mobo (circa 2007/2008, I think), with two IDE channels and two SATA ports.  The last BIOS update for it was May 2008.

As root, edit your /etc/modprobe.conf as follows;

install scsi_hostadapter /sbin/modprobe sata_nv; /bin/true
install ide-controller /sbin/modprobe amd74xx; /sbin/modprobe ide_generic; /bin/true
install usb-interface /sbin/modprobe ehci_hcd; /sbin/modprobe ohci_hcd; /bin/true
alias eth0 forcedeth
alias sound-slot-0 snd_intel8x0


to read;

install scsi_hostadapter /sbin/modprobe sata_nv; /bin/true
install ide-controller /sbin/modprobe pata_amd; /sbin/modprobe ide_generic; /bin/true
install usb-interface /sbin/modprobe ehci_hcd; /sbin/modprobe ohci_hcd; /bin/true
alias eth0 forcedeth
alias sound-slot-0 snd_intel8x0


Save the file.

If you install another kernel, it should now create a proper initrd image for that kernel during the installation process. It should not contain the amd74xx module at all.
Old-Polack

Of what use be there for joy, if not for the sharing thereof?



Lest we forget...

Offline Software Monkey

  • Jr. Member
  • **
  • Posts: 21
    • Software Monkey's Web Site
Re: Process named udevd in a CPU loop [SOLVED]
« Reply #38 on: February 12, 2012, 02:47:12 PM »
Old-Polack:

Quote
As root, edit your /etc/modprobe.conf as follows;

...

install scsi_hostadapter /sbin/modprobe sata_nv; /bin/true
install ide-controller /sbin/modprobe pata_amd; /sbin/modprobe ide_generic; /bin/true
install usb-interface /sbin/modprobe ehci_hcd; /sbin/modprobe ohci_hcd; /bin/true
alias eth0 forcedeth
alias sound-slot-0 snd_intel8x0

Done.  And thanks again.