PDA

Bekijk de volledige versie : What is ksofirqd!!!



sollie
15-01-2007, 18:28
Why cant we just kill ksofirqd, what does it do.
Coz it takes 95% of all my cpu.

Sollie.

Ps: try for your self:

code: top -d 1

n00ben
15-01-2007, 18:37
Why cant we just kill ksofirqd, what does it do.
Coz it takes 95% of all my cpu.

could it be the reverse of load? like your system has a 100% - 95% = 5% load?

I suspect so

sollie
15-01-2007, 18:42
Nah, look on google. Its an worldwide problem.
But i could not find the problem.

Sollie.

kfurge
16-01-2007, 02:55
I did a little research on this topic because I'm convinced that ksoftiqd is negatively impacting the routers performance due to non-stop context switching between userland and the kernel.

Some argue that it's no worse that the the idle thread, but I'm not so sure. At a minimum, you lose any power management built into the processor while it idles.

Improperly written interrupt handlers are the normal root cause. Ksoftirqd sits between the interrupt handler front end and back end and is responsible for dispatching "soft" interrupts. The front end services the interrupt at the HW level and the back end processes the data. Apparently when a device driver does not properly interface with ksoftirqd's event queue, it can enter this state.

It's still on my to-do list to do some more homework on this issue. However, if the offending driver is one of the binary drivers from Broadcom/Asus, we may be out of luck.

I think with a little debug code, I can find the offending driver. The ksoftirqd code was not overly complicated. Fixing it, OTOH, may be much more difficult.

- K.C.

sollie
16-01-2007, 10:48
K, thanks. Then i keep it running :D

I will wait...

Oleg
16-01-2007, 11:04
:D Don't waste your time. ksoftirqd is just real worker for the network interrupts. Network card interrupt service routine just schedules softirq to perform real packet processing. This is by design. More packets -- higher load.

costinel
16-01-2007, 18:08
:D Don't waste your time. ksoftirqd is just real worker for the network interrupts. Network card interrupt service routine just schedules softirq to perform real packet processing. This is by design. More packets -- higher load.

it happens even with the network cable unplugged, so this has nothing to to with network load
cat /proc/interrupts shows you a high number of interrupts on the broadcom ethernet controller, even if you boot the machine without network connectivity.

kfurge
17-01-2007, 00:17
it happens even with the network cable unplugged, so this has nothing to to with network load
cat /proc/interrupts shows you a high number of interrupts on the broadcom ethernet controller, even if you boot the machine without network connectivity.
I agree 100% with costinel. On my little network there's not nearly enough traffic to account fo 99.9% of a 266MHz CPU. There's something else broken in the network driver. Any chance it's available as source from Broadcom?

- K.C.