Re: ksoftirqd uses 99% CPU triggered by network traffic (maybeRLT-8139 related)

From: OGAWA Hirofumi
Date: Thu Aug 05 2004 - 10:32:00 EST


Francois Romieu <romieu@xxxxxxxxxxxxx> writes:

> Hector Martin <hector@xxxxxxxxxxxxxx> :
> [...]
> > using a stabler TCP/IP stack. This one works OK. No problem so far...
> > anyway, even though it stopped and I had to restart the PS2 some times,
> > the PC has been receiving packets with no reboot whatsoever. I think
> > it's fixed :)
>
> Ok, I'll send the final version of the patches for inclusion in -netdev
> and/or -mm this evening. It will provide a broader testing.

Bit interesting.

On the final analysis, what was the cause of this problem?
I found the following in progguide-8100(100).pdf. Does this help something?

2.5 Software Issues

This section covers the handling of various data reception topics.

1. Handling a Receive Buffer Overflow:
The Rx DMA (FIFO to buffer) is stopped. The CAPR must be
updated first to dismiss the ISR (RxBufferOverflow) event. The
correct actions to process RxBufOvw are:
a. Update CAPR.
b. Write a 1 to ISR (ROK).
The Rx DMA resumes after step b.

2. Handling RxFIFOOvw:
When RxFIFOOvw occurs, all incoming packets are discarded.
Clearing ISR (RxFIFOOvw) doesn t dismiss the RxFIFOOvw event.
To dismiss the RxFIFOOvw event, the ISR (RxBufOvw) must be
written with a 1.

--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/