Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
July 28, 2010, 2:29 am

Hello,
we're designing SOHO router based on MIPS processor, wired up with 24-ports
switch. The CPU runs NAT (configured with iptables), iptables rules, dhcp
etc. it doesn't have any H/W acceleration for these functions. When testing
NAT in full-mesh mode (i.e. one WAN port and others are LAN port), we
observe the significant system's slowdown, especially console responds very
slowly, and there is also packets loss.
The 'top' shows that ksoftirqd consumes over 80% of CPU.
What can be the reason of such behaviour? As I know Linux NAT runs in kernel
space, so it should not be a problem of context switching?
we're designing SOHO router based on MIPS processor, wired up with 24-ports
switch. The CPU runs NAT (configured with iptables), iptables rules, dhcp
etc. it doesn't have any H/W acceleration for these functions. When testing
NAT in full-mesh mode (i.e. one WAN port and others are LAN port), we
observe the significant system's slowdown, especially console responds very
slowly, and there is also packets loss.
The 'top' shows that ksoftirqd consumes over 80% of CPU.
What can be the reason of such behaviour? As I know Linux NAT runs in kernel
space, so it should not be a problem of context switching?
--
Mark
Mark

Re: ksoftirq consumes >80% CPU on embedded platform
["Followup-To:" header set to comp.os.linux.networking.]

Get the mpstat(1) command and check the output from mpstat -P ALL <n>
to get a different view of it (or check the files in /proc which give
you the same info, except in raw form).
mpstat(1) is part of the sar package, I think.

/Jorgen

Get the mpstat(1) command and check the output from mpstat -P ALL <n>
to get a different view of it (or check the files in /proc which give
you the same info, except in raw form).
mpstat(1) is part of the sar package, I think.

/Jorgen
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
Site Timeline
- »
- — Next thread in » Embedded Linux
-
- » send HTTP query from user application
- — Previous thread in » Embedded Linux
-
- » Crosscompiling for ARM: reloc type R_ARM_ABS32 is not supported for PIC - ...
- — Newest thread in » Embedded Linux
-
- » Capacitors at RF
- — The site's Newest Thread. Posted in » Electronics Design
-