[Bug 243225] "mpr0: Out of chain frames" boot hang after clang 9.0.1 import (probably timing, not compiler related)

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 03 Jun 2025 07:39:52 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=243225

--- Comment #9 from Peter Eriksson <pen@lysator.liu.se> ---
Just for reference, I'm running FreeBSD 14.2 with "mpr" controllers on some
machines and things work mostly fine. I'm using the default hw.mpr.max_chains =
16384 on all machines.


Machine 1 - Dell PowerEdge R330 - 2 SATA SSDs

# mprutil show adapters
Device Name           Chip Name        Board Name        Firmware
/dev/mpr0             LSISAS3008  Dell HBA330 Adp        10000b00

# mprutil show adapter 
mpr0 Adapter:
       Board Name: Dell HBA330 Adp
   Board Assembly: 
        Chip Name: LSISAS3008
    Chip Revision: ALL
    BIOS Revision: 18.00.03.00
Firmware Revision: 16.00.11.00
  Integrated RAID: no
         SATA NCQ: ENABLED
 PCIe Width/Speed: x4 (8.0 GB/sec)
        IOC Speed: Full
      Temperature: 47 C

PhyNum  CtlrHandle  DevHandle  Disabled  Speed   Min    Max    Device
0                              N                 3.0    12     SAS Initiator 
1                              N                 3.0    12     SAS Initiator 
2                              N                 3.0    12     SAS Initiator 
3                              N                 3.0    12     SAS Initiator 
4                              N                 3.0    12     SAS Initiator 
5                              N                 3.0    12     SAS Initiator 
6       0001        000a       N         6.0     3.0    12     SAS Initiator 
7       0002        000b       N         6.0     3.0    12     SAS Initiator 

# sysctl dev.mpr |egrep chain
dev.mpr.0.chain_alloc_fail: 0
dev.mpr.0.max_chains: 16384
dev.mpr.0.chain_free_lowwater: 16352
dev.mpr.0.chain_free: 16384



Machine 2 - Dell PowerEdge R740xd - 20+48 drives

# mprutil show adapters
Device Name           Chip Name        Board Name        Firmware
/dev/mpr0             LSISAS3008 Dell HBA330 Mini        10000b00
/dev/mpr1                SAS3816     HBA 9500-16e        1d000000

# mprutil -u0 show adapter
mpr0 Adapter:
       Board Name: Dell HBA330 Mini
   Board Assembly: 
        Chip Name: LSISAS3008
    Chip Revision: ALL
    BIOS Revision: 18.00.03.00
Firmware Revision: 16.00.11.00
  Integrated RAID: no
         SATA NCQ: ENABLED
 PCIe Width/Speed: x8 (8.0 GB/sec)
        IOC Speed: Full
      Temperature: 39 C

PhyNum  CtlrHandle  DevHandle  Disabled  Speed   Min    Max    Device
0       0001        0009       N         12      3.0    12     SAS Initiator 
1       0001        0009       N         12      3.0    12     SAS Initiator 
2       0001        0009       N         12      3.0    12     SAS Initiator 
3       0001        0009       N         12      3.0    12     SAS Initiator 
4       0001        0009       N         12      3.0    12     SAS Initiator 
5       0001        0009       N         12      3.0    12     SAS Initiator 
6       0001        0009       N         12      3.0    12     SAS Initiator 
7       0001        0009       N         12      3.0    12     SAS Initiator 


# mprutil -u1 show adapter
mpr1 Adapter:
       Board Name: HBA 9500-16e
   Board Assembly: 03-50075-00003
        Chip Name: SAS3816
    Chip Revision: ALL
    BIOS Revision: 0.00.00.00
Firmware Revision: 29.00.00.00
  Integrated RAID: no
         SATA NCQ: ENABLED
 PCIe Width/Speed: x8 (8.0 GB/sec)
        IOC Speed: Full
      Temperature: 46 C
PhyNum  CtlrHandle  DevHandle  Disabled  Speed   Min    Max    Device
0       0001        002f       N         12      3.0    12     SAS Initiator 
1       0001        002f       N         12      3.0    12     SAS Initiator 
2       0001        002f       N         12      3.0    12     SAS Initiator 
3       0001        002f       N         12      3.0    12     SAS Initiator 
4       0001        002f       N         12      3.0    12     SAS Initiator 
5       0001        002f       N         12      3.0    12     SAS Initiator 
6       0001        002f       N         12      3.0    12     SAS Initiator 
7       0001        002f       N         12      3.0    12     SAS Initiator 
8       0009        0049       N         12      3.0    12     SAS Initiator 
9       0009        0049       N         12      3.0    12     SAS Initiator 
10      0009        0049       N         12      3.0    12     SAS Initiator 
11      0009        0049       N         12      3.0    12     SAS Initiator 
12      0009        0049       N         12      3.0    12     SAS Initiator 
13      0009        0049       N         12      3.0    12     SAS Initiator 
14      0009        0049       N         12      3.0    12     SAS Initiator 
15      0009        0049       N         12      3.0    12     SAS Initiator 
16                             N                 ???    ???    No Device     
17                             N                 ???    ???    No Device     
18                             N                 ???    ???    No Device     
19                             N                 ???    ???    No Device     
20                             N                 ???    ???    No Device     

# sysctl dev.mpr|egrep chain
dev.mpr.1.chain_alloc_fail: 0
dev.mpr.1.max_chains: 16384
dev.mpr.1.chain_free_lowwater: 10274
dev.mpr.1.chain_free: 16384
dev.mpr.0.chain_alloc_fail: 0
dev.mpr.0.max_chains: 16384
dev.mpr.0.chain_free_lowwater: 14383
dev.mpr.0.chain_free: 16384



Machine 3 - HP ProLiant DL380G9 - 121 drives

# mprutil show adapters
Device Name           Chip Name        Board Name        Firmware
/dev/mpr0                SAS3816     HBA 9500-16e        20000000

# mprutil show adapter
mpr0 Adapter:
       Board Name: HBA 9500-16e
   Board Assembly: 03-50075-00003
        Chip Name: SAS3816
    Chip Revision: ALL
    BIOS Revision: 0.00.00.00
Firmware Revision: 32.00.00.00
  Integrated RAID: no
         SATA NCQ: ENABLED
 PCIe Width/Speed: x8 (8.0 GB/sec)
        IOC Speed: Full
      Temperature: 45 C

PhyNum  CtlrHandle  DevHandle  Disabled  Speed   Min    Max    Device
0       0001        0017       N         12      3.0    12     SAS Initiator 
1       0001        0017       N         12      3.0    12     SAS Initiator 
2       0001        0017       N         12      3.0    12     SAS Initiator 
3       0001        0017       N         12      3.0    12     SAS Initiator 
4                              N                 3.0    12     SAS Initiator 
5                              N                 3.0    12     SAS Initiator 
6                              N                 3.0    12     SAS Initiator 
7                              N                 3.0    12     SAS Initiator 
8       0009        0018       N         12      3.0    12     SAS Initiator 
9       0009        0018       N         12      3.0    12     SAS Initiator 
10      0009        0018       N         12      3.0    12     SAS Initiator 
11      0009        0018       N         12      3.0    12     SAS Initiator 
12                             N                 3.0    12     SAS Initiator 
13                             N                 3.0    12     SAS Initiator 
14                             N                 3.0    12     SAS Initiator 
15                             N                 3.0    12     SAS Initiator 
16                             N                 ???    ???    No Device     
17                             N                 ???    ???    No Device     
18                             N                 ???    ???    No Device     
19                             N                 ???    ???    No Device     
20                             N                 ???    ???    No Device     

# sysctl dev.mpr|egrep chain
dev.mpr.0.chain_alloc_fail: 0
dev.mpr.0.max_chains: 16384
dev.mpr.0.chain_free_lowwater: 5839
dev.mpr.0.chain_free: 16384

-- 
You are receiving this mail because:
You are the assignee for the bug.