# 100% cpu last bei hdd zugriffen

## rocketworm

hallo, nachdem ich inzwischen über zwei monate mich mit diesem problem rumärgere und im netz auch nix zu dem problem gefunden habe, hoffe ich das mir hier jemand helfen kann. 

system: 

xfx nv680i sli mainboard 

intel core 2 duo e6320 

pci-grafikkarte (tnt2)

4x2048mb ram 

nen ganzen stapel seagate sata festplatten und eine ide 

dell perc 5/i sas/sata2 raid controller (LSI oem) 

so, mein problem ist das bei hdd zugriffen die cpu last beider kerne auf 100% steigt und das system grotten lahm wird. dabei ist es egal ob man innerhalb einer partition oder von einer platte auf die andere kopiert. es ist sogar egal ob die platten am onboard nvidia controller oder am dell raidcontroller angeschlossen sind. ebenfalls ist es egal ob ide oder sata. 

meine erste annahme war das es am chipsatz liegt. ich hatte zuerst ein gigabyte board mit intel g33 chipsatz (bearlake). mit dem xfx nv680i sli mainboard wurds dann leider auch nicht besser. 

ich habe um distributionsprobleme auszuschliessen folgende getestet:  gentoo 2007.0 64bit, debian etch 32 und 64bit, ubuntu 7.10 64bit (kernel 2.6.22), ubuntu 7.04 (32+64bit), fedora 7 (32+64bit), fedora 7.92 64bit (kernel 2.6.23), suse 10.2 und 10.3 (kernel 2.6.22), centos und opensolaris 10. 

alles mit dem selben effekt. als dateisystem verwende ich übrigens ext3. 

unter verwendung von windows xp x64 läuft die maschine wie eine rakete mit lächerlichen 5% cpu-last beim kopieren. 

ich habe überprüft ob dma aktiv ist und auch schon ACPI und APM deaktiviert, das BIOS habe ich aktualisiert und den arbeitsspeicher reduziert.

der raidcontroller wurde auch schon testweise ausgebaut.

die grafikkarte habe ich auch schon in anderen pci-slots getestet und auch eine andere verwendet. beim ersten board mit intel chipsatz war grafik onboard.

die maschine soll als file-, proxy- und vmware-server dienen.

wenn mir jemand helfen kann, linux vernünftig auf dem system zum laufen bekommen, würd ich mich extrem freuen!

grüße Markus

htop screenshot;

http://linux.rocketworm.de/htop.png

lspci:

```

00:00.0 Host bridge: nVidia Corporation C55 Host Bridge (rev a2)

00:00.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:00.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:00.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:00.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:00.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a2)

00:00.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:00.7 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:01.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:01.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:01.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:01.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:01.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:01.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:01.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:02.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:02.1 RAM memory: nVidia Corporation Unknown device 03bc (rev a1)

00:02.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)

00:09.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a1)

00:0a.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a2)

00:0a.1 SMBus: nVidia Corporation MCP55 SMBus (rev a2)

00:0b.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)

00:0b.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)

00:0d.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)

00:0e.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)

00:0e.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)

00:0e.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)

00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)

00:0f.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)

00:11.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)

00:12.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)

00:13.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)

01:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)

01:0a.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] (rev 15)

02:00.0 PCI bridge: Intel Corporation 80333 Segment-A PCI Express-to-PCI Express Bridge

02:00.2 PCI bridge: Intel Corporation 80333 Segment-B PCI Express-to-PCI Express Bridge

03:0e.0 RAID bus controller: Dell PowerEdge Expandable RAID controller 5i

```

lsmod:

```

Module                  Size  Used by

ipv6                  219296  18

bridge                 43824  0

pcspkr                  4032  0

eth1394                17416  0

sg                     27496  0

megaraid_sas           30076  0

i2c_nforce2             8064  0

i2c_core               14976  1 i2c_nforce2

snd_hda_intel          16224  1

snd_hda_codec         162880  1 snd_hda_intel

snd_pcm                53640  2 snd_hda_intel,snd_hda_codec

snd_timer              18120  1 snd_pcm

snd                    40232  6 snd_hda_intel,snd_hda_codec,snd_pcm,snd_timer

snd_page_alloc          8144  2 snd_hda_intel,snd_pcm

forcedeth              35204  0

rtc                    11840  0

tg3                    94980  0

e1000                  98688  0

nfs                   100664  0

lockd                  51696  1 nfs

sunrpc                120840  2 nfs,lockd

jfs                   141648  0

dm_mirror              17472  0

dm_mod                 42448  1 dm_mirror

pdc_adma                9412  0

sata_mv                17288  0

ata_piix               13768  0

ahci                   17028  0

sata_qstor              9604  0

sata_vsc                8708  0

sata_uli                7748  0

sata_sis                8196  0

sata_sx4               12996  0

sata_nv                10244  0

sata_via                9796  0

sata_svw                8068  0

sata_sil24             13764  0

sata_sil               10888  0

sata_promise           11460  0

libata                 69920  15 pdc_adma,sata_mv,ata_piix,ahci,sata_qstor,sata_vsc,sata_uli,sata_sis,sata_sx4,sata_nv,sata_via,sata_svw,sata_sil24,sata_sil,sata_promise

sbp2                   21508  0

ohci1394               29576  0

ieee1394               64568  3 eth1394,sbp2,ohci1394

sl811_hcd              12032  0

usbhid                 35488  0

ohci_hcd               17988  0

uhci_hcd               21008  0

usb_storage            65984  0

ehci_hcd               25800  0

usbcore                98344  7 sl811_hcd,usbhid,ohci_hcd,uhci_hcd,usb_storage,ehci_hcd

```

Last edited by rocketworm on Sun Oct 28, 2007 12:39 pm; edited 1 time in total

----------

## _eckobar_

hast du diesen thread schon gelesen? https://forums.gentoo.org/viewtopic-t-566084.html. Sind einige Tipps betreffend Fehleranalyse / Vorgehen drin.

----------

## rocketworm

^^alles was dort beschrieben ist hat mir nicht weiter geholfen. ich habe inzwischen alle scheduler ausprobiert und gebprüft ob es am dateisystem liegen kann. aber egal ob xfs, ext3, reiser3.6 oder sogar reiser4... es ist immer das selbe. 100% cpu-last.

hat noch jemant ideen?

----------

## rocketworm

ich habe gerade weiter getestet. ich habe sogar bei usb laufwerken dieses problem

----------

## _eckobar_

Verwendest Du ein RAID oder LVM ?

Ist der Kopiervorgang an sich auch langsam oder nur Rest vom System? -> Probier mal mit boonie++

Verwendest Du  für Deine Test immer die selben Daten? Alternativ könntest Du auch mit einem künstlichen File testen:

```
dd if=/dev/zero bs=1M count=AnzahlBlocks > /path/to/foo
```

----------

## rocketworm

der kopiervorgang selbst ist auch langsam. die ersten 1-2 sekunden gehts noch fix.

am onboard controller laufen die platten ohne raid.

am dell controller (hardware raid controller mit 256mb cache und intel cpu) im raid 5

für meinen test kopiere ich immer einen ordner in dem sich 3 iso images von diversen linux liveCDs befindet.

fragmentierung der daten kann es auch nicht sein weil die platten komplett leer und frisch partitioniert/formatiert sind.

----------

## _eckobar_

Wie werden Festplatten vom Kernel angesprochen -> native Treiber oder über AHCI? Kannst Du der /var/log/messages entnehmen. Probier mal per native Treiber und AHCI -> vielleicht ändert sich etwas.

Könnte es vielleicht ein exotisches BIOS-Setting sein?

----------

## rocketworm

ich habe im bios sämtliche einstellungen die CPU features und controller betreffen können bereits mit unterschiedlichen einstellungen ohne besserung getestet.

in der /var/log/messages ist nichts von ahci oder native zu lesen. daher kann man wohl von native ausgehen?

----------

## _eckobar_

Damit Du mittels AHCI testen kannst, mußt Du im BIOS den SATA-Modus einstellen -> Bei mir kann ich SATA / AHCI / ...

Dann noch AHCI Support im Kernel 

```
Device Drivers >> SATA (prod) >> AHCI SATA Support
```

Wichtig: Alle nativen Treiber unter Device Drivers >> SATA (prod) deaktivieren.

Dann Kopiervorgang nochmals testen mit  einem künstlichen File 

```
dd if=/dev/zero bs=1M count=AnzahlBlocks > /path/to/foo
```

Kopier die Datei mal auf eine Partition im RAID-Verbund und andersmal auf eine "native Partition"

Somit haben sind dann folgende Dinge verifiziert / ausgeschlossen

 Chipset-Treiber sind die Übelttäter

 Deine Testdateien sind korrupt

 Dein RAID-Verbund ist Übeltäter

----------

## rocketworm

im bios habe ich leider nicht die möglichkeit AHCI zu aktivieren. habe die kernel settings aber dennoch getestet. nur werden damit keine SATA platten am onboard controller erkannt.

mir ist gerade aber noch etwas aufgefallen. dieses mainboard hat eine POSTCODE anzeige onboard. wenn das bios komplett durchlaufen ist sollte im betrieb immer FF angezeigt werden. wenn der bootloader geladen wird ist dieser code FF. wenn linux zu laden beginnt ändert isch der code. hat zwischendurch mal wieder FF und wenn das system gebootet ist bleibt er bei 0E stehen.

0E steht für "Initialize I/O component" (laut google)

----------

