Bug 256730

Summary: [Linuxulator]: linsysfs adds duplicate pathnames on Ampere
Product: Base System Reporter: John F. Carr <jfc>
Component: kernAssignee: freebsd-emulation (Nobody) <emulation>
Status: New ---    
Severity: Affects Only Me CC: dch, dchagin, emaste, mhorne
Priority: ---    
Version: 13.0-STABLE   
Hardware: arm64   
OS: Any   
Bug Depends on:    
Bug Blocks: 247219    
Attachments:
Description Flags
dmesg output none

Description John F. Carr 2021-06-20 14:18:31 UTC
Created attachment 225948 [details]
dmesg output

On my Ampere arm64 server (but not on a Raspberry Pi 3B) I get a panic trying to load linsysfs with INVARIANTS defined.  The panic message is "pfs_add_node(): homonymous siblings".  With a debugging printf instead of a panic I see linsysfs_run_bus is trying to add several instances of "0000:00:00.0".

# ls /usr/jail/0/linux/sys/devices/pci0000:00
0000:00:00.0    0000:00:00.0    0000:00:00.0    0000:00:00.0
0000:00:00.0    0000:00:00.0    0000:00:00.0

There might be two bugs here -- bad PCI enumeration code for the Ampere server and a lack of defensive programming in the linsysfs kernel module.

I see some warnings from PCI code in attached dmesg output which might be related.
Comment 1 Ed Maste freebsd_committer freebsd_triage 2021-06-22 00:16:47 UTC
Can you add the firmware version installed on the eMAG system?
Comment 2 John F. Carr 2021-06-22 13:52:16 UTC
(In reply to Ed Maste from comment #1)
The following is from the AMI boot screen.  Can I get it from the OS?

Version 2.19.1268
BIOS Version: 1.12 HVE104N(11/29/2019)
BMC firmware: 11.05.111
Comment 3 John F. Carr 2023-09-05 22:44:55 UTC
This bug persists after updating to newer firmware.

Here is the output of pciconf -l running a recent 13.2-STABLE:

pcib1@pci0:0:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1def device=0xe005 subvendor=0x0000 subdevice=0x0000
mlx5_core0@pci0:1:0:0:	class=0x020000 rev=0x00 hdr=0x00 vendor=0x15b3 device=0x1015 subvendor=0x15b3 subdevice=0x0057
mlx5_core1@pci0:1:0:1:	class=0x020000 rev=0x00 hdr=0x00 vendor=0x15b3 device=0x1015 subvendor=0x15b3 subdevice=0x0057
pcib3@pci2:0:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1def device=0xe007 subvendor=0x0000 subdevice=0x0000
igb0@pci2:1:0:0:	class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x1533 subvendor=0x8086 subdevice=0x0001
pcib5@pci3:0:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1def device=0xe008 subvendor=0x0000 subdevice=0x0000
pcib7@pci4:0:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1def device=0xe009 subvendor=0x0000 subdevice=0x0000
pcib9@pci5:0:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1def device=0xe00a subvendor=0x0000 subdevice=0x0000
pcib11@pci6:0:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1def device=0xe00b subvendor=0x0000 subdevice=0x0000
nvme0@pci6:1:0:0:	class=0x010802 rev=0x00 hdr=0x00 vendor=0x1bb1 device=0x0100 subvendor=0x1bb1 subdevice=0x0123
pcib13@pci7:0:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1def device=0xe00c subvendor=0x0000 subdevice=0x0000
pcib14@pci7:1:0:0:	class=0x060400 rev=0x04 hdr=0x01 vendor=0x1a03 device=0x1150 subvendor=0x1a03 subdevice=0x1150
vgapci0@pci7:2:0:0:	class=0x030000 rev=0x41 hdr=0x00 vendor=0x1a03 device=0x2000 subvendor=0x1a03 subdevice=0x2000