# Disk/CPU Load

## revof11

I'm trying to narrow down where a seemingly random, heavy CPU/Disk load is originating from.  It appears mostly when untaring large archives, running "heavy" apps, etc. etc. etc.  I'm not sure what's causing it and I'd like to use the utilities available to see whether or not I messed up during kernel compile, config or something like that... or see if it's not a cockpit error and perhaps an actual bug.

It wouldn't be a big deal if the system didn't feel like it was completely unresponsive for a period of time (when you type, it just appears whenever the heavy load completes).

Can anyone provide a list of utilities for figuring this out aside from the obivous ps that I can use to assist in tracking this down?

----------

## thestick

same problem here

 :Smile: 

try narrowing down your make.conf , maybe you have a "debug" flag in USE  = ?

----------

## revof11

I don't think I have anything majorly out-of-line or odd in my make.conf.

The contents are listed below.  If you think anything looks strange... let me know.

```
CFLAGS="-O2 -pipe -march=k8"

CHOST="x86_64-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2"

USE="-qt -kde gtk gnome hal howl acpi"

GENTOO_MIRRORS="<my preferred mirrors>"
```

I don't boot into X/Gnome, either.  The "overload" occurrs just while booted into the shell.

----------

## chrisruwe

What could be useful as a start might be a look at 

```
ps -ejH
```

 or at 

```
top
```

 while your system feels unresponsive. What you are looking for are unreasonably high "TIME"s

----------

## BlueFusion

Also check the drive's approx. read speed with hdparm -t /dev/hdX (or sdX) to see if that's the bottleneck (and it is in most cases).

----------

## chrisruwe

Thinking of hdparm ... I do remember something like that when an ide-controller chip is not supported by the kernel, cpu-time is needed to coordinate transfers

----------

## BlueFusion

Yep.  If you watch top and see alot of IOWAIT (abbreviated "wa" in top), then it is the CPU waiting on data to be transferred to/from the harddrive to continue processing.  And also keep in mine, like chrisruwe said, the CPU controls the drives' IO operations - this isn't the case with SCSI, which is why they handle better under high load environments.

----------

## revof11

Running hdparm -t /dev/hda a few times... I get the following output:

```
/dev/hda:

 Timing buffered disk reads:    4 MB in  3.72 seconds =   1.08 MB/sec

/dev/hda:

 Timing buffered disk reads:    4 MB in  3.72 seconds =   1.07 MB/sec

/dev/hda:

 Timing buffered disk reads:    4 MB in  3.73 seconds =   1.07 MB/sec

/dev/hda:

 Timing buffered disk reads:    4 MB in  3.76 seconds =   1.06 MB/sec
```

Doesn't seem too bad... during that whole time, wa didn't hit above 0.9%...

I'm going to let top run for a while and run a few test scenario scripts I wrote to see what the deal is.

I'm guessing that if I get a high wa rate that I probably missed something in the kernel compile.

----------

## syg00

 *revof11 wrote:*   

> Doesn't seem too bad...

 You reckon  ???.

I don't follow these things too closely, but my 5 year old Toshi laptop comes in at better than 13 MB/sec - minimum of 10.

Run top in batch mode and pipe it to disk - makes it much easier to chase things down at your leisure.

----------

## revof11

Bah... well...

Regardless of that...

I ran an emerge --sync and wa floated around 87% the whole time.

Guess I'm gonna have to go back and figure out what I missed in the kernel's hardware support.

----------

## troymc

 *revof11 wrote:*   

> 
> 
> /dev/hda:
> 
>  Timing buffered disk reads:    4 MB in  3.76 seconds =   1.06 MB/sec[/code]
> ...

 

Here's mine:

# hdparm -tT /dev/sda

```

/dev/sda:

 Timing cached reads:   3180 MB in  2.00 seconds = 1588.65 MB/sec

 Timing buffered disk reads:  150 MB in  3.02 seconds =  49.61 MB/sec

```

Show us the output of:

   hdparm /dev/hda

   hdparm -i /dev/hda

and an lspci

troymc

----------

## revof11

OK... yeah.

I must have missed something in setup.

----------

## revof11

I've been digging around my laptop doc and the kernel options and haven't been able to figure out what I missed.  There must be something since the disk load wasn't a problem on FC5.  At this, point, though, I'm at a dead end.  I think I'm just gonna relax for a while, step away from it and see if I can solve the problem later.

----------

## BlueFusion

Ensure 32-bit IO and the proper (U)DMA mode is enabled in hdparm for the drive.  The 1MB/sec is miserable.  A new ATA disk should be about 55-60MB/sec at idle. Thew new SATA-IIs I got in non-RAID configuration are about 70MB/sec at idle.

Here's a quick and dirty guide on hdparm settings: http://www.linuxdevcenter.com/pub/a/linux/2000/06/29/hdparm.html

----------

## troymc

Let us see your dmesg output, and your lspci -v output.

Maybe you are having IDE interface driver issues like you mentioned.

troymc

----------

## revof11

dmesg:

```
Bootdata ok (command line is root=/dev/hda3 noapic no_timer_check)

Linux version 2.6.15-gentoo-r5 (root@livecd) (gcc version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)) #1 SMP Tue Apr 25 07:03:46 EST 2006

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)

 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000d2000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 0000000077ef0000 (usable)

 BIOS-e820: 0000000077ef0000 - 0000000077eff000 (ACPI data)

 BIOS-e820: 0000000077eff000 - 0000000077f00000 (ACPI NVS)

 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)

 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)

 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

 BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)

ACPI: RSDP (v000 HP                                    ) @ 0x00000000000f8280

ACPI: RSDT (v001 HP     3093     0x20040608  LTP 0x00000000) @ 0x0000000077ef8c19

ACPI: FADT (v001 HP     3093     0x20040608 PTL  0x0000005f) @ 0x0000000077efedff

ACPI: SSDT (v001 PTLTD  POWERNOW 0x20040608  LTP 0x00000001) @ 0x0000000077efee73

ACPI: MADT (v001 PTLTD      3093   0x20040608  LTP 0x00000000) @ 0x0000000077efef6a

ACPI: MCFG (v001 PTLTD    MCFG   0x20040608  LTP 0x00000000) @ 0x0000000077efefc4

ACPI: DSDT (v001 HP     3091     0x20040608 MSFT 0x0100000e) @ 0x0000000000000000

Scanning NUMA topology in Northbridge 24

Number of nodes 1

Node 0 MemBase 0000000000000000 Limit 0000000077ef0000

Using 63 for the hash shift.

Using node hash shift of 63

Bootmem setup node 0 0000000000000000-0000000077ef0000

On node 0 totalpages: 483064

  DMA zone: 2572 pages, LIFO batch:0

  DMA32 zone: 480492 pages, LIFO batch:31

  Normal zone: 0 pages, LIFO batch:0

  HighMem zone: 0 pages, LIFO batch:0

ACPI: PM-Timer IO Port: 0x8008

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)

Processor #0 15:4 APIC version 16

ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])

ACPI: Skipping IOAPIC probe due to 'noapic' option.

Using ACPI for processor (LAPIC) configuration information

Intel MultiProcessor Specification v1.4

    Virtual Wire compatibility mode.

OEM ID:          <6>Product ID:              <6>APIC at: 0xFEE00000

I/O APIC #1 Version 33 at 0xFEC00000.

Setting APIC routing to physical flat

Processors: 1

Allocating PCI resources starting at 88000000 (gap: 80000000:7ec00000)

Checking aperture...

CPU 0: aperture @ e000000000 size 32 MB

Aperture from northbridge cpu 0 too small (32 MB)

No AGP bridge found

SMP: Allowing 3 CPUs, 2 hotplug CPUs

Built 1 zonelists

Kernel command line: root=/dev/hda3 noapic no_timer_check

Initializing CPU#0

PID hash table entries: 4096 (order: 12, 131072 bytes)

time.c: Using 3.579545 MHz PM timer.

time.c: Detected 2000.117 MHz processor.

Console: colour VGA+ 80x25

Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)

Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)

Memory: 1928880k/1964992k available (3115k kernel code, 35724k reserved, 1445k data, 200k init)

Calibrating delay using timer specific routine.. 4009.07 BogoMIPS (lpj=8018158)

Security Framework v1.0.0 initialized

SELinux:  Initializing.

SELinux:  Starting in permissive mode

selinux_register_security:  Registering secondary module capability

Capability LSM initialized as secondary

Failure registering Root Plug module with the kernel

selinux_register_security:  There is already a secondary security module registered.

Failure registering Root Plug  module with primary security module.

Mount-cache hash table entries: 256

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 1024K (64 bytes/line)

CPU 0(1) -> Node 0 -> Core 0

mtrr: v2.0 (20020519)

ACPI: setting ELCR to 0200 (from 0c38)

Using local APIC timer interrupts.

Detected 12.500 MHz APIC timer.

Brought up 1 CPUs

time.c: Using PIT/TSC based timekeeping.

testing NMI watchdog ... OK.

NET: Registered protocol family 16

ACPI: bus type pci registered

PCI: Using configuration type 1

PCI: Using MMCONFIG at e0000000

ACPI: Subsystem revision 20050902

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (0000:00)

PCI: Probing PCI hardware (bus 00)

PCI: Ignoring BAR0-3 of IDE controller 0000:00:14.1

Boot video device is 0000:01:05.0

PCI: Transparent bridge - 0000:00:14.4

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.

ACPI: PCI Interrupt Link [LNKB] (IRQs *10 11)

ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *5

ACPI: PCI Interrupt Link [LNKD] (IRQs 10 *11)

ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *3, disabled.

ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *4

ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *9

ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.

ACPI: Embedded Controller [EC0] (gpe 24)

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]

SCSI subsystem initialized

usbcore: registered new driver usbfs

usbcore: registered new driver hub

PCI: Using ACPI for IRQ routing

PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report

PCI-DMA: Disabling IOMMU.

PCI: Bridge: 0000:00:01.0

  IO window: 9000-9fff

  MEM window: c0100000-c01fffff

  PREFETCH window: c8000000-cfffffff

PCI: Bus 6, cardbus bridge: 0000:05:09.0

  IO window: 0000a400-0000a4ff

  IO window: 0000a800-0000a8ff

  PREFETCH window: 88000000-89ffffff

  MEM window: 8a000000-8bffffff

PCI: Bridge: 0000:00:14.4

  IO window: a000-afff

  MEM window: c0200000-c02fffff

  PREFETCH window: 88000000-89ffffff

ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10

PCI: setting IRQ 10 as level-triggered

ACPI: PCI Interrupt 0000:05:09.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $

Total HugeTLB memory allocated, 0

Installing knfsd (copyright (C) 1996 okir@monad.swb.de).

seclvl: seclvl_init: seclvl: Failure registering with the kernel.

selinux_register_security:  There is already a secondary security module registered.

seclvl: seclvl_init: seclvl: Failure registering with primary security module.

seclvl: Error during initialization: rc = [-22]

Initializing Cryptographic API

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered

Real Time Clock Driver v1.12

Software Watchdog Timer: 0.07 initialized. soft_noboot=0 soft_margin=60 sec (nowayout= 0)

Linux agpgart interface v0.101 (c) Dave Jones

ACPI: AC Adapter [ACAD] (off-line)

ACPI: Battery Slot [BAT1] (battery present)

ACPI: Power Button (FF) [PWRF]

ACPI: Power Button (CM) [PWRB]

ACPI: Sleep Button (CM) [SLPB]

ACPI: Lid Switch [LID]

ACPI: CPU0 (power states: C1[C1] C2[C2])

ACPI: Processor [CPU0] (supports 8 throttling states)

ACPI: Thermal Zone [THRM] (36 C)

serio: i8042 AUX port at 0x60,0x64 irq 12

serio: i8042 KBD port at 0x60,0x64 irq 1

Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled

ACPI: PCI Interrupt 0000:00:14.6[B] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI interrupt for device 0000:00:14.6 disabled

mice: PS/2 mouse device common for all mice

input: AT Translated Set 2 keyboard as /class/input/input0

Synaptics Touchpad, model: 1, fw: 5.10, id: 0x258eb1, caps: 0xa04713/0x0

input: SynPS/2 Synaptics TouchPad as /class/input/input1

floppy0: no floppy controllers found

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

loop: loaded (max 8 devices)

Intel(R) PRO/1000 Network Driver - version 6.1.16-k2

Copyright (c) 1999-2005 Intel Corporation.

e100: Intel(R) PRO/100 Network Driver, 3.4.14-k4-NAPI

e100: Copyright(c) 1999-2005 Intel Corporation

forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.48.

8139cp: 10/100 PCI Ethernet driver v1.2 (Mar 22, 2004)

8139cp: pci dev 0000:05:00.0 (id 10ec:8139 rev 10) is not an 8139C+ compatible chip

8139cp: Try the "8139too" driver instead.

8139too Fast Ethernet driver 0.9.27

ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11

PCI: setting IRQ 11 as level-triggered

ACPI: PCI Interrupt 0000:05:00.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11

eth0: RealTek RTL8139 at 0xffffc20000012000, 00:c0:9f:aa:af:18, IRQ 11

eth0:  Identified 8139 chip type 'RTL-8100B/8139D'

tun: Universal TUN/TAP device driver, 1.6

tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>

netconsole: not configured, aborting

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

Probing IDE interface ide0...

hda: ST9808211A, ATA DISK drive

Probing IDE interface ide1...

hdc: TSSTcorpCD/DVDW TS-L532M, ATAPI CD/DVD-ROM drive

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

ide1 at 0x170-0x177,0x376 on irq 15

hda: max request size: 1024KiB

hda: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63

hda: cache flushes supported

 hda: hda1 hda2 hda3

hdc: ATAPI 24X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache

Uniform CD-ROM driver Revision: 3.20

libata version 1.20 loaded.

Fusion MPT base driver 3.03.04

Copyright (c) 1999-2005 LSI Logic Corporation

Fusion MPT SPI Host driver 3.03.04

ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11

ACPI: PCI Interrupt 0000:00:13.2[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

ehci_hcd 0000:00:13.2: EHCI Host Controller

ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1

ehci_hcd 0000:00:13.2: irq 11, io mem 0xc0002000

ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 8 ports detected

ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)

ACPI: PCI Interrupt 0000:00:13.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

ohci_hcd 0000:00:13.0: OHCI Host Controller

ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2

ohci_hcd 0000:00:13.0: irq 11, io mem 0xc0000000

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 4 ports detected

ACPI: PCI Interrupt 0000:00:13.1[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

ohci_hcd 0000:00:13.1: OHCI Host Controller

ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3

ohci_hcd 0000:00:13.1: irq 11, io mem 0xc0001000

hub 3-0:1.0: USB hub found

hub 3-0:1.0: 4 ports detected

USB Universal Host Controller Interface driver v2.3

usbcore: registered new driver usblp

drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver

Initializing USB Mass Storage driver...

usbcore: registered new driver usb-storage

USB Mass Storage support registered.

usbcore: registered new driver usbhid

drivers/usb/input/hid-core.c: v2.6:USB HID core driver

device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com

Intel 810 + AC97 Audio, version 1.01, 07:02:48 Apr 25 2006

oprofile: using NMI interrupt.

NET: Registered protocol family 2

IP route cache hash table entries: 65536 (order: 7, 524288 bytes)

TCP established hash table entries: 262144 (order: 10, 4194304 bytes)

TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)

TCP: Hash tables configured (established 262144 bind 65536)

TCP reno registered

TCP bic registered

NET: Registered protocol family 1

NET: Registered protocol family 10

IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.50.4)

powernow-k8:    0 : fid 0xc (2000 MHz), vid 0x4 (1450 mV)

powernow-k8:    1 : fid 0xa (1800 MHz), vid 0x6 (1400 mV)

powernow-k8:    2 : fid 0x8 (1600 MHz), vid 0x8 (1350 mV)

powernow-k8:    3 : fid 0x0 (800 MHz), vid 0x16 (1000 mV)

cpu_init done, current fid 0xc, vid 0x4

ACPI wakeup devices: 

KBC0 MSE0  P2P AUDO 

ACPI: (supports S0 S3 S4 S5)

kjournald starting.  Commit interval 5 seconds

EXT3-fs: mounted filesystem with ordered data mode.

VFS: Mounted root (ext3 filesystem) readonly.

Freeing unused kernel memory: 200k freed

Losing some ticks... checking if CPU frequency changed.

Adding 2008116k swap on /dev/hda2.  Priority:-1 extents:1 across:2008116k

EXT3 FS on hda3, internal journal

warning: many lost ticks.

Your time source seems to be instable or some driver is hogging interupts

rip acpi_safe_halt+0x27/0x3a

ds: ds_open(socket 0)

ds: ds_open(socket 0)

eth0: link up, 100Mbps, full-duplex, lpa 0x41E1

eth0: link up, 100Mbps, full-duplex, lpa 0x41E1

ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

eth0: no IPv6 routers present

spurious 8259A interrupt: IRQ7.

BUG: soft lockup detected on CPU#0!

CPU 0:

Modules linked in:

Pid: 869, comm: kjournald Not tainted 2.6.15-gentoo-r5 #1

RIP: 0010:[<ffffffff8040627c>] <ffffffff8040627c>{_spin_unlock_irqrestore+8}

RSP: 0018:ffffffff80578e90  EFLAGS: 00000292

RAX: 0000000000000100 RBX: ffffffff80578de8 RCX: 0000000000000003

RDX: ffffc20000016000 RSI: 0000000000000292 RDI: ffff810077942950

RBP: ffffffff8010fe7c R08: 00000000000001b4 R09: 0000000000000020

R10: 0000000000000001 R11: 0000000000009880 R12: 00000000000001b4

R13: ffffffff8011210f R14: 0000000000000000 R15: ffff810077942800

FS:  00002aaaaaff26e0(0000) GS:ffffffff80608800(0000) knlGS:0000000000000000

CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b

CR2: 00002aaaaaac1000 CR3: 000000002bacf000 CR4: 00000000000006e0

Call Trace: <IRQ> <ffffffff80360b99>{ohci_hub_status_data+366}

       <ffffffff80350c71>{rh_timer_func+0} <ffffffff80350b90>{usb_hcd_poll_rh_status+50}

       <ffffffff80350c71>{rh_timer_func+0} <ffffffff801407d7>{run_timer_softirq+350}

       <ffffffff8013cdf4>{__do_softirq+80} <ffffffff80110c5b>{call_softirq+31}

       <ffffffff80112248>{do_softirq+47} <ffffffff801104c2>{apic_timer_interrupt+98}

        <EOI> <ffffffff8015cc2a>{__alloc_pages+80} <ffffffff80250b80>{deadline_latter_request+0}

       <ffffffff80250b80>{deadline_latter_request+0} <ffffffff8024cfbd>{__make_request+1295}

       <ffffffff8024cdbc>{__make_request+782} <ffffffff8024d117>{generic_make_request+329}

       <ffffffff8015c166>{__mod_page_state+34} <ffffffff80250b80>{deadline_latter_request+0}

       <ffffffff8024d1ec>{submit_bio+194} <ffffffff8017e085>{bio_alloc_bioset+278}

       <ffffffff8017c029>{submit_bh+249} <ffffffff80250b80>{deadline_latter_request+0}

       <ffffffff8017c0d5>{ll_rw_block+139} <ffffffff801e7542>{journal_commit_transaction+1036}

       <ffffffff8014041c>{lock_timer_base+27} <ffffffff801e9e5f>{kjournald+218}

       <ffffffff8014bdae>{autoremove_wake_function+0} <ffffffff8014bdae>{autoremove_wake_function+0}

       <ffffffff801e9d80>{commit_timeout+0} <ffffffff801107ca>{child_rip+8}

       <ffffffff801e9d85>{kjournald+0} <ffffffff801107c2>{child_rip+0}

       

BUG: soft lockup detected on CPU#0!

CPU 0:

Modules linked in:

Pid: 5, comm: events/0 Not tainted 2.6.15-gentoo-r5 #1

RIP: 0010:[<ffffffff801407ce>] <ffffffff801407ce>{run_timer_softirq+341}

RSP: 0018:ffffffff80578f18  EFLAGS: 00000212

RAX: ffff810077eb1fd8 RBX: ffffffff80578e68 RCX: ffffffff805ea680

RDX: ffffffff80578f18 RSI: ffff810002a50b28 RDI: 0000000000000000

RBP: ffffffff8010fe7c R08: 0000000000000647 R09: 0000000000000020

R10: 0000000000000001 R11: 00000000000035fa R12: 0000000000000647

R13: ffffffff8011210f R14: ffffffff805da520 R15: ffffffff80578f18

FS:  00002aaaab6bb000(0000) GS:ffffffff80608800(0000) knlGS:0000000000000000

CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b

CR2: 00002aaaaaac1000 CR3: 0000000075f19000 CR4: 00000000000006e0

Call Trace: <IRQ> <ffffffff8014081c>{run_timer_softirq+419} <ffffffff8013cdf4>{__do_softirq+80}

       <ffffffff80110c5b>{call_softirq+31} <ffffffff80112248>{do_softirq+47}

       <ffffffff801104c2>{apic_timer_interrupt+98}  <EOI> <ffffffff8016074c>{drain_alien_cache+74}

       <ffffffff801626a2>{cache_reap+0} <ffffffff8016272e>{cache_reap+140}

       <ffffffff80147910>{worker_thread+417} <ffffffff80132361>{default_wake_function+0}

       <ffffffff801323b2>{__wake_up_common+67} <ffffffff80132361>{default_wake_function+0}

       <ffffffff8014776f>{worker_thread+0} <ffffffff8014b8bb>{kthread+200}

       <ffffffff801107ca>{child_rip+8} <ffffffff8014b7f3>{kthread+0}

       <ffffffff801107c2>{child_rip+0} 

BUG: soft lockup detected on CPU#0!

CPU 0:

Modules linked in:

Pid: 180, comm: pdflush Not tainted 2.6.15-gentoo-r5 #1

RIP: 0010:[<ffffffff8040627c>] <ffffffff8040627c>{_spin_unlock_irqrestore+8}

RSP: 0018:ffffffff80578e90  EFLAGS: 00000292

RAX: 0000000000000100 RBX: ffffffff80578de8 RCX: 0000000000000003

RDX: ffffc20000018000 RSI: 0000000000000292 RDI: ffff810077967950

RBP: ffffffff8010fe7c R08: 000000000000028e R09: 0000000000000020

R10: 0000000000000001 R11: 000000000000a500 R12: 000000000000028e

R13: ffffffff8011210f R14: 0000000000000000 R15: ffff810077967800

FS:  00002aaaab6bb000(0000) GS:ffffffff80608800(0000) knlGS:0000000000000000

CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b

CR2: 00002aaaaaac1000 CR3: 0000000075f19000 CR4: 00000000000006e0

Call Trace: <IRQ> <ffffffff80360b99>{ohci_hub_status_data+366}

       <ffffffff80350c71>{rh_timer_func+0} <ffffffff80350b90>{usb_hcd_poll_rh_status+50}

       <ffffffff80350c71>{rh_timer_func+0} <ffffffff801407d7>{run_timer_softirq+350}

       <ffffffff8013cde9>{__do_softirq+69} <ffffffff8013cdf4>{__do_softirq+80}

       <ffffffff80110c5b>{call_softirq+31} <ffffffff80112248>{do_softirq+47}

       <ffffffff801104c2>{apic_timer_interrupt+98}  <EOI> <ffffffff801590a1>{find_get_pages_tag+115}

       <ffffffff8016371f>{pagevec_lookup_tag+26} <ffffffff8019ac10>{mpage_writepages+728}

       <ffffffff801d7416>{ext3_ordered_writepage+0} <ffffffff80199522>{__writeback_single_inode+450}

       <ffffffff80140622>{del_timer_sync+12} <ffffffff80405a3b>{schedule_timeout+146}

       <ffffffff80140e35>{process_timeout+0} <ffffffff8040598f>{io_schedule_timeout+46}

       <ffffffff80199af1>{sync_sb_inodes+464} <ffffffff8014b8e4>{keventd_create_kthread+0}

       <ffffffff80199dbe>{writeback_inodes+133} <ffffffff8015e71c>{wb_kupdate+188}

       <ffffffff8015efde>{pdflush+343} <ffffffff8015e660>{wb_kupdate+0}

       <ffffffff8015ee87>{pdflush+0} <ffffffff8014b8bb>{kthread+200}

       <ffffffff801107ca>{child_rip+8} <ffffffff8014b8e4>{keventd_create_kthread+0}

       <ffffffff8014b7f3>{kthread+0} <ffffffff801107c2>{child_rip+0}

       

BUG: soft lockup detected on CPU#0!

CPU 0:

Modules linked in:

Pid: 4, comm: watchdog/0 Not tainted 2.6.15-gentoo-r5 #1

RIP: 0010:[<ffffffff8035ddb1>] <ffffffff8035ddb1>{ehci_irq+0}

RSP: 0000:ffffffff80578b48  EFLAGS: 00000202

RAX: ffffffff8041e4c0 RBX: ffffffff80578a98 RCX: 000000000000000b

RDX: ffffffff80578ba8 RSI: ffffffff80578ba8 RDI: ffff810077804400

RBP: ffffffff8010fe7c R08: 0000000000000000 R09: 00000000000312f0

R10: 00000000000312f0 R11: 0000000000000000 R12: 0000000000000000

R13: ffffffff8011210f R14: ffffffff80578ba8 R15: 000000000000000b

FS:  00002aaaaaff26e0(0000) GS:ffffffff80608800(0000) knlGS:0000000000000000

CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b

CR2: 00002aaaaabc1190 CR3: 000000003bb6b000 CR4: 00000000000006e0

Call Trace: <IRQ> <ffffffff80350d20>{usb_hcd_irq+43} <ffffffff801579f5>{handle_IRQ_event+41}

       <ffffffff80157ab9>{__do_IRQ+147} <ffffffff8011210f>{do_IRQ+45}

       <ffffffff8010fe7c>{ret_from_intr+0} <ffffffff802f125f>{rtl8139_start_xmit+314}

       <ffffffff802f121d>{rtl8139_start_xmit+248} <ffffffff80397fa8>{qdisc_restart+258}

       <ffffffff8038bc1a>{dev_queue_xmit+225} <ffffffff803a37c2>{ip_output+479}

       <ffffffff803a2d4d>{ip_queue_xmit+1002} <ffffffff8014041c>{lock_timer_base+27}

       <ffffffff801404e6>{__mod_timer+169} <ffffffff803b2537>{tcp_transmit_skb+1689}

       <ffffffff803b0dd1>{tcp_rcv_established+2039} <ffffffff803b533c>{tcp_delack_timer+0}

       <ffffffff803b8040>{tcp_v4_do_rcv+43} <ffffffff803b533c>{tcp_delack_timer+0}

       <ffffffff803b5437>{tcp_delack_timer+251} <ffffffff801407d7>{run_timer_softirq+350}

       <ffffffff8038c41d>{net_rx_action+172} <ffffffff8013cdf4>{__do_softirq+80}

       <ffffffff801577aa>{watchdog+0} <ffffffff80110c5b>{call_softirq+31}

       <ffffffff80112248>{do_softirq+47} <ffffffff80112114>{do_IRQ+50}

       <ffffffff8010fe7c>{ret_from_intr+0}  <EOI> <ffffffff8014041c>{lock_timer_base+27}

       <ffffffff8014060f>{try_to_del_timer_sync+75} <ffffffff8014134e>{msleep_interruptible+49}

       <ffffffff8014134b>{msleep_interruptible+46} <ffffffff801577f9>{watchdog+79}

       <ffffffff8014b8bb>{kthread+200} <ffffffff801107ca>{child_rip+8}

       <ffffffff8014b7f3>{kthread+0} <ffffffff801107c2>{child_rip+0}

       

BUG: soft lockup detected on CPU#0!

CPU 0:

Modules linked in:

Pid: 21719, comm: rm Not tainted 2.6.15-gentoo-r5 #1

RIP: 0010:[<ffffffff802f152b>] <ffffffff802f152b>{rtl8139_poll+597}

RSP: 0018:ffffffff80578ea8  EFLAGS: 00000282

RAX: ffff81003c9a9012 RBX: ffffffff80578df8 RCX: 0000000000000187

RDX: 0000000000000000 RSI: ffff81007525131b RDI: ffff81003c9a9441

RBP: ffffffff8010fe7c R08: 0000000000000000 R09: ffff81003f7d76c0

R10: 0000000000000202 R11: 0000000000000202 R12: 0000000000000000

R13: ffffffff8011210f R14: 000000002fd98ee8 R15: ffff8100778f5000

FS:  00002aaaaaff26e0(0000) GS:ffffffff80608800(0000) knlGS:0000000000000000

CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b

CR2: 00002aaaaaac1000 CR3: 00000000410ae000 CR4: 00000000000006e0

Call Trace: <IRQ> <ffffffff802f14ea>{rtl8139_poll+532} <ffffffff8038c41d>{net_rx_action+172}

       <ffffffff8013cdf4>{__do_softirq+80} <ffffffff80110c5b>{call_softirq+31}

       <ffffffff80112248>{do_softirq+47} <ffffffff80112114>{do_IRQ+50}

       <ffffffff8010fe7c>{ret_from_intr+0}  <EOI> <ffffffff8015c131>{free_pages_bulk+690}

       <ffffffff801d77c1>{ext3_invalidatepage+0} <ffffffff801e58de>{__journal_temp_unlink_buffer+409}

       <ffffffff8015c737>{__pagevec_free+39} <ffffffff801e654c>{__journal_unfile_buffer+9}

       <ffffffff801e6b6d>{__dispose_buffer+28} <ffffffff801e6def>{journal_invalidatepage+581}

       <ffffffff801637ab>{truncate_complete_page+27} <ffffffff801638d4>{truncate_inode_pages+134}

       <ffffffff801d9fa4>{ext3_delete_inode+0} <ffffffff801d9fb8>{ext3_delete_inode+20}

       <ffffffff801d9fa4>{ext3_delete_inode+0} <ffffffff8019188c>{generic_delete_inode+139}

       <ffffffff80188b6b>{sys_unlink+223} <ffffffff8010f8da>{system_call+126}

       

BUG: soft lockup detected on CPU#0!

CPU 0:

Modules linked in:

Pid: 6729, comm: hald Not tainted 2.6.15-gentoo-r5 #1

RIP: 0010:[<ffffffff803982ed>] <ffffffff803982ed>{pfifo_fast_dequeue+33}

RSP: 0018:ffffffff80578e10  EFLAGS: 00000293

RAX: ffff810077068ad8 RBX: ffffffff80578d68 RCX: ffff810068504d80

RDX: ffff810077068ad8 RSI: ffff810077068a00 RDI: ffff810077068a00

RBP: ffffffff8010fe7c R08: ffffffff80578e18 R09: 000000000000001c

R10: ffff8100778f5168 R11: 0000000000000202 R12: ffffffff80578e18

R13: ffffffff8011210f R14: 00000000fffffffd R15: 00000000a900a8c0

FS:  00002aaaab6bb000(0000) GS:ffffffff80608800(0000) knlGS:0000000000000000

CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b

CR2: 00002aaaaaac1000 CR3: 0000000075f19000 CR4: 00000000000006e0

Call Trace: <IRQ> <ffffffff80397ec4>{qdisc_restart+30} <ffffffff8038bc1a>{dev_queue_xmit+225}

       <ffffffff803beb91>{arp_solicit+327} <ffffffff8039083d>{neigh_timer_handler+506}

       <ffffffff80390643>{neigh_timer_handler+0} <ffffffff801407d7>{run_timer_softirq+350}

       <ffffffff8013cde9>{__do_softirq+69} <ffffffff8013cdf4>{__do_softirq+80}

       <ffffffff80110c5b>{call_softirq+31} <ffffffff80112248>{do_softirq+47}

       <ffffffff80112114>{do_IRQ+50} <ffffffff8010fe7c>{ret_from_intr+0}

        <EOI> <ffffffff8040627c>{_spin_unlock_irqrestore+8}

       <ffffffff8029b6c0>{acpi_ec_read+230} <ffffffff8029c00e>{acpi_ec_space_handler+155}

       <ffffffff8029bf73>{acpi_ec_space_handler+0} <ffffffff80284e8f>{acpi_ev_address_space_dispatch+229}

       <ffffffff80288f64>{acpi_ex_access_region+196} <ffffffff802892d2>{acpi_ex_field_datum_io+266}

       <ffffffff802893ea>{acpi_ex_extract_from_field+123} <ffffffff80287c73>{acpi_ex_read_data_from_field+299}

       <ffffffff8028c57a>{acpi_ex_resolve_node_to_value+234}

       <ffffffff802885f4>{acpi_ex_resolve_to_value+520} <ffffffff802827e0>{acpi_ds_get_predicate_value+96}

       <ffffffff80282c99>{acpi_ds_exec_end_op+758} <ffffffff802911e0>{acpi_ps_parse_loop+1448}

       <ffffffff80290a93>{acpi_ps_parse_aml+90} <ffffffff802919ce>{acpi_ps_execute_pass+133}

       <ffffffff80291a36>{acpi_ps_execute_method+82} <ffffffff8028ea83>{acpi_ns_evaluate_by_handle+207}

       <ffffffff8028ec2c>{acpi_ns_evaluate_relative+208} <ffffffff8028e2a9>{acpi_evaluate_object+249}

       <ffffffff80238dbe>{inode_has_perm+89} <ffffffff8029a6ea>{acpi_battery_read_state+172}

       <ffffffff80196f80>{seq_read+263} <ffffffff80179a91>{vfs_read+206}

       <ffffffff80179de7>{sys_read+69} <ffffffff8010f8da>{system_call+126}
```

lspci -v:

```
00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, medium devsel, latency 64

00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge (prog-if 00 [Normal decode])

        Flags: bus master, 66MHz, medium devsel, latency 64

        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64

        I/O behind bridge: 00009000-00009fff

        Memory behind bridge: c0100000-c01fffff

        Prefetchable memory behind bridge: 00000000c8000000-00000000cff00000

        Capabilities: [44] HyperTransport: MSI Mapping

        Capabilities: [b0] #0d [0000]

00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller (prog-if 10 [OHCI])

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 11

        Memory at c0000000 (32-bit, non-prefetchable) [size=4K]

        Capabilities: [d0] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-

00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller (prog-if 10 [OHCI])

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 11

        Memory at c0001000 (32-bit, non-prefetchable) [size=4K]

        Capabilities: [d0] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-

00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller (prog-if 20 [EHCI])

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 11

        Memory at c0002000 (32-bit, non-prefetchable) [size=4K]

        Capabilities: [dc] Power Management version 2

        Capabilities: [d0] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-

00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: 66MHz, medium devsel

        I/O ports at 8400 [size=16]

        Memory at c0003000 (32-bit, non-prefetchable) [size=1K]

        Capabilities: [b0] HyperTransport: MSI Mapping

00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI (prog-if 8a [Master SecP PriP])

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 255

        I/O ports at <ignored>

        I/O ports at <ignored>

        I/O ports at <ignored>

        I/O ports at <ignored>

        I/O ports at 8410 [size=16]

        Capabilities: [70] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-

00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, medium devsel, latency 0

00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge (prog-if 01 [Subtractive decode])

        Flags: bus master, 66MHz, medium devsel, latency 64

        Bus: primary=00, secondary=05, subordinate=06, sec-latency=64

        I/O behind bridge: 0000a000-0000afff

        Memory behind bridge: c0200000-c02fffff

        Prefetchable memory behind bridge: 88000000-89ffffff

00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, slow devsel, latency 64, IRQ 10

        Memory at c0003400 (32-bit, non-prefetchable) [size=256]

        Capabilities: [40] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-

00:14.6 Modem: ATI Technologies Inc ATI SB400 - AC'97 Modem Controller (rev 02) (prog-if 00 [Generic])

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: 66MHz, slow devsel, IRQ 10

        Memory at c0003800 (32-bit, non-prefetchable) [size=256]

        Capabilities: [40] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

        Flags: fast devsel

        Capabilities: [80] HyperTransport: Host or Secondary Interface

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

        Flags: fast devsel

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

        Flags: fast devsel

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

        Flags: fast devsel

01:05.0 VGA compatible controller: ATI Technologies Inc ATI Radeon XPRESS 200M 5955 (PCIE) (prog-if 00 [VGA])

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, 66MHz, medium devsel, latency 255, IRQ 10

        Memory at c8000000 (32-bit, prefetchable) [size=128M]

        I/O ports at 9000 [size=256]

        Memory at c0100000 (32-bit, non-prefetchable) [size=64K]

        [virtual] Expansion ROM at c0120000 [disabled] [size=128K]

        Capabilities: [50] Power Management version 2

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, medium devsel, latency 64, IRQ 11

        I/O ports at a000 [size=256]

        Memory at c0208000 (32-bit, non-prefetchable) [size=256]

        Capabilities: [50] Power Management version 2

05:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)

        Subsystem: Hewlett-Packard Company Unknown device 1355

        Flags: bus master, fast devsel, latency 64, IRQ 3

        Memory at c0204000 (32-bit, non-prefetchable) [size=8K]

05:09.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, medium devsel, latency 64, IRQ 10

        Memory at c0209000 (32-bit, non-prefetchable) [size=4K]

        Bus: primary=05, secondary=06, subordinate=09, sec-latency=176

        Memory window 0: 88000000-89fff000 (prefetchable)

        Memory window 1: 8a000000-8bfff000 (prefetchable)

        I/O window 0: 0000a400-0000a4ff

        I/O window 1: 0000a800-0000a8ff

        16-bit legacy interface ports at 0001

05:09.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller (prog-if 10 [OHCI])

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, medium devsel, latency 64, IRQ 4

        Memory at c0208800 (32-bit, non-prefetchable) [size=2K]

        Memory at c0200000 (32-bit, non-prefetchable) [size=16K]

        Capabilities: [44] Power Management version 2

05:09.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, medium devsel, latency 64, IRQ 10

        Memory at c0206000 (32-bit, non-prefetchable) [size=8K]

        Capabilities: [44] Power Management version 2

05:09.4 Class 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller

        Subsystem: Hewlett-Packard Company Unknown device 3091

        Flags: bus master, medium devsel, latency 64, IRQ 10

        Memory at c020a400 (32-bit, non-prefetchable) [size=256]

        Memory at c020a000 (32-bit, non-prefetchable) [size=256]

        Memory at c0208400 (32-bit, non-prefetchable) [size=256]

        Capabilities: [80] Power Management version 2
```

If you somehow figure it out from this... PLEASE let me know.

I'm a little lost looking at all of that dmesg output!

----------

## troymc

<spock>

hmmm...interesting....

</spock>

The generic IDE driver is running your drives. That's why you don't have DMA.

Rebuild your kernel with this IDE driver & disable the generic driver:

```

Device Drivers --->

    ATA/ATAPI/MFM/RLL support  --->

        <*> ATA/ATAPI/MFM/RLL support

            <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

                < > generic/default IDE chipset support

                [*] PCI IDE chipset support

                    <*> Generic PCI bus-master DMA support

                        <*> ATI IXP chipset IDE support

```

But these are your real problem:

```

BUG: soft lockup detected on CPU#0!

CPU 0:

Modules linked in:

Pid: 869, comm: kjournald Not tainted 2.6.15-gentoo-r5 #1

RIP: 0010:[<ffffffff8040627c>] <ffffffff8040627c>{_spin_unlock_irqrestore+8}

RSP: 0018:ffffffff80578e90  EFLAGS: 00000292

RAX: 0000000000000100 RBX: ffffffff80578de8 RCX: 0000000000000003

RDX: ffffc20000016000 RSI: 0000000000000292 RDI: ffff810077942950

RBP: ffffffff8010fe7c R08: 00000000000001b4 R09: 0000000000000020

R10: 0000000000000001 R11: 0000000000009880 R12: 00000000000001b4

R13: ffffffff8011210f R14: 0000000000000000 R15: ffff810077942800

FS:  00002aaaaaff26e0(0000) GS:ffffffff80608800(0000) knlGS:0000000000000000

CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b

CR2: 00002aaaaaac1000 CR3: 000000002bacf000 CR4: 00000000000006e0

Call Trace: <IRQ> <ffffffff80360b99>{ohci_hub_status_data+366}

       <ffffffff80350c71>{rh_timer_func+0} <ffffffff80350b90>{usb_hcd_poll_rh_status+50}

       <ffffffff80350c71>{rh_timer_func+0} <ffffffff801407d7>{run_timer_softirq+350}

       <ffffffff8013cdf4>{__do_softirq+80} <ffffffff80110c5b>{call_softirq+31}

       <ffffffff80112248>{do_softirq+47} <ffffffff801104c2>{apic_timer_interrupt+98}

        <EOI> <ffffffff8015cc2a>{__alloc_pages+80} <ffffffff80250b80>{deadline_latter_request+0}

       <ffffffff80250b80>{deadline_latter_request+0} <ffffffff8024cfbd>{__make_request+1295}

       <ffffffff8024cdbc>{__make_request+782} <ffffffff8024d117>{generic_make_request+329}

       <ffffffff8015c166>{__mod_page_state+34} <ffffffff80250b80>{deadline_latter_request+0}

       <ffffffff8024d1ec>{submit_bio+194} <ffffffff8017e085>{bio_alloc_bioset+278}

       <ffffffff8017c029>{submit_bh+249} <ffffffff80250b80>{deadline_latter_request+0}

       <ffffffff8017c0d5>{ll_rw_block+139} <ffffffff801e7542>{journal_commit_transaction+1036}

       <ffffffff8014041c>{lock_timer_base+27} <ffffffff801e9e5f>{kjournald+218}

       <ffffffff8014bdae>{autoremove_wake_function+0} <ffffffff8014bdae>{autoremove_wake_function+0}

       <ffffffff801e9d80>{commit_timeout+0} <ffffffff801107ca>{child_rip+8}

       <ffffffff801e9d85>{kjournald+0} <ffffffff801107c2>{child_rip+0} 

```

troymc

----------

## revof11

Can I just recompile the kernel using make menuconfig and then running the make && make modules_install or do I have to completely start over?

And with the "soft lockup", anything I can do to solve that?

----------

## troymc

 *revof11 wrote:*   

> Can I just recompile the kernel using make menuconfig and then running the make && make modules_install
> 
> 

 

Yes, that should work.

 *revof11 wrote:*   

> 
> 
> And with the "soft lockup", anything I can do to solve that?
> 
> 

 

Don't know yet. I'm researching those, but have not found anything conclusive yet.

When you rebuild your kernel, check to see if Machine Check Exception is enabled.  If not, enable it. That will help determine if this is hardware related.

```

Processor type and features  --->

    --- Machine check support

    [*]   Intel MCE features

    [ ]   AMD MCE features

```

With this enabled, if your processor detects a hardware error, it will log a message into /var/log/messages. "MCE event logged." or similar.

(Install app-admin/mcelog to view the actual MCE error log)

troymc

----------

## revof11

Ok... did the recompile using the non-generic driver.

Running hdparm -tT /dev/hda doesn't give me anything better, though.

All I get is:

```
/dev/hda:

 Timing cached reads:   1548 MB in  2.00 seconds = 773.95 MB/sec

 Timing buffered disk reads:    4 MB in  4.12 seconds = 993.15 kB/sec

/dev/hda:

 Timing cached reads:   1560 MB in  2.00 seconds = 779.95 MB/sec

 Timing buffered disk reads:    4 MB in  4.08 seconds = 1002.88 kB/sec

/dev/hda:

 Timing cached reads:   1560 MB in  2.00 seconds = 779.95 MB/sec

 Timing buffered disk reads:    4 MB in  4.08 seconds = 1002.88 kB/sec

/dev/hda:

 Timing cached reads:   1564 MB in  2.00 seconds = 781.95 MB/sec

 Timing buffered disk reads:    4 MB in  4.09 seconds = 1001.89 kB/sec
```

The good news is that the kjournald error is gone:

```
Bootdata ok (command line is root=/dev/hda3 noapic no_timer_check)

Linux version 2.6.15-gentoo-r5 (root@livecd) (gcc version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)) #1 SMP Tue Apr 25 07:03:46 EST 2006

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)

 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000d2000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 0000000077ef0000 (usable)

 BIOS-e820: 0000000077ef0000 - 0000000077eff000 (ACPI data)

 BIOS-e820: 0000000077eff000 - 0000000077f00000 (ACPI NVS)

 BIOS-e820: 0000000077f00000 - 0000000080000000 (reserved)

 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)

 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

 BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)

ACPI: RSDP (v000 HP                                    ) @ 0x00000000000f8280

ACPI: RSDT (v001 HP     3093     0x20040608  LTP 0x00000000) @ 0x0000000077ef8c19

ACPI: FADT (v001 HP     3093     0x20040608 PTL  0x0000005f) @ 0x0000000077efedff

ACPI: SSDT (v001 PTLTD  POWERNOW 0x20040608  LTP 0x00000001) @ 0x0000000077efee73

ACPI: MADT (v001 PTLTD      3093   0x20040608  LTP 0x00000000) @ 0x0000000077efef6a

ACPI: MCFG (v001 PTLTD    MCFG   0x20040608  LTP 0x00000000) @ 0x0000000077efefc4

ACPI: DSDT (v001 HP     3091     0x20040608 MSFT 0x0100000e) @ 0x0000000000000000

Scanning NUMA topology in Northbridge 24

Number of nodes 1

Node 0 MemBase 0000000000000000 Limit 0000000077ef0000

Using 63 for the hash shift.

Using node hash shift of 63

Bootmem setup node 0 0000000000000000-0000000077ef0000

On node 0 totalpages: 483064

  DMA zone: 2572 pages, LIFO batch:0

  DMA32 zone: 480492 pages, LIFO batch:31

  Normal zone: 0 pages, LIFO batch:0

  HighMem zone: 0 pages, LIFO batch:0

ACPI: PM-Timer IO Port: 0x8008

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)

Processor #0 15:4 APIC version 16

ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])

ACPI: Skipping IOAPIC probe due to 'noapic' option.

Using ACPI for processor (LAPIC) configuration information

Intel MultiProcessor Specification v1.4

    Virtual Wire compatibility mode.

OEM ID:          <6>Product ID:              <6>APIC at: 0xFEE00000

I/O APIC #1 Version 33 at 0xFEC00000.

Setting APIC routing to physical flat

Processors: 1

Allocating PCI resources starting at 88000000 (gap: 80000000:7ec00000)

Checking aperture...

CPU 0: aperture @ e004000000 size 32 MB

Aperture from northbridge cpu 0 too small (32 MB)

No AGP bridge found

SMP: Allowing 3 CPUs, 2 hotplug CPUs

Built 1 zonelists

Kernel command line: root=/dev/hda3 noapic no_timer_check

Initializing CPU#0

PID hash table entries: 4096 (order: 12, 131072 bytes)

time.c: Using 3.579545 MHz PM timer.

time.c: Detected 2000.134 MHz processor.

Console: colour VGA+ 80x25

Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)

Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)

Memory: 1928880k/1964992k available (3115k kernel code, 35724k reserved, 1445k data, 200k init)

Calibrating delay using timer specific routine.. 4008.91 BogoMIPS (lpj=8017832)

Security Framework v1.0.0 initialized

SELinux:  Initializing.

SELinux:  Starting in permissive mode

selinux_register_security:  Registering secondary module capability

Capability LSM initialized as secondary

Failure registering Root Plug module with the kernel

selinux_register_security:  There is already a secondary security module registered.

Failure registering Root Plug  module with primary security module.

Mount-cache hash table entries: 256

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 1024K (64 bytes/line)

CPU 0(1) -> Node 0 -> Core 0

mtrr: v2.0 (20020519)

ACPI: setting ELCR to 0200 (from 0c38)

Using local APIC timer interrupts.

Detected 12.500 MHz APIC timer.

Brought up 1 CPUs

time.c: Using PIT/TSC based timekeeping.

testing NMI watchdog ... OK.

NET: Registered protocol family 16

ACPI: bus type pci registered

PCI: Using configuration type 1

PCI: Using MMCONFIG at e0000000

ACPI: Subsystem revision 20050902

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (0000:00)

PCI: Probing PCI hardware (bus 00)

PCI: Ignoring BAR0-3 of IDE controller 0000:00:14.1

Boot video device is 0000:01:05.0

PCI: Transparent bridge - 0000:00:14.4

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Link [LNKA] (IRQs 10 11) *0, disabled.

ACPI: PCI Interrupt Link [LNKB] (IRQs *10 11)

ACPI: PCI Interrupt Link [LNKC] (IRQs 10 11) *5

ACPI: PCI Interrupt Link [LNKD] (IRQs 10 *11)

ACPI: PCI Interrupt Link [LNKE] (IRQs 10 11) *3, disabled.

ACPI: PCI Interrupt Link [LNKF] (IRQs 10 11) *4

ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *9

ACPI: PCI Interrupt Link [LNKH] (IRQs 10 11) *0, disabled.

ACPI: Embedded Controller [EC0] (gpe 24)

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]

SCSI subsystem initialized

usbcore: registered new driver usbfs

usbcore: registered new driver hub

PCI: Using ACPI for IRQ routing

PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report

PCI-DMA: Disabling IOMMU.

PCI: Bridge: 0000:00:01.0

  IO window: 9000-9fff

  MEM window: c0100000-c01fffff

  PREFETCH window: c8000000-cfffffff

PCI: Bus 6, cardbus bridge: 0000:05:09.0

  IO window: 0000a400-0000a4ff

  IO window: 0000a800-0000a8ff

  PREFETCH window: 88000000-89ffffff

  MEM window: 8a000000-8bffffff

PCI: Bridge: 0000:00:14.4

  IO window: a000-afff

  MEM window: c0200000-c02fffff

  PREFETCH window: 88000000-89ffffff

ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10

PCI: setting IRQ 10 as level-triggered

ACPI: PCI Interrupt 0000:05:09.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $

Total HugeTLB memory allocated, 0

Installing knfsd (copyright (C) 1996 okir@monad.swb.de).

seclvl: seclvl_init: seclvl: Failure registering with the kernel.

selinux_register_security:  There is already a secondary security module registered.

seclvl: seclvl_init: seclvl: Failure registering with primary security module.

seclvl: Error during initialization: rc = [-22]

Initializing Cryptographic API

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered

Real Time Clock Driver v1.12

Software Watchdog Timer: 0.07 initialized. soft_noboot=0 soft_margin=60 sec (nowayout= 0)

Linux agpgart interface v0.101 (c) Dave Jones

ACPI: AC Adapter [ACAD] (on-line)

ACPI: Battery Slot [BAT1] (battery present)

ACPI: Power Button (FF) [PWRF]

ACPI: Power Button (CM) [PWRB]

ACPI: Sleep Button (CM) [SLPB]

ACPI: Lid Switch [LID]

ACPI: CPU0 (power states: C1[C1] C2[C2])

ACPI: Processor [CPU0] (supports 8 throttling states)

ACPI: Thermal Zone [THRM] (55 C)

serio: i8042 AUX port at 0x60,0x64 irq 12

serio: i8042 KBD port at 0x60,0x64 irq 1

Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled

ACPI: PCI Interrupt 0000:00:14.6[B] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI interrupt for device 0000:00:14.6 disabled

mice: PS/2 mouse device common for all mice

input: AT Translated Set 2 keyboard as /class/input/input0

Synaptics Touchpad, model: 1, fw: 5.10, id: 0x258eb1, caps: 0xa04713/0x0

input: SynPS/2 Synaptics TouchPad as /class/input/input1

floppy0: no floppy controllers found

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

loop: loaded (max 8 devices)

Intel(R) PRO/1000 Network Driver - version 6.1.16-k2

Copyright (c) 1999-2005 Intel Corporation.

e100: Intel(R) PRO/100 Network Driver, 3.4.14-k4-NAPI

e100: Copyright(c) 1999-2005 Intel Corporation

forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.48.

8139cp: 10/100 PCI Ethernet driver v1.2 (Mar 22, 2004)

8139cp: pci dev 0000:05:00.0 (id 10ec:8139 rev 10) is not an 8139C+ compatible chip

8139cp: Try the "8139too" driver instead.

8139too Fast Ethernet driver 0.9.27

ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11

PCI: setting IRQ 11 as level-triggered

ACPI: PCI Interrupt 0000:05:00.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11

eth0: RealTek RTL8139 at 0xffffc20000012000, 00:c0:9f:aa:af:18, IRQ 11

eth0:  Identified 8139 chip type 'RTL-8100B/8139D'

tun: Universal TUN/TAP device driver, 1.6

tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>

netconsole: not configured, aborting

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

Probing IDE interface ide0...

hda: ST9808211A, ATA DISK drive

Probing IDE interface ide1...

hdc: TSSTcorpCD/DVDW TS-L532M, ATAPI CD/DVD-ROM drive

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

ide1 at 0x170-0x177,0x376 on irq 15

hda: max request size: 1024KiB

hda: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63

hda: cache flushes supported

 hda: hda1 hda2 hda3

hdc: ATAPI 24X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache

Uniform CD-ROM driver Revision: 3.20

libata version 1.20 loaded.

Fusion MPT base driver 3.03.04

Copyright (c) 1999-2005 LSI Logic Corporation

Fusion MPT SPI Host driver 3.03.04

ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11

ACPI: PCI Interrupt 0000:00:13.2[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

ehci_hcd 0000:00:13.2: EHCI Host Controller

ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1

ehci_hcd 0000:00:13.2: irq 11, io mem 0xc0002000

ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 8 ports detected

ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)

ACPI: PCI Interrupt 0000:00:13.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

ohci_hcd 0000:00:13.0: OHCI Host Controller

ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2

ohci_hcd 0000:00:13.0: irq 11, io mem 0xc0000000

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 4 ports detected

ACPI: PCI Interrupt 0000:00:13.1[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11

ohci_hcd 0000:00:13.1: OHCI Host Controller

ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3

ohci_hcd 0000:00:13.1: irq 11, io mem 0xc0001000

hub 3-0:1.0: USB hub found

hub 3-0:1.0: 4 ports detected

USB Universal Host Controller Interface driver v2.3

usbcore: registered new driver usblp

drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver

Initializing USB Mass Storage driver...

usbcore: registered new driver usb-storage

USB Mass Storage support registered.

usbcore: registered new driver usbhid

drivers/usb/input/hid-core.c: v2.6:USB HID core driver

device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com

Intel 810 + AC97 Audio, version 1.01, 07:02:48 Apr 25 2006

oprofile: using NMI interrupt.

NET: Registered protocol family 2

IP route cache hash table entries: 65536 (order: 7, 524288 bytes)

TCP established hash table entries: 262144 (order: 10, 4194304 bytes)

TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)

TCP: Hash tables configured (established 262144 bind 65536)

TCP reno registered

TCP bic registered

NET: Registered protocol family 1

NET: Registered protocol family 10

IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.50.4)

powernow-k8:    0 : fid 0xc (2000 MHz), vid 0x4 (1450 mV)

powernow-k8:    1 : fid 0xa (1800 MHz), vid 0x6 (1400 mV)

powernow-k8:    2 : fid 0x8 (1600 MHz), vid 0x8 (1350 mV)

powernow-k8:    3 : fid 0x0 (800 MHz), vid 0x16 (1000 mV)

cpu_init done, current fid 0xc, vid 0x4

ACPI wakeup devices: 

KBC0 MSE0  P2P AUDO 

ACPI: (supports S0 S3 S4 S5)

kjournald starting.  Commit interval 5 seconds

EXT3-fs: mounted filesystem with ordered data mode.

VFS: Mounted root (ext3 filesystem) readonly.

Freeing unused kernel memory: 200k freed

Losing some ticks... checking if CPU frequency changed.

Adding 2008116k swap on /dev/hda2.  Priority:-1 extents:1 across:2008116k

EXT3 FS on hda3, internal journal

warning: many lost ticks.

Your time source seems to be instable or some driver is hogging interupts

rip acpi_safe_halt+0x27/0x3a

ds: ds_open(socket 0)

ds: ds_open(socket 0)

eth0: link up, 100Mbps, full-duplex, lpa 0x41E1

eth0: link up, 100Mbps, full-duplex, lpa 0x41E1

ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

eth0: no IPv6 routers present
```

Could it be a problem with the drive itself?

----------

## troymc

2 things:

 1. did you deselect the "generic/default IDE chipset support" option?

 2. is "Use PCI DMA by default when available" selected? Yeah, I forgot to tell you to do this one earlier...sorry!

```

Device Drivers --->

    ATA/ATAPI/MFM/RLL support  --->

        <*> ATA/ATAPI/MFM/RLL support

            <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

                < > generic/default IDE chipset support

                [*] PCI IDE chipset support

                    <*> Generic PCI bus-master DMA support

                        [*] Use PCI DMA by default when available

                        <*> ATI IXP chipset IDE support 

```

Show a 'hdparm /dev/hda'. You should see something like this:

```

hdparm /dev/hda

 /dev/hda:

  multcount    = 16 (on)

  I/O support  =  1 (32-bit)

  unmaskirq    =  1 (on)

  using_dma    =  1 (on)

  keepsettings =  1 (on)

  nowerr       =  0 (off)

  readonly     =  0 (off)

  readahead    =  8 (on)

  geometry     = 9729/255/63, sectors = 156301488, start = 0

  busstate     =  1 (on)

```

The "using_dma" line, not surprisingly, tells you dma is enabled.

troymc

----------

## revof11

OK... I check that configuation and it was already selected in there.

I posted the /var/log/messages file at the following location (just cuz there's so much in it):

http://www.revof11.com/linux/gentoo_forums/messages.bz2

The timestamps are wrong in there because my system time is incorrect (I'm not worried about that right now).

----------

## revof11

OK... just running the hdparm /dev/hda yield some "interesting" results.

```
/dev/hda:

 multcount    = 16 (on)

 IO_support   =  0 (default 16-bit)

 unmaskirq    =  0 (off)

 using_dma    =  0 (off)

 keepsettings =  0 (off)

 readonly     =  0 (off)

 readahead    = 256 (on)

 geometry     = 16383/255/63, sectors = 80026361856, start = 0
```

Comparing it to yours it feels like I definitely have things a little messed up.

```

<*> ATA/ATAPI/MFM/RLL support

<*>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

---     Please see Documentation/ide.txt for help/info on IDE drives

[ ]     Support for SATA (deprecated; conflicts with libata SATA driv

[ ]     Use old disk-only driver on primary interface

<*>     Include IDE/ATA-2 DISK support

[*]     Use multi-mode by default

< >     PCMCIA IDE support

<*>     Include IDE/ATAPI CDROM support

< >     Include IDE/ATAPI TAPE support (EXPERIMENTAL)

< >     Include IDE/ATAPI FLOPPY support

< >     SCSI emulation support

[ ]     IDE Taskfile Access

---     IDE chipset support/bugfixes

< >     generic/default IDE chipset support

[ ]     CMD640 chipset bugfix/support

[*]     PCI IDE chipset support

[ ]       Sharing PCI IDE interrupts support

[ ]       Boot off-board chipsets first support

<*>       Generic PCI IDE Chipset Support

< >       OPTi 82C621 chipset enhanced support (EXPERIMENTAL)

< >       RZ1000 chipset bugfix/support

[*]       Generic PCI bus-master DMA support

[ ]         Force enable legacy 2.0.X HOSTS to use DMA

[*]         Use PCI DMA by default when available

[ ]           Enable DMA only for disks

< >         AEC62XX chipset support

< >         ALI M15x3 chipset support

<*>         AMD and nVidia IDE support

<*>         ATI IXP chipset IDE support
```

----------

## troymc

Sorry, something is still not working...

I do not see the IDE driver grabbing the drives.

What we should see is something like this:

```

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

ATIIXP: IDE controller at PCI slot 0000:00:14.1

ACPI: PCI interrupt 0000:00:14.1[A] -> GSI 10 (level, low) -> IRQ 10

ATIIXP: chipset revision 1

ATIIXP: not 100% native mode: will probe irqs later

ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio

ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA

```

You can see the ATI IXP driver grabbing the drives & setting up DMA.

Did you build it as a module or into the kernel? ( M or * )

This needs to be built in.

troymc

----------

## revof11

FC5 quick install just to check out the hdparms and other options...

I definitely missed something in the kernel compile  :Embarassed: ... hdparm -tT /dev/hda gives me this:

```
/sbin/hdparm -tT /dev/hda

/dev/hda:

 Timing cached reads:   1420 MB in  2.00 seconds = 709.89 MB/sec

 Timing buffered disk reads:   96 MB in  3.04 seconds =  31.59 MB/sec
```

Once I figure this out I'll repost with my solution.

----------

