Bug 1120747

Summary: Unknown symbols listed when loading snd_hda_core
Product: [openSUSE] openSUSE Tumbleweed Reporter: Freek de Kruijf <freek>
Component: BasesystemAssignee: dracut maintainers <dracut-maintainers>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: daniel, freek, tiwai, yast2-maintainers
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: output of dmesg right after boot
output of hwinfo right after boot
output of rpa -qa | sort
output of lsinitrd
dracut-verbose.log
dracut-debug.log.gz

Description Freek de Kruijf 2019-01-04 09:38:19 UTC
Below is part of dmesg output showing unknown symbols listed when loading snd_hda_core
[    5.700565] snd_hda_core: Unknown symbol snd_pcm_add_chmap_ctls (err -2)
[    5.718744] ACPI: bus type USB registered
[    5.718771] usbcore: registered new interface driver usbfs
[    5.718781] usbcore: registered new interface driver hub
[    5.718810] usbcore: registered new device driver usb
[    5.719488] snd_hda_core: Unknown symbol snd_sgbuf_get_chunk_size (err -2)
[    5.719614] snd_hda_core: Unknown symbol snd_pcm_format_width (err -2)
[    5.754088] snd_hda_core: Unknown symbol snd_pcm_add_chmap_ctls (err -2)
[    5.758960] snd_hda_core: Unknown symbol snd_sgbuf_get_chunk_size (err -2)
[    5.759085] snd_hda_core: Unknown symbol snd_pcm_format_width (err -2)
[    5.780317] snd_hda_core: Unknown symbol snd_pcm_add_chmap_ctls (err -2)
[    5.784669] snd_hda_core: Unknown symbol snd_sgbuf_get_chunk_size (err -2)
[    5.784884] snd_hda_core: Unknown symbol snd_pcm_format_width (err -2)
[    5.798350] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.799080] ehci-pci: EHCI PCI platform driver
[    5.799843] snd_hda_core: Unknown symbol snd_pcm_add_chmap_ctls (err -2)
[    5.799884] snd_hda_core: Unknown symbol snd_sgbuf_get_chunk_size (err -2)
[    5.800422] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.800496] snd_hda_core: Unknown symbol snd_pcm_format_width (err -2)

This does not seem to have any effect on producing sound. However sound goes via HDMI to speakers in the display and is not using the separate sound hardware on the system board. See below the output of hwinfo --sound

# hwinfo --sound
10: PCI 500.1: 0403 Audio device                                
  [Created at pci.386]
  Unique ID: 5yAR.K3+3qP5NfZ8
  Parent ID: _Znp.ZJmKoWxd6BF
  SysFS ID: /devices/pci0000:00/0000:00:02.0/0000:05:00.1
  SysFS BusID: 0000:05:00.1
  Hardware Class: sound
  Model: "ATI Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series]"
  Vendor: pci 0x1002 "ATI Technologies Inc"
  Device: pci 0xaa68 "Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series]"
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0xaa68 
  Driver: "snd_hda_intel"
  Driver Modules: "snd_hda_intel"
  Memory Range: 0xfe9bc000-0xfe9bffff (rw,non-prefetchable)
  IRQ: 35 (203 events)
  Module Alias: "pci:v00001002d0000AA68sv00001043sd0000AA68bc04sc03i00"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #32 (PCI bridge)

29: PCI 14.2: 0403 Audio device
  [Created at pci.386]
  Unique ID: 5Dex.BDUuYMOWyw7
  SysFS ID: /devices/pci0000:00/0000:00:14.2
  SysFS BusID: 0000:00:14.2
  Hardware Class: sound
  Model: "ATI SBx00 Azalia (Intel HDA)"
  Vendor: pci 0x1002 "ATI Technologies Inc"
  Device: pci 0x4383 "SBx00 Azalia (Intel HDA)"
  SubVendor: pci 0x1002 "ATI Technologies Inc"
  SubDevice: pci 0x4383 
  Revision: 0x40
  Memory Range: 0xfe6f8000-0xfe6fbfff (rw,non-prefetchable)
  IRQ: 10 (no events)
  Module Alias: "pci:v00001002d00004383sv00001002sd00004383bc04sc03i00"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Config Status: cfg=yes, avail=yes, need=no, active=unknown
Comment 1 Takashi Iwai 2019-01-07 14:11:59 UTC
It looks like your system is broken :)
At least, it means that some modules like snd-pcm are missing on the system.

Is this appearing on initrd?  If yes, how is the module put into initrd without resolving the full dependency?
Comment 2 Freek de Kruijf 2019-01-07 17:36:39 UTC
(In reply to Takashi Iwai from comment #1)
> It looks like your system is broken :)
> At least, it means that some modules like snd-pcm are missing on the system.
> 
> Is this appearing on initrd?  If yes, how is the module put into initrd
> without resolving the full dependency?

I don't know about initrd. Maybe it is loaded in the boot process.
# lsmod | grep pcm
snd_pcm               143360  5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer              36864  2 snd_seq,snd_pcm
snd                    98304  15 snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm

It looks like snd_pcm is loaded.
Comment 3 Takashi Iwai 2019-01-07 18:41:54 UTC
Hrm, the information is too little for further analysis.

Does this happen without any KMP?

In anyway, please give the full dmesg output after boot, as well as the full hwinfo output.
Also, make sure that it's not some side-effect of disk out-of-space or such.
Comment 4 Freek de Kruijf 2019-01-08 09:04:49 UTC
Created attachment 793843 [details]
output of dmesg right after boot

output of dmesg right after boot
Comment 5 Freek de Kruijf 2019-01-08 09:06:40 UTC
Created attachment 793844 [details]
output of hwinfo right after boot

output of hwinfo right after boot
Comment 6 Freek de Kruijf 2019-01-08 09:13:25 UTC
(In reply to Takashi Iwai from comment #3)
> Hrm, the information is too little for further analysis.
> 
> Does this happen without any KMP?

Don't know what KMP is.
 
> In anyway, please give the full dmesg output after boot, as well as the full
> hwinfo output.

See attachments.

> Also, make sure that it's not some side-effect of disk out-of-space or such.

System runs smoothly otherwise.

/ still has 3.8G free out of 20G
System does not use btrfs.
swap uses 64M out of 8190G
Comment 7 Takashi Iwai 2019-01-08 14:02:26 UTC
(In reply to Freek de Kruijf from comment #6)
> (In reply to Takashi Iwai from comment #3)
> > Hrm, the information is too little for further analysis.
> > 
> > Does this happen without any KMP?
> 
> Don't know what KMP is.

It's "kernel module package".
Could you give the output of "rpm -qa | sort"?  (Don't paste but attach the text file to Bugzilla).

> > In anyway, please give the full dmesg output after boot, as well as the full
> > hwinfo output.
> 
> See attachments.
> 
> > Also, make sure that it's not some side-effect of disk out-of-space or such.
> 
> System runs smoothly otherwise.

The problem is that initrd contains snd-hda-core module unnecessarily by some reason.  This happens when any extra kernel module package is involved with initrd, or some dependency is present, or a bug of dracut.

Could you give the output of lsinitrd, too?
Comment 8 Freek de Kruijf 2019-01-08 16:49:38 UTC
Created attachment 793892 [details]
output of rpa -qa | sort

output of rpa -qa | sort
Comment 9 Freek de Kruijf 2019-01-08 16:50:25 UTC
Created attachment 793893 [details]
output of lsinitrd

output of lsinitrd
Comment 10 Freek de Kruijf 2019-01-08 16:54:05 UTC
> Could you give the output of "rpm -qa | sort"?  (Don't paste but attach the
> text file to Bugzilla).
See attachment.
> Could you give the output of lsinitrd, too?
See attachment.
Comment 11 Takashi Iwai 2019-01-08 17:00:34 UTC
Thanks!

Judging from your logs, there is no KMP installed, and indeed the initrd contains snd-hda-intel module and co unnecessarily (and insufficiently).

If you didn't set anything special, I'd guess that must be a bug of dracut that brings the unwanted module into initrd.

Reassigned to dracut maintainer.
Comment 12 Daniel Molkentin 2019-01-22 01:31:24 UTC
I cannot reproduce this here, so I need some more help from your end. Please run

sudo dracut -f --verbose 1 > dracut-verbose.log  2>&1
sudo dracut -f --debug 1 > dracut-debug.log  2>&1

and attach both files. Then I can see what causes dracut to include the spurious module on your machine.
Comment 13 Freek de Kruijf 2019-01-24 22:23:56 UTC
Created attachment 795279 [details]
dracut-verbose.log
Comment 14 Freek de Kruijf 2019-01-24 22:30:43 UTC
Created attachment 795280 [details]
dracut-debug.log.gz
Comment 15 Daniel Molkentin 2019-01-25 13:46:09 UTC
16584-Here is what's happening (lines 16584ff from the debug log):

//usr/lib/dracut/modules.d/00systemd/module-setup.sh@173(install): modules_load_get /etc/modules-load.d
...
//usr/lib/dracut/modules.d/00systemd/module-setup.sh@144(modules_load_get): [[ -f /etc/modules-load.d/yast.conf ]]
//usr/lib/dracut/modules.d/00systemd/module-setup.sh@145(modules_load_get): read _line
//usr/lib/dracut/modules.d/00systemd/module-setup.sh@146(modules_load_get): case $_line in
//usr/lib/dracut/modules.d/00systemd/module-setup.sh@152(modules_load_get): echo snd-hda-intel
//usr/lib/dracut/modules.d/00systemd/module-setup.sh@145(modules_load_get): read _line
//usr/lib/dracut/modules.d/00systemd/module-setup.sh@145(modules_load_get): '[' -n '' ']'
/usr/lib/dracut/modules.d/00systemd/module-setup.sh@173(install): _mods='sg
snd-hda-intel'
...

So for some reason, YaST decided it was a good idea to load snd-hda-intel.ko at boot time, and dracut obeyed as its supposed to under systemd regime.

I can't explain why YaST does this, so let's ask the maintainers.
Comment 16 Takashi Iwai 2019-01-31 13:31:08 UTC
The YaST issue is tracked in bug 1116849.

In this bug, let's track about the incomplete modules in initrd.
Comment 17 Daniel Molkentin 2019-01-31 16:06:30 UTC
Preliminary analysis of the problem:

This is what dracut runs to effectively determine the dependencies (see for_each_kmod_dep() in /usr/lib/dracut/dracut-init.sh):

$ sudo modprobe snd-hda-intel --ignore-install --show-depends                                   

insmod /lib/modules/4.12.14-lp150.12.25-default/kernel/sound/soundcore.ko 
install /sbin/install-snd-module snd $CMDLINE_OPTS 
insmod /lib/modules/4.12.14-lp150.12.25-default/kernel/sound/core/snd-timer.ko 
install /sbin/install-snd-module snd-pcm $CMDLINE_OPTS 
insmod /lib/modules/4.12.14-lp150.12.25-default/kernel/sound/core/snd-hwdep.ko 
insmod /lib/modules/4.12.14-lp150.12.25-default/kernel/sound/hda/snd-hda-core.ko 
insmod /lib/modules/4.12.14-lp150.12.25-default/kernel/sound/pci/hda/snd-hda-codec.ko 
insmod /lib/modules/4.12.14-lp150.12.25-default/kernel/sound/pci/hda/snd-hda-intel.ko 

Then it discards all lines not starting in insmod, so snd and snd-pcm never get added to initrd because they are using a wrapper script that calls insmod/modprobe immediately rather than neatly printing the dependencies.

install-snd-module seems to be SUSE specific belonging to the alsa package and probably specific to SUSE honoring the settings in /etc/sysconfig/sound.

This is probably your domain Takashi. Any suggestion how dracut could add snd and snd-pcm short of hardcoding knowledge about install-snd-module into dracut? and what about the logic this script runs? I guess initrd needs to adhere to /etc/sysconfig/sound as well?
Comment 18 Takashi Iwai 2019-01-31 16:16:48 UTC
Thanks, that explains.  The reason for the script is to install the OSS emulation and the sequencer modules automatically only if user enables it in /etc/sysconfig/sound.  Basically it's for assuring the consistent migration behavior.

If this can be implemented in a less-hackish way, I'd love to change this.
Comment 19 Daniel Molkentin 2019-02-01 00:16:35 UTC
I guess the problem is that files in /etc/sysconfig usually are supposed to take effect without more action. Otherwise, I would have proposed to either force-load or blacklist the modules, but that needs some script running after editing the file.
Comment 21 Takashi Iwai 2019-02-05 11:30:21 UTC
For this particular bug, maybe not much.  I'm going to rethink and cleanup the current sound module loading mechanism, in anyway, but the primary culprit was the superfluous /etc/module-load.d/yast.conf, and this shouldn't happen in normal situations any longer.
Comment 22 Daniel Molkentin 2019-02-05 11:32:41 UTC
Ok, feel free to proceed with this bug as you like, but if you want to keep it open, please reassign. If I can lend a hand: any time.
Comment 23 Daniel Molkentin 2020-05-26 15:36:02 UTC
Takashi, do you want it for tracking purposes? Otherwise I'd proceed to close. Thanks.
Comment 24 Takashi Iwai 2020-05-26 15:58:37 UTC
Feel free to close.  It's a rare case with the persistent old setup, so maybe a one-off kind of things.
Comment 25 Daniel Molkentin 2020-05-26 16:18:49 UTC
Closing as fixed as per #c21.