ASRock H81 + Intel Celeron G1840 Adaptec 7805H HP SAS Expander, firmware 2.08 Steps to reproduce: 1. blacklist pm80xx 2. reboot 3. modprobe -v pm80xx insmod /lib/modules/3.17.0-999-generic/kernel/drivers/scsi/scsi_transport_sas.ko insmod /lib/modules/3.17.0-999-generic/kernel/drivers/scsi/libsas/libsas.ko insmod /lib/modules/3.17.0-999-generic/kernel/drivers/scsi/pm8001/pm80xx.ko Dmesg output returns failure and sas discovery failure messages. And "lsscsi -g" does not show new devices. Dmesg output: [ 85.396376] pm80xx 0000:01:00.0: pm80xx: driver version 0.1.37 [ 85.396441] pm80xx 0000:01:00.0: enabling device (0000 -> 0002) [ 86.258014] scsi host2: pm80xx [ 86.258261] pm80xx 0000:01:00.0: irq 29 for MSI/MSI-X ... [ 86.261347] pm80xx 0000:01:00.0: irq 92 for MSI/MSI-X [ 86.757671] sas: phy-2:4 added to port-2:0, phy_mask:0x10 (5001438023aad066) [ 86.758242] sas: phy-2:5 added to port-2:1, phy_mask:0x20 (5001438023aad066) [ 86.758699] sas: phy-2:6 added to port-2:2, phy_mask:0x40 (5001438023aad066) [ 86.759163] sas: phy-2:7 added to port-2:3, phy_mask:0x80 (5001438023aad066) [ 86.759579] sas: DOING DISCOVERY on port 0, pid:60 [ 86.762141] pm80xx mpi_smp_completion 2604:smp IO status 0x2 [ 86.762587] sas: expander 5001438023aad066 discovery failed(0xffffffa6) [ 86.763278] sas: DONE DISCOVERY on port 0, pid:60, result:-90 [ 86.763766] sas: DOING DISCOVERY on port 1, pid:60 [ 86.764597] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.765155] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.765710] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.766269] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 86.767097] sas: DONE DISCOVERY on port 1, pid:60, result:-70 [ 86.767704] sas: DOING DISCOVERY on port 2, pid:60 [ 86.768601] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.769272] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.769981] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.770601] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 86.771400] sas: DONE DISCOVERY on port 2, pid:60, result:-70 [ 86.772067] sas: DOING DISCOVERY on port 3, pid:60 [ 86.773587] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.774592] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.775596] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 86.776273] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 86.778343] sas: DONE DISCOVERY on port 3, pid:60, result:-70 Regression: 1. Different HBA SAS connector, SAS cable and HP SAS expander: [ 558.633914] pm80xx 0000:01:00.0: pm80xx: driver version 0.1.37 [ 558.633984] pm80xx 0000:01:00.0: enabling device (0000 -> 0002) [ 559.495069] scsi host2: pm80xx [ 559.495922] pm80xx 0000:01:00.0: irq 29 for MSI/MSI-X ... [ 559.499132] pm80xx 0000:01:00.0: irq 92 for MSI/MSI-X [ 559.993123] sas: phy-2:0 added to port-2:0, phy_mask:0x1 (5001438018c7ed26) [ 559.993660] sas: phy-2:1 added to port-2:1, phy_mask:0x2 (5001438018c7ed26) [ 559.994187] sas: phy-2:2 added to port-2:2, phy_mask:0x4 (5001438018c7ed26) [ 559.994997] sas: phy-2:3 added to port-2:3, phy_mask:0x8 (5001438018c7ed26) [ 559.995429] sas: DOING DISCOVERY on port 0, pid:1017 [ 559.999109] pm80xx mpi_smp_completion 2604:smp IO status 0x2 [ 559.999551] sas: expander 5001438018c7ed26 discovery failed(0xffffffa6) [ 560.000294] sas: DONE DISCOVERY on port 0, pid:1017, result:-90 [ 560.000787] sas: DOING DISCOVERY on port 1, pid:1017 [ 560.001896] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.002457] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.003131] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.003688] sas: RG to ex 5001438018c7ed26 failed:0xffffffba [ 560.004459] sas: DONE DISCOVERY on port 1, pid:1017, result:-70 [ 560.005104] sas: DOING DISCOVERY on port 2, pid:1017 [ 560.005975] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.006697] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.007500] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.008174] sas: RG to ex 5001438018c7ed26 failed:0xffffffba [ 560.009052] sas: DONE DISCOVERY on port 2, pid:1017, result:-70 [ 560.009818] sas: DOING DISCOVERY on port 3, pid:1017 [ 560.012035] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.012849] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.013585] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 560.014305] sas: RG to ex 5001438018c7ed26 failed:0xffffffba [ 560.015652] sas: DONE DISCOVERY on port 3, pid:1017, result:-70 Despite the failure messages, the pm80xx module seems to load fine: # lsmod | grep pm80xx pm80xx 158147 0 libsas 89155 1 pm80xx scsi_transport_sas 41028 2 libsas,pm80xx # dmesg [ 19.226666] pm80xx 0000:01:00.0: pm80xx: driver version 0.1.37 [ 19.226738] pm80xx 0000:01:00.0: enabling device (0000 -> 0002) [ 20.088440] scsi host2: pm80xx [ 20.088768] pm80xx 0000:01:00.0: irq 29 for MSI/MSI-X ...till... [ 20.091913] pm80xx 0000:01:00.0: irq 92 for MSI/MSI-X LED status of the Adaptec 7805 host bus adapter: BOOT = off RAAE = off IOP0 = off IOP1 = off Activity 0 = off Activity 1 = solid green Activity 2 = off Activity 3 = off LED status of the HP SAS expander card: CR1 = solid green CR2 = solid green CR3 = solid green CR4 = off CR5 = off CR6 = blinks green uname -a Linux ubuntu14 3.17.0-999-generic #201409240305 SMP Wed Sep 24 02:07:04 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
looks like the expander reject SMP commands, could you attach SAS analyzer between HBA and expander, looks like for me, the expander is not SAS1.1 compatible?
Sorry, I haven't got a SAS analyzer available. As far as I know these HP SAS expander are based on PMC Sierra PM 8005 IC a.k.a. PM8005 SXP 36x6GSec.
Regression #2: firmware upgrade for Adaptec PMC-Sierra PM8018 SAS HBA [Series 7H] [9005:8088]: old: Number of controllers = 1 CONTROLLER_ADDRESS | VENDOR_ID | DEVICE_ID | FIRMWARE_REVISION | BIOS_VERSION 0000:01:00.0 0x9005 0x8088 02.08.59.01 1.2.0.0234 new: Number of controllers = 1 CONTROLLER_ADDRESS | VENDOR_ID | DEVICE_ID | FIRMWARE_REVISION | BIOS_VERSION 0000:01:00.0 0x9005 0x8088 02.08.60.01 1.2.0.10624 Resulting output on modprobe pm80xx: [ 90.510311] pm80xx 0000:01:00.0: pm80xx: driver version 0.1.37 [ 90.510383] pm80xx 0000:01:00.0: enabling device (0000 -> 0002) [ 91.371537] scsi host4: pm80xx [ 91.371787] pm80xx 0000:01:00.0: irq 30 for MSI/MSI-X ... [ 91.374906] pm80xx 0000:01:00.0: irq 93 for MSI/MSI-X [ 91.869604] sas: phy-4:0 added to port-4:0, phy_mask:0x1 (5001438023aad066) [ 91.870157] sas: phy-4:1 added to port-4:1, phy_mask:0x2 (5001438023aad066) [ 91.870683] sas: phy-4:2 added to port-4:2, phy_mask:0x4 (5001438023aad066) [ 91.871211] sas: phy-4:3 added to port-4:3, phy_mask:0x8 (5001438023aad066) [ 91.871688] sas: DOING DISCOVERY on port 0, pid:137 [ 91.875186] pm80xx mpi_smp_completion 2604:smp IO status 0x2 [ 91.875770] sas: expander 5001438023aad066 discovery failed(0xffffffa6) [ 91.876491] sas: DONE DISCOVERY on port 0, pid:137, result:-90 [ 91.877029] sas: DOING DISCOVERY on port 1, pid:137 [ 91.878057] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.878675] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.879282] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.879883] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 91.880794] sas: DONE DISCOVERY on port 1, pid:137, result:-70 [ 91.881465] sas: DOING DISCOVERY on port 2, pid:137 [ 91.882664] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.883413] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.884154] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.884861] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 91.886227] sas: DONE DISCOVERY on port 2, pid:137, result:-70 [ 91.886957] sas: DOING DISCOVERY on port 3, pid:137 [ 91.888161] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.889470] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.890270] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 91.891055] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 91.892008] sas: DONE DISCOVERY on port 3, pid:137, result:-70
Could you check if the expander has new firmware? you can also check smp support through smp_utils http://sg.danny.cz/sg/smp_utils.html
Yes, the expander has new firmware (v. 2.10 available since early September). Although my guess is that a firmware upgrade will not be possible as long as the SAS HBA has an address (a.k.a. initiator port identifier) of 0: # lsscsi -Ht | grep pm80xx [4] pm80xx sas:0x0000000000000000 # ls /dev/bsg/ex* ls: cannot access /dev/bsg/ex*: No such file or directory
Ah, I forgot no bsg node if expander discover failed:( HBA SAS address is 0, does not matter. From my point, this bug clear SMP protocol related, you could report to PMC, I think they will offer help.
Cc pmchba maillist. 2014-09-25 18:20 GMT+02:00 <bugzilla-daemon@bugzilla.kernel.org>: > https://bugzilla.kernel.org/show_bug.cgi?id=85151 > > --- Comment #6 from Jack Wang <xjtuwjp@gmail.com> --- > Ah, I forgot no bsg node if expander discover failed:( > HBA SAS address is 0, does not matter. > > From my point, this bug clear SMP protocol related, you could report to PMC, > I > think they will offer help. > > -- > You are receiving this mail because: > You are watching the assignee of the bug. > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
The SMP failure is due to SMP overflow. Due to this overrun discovery of expander fails. I will try to use the same FW version for expander and check it locally. - Suresh
Even with latest HP SAS expander firmware version 2.10 (CP022989, Sep 9th 2014, PUF21000.bin e898facebe75c180c0a9e7d521d0285a), no drives attached, only the 7805H with one cable SFF-8643 to SFF-8088 (0.5 meter in length) to the external (1C,PORT1C) of the expander, there are these failure messages: [ 117.805044] sas: DOING DISCOVERY on port 0, pid:134 [ 117.807859] pm80xx mpi_smp_completion 2604:smp IO status 0x2 [ 117.808354] sas: expander 5001438018c7ed26 discovery failed(0xffffffa6) [ 117.809010] sas: DONE DISCOVERY on port 0, pid:134, result:-90 [ 117.809878] sas: DOING DISCOVERY on port 1, pid:134 [ 117.810706] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.811277] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.811891] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.812443] sas: RG to ex 5001438018c7ed26 failed:0xffffffba [ 117.813380] sas: DONE DISCOVERY on port 1, pid:134, result:-70 [ 117.814045] sas: DOING DISCOVERY on port 2, pid:134 [ 117.814966] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.815649] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.816361] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.817032] sas: RG to ex 5001438018c7ed26 failed:0xffffffba [ 117.817804] sas: DONE DISCOVERY on port 2, pid:134, result:-70 [ 117.818335] sas: DOING DISCOVERY on port 3, pid:134 [ 117.819051] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.819646] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.820414] sas: smp_execute_task: task to dev 5001438018c7ed26 response: 0xffffffff status 0x8a [ 117.820964] sas: RG to ex 5001438018c7ed26 failed:0xffffffba [ 117.821709] sas: DONE DISCOVERY on port 3, pid:134, result:-70
After splitting module loading and connecting the expander, and enabling verbose pm80xx logging in between: 1. disconnect cable 2. modprobe pm80xx 3. # echo 0xfff > $(find /sys -iname logging_level) 4. verify new verbose logging level: # cat $(find /sys -iname logging_level) 00000fffh 5. plug cable The new verbose dmesg output when connecting the HP Expander SAS Card [468406-B21, 487738-001]: [ 1642.564117] pm80xx pm8001_mpi_msg_consume 1450:: CI=11 PI=15 msgHeader=81002700 [ 1642.564580] pm80xx process_one_iomb 3464:OPC_OUB_HW_EVENT [ 1642.565045] pm80xx mpi_hw_event 3106:portid:0 phyid:0 event:0x4 status:0x0 [ 1642.565551] pm80xx mpi_hw_event 3112:HW_EVENT_PHY_START_STATUS [ 1642.566074] pm80xx hw_event_sas_phy_up 2863:portid:0; phyid:0; linkrate:4; portstate:1; devicetype:2 [ 1642.566669] pm80xx hw_event_sas_phy_up 2879:expander device. [ 1642.567281] pm80xx pm8001_bytes_dmaed 3246:phy 0 byte dmaded. [ 1642.567913] pm80xx pm8001_mpi_msg_free_set 1407: CI=12 PI=15 [ 1642.568563] pm80xx pm8001_mpi_msg_consume 1450:: CI=12 PI=15 msgHeader=81002700 [ 1642.569241] pm80xx process_one_iomb 3464:OPC_OUB_HW_EVENT [ 1642.569943] pm80xx mpi_hw_event 3106:portid:0 phyid:1 event:0x4 status:0x0 [ 1642.570687] pm80xx mpi_hw_event 3112:HW_EVENT_PHY_START_STATUS [ 1642.571451] pm80xx hw_event_sas_phy_up 2863:portid:0; phyid:1; linkrate:4; portstate:1; devicetype:2 [ 1642.572286] pm80xx hw_event_sas_phy_up 2879:expander device. [ 1642.573132] pm80xx pm8001_bytes_dmaed 3246:phy 1 byte dmaded. [ 1642.574004] pm80xx pm8001_mpi_msg_free_set 1407: CI=13 PI=15 [ 1642.574895] pm80xx pm8001_mpi_msg_consume 1450:: CI=13 PI=15 msgHeader=81002700 [ 1642.575818] pm80xx process_one_iomb 3464:OPC_OUB_HW_EVENT [ 1642.576761] pm80xx mpi_hw_event 3106:portid:0 phyid:2 event:0x4 status:0x0 [ 1642.577748] pm80xx mpi_hw_event 3112:HW_EVENT_PHY_START_STATUS [ 1642.578755] pm80xx hw_event_sas_phy_up 2863:portid:0; phyid:2; linkrate:4; portstate:1; devicetype:2 [ 1642.579835] pm80xx hw_event_sas_phy_up 2879:expander device. [ 1642.580924] pm80xx pm8001_bytes_dmaed 3246:phy 2 byte dmaded. [ 1642.582039] pm80xx pm8001_mpi_msg_free_set 1407: CI=14 PI=15 [ 1642.583175] pm80xx pm8001_mpi_msg_consume 1450:: CI=14 PI=15 msgHeader=81002700 [ 1642.584339] pm80xx process_one_iomb 3464:OPC_OUB_HW_EVENT [ 1642.585525] pm80xx mpi_hw_event 3106:portid:0 phyid:3 event:0x4 status:0x0 [ 1642.586756] pm80xx mpi_hw_event 3112:HW_EVENT_PHY_START_STATUS [ 1642.588006] pm80xx hw_event_sas_phy_up 2863:portid:0; phyid:3; linkrate:4; portstate:1; devicetype:2 [ 1642.589325] pm80xx hw_event_sas_phy_up 2879:expander device. [ 1642.590821] pm80xx pm8001_bytes_dmaed 3246:phy 3 byte dmaded. [ 1642.592350] pm80xx pm8001_mpi_msg_free_set 1407: CI=15 PI=15 [ 1642.594488] sas: phy-4:0 added to port-4:0, phy_mask:0x1 (5001438023aad066) [ 1642.596212] sas: phy-4:1 added to port-4:1, phy_mask:0x2 (5001438023aad066) [ 1642.598079] sas: phy-4:2 added to port-4:2, phy_mask:0x4 (5001438023aad066) [ 1642.599804] sas: phy-4:3 added to port-4:3, phy_mask:0x8 (5001438023aad066) [ 1642.601494] sas: DOING DISCOVERY on port 0, pid:137 [ 1642.603161] pm80xx pm8001_dev_found_notify 643:Found device [ 1642.604698] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:32 , UPDATED PI=12 CI=11 [ 1642.606242] pm80xx pm8001_mpi_msg_consume 1450:: CI=15 PI=16 msgHeader=81002832 [ 1642.607848] pm80xx process_one_iomb 3489:OPC_OUB_DEV_REGIST [ 1642.609443] pm80xx pm8001_mpi_reg_resp 3552: register device is status = 0 [ 1642.611074] pm80xx pm8001_mpi_reg_resp 3555:DEVREG_SUCCESS [ 1642.612720] pm80xx pm8001_mpi_msg_free_set 1407: CI=16 PI=16 [ 1642.614386] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.614386] [ 1642.614386] pm80xx pm80xx_chip_smp_req 3768:SMP Frame Length 8 [ 1642.619030] pm80xx pm80xx_chip_smp_req 3814:SMP REQUEST DIRECT MODE [ 1642.620612] pm80xx pm80xx_chip_smp_req 3821:Byte[0]:40 (DMA data:40) [ 1642.622209] pm80xx pm80xx_chip_smp_req 3821:Byte[1]:0 (DMA data:40) [ 1642.623813] pm80xx pm80xx_chip_smp_req 3821:Byte[2]:0 (DMA data:40) [ 1642.625417] pm80xx pm80xx_chip_smp_req 3821:Byte[3]:0 (DMA data:40) [ 1642.626891] pm80xx pm80xx_chip_smp_req 3821:Byte[4]:0 (DMA data:40) [ 1642.628352] pm80xx pm80xx_chip_smp_req 3821:Byte[5]:0 (DMA data:40) [ 1642.629812] pm80xx pm80xx_chip_smp_req 3821:Byte[6]:0 (DMA data:40) [ 1642.631273] pm80xx pm80xx_chip_smp_req 3821:Byte[7]:0 (DMA data:40) [ 1642.632736] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:12 , UPDATED PI=13 CI=12 [ 1642.634242] pm80xx pm8001_mpi_msg_consume 1450:: CI=16 PI=17 msgHeader=81002006 [ 1642.635782] pm80xx process_one_iomb 3479:OPC_OUB_SMP_COMP [ 1642.637327] pm80xx mpi_smp_completion 2611:IO_SUCCESS [ 1642.638886] pm80xx mpi_smp_completion 2619:DIRECT RESPONSE Length:28 [ 1642.640469] pm80xx mpi_smp_completion 2628:SMP Byte0 DMA data 0x41 psmp 0x41 [ 1642.642072] pm80xx mpi_smp_completion 2628:SMP Byte1 DMA data 0x0 psmp 0x0 [ 1642.643680] pm80xx mpi_smp_completion 2628:SMP Byte2 DMA data 0x0 psmp 0x0 [ 1642.645256] pm80xx mpi_smp_completion 2628:SMP Byte3 DMA data 0x0 psmp 0x0 [ 1642.646806] pm80xx mpi_smp_completion 2628:SMP Byte4 DMA data 0x0 psmp 0x0 [ 1642.648327] pm80xx mpi_smp_completion 2628:SMP Byte5 DMA data 0x49 psmp 0x49 [ 1642.649838] pm80xx mpi_smp_completion 2628:SMP Byte6 DMA data 0x4 psmp 0x4 [ 1642.651314] pm80xx mpi_smp_completion 2628:SMP Byte7 DMA data 0x0 psmp 0x0 [ 1642.652764] pm80xx mpi_smp_completion 2628:SMP Byte8 DMA data 0xffffff80 psmp 0x80 [ 1642.654208] pm80xx mpi_smp_completion 2628:SMP Byte9 DMA data 0x25 psmp 0x25 [ 1642.655642] pm80xx mpi_smp_completion 2628:SMP Byte10 DMA data 0xffffff8c psmp 0x8c [ 1642.657080] pm80xx mpi_smp_completion 2628:SMP Byte11 DMA data 0x0 psmp 0x0 [ 1642.658494] pm80xx mpi_smp_completion 2628:SMP Byte12 DMA data 0x50 psmp 0x50 [ 1642.659889] pm80xx mpi_smp_completion 2628:SMP Byte13 DMA data 0x1 psmp 0x1 [ 1642.661270] pm80xx mpi_smp_completion 2628:SMP Byte14 DMA data 0x43 psmp 0x43 [ 1642.662619] pm80xx mpi_smp_completion 2628:SMP Byte15 DMA data 0xffffff80 psmp 0x80 [ 1642.663950] pm80xx mpi_smp_completion 2628:SMP Byte16 DMA data 0x23 psmp 0x23 [ 1642.665269] pm80xx mpi_smp_completion 2628:SMP Byte17 DMA data 0xffffffaa psmp 0xaa [ 1642.666585] pm80xx mpi_smp_completion 2628:SMP Byte18 DMA data 0xffffffd0 psmp 0xd0 [ 1642.667887] pm80xx mpi_smp_completion 2628:SMP Byte19 DMA data 0x65 psmp 0x65 [ 1642.669166] pm80xx mpi_smp_completion 2628:SMP Byte20 DMA data 0x0 psmp 0x0 [ 1642.670426] pm80xx mpi_smp_completion 2628:SMP Byte21 DMA data 0x0 psmp 0x0 [ 1642.671665] pm80xx mpi_smp_completion 2628:SMP Byte22 DMA data 0x0 psmp 0x0 [ 1642.672865] pm80xx mpi_smp_completion 2628:SMP Byte23 DMA data 0x0 psmp 0x0 [ 1642.674036] pm80xx mpi_smp_completion 2628:SMP Byte24 DMA data 0x0 psmp 0x0 [ 1642.675188] pm80xx mpi_smp_completion 2628:SMP Byte25 DMA data 0x0 psmp 0x0 [ 1642.676321] pm80xx mpi_smp_completion 2628:SMP Byte26 DMA data 0x0 psmp 0x0 [ 1642.677440] pm80xx mpi_smp_completion 2628:SMP Byte27 DMA data 0x0 psmp 0x0 [ 1642.678536] pm80xx pm8001_mpi_msg_free_set 1407: CI=17 PI=17 [ 1642.679622] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.679622] [ 1642.679622] pm80xx pm80xx_chip_smp_req 3768:SMP Frame Length 8 [ 1642.684002] pm80xx pm80xx_chip_smp_req 3814:SMP REQUEST DIRECT MODE [ 1642.685446] pm80xx pm80xx_chip_smp_req 3821:Byte[0]:40 (DMA data:40) [ 1642.686884] pm80xx pm80xx_chip_smp_req 3821:Byte[1]:1 (DMA data:40) [ 1642.688291] pm80xx pm80xx_chip_smp_req 3821:Byte[2]:0 (DMA data:40) [ 1642.689696] pm80xx pm80xx_chip_smp_req 3821:Byte[3]:0 (DMA data:40) [ 1642.691098] pm80xx pm80xx_chip_smp_req 3821:Byte[4]:0 (DMA data:40) [ 1642.692499] pm80xx pm80xx_chip_smp_req 3821:Byte[5]:0 (DMA data:40) [ 1642.693862] pm80xx pm80xx_chip_smp_req 3821:Byte[6]:0 (DMA data:40) [ 1642.695193] pm80xx pm80xx_chip_smp_req 3821:Byte[7]:0 (DMA data:40) [ 1642.696490] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:12 , UPDATED PI=14 CI=13 [ 1642.697810] pm80xx pm8001_mpi_msg_consume 1450:: CI=17 PI=18 msgHeader=81002006 [ 1642.699133] pm80xx process_one_iomb 3479:OPC_OUB_SMP_COMP [ 1642.700428] pm80xx mpi_smp_completion 2611:IO_SUCCESS [ 1642.701722] pm80xx mpi_smp_completion 2619:DIRECT RESPONSE Length:60 [ 1642.703026] pm80xx mpi_smp_completion 2628:SMP Byte0 DMA data 0x41 psmp 0x41 [ 1642.704335] pm80xx mpi_smp_completion 2628:SMP Byte1 DMA data 0x1 psmp 0x1 [ 1642.705620] pm80xx mpi_smp_completion 2628:SMP Byte2 DMA data 0x0 psmp 0x0 [ 1642.706880] pm80xx mpi_smp_completion 2628:SMP Byte3 DMA data 0x0 psmp 0x0 [ 1642.708124] pm80xx mpi_smp_completion 2628:SMP Byte4 DMA data 0x0 psmp 0x0 [ 1642.709349] pm80xx mpi_smp_completion 2628:SMP Byte5 DMA data 0x49 psmp 0x49 [ 1642.710472] pm80xx mpi_smp_completion 2628:SMP Byte6 DMA data 0x0 psmp 0x0 [ 1642.711569] pm80xx mpi_smp_completion 2628:SMP Byte7 DMA data 0x0 psmp 0x0 [ 1642.712665] pm80xx mpi_smp_completion 2628:SMP Byte8 DMA data 0x1 psmp 0x1 [ 1642.713764] pm80xx mpi_smp_completion 2628:SMP Byte9 DMA data 0x0 psmp 0x0 [ 1642.714865] pm80xx mpi_smp_completion 2628:SMP Byte10 DMA data 0x0 psmp 0x0 [ 1642.715983] pm80xx mpi_smp_completion 2628:SMP Byte11 DMA data 0x0 psmp 0x0 [ 1642.717100] pm80xx mpi_smp_completion 2628:SMP Byte12 DMA data 0x48 psmp 0x48 [ 1642.718189] pm80xx mpi_smp_completion 2628:SMP Byte13 DMA data 0x50 psmp 0x50 [ 1642.719252] pm80xx mpi_smp_completion 2628:SMP Byte14 DMA data 0x20 psmp 0x20 [ 1642.720281] pm80xx mpi_smp_completion 2628:SMP Byte15 DMA data 0x20 psmp 0x20 [ 1642.721290] pm80xx mpi_smp_completion 2628:SMP Byte16 DMA data 0x20 psmp 0x20 [ 1642.722283] pm80xx mpi_smp_completion 2628:SMP Byte17 DMA data 0x20 psmp 0x20 [ 1642.723254] pm80xx mpi_smp_completion 2628:SMP Byte18 DMA data 0x20 psmp 0x20 [ 1642.724219] pm80xx mpi_smp_completion 2628:SMP Byte19 DMA data 0x20 psmp 0x20 [ 1642.725185] pm80xx mpi_smp_completion 2628:SMP Byte20 DMA data 0x48 psmp 0x48 [ 1642.726153] pm80xx mpi_smp_completion 2628:SMP Byte21 DMA data 0x50 psmp 0x50 [ 1642.727126] pm80xx mpi_smp_completion 2628:SMP Byte22 DMA data 0x20 psmp 0x20 [ 1642.728095] pm80xx mpi_smp_completion 2628:SMP Byte23 DMA data 0x53 psmp 0x53 [ 1642.729059] pm80xx mpi_smp_completion 2628:SMP Byte24 DMA data 0x41 psmp 0x41 [ 1642.730023] pm80xx mpi_smp_completion 2628:SMP Byte25 DMA data 0x53 psmp 0x53 [ 1642.730980] pm80xx mpi_smp_completion 2628:SMP Byte26 DMA data 0x20 psmp 0x20 [ 1642.731928] pm80xx mpi_smp_completion 2628:SMP Byte27 DMA data 0x45 psmp 0x45 [ 1642.732862] pm80xx mpi_smp_completion 2628:SMP Byte28 DMA data 0x58 psmp 0x58 [ 1642.733775] pm80xx mpi_smp_completion 2628:SMP Byte29 DMA data 0x50 psmp 0x50 [ 1642.734602] pm80xx mpi_smp_completion 2628:SMP Byte30 DMA data 0x20 psmp 0x20 [ 1642.735426] pm80xx mpi_smp_completion 2628:SMP Byte31 DMA data 0x43 psmp 0x43 [ 1642.736245] pm80xx mpi_smp_completion 2628:SMP Byte32 DMA data 0x61 psmp 0x61 [ 1642.737056] pm80xx mpi_smp_completion 2628:SMP Byte33 DMA data 0x72 psmp 0x72 [ 1642.737858] pm80xx mpi_smp_completion 2628:SMP Byte34 DMA data 0x64 psmp 0x64 [ 1642.738655] pm80xx mpi_smp_completion 2628:SMP Byte35 DMA data 0x20 psmp 0x20 [ 1642.739451] pm80xx mpi_smp_completion 2628:SMP Byte36 DMA data 0x32 psmp 0x32 [ 1642.740239] pm80xx mpi_smp_completion 2628:SMP Byte37 DMA data 0x2e psmp 0x2e [ 1642.741024] pm80xx mpi_smp_completion 2628:SMP Byte38 DMA data 0x31 psmp 0x31 [ 1642.741812] pm80xx mpi_smp_completion 2628:SMP Byte39 DMA data 0x30 psmp 0x30 [ 1642.742601] pm80xx mpi_smp_completion 2628:SMP Byte40 DMA data 0x50 psmp 0x50 [ 1642.743394] pm80xx mpi_smp_completion 2628:SMP Byte41 DMA data 0x4d psmp 0x4d [ 1642.744189] pm80xx mpi_smp_completion 2628:SMP Byte42 DMA data 0x43 psmp 0x43 [ 1642.745067] pm80xx mpi_smp_completion 2628:SMP Byte43 DMA data 0x53 psmp 0x53 [ 1642.745867] pm80xx mpi_smp_completion 2628:SMP Byte44 DMA data 0x49 psmp 0x49 [ 1642.746667] pm80xx mpi_smp_completion 2628:SMP Byte45 DMA data 0x45 psmp 0x45 [ 1642.747440] pm80xx mpi_smp_completion 2628:SMP Byte46 DMA data 0x52 psmp 0x52 [ 1642.748196] pm80xx mpi_smp_completion 2628:SMP Byte47 DMA data 0x41 psmp 0x41 [ 1642.748931] pm80xx mpi_smp_completion 2628:SMP Byte48 DMA data 0xffffff80 psmp 0x80 [ 1642.749656] pm80xx mpi_smp_completion 2628:SMP Byte49 DMA data 0x5 psmp 0x5 [ 1642.750373] pm80xx mpi_smp_completion 2628:SMP Byte50 DMA data 0x2 psmp 0x2 [ 1642.751081] pm80xx mpi_smp_completion 2628:SMP Byte51 DMA data 0x0 psmp 0x0 [ 1642.751782] pm80xx mpi_smp_completion 2628:SMP Byte52 DMA data 0x0 psmp 0x0 [ 1642.752479] pm80xx mpi_smp_completion 2628:SMP Byte53 DMA data 0x0 psmp 0x0 [ 1642.753178] pm80xx mpi_smp_completion 2628:SMP Byte54 DMA data 0x0 psmp 0x0 [ 1642.753875] pm80xx mpi_smp_completion 2628:SMP Byte55 DMA data 0x0 psmp 0x0 [ 1642.754572] pm80xx mpi_smp_completion 2628:SMP Byte56 DMA data 0x0 psmp 0x0 [ 1642.755269] pm80xx mpi_smp_completion 2628:SMP Byte57 DMA data 0x0 psmp 0x0 [ 1642.755966] pm80xx mpi_smp_completion 2628:SMP Byte58 DMA data 0x0 psmp 0x0 [ 1642.756631] pm80xx mpi_smp_completion 2628:SMP Byte59 DMA data 0x0 psmp 0x0 [ 1642.757272] pm80xx pm8001_mpi_msg_free_set 1407: CI=18 PI=18 [ 1642.757900] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.757900] [ 1642.757900] pm80xx pm80xx_chip_smp_req 3768:SMP Frame Length 16 [ 1642.759788] pm80xx pm80xx_chip_smp_req 3781:SMP REQUEST INDIRECT MODE [ 1642.760441] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:12 , UPDATED PI=15 CI=14 [ 1642.761496] pm80xx pm8001_mpi_msg_consume 1450:: CI=18 PI=19 msgHeader=81002006 [ 1642.762159] pm80xx process_one_iomb 3479:OPC_OUB_SMP_COMP [ 1642.762826] pm80xx mpi_smp_completion 2604:smp IO status 0x2 [ 1642.763508] pm80xx mpi_smp_completion 2641:IO_UNDERFLOW [ 1642.764195] pm80xx pm8001_mpi_msg_free_set 1407: CI=19 PI=19 [ 1642.764932] sas: expander 5001438023aad066 discovery failed(0xffffffa6) [ 1642.765689] pm80xx pm8001_dev_gone_notify 866:found dev[16385:2] is gone. [ 1642.766453] pm80xx pm8001_chip_dereg_dev_req 4573:unregister device device_id = 16385 [ 1642.767240] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:10 , UPDATED PI=16 CI=15 [ 1642.768065] pm80xx pm8001_mpi_msg_consume 1450:: CI=19 PI=20 msgHeader=8100200b [ 1642.768896] pm80xx process_one_iomb 3494:unregister the device [ 1642.769739] pm80xx pm8001_mpi_msg_free_set 1407: CI=20 PI=20 [ 1642.771479] sas: DONE DISCOVERY on port 0, pid:137, result:-90 [ 1642.772323] sas: DOING DISCOVERY on port 1, pid:137 [ 1642.773337] pm80xx pm8001_dev_found_notify 643:Found device [ 1642.774202] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:32 , UPDATED PI=17 CI=16 [ 1642.775132] pm80xx pm8001_mpi_msg_consume 1450:: CI=20 PI=21 msgHeader=81002832 [ 1642.776052] pm80xx process_one_iomb 3489:OPC_OUB_DEV_REGIST [ 1642.776976] pm80xx pm8001_mpi_reg_resp 3552: register device is status = 4162 [ 1642.777929] pm80xx pm8001_mpi_reg_resp 3588:DEVREG_FAILURE_DEVICE_TYPE_NOT_UNSORPORTED [ 1642.778906] pm80xx pm8001_mpi_msg_free_set 1407: CI=21 PI=21 [ 1642.779930] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.780602] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.781997] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.782732] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.784255] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.785061] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.786718] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 1642.787586] pm80xx pm8001_dev_gone_notify 866:found dev[2048:2] is gone. [ 1642.788471] pm80xx pm8001_chip_dereg_dev_req 4573:unregister device device_id = 2048 [ 1642.789375] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:10 , UPDATED PI=18 CI=17 [ 1642.790322] pm80xx pm8001_mpi_msg_consume 1450:: CI=21 PI=22 msgHeader=8100200b [ 1642.790322] pm80xx process_one_iomb 3494:unregister the device [ 1642.790323] pm80xx pm8001_mpi_dereg_resp 3610: deregister device failed ,status = 1023, device_id = 0 [ 1642.790324] pm80xx pm8001_mpi_msg_free_set 1407: CI=22 PI=22 [ 1642.790413] sas: DONE DISCOVERY on port 1, pid:137, result:-70 [ 1642.790420] sas: DOING DISCOVERY on port 2, pid:137 [ 1642.790513] pm80xx pm8001_dev_found_notify 643:Found device [ 1642.790514] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:32 , UPDATED PI=19 CI=18 [ 1642.790525] pm80xx pm8001_mpi_msg_consume 1450:: CI=22 PI=23 msgHeader=81002832 [ 1642.790526] pm80xx process_one_iomb 3489:OPC_OUB_DEV_REGIST [ 1642.790527] pm80xx pm8001_mpi_reg_resp 3552: register device is status = 4162 [ 1642.790527] pm80xx pm8001_mpi_reg_resp 3588:DEVREG_FAILURE_DEVICE_TYPE_NOT_UNSORPORTED [ 1642.790529] pm80xx pm8001_mpi_msg_free_set 1407: CI=23 PI=23 [ 1642.792165] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.792165] [ 1642.792165] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.792167] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.792167] [ 1642.792167] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.792168] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.792168] [ 1642.792168] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.792169] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 1642.792171] pm80xx pm8001_dev_gone_notify 866:found dev[2048:2] is gone. [ 1642.792172] pm80xx pm8001_chip_dereg_dev_req 4573:unregister device device_id = 2048 [ 1642.792174] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:10 , UPDATED PI=20 CI=19 [ 1642.792184] pm80xx pm8001_mpi_msg_consume 1450:: CI=23 PI=24 msgHeader=8100200b [ 1642.792185] pm80xx process_one_iomb 3494:unregister the device [ 1642.792187] pm80xx pm8001_mpi_dereg_resp 3610: deregister device failed ,status = 1023, device_id = 0 [ 1642.792188] pm80xx pm8001_mpi_msg_free_set 1407: CI=24 PI=24 [ 1642.792673] sas: DONE DISCOVERY on port 2, pid:137, result:-70 [ 1642.792680] sas: DOING DISCOVERY on port 3, pid:137 [ 1642.793409] pm80xx pm8001_dev_found_notify 643:Found device [ 1642.793411] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:32 , UPDATED PI=21 CI=20 [ 1642.793425] pm80xx pm8001_mpi_msg_consume 1450:: CI=24 PI=25 msgHeader=81002832 [ 1642.793425] pm80xx process_one_iomb 3489:OPC_OUB_DEV_REGIST [ 1642.793426] pm80xx pm8001_mpi_reg_resp 3552: register device is status = 4162 [ 1642.793427] pm80xx pm8001_mpi_reg_resp 3588:DEVREG_FAILURE_DEVICE_TYPE_NOT_UNSORPORTED [ 1642.793429] pm80xx pm8001_mpi_msg_free_set 1407: CI=25 PI=25 [ 1642.795451] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.795451] [ 1642.795451] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.795453] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.795453] [ 1642.795453] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.795454] pm80xx pm8001_task_exec 375:pm8001_task_exec device [ 1642.795454] [ 1642.795454] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 1642.795455] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 1642.795456] pm80xx pm8001_dev_gone_notify 866:found dev[2048:2] is gone. [ 1642.795457] pm80xx pm8001_chip_dereg_dev_req 4573:unregister device device_id = 2048 [ 1642.795458] pm80xx pm8001_mpi_build_cmd 1368:INB Q 0 OPCODE:10 , UPDATED PI=22 CI=21 [ 1642.795468] pm80xx pm8001_mpi_msg_consume 1450:: CI=25 PI=26 msgHeader=8100200b [ 1642.795469] pm80xx process_one_iomb 3494:unregister the device [ 1642.795470] pm80xx pm8001_mpi_dereg_resp 3610: deregister device failed ,status = 1023, device_id = 0 [ 1642.795470] pm80xx pm8001_mpi_msg_free_set 1407: CI=26 PI=26 [ 1642.796793] sas: DONE DISCOVERY on port 3, pid:137, result:-70
Created attachment 153151 [details] pm80xx dmesg even more verbose output after patching pm80xx.ko This is the applied patch: === diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c index b06443a..c696fdc 100644 --- a/drivers/scsi/pm8001/pm80xx_hwi.c +++ b/drivers/scsi/pm8001/pm80xx_hwi.c @@ -2613,10 +2613,10 @@ mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb) ts->stat = SAM_STAT_GOOD; if (pm8001_dev) pm8001_dev->running_req--; + PM8001_FAIL_DBG(pm8001_ha, + pm8001_printk("RESPONSE Length:%d\n", + param)); if (pm8001_ha->smp_exp_mode == SMP_DIRECT) { - PM8001_IO_DBG(pm8001_ha, - pm8001_printk("DIRECT RESPONSE Length:%d\n", - param)); pdma_respaddr = (char *)(phys_to_virt(cpu_to_le64 ((u64)sg_dma_address (&t->smp_task.smp_resp)))); @@ -2628,6 +2628,17 @@ mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb) psmpPayload->_r_a[i])); } } + else if (pm8001_ha->smp_exp_mode == SMP_INDIRECT) { + pdma_respaddr = (char *)(phys_to_virt(cpu_to_le64 + ((u64)sg_dma_address + (&t->smp_task.smp_resp)))); + for (i = 0; i < param; i++) { + PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( + "SMP Byte%d DMA data 0x%x psmp 0x%x\n", + i, *(pdma_respaddr+i), + psmpPayload->_r_a[i])); + } + } break; case IO_ABORTED: PM8001_IO_DBG(pm8001_ha, @@ -2638,12 +2649,21 @@ mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb) pm8001_dev->running_req--; break; case IO_OVERFLOW: - PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_UNDERFLOW\n")); + PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_OVERFLOW\n")); ts->resp = SAS_TASK_COMPLETE; - ts->stat = SAS_DATA_OVERRUN; + ts->stat = SAM_STAT_GOOD; ts->residual = 0; if (pm8001_dev) pm8001_dev->running_req--; + pdma_respaddr = (char *)(phys_to_virt(cpu_to_le64 + ((u64)sg_dma_address + (&t->smp_task.smp_resp)))); + for (i = 0; i < param; i++) { + PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( + "SMP Byte%d DMA data 0x%x psmp 0x%x\n", + i, *(pdma_respaddr+i), + psmpPayload->_r_a[i])); + } break; case IO_NO_DEVICE: PM8001_IO_DBG(pm8001_ha, pm8001_printk("IO_NO_DEVICE\n")); @@ -3809,24 +3829,20 @@ static int pm80xx_chip_smp_req(struct pm8001_hba_info *pm8001_ha, cpu_to_le32 ((u32)sg_dma_len(&task->smp_task.smp_resp)-4); } - if (pm8001_ha->smp_exp_mode == SMP_DIRECT) { - PM8001_IO_DBG(pm8001_ha, - pm8001_printk("SMP REQUEST DIRECT MODE\n")); for (i = 0; i < length; i++) if (i < 16) { smp_cmd.smp_req16[i] = *(preq_dma_addr+i); - PM8001_IO_DBG(pm8001_ha, pm8001_printk( + PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( "Byte[%d]:%x (DMA data:%x)\n", i, smp_cmd.smp_req16[i], *(preq_dma_addr))); } else { smp_cmd.smp_req[i] = *(preq_dma_addr+i); - PM8001_IO_DBG(pm8001_ha, pm8001_printk( + PM8001_FAIL_DBG(pm8001_ha, pm8001_printk( "Byte[%d]:%x (DMA data:%x)\n", i, smp_cmd.smp_req[i], *(preq_dma_addr))); } - } build_smp_cmd(pm8001_dev->device_id, smp_cmd.tag, &smp_cmd, pm8001_ha->smp_exp_mode, length);
Note the changed behavior with kernel "Linux ubuntu14 3.17.0-031700rc7-generic #201409281835 SMP Sun Sep 28 22:36:30 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux" && patched pm80xx, despite the SAS discovery errors the HP SAS expander is now visible: # lsscsi -g [0:0:0:0] disk ATA OCZ-VERTEX 1.3 /dev/sda /dev/sg0 [4:0:0:0] enclosu HP HP SAS EXP Card 2.10 - /dev/sg1 === 2nd HP SAS expander card = ok === Tried with a second HP SAS expander card, that also lists ok in lsscsi. === 1 day more recent mainline kernel using unpatched pm80xx.ko = not ok === # uname -a Linux ubuntu14 3.17.0-999-generic #201409282205 SMP Mon Sep 29 02:06:39 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux # modprobe -v pm80xx ... insmod /lib/modules/3.17.0-999-generic/kernel/drivers/scsi/pm8001/pm80xx.ko # lsscsi -g [0:0:0:0] disk ATA OCZ-VERTEX 1.3 /dev/sda /dev/sg0 === Copying this patched mv80xx over to 3.17.0-999 = ok === Unload # modprobe -rv pm80xx Rename stock kernel module # mv /lib/modules/3.17.0-999-generic/kernel/drivers/scsi/pm8001/pm80xx.ko /lib/modules/3.17.0-999-generic/kernel/drivers/scsi/pm8001/pm80xx.ko.bak Copy # cp /lib/modules/3.17.0-031700rc7-generic/extra/pm80xx.ko /lib/modules/3.17.0-999-generic/extra/pm80xx.ko && depmod # modprobe -v pm80xx ... insmod /lib/modules/3.17.0-999-generic/extra/pm80xx.ko # lsscsi -g [0:0:0:0] disk ATA OCZ-VERTEX 1.3 /dev/sda /dev/sg0 [6:0:0:0] enclosu HP HP SAS EXP Card 2.10 - /dev/sg1
Note: having 2 pieces of the HP SAS expander connected at the same time, one to each port of the Adaptec 7805H, results in a kernel oops: 35.475138] sas: DONE DISCOVERY on port 7, pid:137, result:-70 [ 35.477301] scsi 4:0:0:0: Enclosure HP HP SAS EXP Card 2.10 PQ: 0 ANSI: 5 [ 35.479756] scsi 4:0:0:0: Attached scsi generic sg1 type 13 [ 35.490335] ses 4:0:0:0: Attached Enclosure device [ 35.525143] BUG: unable to handle kernel NULL pointer dereference at 0000000000000290 [ 35.525889] IP: [<ffffffffc05c9f44>] pm8001_dev_gone_notify+0x24/0x210 [pm80xx] [ 35.526618] PGD 0 [ 35.527324] Oops: 0000 [#1] SMP ... [ 35.530609] CPU: 0 PID: 36 Comm: kworker/0:1 Tainted: G OE 3.17.0-031700rc7-generic #201409281835 And with the later mainline kernel: [ 153.518720] sas: DONE DISCOVERY on port 7, pid:127, result:-70 [ 153.521380] scsi 4:0:0:0: Enclosure HP HP SAS EXP Card 2.10 PQ: 0 ANSI: 5 [ 153.526442] scsi 4:0:0:0: Attached scsi generic sg1 type 13 [ 153.539380] ses 4:0:0:0: Attached Enclosure device [ 153.551072] general protection fault: 0000 [#1] SMP ... [ 153.555559] CPU: 0 PID: 36 Comm: kworker/0:1 Tainted: G OE 3.17.0-999-generic #201409282205
This problem is seen on 3.14.21 aswell with expander discovery failure running Adaptec firmware 1.2.0 Build 10624 I applied the patch stated above and it fixed the problem.
After the patch there are less issues. However only 1 HP SAS expander is usable on the Adaptec/Pmcs 2280800-R 7805H. # uname -a Linux ubuntu14 3.17.0-031700rc7-generic #201409281835 SMP Sun Sep 28 22:36:30 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux case #1: Attaching 1 expander to HBA port #1 (closest to bracket) = all 32 drives # lsscsi -g [0:0:0:0] disk ATA OCZ-VERTEX 1.3 /dev/sda /dev/sg0 [4:0:0:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdb /dev/sg1 [4:0:1:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdc /dev/sg2 [4:0:2:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdd /dev/sg3 [4:0:3:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sde /dev/sg4 [4:0:4:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdf /dev/sg5 [4:0:5:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdg /dev/sg6 [4:0:6:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdh /dev/sg7 [4:0:7:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdi /dev/sg8 [4:0:8:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdj /dev/sg9 [4:0:9:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdk /dev/sg10 [4:0:10:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdl /dev/sg11 [4:0:11:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdm /dev/sg12 [4:0:12:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdn /dev/sg13 [4:0:13:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdo /dev/sg14 [4:0:14:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdp /dev/sg15 [4:0:15:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdq /dev/sg16 [4:0:16:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdr /dev/sg17 [4:0:17:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sds /dev/sg18 [4:0:18:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdt /dev/sg19 [4:0:19:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdu /dev/sg20 [4:0:20:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdv /dev/sg21 [4:0:21:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdw /dev/sg22 [4:0:22:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdx /dev/sg23 [4:0:23:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdy /dev/sg24 [4:0:24:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdz /dev/sg25 [4:0:25:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdaa /dev/sg26 [4:0:26:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdab /dev/sg27 [4:0:27:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdac /dev/sg28 [4:0:28:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdad /dev/sg29 [4:0:29:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdae /dev/sg30 [4:0:30:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdaf /dev/sg31 [4:0:31:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdag /dev/sg32 [4:0:32:0] enclosu HP HP SAS EXP Card 2.10 - /dev/sg33 case #2: Attaching 1 expander to HBA port #2 = all 32 drives # lsscsi -g [0:0:0:0] disk ATA OCZ-VERTEX 1.3 /dev/sda /dev/sg0 [4:0:0:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdb /dev/sg1 [4:0:1:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdc /dev/sg2 [4:0:2:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdd /dev/sg3 [4:0:3:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sde /dev/sg4 [4:0:4:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdf /dev/sg5 [4:0:5:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdg /dev/sg6 [4:0:6:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdh /dev/sg7 [4:0:7:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdi /dev/sg8 [4:0:8:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdj /dev/sg9 [4:0:9:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdk /dev/sg10 [4:0:10:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdl /dev/sg11 [4:0:11:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdm /dev/sg12 [4:0:12:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdn /dev/sg13 [4:0:13:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdo /dev/sg14 [4:0:14:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdp /dev/sg15 [4:0:15:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdq /dev/sg16 [4:0:16:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdr /dev/sg17 [4:0:17:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sds /dev/sg18 [4:0:18:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdt /dev/sg19 [4:0:19:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdu /dev/sg20 [4:0:20:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdv /dev/sg21 [4:0:21:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdw /dev/sg22 [4:0:22:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdx /dev/sg23 [4:0:23:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdy /dev/sg24 [4:0:24:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdz /dev/sg25 [4:0:25:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdaa /dev/sg26 [4:0:26:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdab /dev/sg27 [4:0:27:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdac /dev/sg28 [4:0:28:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdad /dev/sg29 [4:0:29:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdae /dev/sg30 [4:0:30:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdaf /dev/sg31 [4:0:31:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdag /dev/sg32 [4:0:32:0] enclosu HP HP SAS EXP Card 2.10 - /dev/sg33 case #3: Attaching identical expanders to #1 and #2 = first 32 drives of 64 drives (only drives on port #1) # lsscsi -g [0:0:0:0] disk ATA OCZ-VERTEX 1.3 /dev/sda /dev/sg0 [4:0:0:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdb /dev/sg1 [4:0:1:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdc /dev/sg2 [4:0:2:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdd /dev/sg3 [4:0:3:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sde /dev/sg4 [4:0:4:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdf /dev/sg5 [4:0:5:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdg /dev/sg6 [4:0:6:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdh /dev/sg7 [4:0:7:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdi /dev/sg8 [4:0:8:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdj /dev/sg9 [4:0:9:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdk /dev/sg10 [4:0:10:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdl /dev/sg11 [4:0:11:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdm /dev/sg12 [4:0:12:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdn /dev/sg13 [4:0:13:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdo /dev/sg14 [4:0:14:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdp /dev/sg15 [4:0:15:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdq /dev/sg16 [4:0:16:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdr /dev/sg17 [4:0:17:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sds /dev/sg18 [4:0:18:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdt /dev/sg19 [4:0:19:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdu /dev/sg20 [4:0:20:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdv /dev/sg21 [4:0:21:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdw /dev/sg22 [4:0:22:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdx /dev/sg23 [4:0:23:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdy /dev/sg24 [4:0:24:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdz /dev/sg25 [4:0:25:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdaa /dev/sg26 [4:0:26:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdab /dev/sg27 [4:0:27:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdac /dev/sg28 [4:0:28:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdad /dev/sg29 [4:0:29:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdae /dev/sg30 [4:0:30:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdaf /dev/sg31 [4:0:31:0] disk ATA Hitachi HDS5C302 AAB0 /dev/sdag /dev/sg32 [4:0:32:0] enclosu HP HP SAS EXP Card 2.10 - /dev/sg33 See attachment for full debug dmesg output. case #4: Attaching 1 expander to HBA port #1, and attaching a second expander serially (the SFF-8088 port 1C of expander #1 to SFF-8087 port 8C of the second expander) results in dmesg output result -70 and 0 expanders detected in lsscsi -g. Dmesg tail: [ 466.935753] pm80xx mpi_smp_completion 2604:smp IO status 0x49 [ 466.936112] sas: smp_execute_task: task to dev 5001438023aad066 response: 0x0 status 0x80 [ 466.936488] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.936872] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.937211] sas: expander 5001438023aad066 discovery failed(0xffffffba) [ 466.937831] sas: DONE DISCOVERY on port 0, pid:1013, result:-70 [ 466.938212] sas: DOING DISCOVERY on port 1, pid:1013 [ 466.939344] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.939762] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.940242] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.940648] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 466.941232] sas: DONE DISCOVERY on port 1, pid:1013, result:-70 [ 466.941670] sas: DOING DISCOVERY on port 2, pid:1013 [ 466.942264] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.942739] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.943221] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.943693] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 466.944256] sas: DONE DISCOVERY on port 2, pid:1013, result:-70 [ 466.944777] sas: DOING DISCOVERY on port 3, pid:1013 [ 466.945455] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.945996] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.946538] sas: smp_execute_task: task to dev 5001438023aad066 response: 0xffffffff status 0x8a [ 466.947072] sas: RG to ex 5001438023aad066 failed:0xffffffba [ 466.947722] sas: DONE DISCOVERY on port 3, pid:1013, result:-70
Created attachment 154171 [details] dmesg after first pm80xx patch, having 2 expanders attached in parallel