# interrupts

## pholthau

hi there!

There is a Core2 duo CPU in my laptop. Now I checked /proc/interrupts and saw this:

```

           CPU0       CPU1

  0:   18355037          0   IO-APIC-edge      timer

  1:       6994          0   IO-APIC-edge      i8042

  8:          0          0   IO-APIC-edge      rtc

  9:          4          0   IO-APIC-fasteoi   acpi

 12:       3165          0   IO-APIC-edge      i8042

 14:      62907          0   IO-APIC-edge      libata

 15:     137452          0   IO-APIC-edge      libata

 16:     527150          0   IO-APIC-fasteoi   nvidia

 17:     670493          0   IO-APIC-fasteoi   iwl3945, eth0

 18:      81552          0   IO-APIC-fasteoi   sdhci:slot0

 19:          4          0   IO-APIC-fasteoi   ohci1394

 20:     913155          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2

 21:     164734          0   IO-APIC-fasteoi   uhci_hcd:usb3, HDA Intel

 22:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4

 23:          0          0   IO-APIC-fasteoi   uhci_hcd:usb5

NMI:          0          0

LOC:   18354932   18354839

ERR:          0

```

Is it supposed to be like this, I mean that CPU1 handles none of them? Could one explain it to me, please?

----------

## PaulBredbury

```
emerge irqbalance

/etc/init.d/irqbalance start

rc-update add irqbalance default
```

----------

## pholthau

Sounds like a good idea. Thanks.

----------

## JeliJami

some more discussions:

nvidia chipsets + Core 2 Duo = uniprocessor

Quad Core: why only 1 core deals with interrupts?

Kernel IRQBALANCE not working?

----------

## PaulBredbury

```
$ grep IRQB /usr/src/linux/.config

CONFIG_IRQBALANCE=y

$ emerge -pv irqbalance
```

Why have both? Answer:

 *Quote:*   

> only SOME, old, hardware does balancing in hardware.

 

It's also partly the usual "desktop responsiveness" versus throughput argument, as with CPU schedulers.

----------

## pholthau

Thanks for the interesting links.

Now the interrupts are distributed over the cores:

```

           CPU0       CPU1

  0:    1427280          0   IO-APIC-edge      timer

  1:         13       3823   IO-APIC-edge      i8042

  8:          0          0   IO-APIC-edge      rtc

  9:          2          0   IO-APIC-fasteoi   acpi

 12:        123          0   IO-APIC-edge      i8042

 14:       4276      15950   IO-APIC-edge      libata

 15:      10552          0   IO-APIC-edge      libata

 16:      82175          0   IO-APIC-fasteoi   nvidia

 17:        369      34303   IO-APIC-fasteoi   iwl3945

 18:          0          0   IO-APIC-fasteoi   sdhci:slot0

 19:          4          0   IO-APIC-fasteoi   ohci1394

 20:        113          0   IO-APIC-fasteoi   uhci_hcd:usb1, ehci_hcd:usb5

 21:        206       1380   IO-APIC-fasteoi   uhci_hcd:usb2, HDA Intel

 22:         47      16021   IO-APIC-fasteoi   uhci_hcd:usb3

 23:     123724          0   IO-APIC-fasteoi   uhci_hcd:usb4

NMI:          0          0

LOC:    1427173    1427079

ERR:          0

```

Nonetheless

grep IRQB /usr/src/linux/.config

returns nothing. I am using gentoo-sources on an amd64 system. (Hotplug CPU is enabled)

 *PaulBredbury wrote:*   

> 
> 
> It's also partly the usual "desktop responsiveness" versus throughput argument, as with CPU schedulers.

 

Is it better for fast responsiveness to use both or none?

----------

## mimosinnet

I have followed the directions in this thread, and I still get these results:

```
# cat /proc/interrupts

           CPU0       CPU1

  0:   11730050          0   IO-APIC-edge      timer

  1:       1459          0   IO-APIC-edge      i8042

  8:         37          0   IO-APIC-edge      rtc

 11:      20596          0   IO-APIC-fasteoi   acpi

 12:       6900          0   IO-APIC-edge      i8042

 14:     221187          0   IO-APIC-edge      libata

 15:          0          0   IO-APIC-edge      libata

 16:     482860          0   IO-APIC-fasteoi   wifi0

 17:     655447          0   IO-APIC-fasteoi   sata_sis

 18:          2          0   IO-APIC-fasteoi   ehci_hcd:usb1

 19:      27522          0   IO-APIC-fasteoi   ohci_hcd:usb2

 20:          0          0   IO-APIC-fasteoi   ohci_hcd:usb3

 21:        305          0   IO-APIC-fasteoi   HDA Intel

 22:    9174237          0   IO-APIC-fasteoi   eth0

NMI:          0          0

LOC:    6234285   11256397

ERR:          0

MIS:          0
```

Just to be sure:

```
# grep IRQB /usr/src/linux/.config

CONFIG_IRQBALANCE=y

# /etc/init.d/irqbalance restart

 * Stopping irqbalance ...                                                [ ok ]

 * Starting irqbalance ...                                                [ ok ]
```

I would appreciate any hints.

Thanks!

----------

