SW RAID

Milan Roubal roubm9am na barbora.ms.mff.cuni.cz
Středa Leden 15 16:41:04 CET 2003


Ted koukam ze pri posledni chybe uz to nehlasi lost interrupt, ale zacalo to
hlasit toto:

hdc: timeout waiting for DMA
ide_dmaproc: chipset supported ide_dma_timeout func only: 14
blk: queue c03f1430, I/O limit 4095Mb (mask 0xffffffff)
hdc: timeout waiting for DMA
ide_dmaproc: chipset supported ide_dma_timeout func only: 14
hdc: status timeout: status=0xd0 { Busy }
hdc: drive not ready for command
ide1: reset timed-out, status=0xd0
hdc: status timeout: status=0xd0 { Busy }
hdc: drive not ready for command
ide1: reset timed-out, status=0xd0

lost interrupt to hazelo historicky jak jsem ted zjistil z logu.
hodnoty v interrupts i ioprocs vypadaji vcelku normalne...
Dokazes jeste vysvetlit co presne mysli kernel tema timeoutama?
kde bych mel pokracovat v reseni dal? protoze po tomhle se to nestydi a
odpoji to harddisk.
Zdravi
    Milan Roubal

 # cat /proc/interrupts
           CPU0       CPU1
  0:  168606142          0    IO-APIC-edge  timer
  1:          4          0    IO-APIC-edge  keyboard
  2:          0          0          XT-PIC  cascade
  8:          4          0    IO-APIC-edge  rtc
 14:     942573          1    IO-APIC-edge  ide0
 15:    1995610          1    IO-APIC-edge  ide1
 16:          0          0   IO-APIC-level  usb-uhci
 18:          0          0   IO-APIC-level  usb-uhci
 19:          0          0   IO-APIC-level  usb-uhci
 28:  951229022          0   IO-APIC-level  eth0
 29:  240641727          0   IO-APIC-level  eth1
 48:   14964854          0   IO-APIC-level  ide2, ide3
 72:   14754394          0   IO-APIC-level  idea, ideb
 96:    7619175          0   IO-APIC-level  ide4, ide5
100:   12968576          0   IO-APIC-level  ide6, ide7
104:   15010979          0   IO-APIC-level  ide8, ide9
NMI:          0          0
LOC:  168608360  168608359
ERR:          0
MIS:          0

# cat /proc/ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : PCI device 8086:248b
  0170-0177 : ide1
01f0-01f7 : PCI device 8086:248b
  01f0-01f7 : ide0
02f8-02ff : serial(auto)
0376-0376 : PCI device 8086:248b
  0376-0376 : ide1
03c0-03df : vesafb
03f6-03f6 : PCI device 8086:248b
  03f6-03f6 : ide0
03f8-03ff : serial(auto)
0cf8-0cff : PCI conf1
1100-111f : PCI device 8086:2483
2000-201f : PCI device 8086:2482
  2000-201f : usb-uhci
2020-203f : PCI device 8086:2484
  2020-203f : usb-uhci
2040-205f : PCI device 8086:2487
  2040-205f : usb-uhci
2060-206f : PCI device 8086:248b
  2060-2067 : ide0
  2068-206f : ide1
3000-4fff : PCI Bus #01
  3000-3fff : PCI Bus #02
    3000-300f : PCI device 105a:4d69
      3000-3007 : ide2
      3008-300f : ide3
    3010-3013 : PCI device 105a:4d69
      3012-3012 : ide3
    3014-3017 : PCI device 105a:4d69
      3016-3016 : ide2
    3018-301f : PCI device 105a:4d69
      3018-301f : ide3
    3020-3027 : PCI device 105a:4d69
      3020-3027 : ide2
  4000-4fff : PCI Bus #03
    4000-403f : PCI device 8086:1010
      4000-403f : e1000
    4040-407f : PCI device 8086:1010
      4040-407f : e1000
5000-6fff : PCI Bus #04
  5000-5fff : PCI Bus #05
    5000-500f : PCI device 105a:4d69
      5000-5007 : ide4
      5008-500f : ide5
    5010-501f : PCI device 105a:4d69
      5010-5017 : ide6
      5018-501f : ide7
    5020-502f : PCI device 105a:4d69
      5020-5027 : ide8
      5028-502f : ide9
    5030-5033 : PCI device 105a:4d69
      5032-5032 : ide5
    5034-5037 : PCI device 105a:4d69
      5036-5036 : ide4
    5038-503f : PCI device 105a:4d69
      5038-503f : ide5
    5040-5047 : PCI device 105a:4d69
      5040-5047 : ide4
    5048-504b : PCI device 105a:4d69
      504a-504a : ide7
    504c-504f : PCI device 105a:4d69
      504e-504e : ide6
    5050-5057 : PCI device 105a:4d69
      5050-5057 : ide7
    5058-505f : PCI device 105a:4d69
      5058-505f : ide6
    5060-5063 : PCI device 105a:4d69
      5062-5062 : ide9
    5064-5067 : PCI device 105a:4d69
      5066-5066 : ide8
    5068-506f : PCI device 105a:4d69
      5068-506f : ide9
    5070-5077 : PCI device 105a:4d69
      5070-5077 : ide8
  6000-6fff : PCI Bus #06
    6000-600f : PCI device 105a:4d69
      6000-6007 : idea
      6008-600f : ideb
    6010-6013 : PCI device 105a:4d69
      6012-6012 : ideb
    6014-6017 : PCI device 105a:4d69
      6016-6016 : idea
    6018-601f : PCI device 105a:4d69
      6018-601f : ideb
    6020-6027 : PCI device 105a:4d69
      6020-6027 : idea
7000-7fff : PCI Bus #07
  7000-70ff : PCI device 1002:4752

> > > sdelit tou hlaskou lost interrupt? je to vada radice, disku, jadra,
> > > specifikace IDE nebo co to vlastne je a jak tomu predchazet? Co mi
> > > tam vlastne vytuhne?
> > To se nesnazi sdelit disk, ale kernel - vi, ze nastalo preruseni od
> > disku, ktere ale bylo zahozeno driv, nez se k nemu kernel dostal a
> > mohl ho nejak resit.
> Tak to mi neni vubec jasne. Kdo to preruseni zahodi? znamena to tedy
> ze je pomalej procesor? co to znamena realne pro ten hardware (pro radic,
> pro disk) ze to preruseni nedorazi do procesoru?
> Zkus to prosim vysvetlit trochu podrobneji co se tam deje.

'lost interrupt' nastava, kdyz to zarizeni, ktere interrupt vyvolalo,
shodi signal prislusnem dratu driv, nez PIC dostane od procesoru signal
INTA, kterym procesor potvrzuje, ze o interruptu vi.

V bezne situaci, zarizeni ktere vyvolalo preruseni nahodi prislusny signal
na dratu (IR) k PIC, coz zase zpusobi, ze PIC nahodi prislusny signal
(INTR) na dratu k procesoru. Procesor na to odpovi zpatky signalem INTA.
PIC pote co obdrzi INTA PIC posle na sbernici "ukazatel" na ISR pro
interrupt s nejvyssi prioritou. Ale v pripade, ze PIC v tuhle chvili
zjisti, ze zadna z jeho IR linek neni nahozena (jde o draty od zarizeni,
signalizujici preruseni), tak dochazi k lost interruptu (a PIC posle
sekundarnimu PIC prislusne IRQ (7?)).
Takze lost interrupt nastava tehdy, kdyz PIC nevi, ktery interrupt
zpusobil, ze poslal INTR procesoru.
Takhle nejak si to pamatuju, ale za nic nerucim a pokud je to spatne, tak
vsechno zapru ;)

Kdyz Ti tohle linux hlasi, problem muze byt v leccems. Nejak jsem nestihl
zacatek threadu, takze nevim, jestli Ti to zacalo delat s novym jadrem,
nebo se to objevuje proste cas od casu nahodne. Zkus, mas-li moznost, jiny
radic disku, muze byt vadny. Zkontroluj /proc/interrupts a /proc/ioports,
jesti to vypada rozumne a bezkonfliktove...atd.




Další informace o konferenci Linux