Portál AbcLinuxu, 27. dubna 2024 06:21


Dotaz: jak rozšifrovat chybu SCSI řadiče (?) v dmesg

8.1.2009 13:43 vencas | skóre: 32
jak rozšifrovat chybu SCSI řadiče (?) v dmesg
Přečteno: 328×
Odpovědět | Admin

Zdravím, občas mi dmesg zaplaví násedující dump od SCSI subsystému, nevím ale moc, jak jí mám rozumět. První dva řádky chápu (je tam nějaká chyba ;-) ), ale zbytku už vůbec nerozumím. Je to chyba disku? Řadiče? Sběrnice? Nebo je to v pořádku? Poraďte prosím, díky. Google mi vyhodil jen tento post, ale ten je z roku 2004. Díky za všechny nápady.

Zde je lspci (vybrané části, disky o které se jedná (?) jsou na tom adaptecu).

02:02.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068 PCI-X Fusion-MPT SAS (rev 01)
02:06.0 SCSI storage controller: Adaptec AIC-7902B U320 (rev 10)
02:06.1 SCSI storage controller: Adaptec AIC-7902B U320 (rev 10)
Tady je /proc/scsi/scsi:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST3750330NS      Rev: SN04
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: ATA      Model: ST3750640NS      Rev: G   
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 02 Lun: 00
  Vendor: ATA      Model: ST3750640NS      Rev: G   
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 03 Lun: 00
  Vendor: ATA      Model: ST3750640NS      Rev: G   
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: SEAGATE  Model: ST336753LW       Rev: 0006
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi1 Channel: 00 Id: 01 Lun: 00
  Vendor: SEAGATE  Model: ST336753LW       Rev: 0006
  Type:   Direct-Access                    ANSI SCSI revision: 03

A teď dmesg:

scsi2: PCI error Interrupt
scsi1: PCI error Interrupt
>>>>>>>>>>>>>>>>>> Dump Card State Begins <<<<<<<<<<<<<<<<<
scsi1: Dumping Card State at program address 0x37 Mode 0x11
Card was paused
INTSTAT[0x10]:(PCIINT) SELOID[0x0] SELID[0x10] 
HS_MAILBOX[0x0] INTCTL[0xc0]:(SWTMINTEN|SWTMINTMASK) 
SEQINTSTAT[0x10]:(SEQ_SWTMRTO) SAVED_MODE[0x11] 
DFFSTAT[0x33]:(CURRFIFO_NONE|FIFO0FREE|FIFO1FREE) 
SCSISIGI[0x0]:(P_DATAOUT) SCSIPHASE[0x0] SCSIBUS[0x0] 
LASTPHASE[0x1]:(P_DATAOUT|P_BUSFREE) SCSISEQ0[0x0] 
SCSISEQ1[0x12]:(ENAUTOATNP|ENRSELI) SEQCTL0[0x0] 
SEQINTCTL[0x0] SEQ_FLAGS[0x0] SEQ_FLAGS2[0x0] QFREEZE_COUNT[0x2] 
KERNEL_QFREEZE_COUNT[0x2] MK_MESSAGE_SCB[0xff00] 
MK_MESSAGE_SCSIID[0xff] SSTAT0[0x0] SSTAT1[0x8]:(BUSFREE) 
SSTAT2[0x0] SSTAT3[0x0] PERRDIAG[0x0] SIMODE1[0xa4]:(ENSCSIPERR|ENSCSIRST|ENSELTIMO) 
LQISTAT0[0x0] LQISTAT1[0x0] LQISTAT2[0x0] LQOSTAT0[0x0] 
LQOSTAT1[0x0] LQOSTAT2[0xe1]:(LQOSTOP0|LQOPKT) 

SCB Count = 64 CMDS_PENDING = 0 LASTSCB 0x25 CURRSCB 0x2b NEXTSCB 0xff80
qinstart = 48187 qinfifonext = 48187
QINFIFO:
WAITING_TID_QUEUES:
Pending list:
Total 0
Kernel Free SCB list: 53 43 37 57 1 42 10 9 18 25 20 38 50 63 24 26 40 21 34 44 28 2 61 17 0 48 8 5 51 6 33 14 55 30 23 16 15 62 47 32 41 19 56 13 60 27 49 59 54 36 52 11 58 46 22 39 35 29 3 31 45 12 7 4 
Sequencer Complete DMA-inprog list: 
Sequencer Complete list: 
Sequencer DMA-Up and Complete list: 
Sequencer On QFreeze and Complete list: 


scsi1: FIFO0 Free, LONGJMP == 0x8271, SCB 0x2b
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x4]:(DIRECTION) DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 

scsi1: FIFO1 Free, LONGJMP == 0x8063, SCB 0x2
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x0] DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 
LQIN: 0x8 0x0 0x0 0x35 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
scsi1: LQISTATE = 0x0, LQOSTATE = 0x0, OPTIONMODE = 0x52
scsi1: OS_SPACE_CNT = 0x20 MAXCMDCNT = 0x1
scsi1: SAVED_SCSIID = 0x0 SAVED_LUN = 0x0

SIMODE0[0xc]:(ENOVERRUN|ENIOERR) 
CCSCBCTL[0x0] 
scsi1: REG0 == 0x2, SINDEX = 0x102, DINDEX = 0x102
scsi1: SCBPTR == 0x2, SCB_NEXT == 0xff40, SCB_NEXT2 == 0xffe8
CDB 2a 0 4 80 8 18
STACK: 0x24 0x0 0x0 0x0 0x0 0x0 0x0 0x0
<<<<<<<<<<<<<<<<< Dump Card State Ends >>>>>>>>>>>>>>>>>>
scsi1: Address or Write Phase Parity Error Detected in TARG.
>>>>>>>>>>>>>>>>>> Dump Card State Begins <<<<<<<<<<<<<<<<<
scsi2: Dumping Card State at program address 0x82 Mode 0x22
Card was paused
INTSTAT[0x10]:(PCIINT) SELOID[0xf] SELID[0x0] HS_MAILBOX[0x0] 
INTCTL[0x0] SEQINTSTAT[0x0] SAVED_MODE[0x0] DFFSTAT[0x33]:(CURRFIFO_NONE|FIFO0FREE|FIFO1FREE) 
SCSISIGI[0x0]:(P_DATAOUT) SCSIPHASE[0x0] SCSIBUS[0x0] 
LASTPHASE[0x1]:(P_DATAOUT|P_BUSFREE) SCSISEQ0[0x0] 
SCSISEQ1[0x12]:(ENAUTOATNP|ENRSELI) SEQCTL0[0x0] 
SEQINTCTL[0x0] SEQ_FLAGS[0x0] SEQ_FLAGS2[0x0] QFREEZE_COUNT[0x0] 
KERNEL_QFREEZE_COUNT[0x0] MK_MESSAGE_SCB[0xff00] 
MK_MESSAGE_SCSIID[0xff] SSTAT0[0x0] SSTAT1[0x0] 
SSTAT2[0x0] SSTAT3[0x0] PERRDIAG[0x0] SIMODE1[0xac]:(ENSCSIPERR|ENBUSFREE|ENSCSIRST|ENSELTIMO) 
LQISTAT0[0x0] LQISTAT1[0x0] LQISTAT2[0x0] LQOSTAT0[0x0] 
LQOSTAT1[0x0] LQOSTAT2[0x0] 

SCB Count = 4 CMDS_PENDING = 0 LASTSCB 0xffff CURRSCB 0x3 NEXTSCB 0x0
qinstart = 15 qinfifonext = 15
QINFIFO:
WAITING_TID_QUEUES:
Pending list:
Total 0
Kernel Free SCB list: 3 2 1 0 
Sequencer Complete DMA-inprog list: 
Sequencer Complete list: 
Sequencer DMA-Up and Complete list: 
Sequencer On QFreeze and Complete list: 


scsi2: FIFO0 Free, LONGJMP == 0x80ff, SCB 0x0
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x0] DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 

scsi2: FIFO1 Free, LONGJMP == 0x80ff, SCB 0x0
SEQIMODE[0x3f]:(ENCFG4TCMD|ENCFG4ICMD|ENCFG4TSTAT|ENCFG4ISTAT|ENCFG4DATA|ENSAVEPTRS) 
SEQINTSRC[0x0] DFCNTRL[0x0] DFSTATUS[0x89]:(FIFOEMP|HDONE|PRELOAD_AVAIL) 
SG_CACHE_SHADOW[0x2]:(LAST_SEG) SG_STATE[0x0] DFFSXFRCTL[0x0] 
SOFFCNT[0x0] MDFFSTAT[0x5]:(FIFOFREE|DLZERO) SHADDR = 0x00, SHCNT = 0x0 
HADDR = 0x00, HCNT = 0x0 CCSGCTL[0x10]:(SG_CACHE_AVAIL) 
LQIN: 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 
scsi2: LQISTATE = 0x0, LQOSTATE = 0x0, OPTIONMODE = 0x52
scsi2: OS_SPACE_CNT = 0x20 MAXCMDCNT = 0x0
scsi2: SAVED_SCSIID = 0x0 SAVED_LUN = 0x0

SIMODE0[0xc]:(ENOVERRUN|ENIOERR) 
CCSCBCTL[0x4]:(CCSCBDIR) 
scsi2: REG0 == 0x3, SINDEX = 0x120, DINDEX = 0x120
scsi2: SCBPTR == 0xff00, SCB_NEXT == 0xff00, SCB_NEXT2 == 0x0
CDB 0 1 0 0 0 0
STACK: 0x24 0x0 0x0 0x0 0x0 0x0 0x0 0x0
<<<<<<<<<<<<<<<<< Dump Card State Ends >>>>>>>>>>>>>>>>>>
scsi2: Address or Write Phase Parity Error Detected in TARG.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.1.2009 22:57 frr | skóre: 34
Rozbalit Rozbalit vše Re: jak rozšifrovat chybu SCSI řadiče (?) v dmesg
Odpovědět | | Sbalit | Link | Blokovat | Admin

Takže ten Adaptec je onboard, a ten LSI SAS je tam přidanej?

Když se takhle poblije Adaptečí ovladač, tak to může znamenat tři věci:

1) binec ve SCSI kabeláži - vakl v kabelu nebo terminátoru, obecně neschopnost běžet na U320 (třeba proto, že backplane/kabel/terminátor byly navrženy a otestovány jenom na U160)

2) Adaptec historicky měl tenhle typ problémů proti čipsetům ServerWorks. Jaký čipset máte v serveru? Tohle je záležitost tak 4 roky zpátky, takže mi to moc nejde do hlavy - ale ten PCI Error Interrupt by tomu velmi odpovídal. = problém na sběrnici PCI mezi Adaptecem a systémovým čipsetem.

3) problém proti konkrétnímu SCSI Target čipsetu. Proti holým diskům jsem to ještě neviděl, zato existuje známý problém tohoto druhu proti čipům LSI 1030T v externích RAIDech (ale ten problém je hodně razantní, prakticky vůbec neprotečou data).

Problémy typu 1) a 2) se projevují typicky až pod pořádnou zátěží - tj. systém nabootuje a tváří se spokojeně, ale Adaptec se poblije třeba uprostřed instalace systému, nebo při nějakém intenzivním kopírování dat, nebo po nasazení do ostrého provozu na síti...

Zajímavé je, že to hlásí PCI Error Interrupt pro každý kanál zvlášť, až potom následuje dump registrů Adaptec HBA. Žeby fakt hnil ten Adaptečí šváb? Mohlo by se jednat o závadu jednoho kusu...

Jak to otestovat: zkuste někde sehnat řadič U320 s čipem LSI 1020 nebo 1030. Třeba originál LSI20320 nebo LSIU320, taky se občas daly koupit nějaké Tekramy, ASUSy, Kouwelly apod. Vražte ho do PCI-X slotu, připojte SCSI sběrnici a nechte to chvíli běhat, nejlíp pod nějakou zátěží. Třeba mkfs.ext3 je docela dobrý generátor zátěže. Někdy stačí dd. Pokud máte toho Adapteca onboard, možná si budete muset sehnat ještě nějaký delší known-good SCSI kabel, aby Vám dosáhl k PCI slotu - třeba SuperMicro CBL-0027 nebo CBL-0028 s potiskem U320. Kabel nebo terminátor, který na sobě nemá napsáno U320, velmi pravděpodobně tuto rychlost neumí. O SCA backplanech se to někdy zjišťuje dost těžko (z dokumentace). Jo aha, ty dva skazáče jsou LW, tj. 68pin, přímo na kabelu (bez SCA backplanu). Tím odpadá jeden možný zdroj problémů :-)

Obecně problémy na SCSI se hledají těžko - jedinou možností je mít v rukávu prověřený kompletní server (třeba i nestejný), se kterým se dají navzájem prohazovat / křížem propojovat součástky. Což trochu leze do peněz :-) A základem je vyvinout nějaký spolehlivý způsob, jak závadu na původním železe reprodukovat.

Ach jo - ještě že už to SCSI skoro vychcípalo...

[:wq]
9.1.2009 18:35 vencas | skóre: 32
Rozbalit Rozbalit vše Re: jak rozšifrovat chybu SCSI řadiče (?) v dmesg

Děkuju za komplexní rozbor, LSI je přídavná karta, Adaptec SCSI je onboard. Chipset AMD, board je popsán zde, lspci

00:06.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8111 PCI (rev 07)
00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-8111 LPC (rev 05)
00:07.1 IDE interface: Advanced Micro Devices [AMD] AMD-8111 IDE (rev 03)
00:07.2 SMBus: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0 (rev 02)
00:07.3 Bridge: Advanced Micro Devices [AMD] AMD-8111 ACPI (rev 05)
00:0a.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)
00:0a.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01)
00:0b.0 PCI bridge: Advanced Micro Devices [AMD] AMD-8131 PCI-X Bridge (rev 12)
00:0b.1 PIC: Advanced Micro Devices [AMD] AMD-8131 PCI-X IOAPIC (rev 01)
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
00:19.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:19.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:19.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:19.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:03.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068 PCI-X Fusion-MPT SAS (rev 01)
02:06.0 SCSI storage controller: Adaptec AIC-7902B U320 (rev 10)
02:06.1 SCSI storage controller: Adaptec AIC-7902B U320 (rev 10)
02:09.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 03)
02:09.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 03)
03:00.0 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b)
03:00.1 USB Controller: Advanced Micro Devices [AMD] AMD-8111 USB (rev 0b)
03:06.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
03:08.0 Ethernet controller: Intel Corporation 82557/8/9 [Ethernet Pro 100] (rev 10)

Na kabelu potisk U320 je,možná je tam nějaký kontakt na terminátoru či disku, než se tahle hláška začala objevovat (asi před týden), tak jsem se v tom hrabal - přidal ten LSI řadič a 4 disky, a je tam uvnitř trochu plno...

Bohužel na takové maximalistické debugování jak navrhujete opravdu nejsou peníze, nu, teď byl prá dní klid tak kdyby se to často opakovalo, tak to budu nějak důkladně řešit. Z vnějších projevů jsem si nijak nevšiml problému, možná že disky pár vteřin čekají, než se vyresetuje sběrnice a pak to zase funguje normálně.

8.1.2009 23:26 frr | skóre: 34
Rozbalit Rozbalit vše Re: jak rozšifrovat chybu SCSI řadiče (?) v dmesg
Odpovědět | | Sbalit | Link | Blokovat | Admin

Jejky, podle toho Vašeho odkazu, on si na ten ServerWorks v roce 2004 naběhl Tonda Král. Zhruba v době, kdy jsem se s tím pral já sám. Škoda, že jsem si jeho postu tehdy nevšiml :->

[:wq]
9.1.2009 13:55 sprosty anonym
Rozbalit Rozbalit vše Re: jak rozšifrovat chybu SCSI řadiče (?) v dmesg
Odpovědět | | Sbalit | Link | Blokovat | Admin

Velice podobne logy jsem videl na vicero linux-based systemech. Ve valne casti pomohl update LAN driveru (spatna vnitrni komunikace shazovala ostani komponenty...)

9.1.2009 18:38 vencas | skóre: 32
Rozbalit Rozbalit vše Re: jak rozšifrovat chybu SCSI řadiče (?) v dmesg

Je tam jádro z etche, které snad je trochu vychytané; ale hlavně se to začalo dít až v poslední době, předtím jsem několik roků podobné hlášky neviděl. Díky za nápad, každopádně.

9.1.2009 19:12 frr | skóre: 34
Rozbalit Rozbalit vše Re: jak rozšifrovat chybu SCSI řadiče (?) v dmesg

A hele, že by se historie opakovala? :-) Tohle bohužel nemám na čem otestovat, zmiňovaný čipset od AMD jsem potkal asi jednou, zmíněný SAS HBA taky nevedu... ServerWorks dneska patří Broadcomu, takže se patrně nejedná o prostou reinkarnaci.

[:wq]

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.