[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Kernel 2.4.14 slow due to softirq daemon?



Hi,

Yes, you're right. I should have thought about that. This config should
probably be off for most situations.

Regards
/Mikael

-----Original Message-----
From: Zoran Tomicic [mailto:zoran@xxxxxxx.au]
Sent: Thursday, December 20, 2001 2:06 PM
To: 'Mikael Starvik'; dev-etrax
Subject: RE: Kernel 2.4.14 slow due to softirq daemon?


Hi Mikael,

I found out what causes the slowdown - it is the high
frequency (15360 Hz) TIMER1 interrupt, used in serial port driver. As soon
as I put the kernel config flag
	CONFIG_ETRAX_SERIAL_FLUSH_DMA_FAST
to No in "make config" the memory fill rates went back to previous (2.4.5)
values.

Regards
Zoran


-----Original Message-----
From: owner-dev-etrax@xxxxxxx.com]On">mailto:owner-dev-etrax@xxxxxxx.com]On
Behalf Of Mikael Starvik
Sent: Thursday, 13 December 2001 4:35
To: 'Zoran Tomicic '; 'owner-dev-etrax@xxxxxxx.com '; dev-etrax
Subject: RE: Kernel 2.4.14 slow due to softirq daemon?


Hi,

There is at least one architecture specific modification
that in some way is related to soft IRQs. There may be
other that I am not aware of.

In 2.4.14 we always allow timer interrupt to happen
while handling soft IRQs (this was not the case in 2.4.5)
but I don't think this should cause any performance impact.
It would be easy to remove this patch from a 2.4.14 kernel
and check the result. If you want to test it your self you
can replace the call to BUILD_TIMER_IRQ with BUILD_IRQ in
os/linux/include/asm/irq.h.

Do you know any results for the same tests on any other
architecture (is 2.4.14 slower on all architectures?).

Regards
/Mikael
-----Original Message-----
From: owner-dev-etrax@xxxxxxx.com
To: dev-etrax
Sent: 2001-12-12 18:01
Subject: Kernel 2.4.14 slow due to  softirq daemon?


It seems that softirq daemon is eating to much CPU time on 2.4.14.
ps always shows it in running state and simple CPU bound benchmarks
execute
much slower.

I noticed the problem when I measured Ethernet and memory throughput
performance with tcp_perf.c (it is included in
devboard_lx/tools/src/tcp_test). Here are the results of the memory fill
test on devboard:

2.4.5
=====
Large buffer fill          (1000 x 1000000 byte)  25 MB/sec
Small (cached) buffer fill (1000000 x 1000 byte) 176 MB/sec

2.4.14
=====
Large buffer fill          (1000 x 1000000 byte)  19 MB/sec
Small (cached) buffer fill (1000000 x 1000 byte) 114 MB/sec

Any ideas?

Regards
Zoran Tomicic