debian 7 kernel BUG [megoldva]

Sziasztok!

Van egy Intel szerver, amire debian 7-re xent telepítettem.
Minden szépen működik úgy ahogy szeretném, mindaddig, amíg az új sas/sata vezérlőt bele nem teszem a gépbe.
A vezérlőn lévő szoftveres raid tömbre szeretnék létrehozni egy win7 64 bites telepítést, és elszáll a rendszer.
hibaüzi:
kernel BUG at /build/linux-s5x2oE/linux-3.2.46/drivers/scsu/aacraid/aachba.c:2920
invalid opcode:0000 [#1] SMP

A szerverben 4 db ssd, és 10db sata wd raid edition diszk található.
CPU:E5506 2db, DDR3 ECC ram 32 GB,

Ezen a szerveren korábban debian 5 futott perc 5 vezérlővel hiba nélkül.
Most a perc 5 vezérlővel a debian 7 is elszáll a fenti hibaüzivel.
Az új vezérlő egy 8 portos Adaptec 2270900-R SATA/SAS kártya.
Mivel a régi és az új vezérlővel is elszáll a rendszer, így valszeg nem a vezérlőkkel van a baj.

Van-e valakinek valami ötlete, hogy mivel tudnám a hibát kiküszöbölni?

Gondolkoztam azon, hogy megpróbálni egy korábbi debian verzióval, vagy debiat teljesen elfelejteni, és centos vagy valami más rendszert telepíteni.

Előre is köszönöm a segítséget.

Hozzászólások

esetleg forgatni egy kernelt amivel jol megy ?

3.6.11-es kernellel próbálkozok
Ez a verzió volt szimpatikus, ha valami jobb verziót tudtok mondjátok.

xen-el kapcsolatban ezeket tettem bele:
cat /usr/src/linux-3.6.11/.config | grep XEN
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=500
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_DEBUG_FS=y
CONFIG_PCI_XEN=y
CONFIG_XEN_PCIDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_NETXEN_NIC=m
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_NETDEV_BACKEND=y
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
# CONFIG_XEN_WDT is not set
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_BALLOON=y
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=y
CONFIG_XEN_BACKEND=y
CONFIG_XENFS=y
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_GRANT_DEV_ALLOC=y
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_PCIDEV_BACKEND=y
CONFIG_XEN_PRIVCMD=y
CONFIG_XEN_ACPI_PROCESSOR=m
CONFIG_XEN_MCE_LOG=y

A kernel lefordult 3.6.11.
Elindítom fut szépen, és amikor win7 64 bites rendszer telepítését indítom, ugyanúgy kifagy a szerver.

Vajon mit kellene kivennem a kernel configból?

config SCSI_AACRAID
"Adaptec AACRAID support

Szemmel láthatóan ez a rász hasal el (filenév segít a kiderítésében, mert Makefileban megnézed, minek a támogatása fordítja ezt be).
Kérdés, hogy kell-e neked ez a kernelbe.

> Akkor tanuljak meg kernelt fejleszteni, vagy van más megoldás is?
Volt már példa rá a történelemben, hogy valaki így kezdett el részt venni a kernel fejlesztésben (http://www.linux.com/news/special-feature/linux-developers/636068-30-li…), de azért nyilván nem gondolom komolyan.
De tippre azt mondom, nem nagyon tudsz ezzel mit kezdeni.

Akkor kuka a drága vezérlőkártya?
Az az érdekes, hogy a szerverben korábban egy perc5 raid vezérlő volt, debian 5-el és tökéletesen működött.
Most a debian 7-el a perc 5 raid vezérlő is ugyanezt a hibát produkálja, kifagy a szerver tőle, mikor elindul a win764bit telepítése, és a fájlok másolása következik, akkor hal le minden.

Centos-t próbáltam ma, de a hálózatot se tudtam hol kell belőni, sok minden másképp van benne.
A xen telepítésére nem találtam jó leírást sem hozzá.
A debiant ismerem már jól, nincs sok kedvem egy teljesen új rendszerrel ismerkedni.
Ha ez a Centos annyira jó, és van hozzá sok infó, akkor lehet megtanulom.

Mitől olyan más ez a centos kernel?

Azóta is ezzel a centossal küzdök, nem megy a xen telepítése, hogy működjön minden, mint a debian alatt.

És ha fogom ezt: https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.7.tar.xz és aláteszem a debian-nak, akkor az miért nem lesz jó?

Nekem is volt olyan tapasztalatom, hogy a win xen-re való installáláskor a fájlok másolásakor elszállt (nem az egész szerver csak a virtuális gép). Semmiféle racionális magyarázatot nem találtam. Az volt a megoldás, hogy az installálás alatt csak egy processzort adtam a virtuális gépnek - így felment. Utána lehetett processzorok számát növelni. Úgy tűnik, hogy az installkor a win nem ugyanúgy kezeli a diszket, mint ha már fent van.
Próbáld ki, ártani biztosan nem árt.

a hibás sor és környéke:


psg->count = 0;
	psg->sg[0].next = 0;
	psg->sg[0].prev = 0;
	psg->sg[0].addr[0] = 0;
	psg->sg[0].addr[1] = 0;
	psg->sg[0].count = 0;
	psg->sg[0].flags = 0;

	nseg = scsi_dma_map(scsicmd);
	BUG_ON(nseg < 0);

Erre a BUG_ON-ra fut rá.

Megnézve egy újabb (3.8) verziójú kernel forrását is, kicsit eltér a kód, lehet, hogy megoldja a kernel frissítés a problémádat.

Wachag fentebb linkelte ezt: http://lists.debian.org/debian-kernel/2011/06/msg00239.html

A Thread Next linket nyomogatva el lehet olvasni Ben Hutchings elemzését a hibáról.

Hasonló hibát (ezzel a driver-rel) többször is láttam Xen alatt (RHEL-5-ön), nem nagyon lehet vele mit kezdeni.

Fentebbről:


	nseg = scsi_dma_map(scsicmd);
	BUG_ON(nseg < 0);

Emlékezetből írva (valószínűleg pontatlan leszek), a fenti kód a SCSI parancs végrehajtásához DMA transzfert akar feladni/indítani. Ehhez megfelelő (alacsonyan lévő) fizikai memóriára van szükség. Amikor a driver a nyers vason fut, akkor a kernel ezt az igényt lényegében mindig ki tudja elégíteni, mert maga gazdálkodik a fizikai memóriával, és tud takarékoskodni a DMA-képes tartománnyal.

A dom0 kernel nem maga kezeli a fizikai memóriát (mivel a dom0 csak egy privilegizált PV domU); a Xen hypervisor kezeli. Ezért az összes ilyen DMA-képes memória igénylése, például a scsi_dma_map() alatti is, a Xen-hez van továbbítva. (Más szóval, a scsi_dma_map()-nak paravirt implementációja van, amely nyers vason azt teszi, amit kell, PV domU-ban pedig könyörög a hypervisor-nak). A Xen az ilyen kéréseket viszonylag gyakran el tudja utasítani, amire viszont ez a driver nincs felkészülve.

Gondolkoztam azon, hogy megpróbálni egy korábbi debian verzióval, vagy debiat teljesen elfelejteni, és centos vagy valami más rendszert telepíteni.

Erre külön válaszolok -- mennyire ragaszkdosz a Xen-hez? Esetleg CentOS-6.4-gyel és KVM-mel tehetnél egy próbát.

Xen-t már megszoktam, próbálkoztam annó a proxmox kvm-el és elég rossz tapasztalataim voltak vele, sokszor újra kellett indítani a vps-eket.

Centos 6.4-en sikerült felraknom a xent, működik, de itt is elszáll a vezérlő a következő hibával:

aacraid host adapter abort request(0 0 0 0)
aacraid: Host adapter reset request. SCSI hang

Akkor most a centos se jó neki, vagy valami baj van a kártyával?

Sajnos a SCSI/SAS vezérlők elég finnyásak a különböző alaplapokra, főleg a megfelelő interrupt-ra, próbáld meg másik PCI slotban a kártyát, vagy próbálkozhatsz a következő kernel paraméterekkel valamilyen kombinációban:

pcie_ports=compat
irqpool
nomsi

Én pár éve hasonló okok miatt tértem át XEN-ről KVM-re, jelenleg proxmox-ot használok és nincs vele semmilyen gondom. Javaslom tegyél egy próbát az új 3.0-ás verzióval!

Nem akarom elkiabálni, de most próbaképp reggel óta 10db linux, 1db xp, 4 db win7-64 fut együtt hiba nélkül.
Annyit csináltam, hogy átraktam a kártyát másik slotba, és azóta nincs gond.
Köszönöm a tanácsot Dopla, ha hamarabb összefutunk itt, akkor nem szívok egy hosszú hétvégét vele.
Ez olyan egyszerű megoldás volt, hogy erre nem is gondoltam volna...