From: Alex Zeffertt <ajz@cambridgebroadband.com>
To: gqbenjamin@21cn.com
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: help: FCC_ENET OF MPC8250?
Date: Wed, 13 Jul 2005 10:03:17 +0100 [thread overview]
Message-ID: <20050713100317.5177bcae.ajz@cambridgebroadband.com> (raw)
In-Reply-To: <Q6949286895747.26323@webmail1.inner-21cn.com>
On Wed, 13 Jul 2005 10:42:52 +0800 (CST)
gqbenjamin@21cn.com wrote:
> Hi,
>
> I use a device, like SMARTBITS, to test the Ethernet rate of mpc8250. The kernel is linux-2.4.20
> with CONFIG_FCC_LXT971 and CONFIG_USE_MDIO, and do 'cat "1">/proc/sys/net/ipv4/ip_forward'.
>
> If the rate of sending IP packet been set too high, for example 100 Mbps Full Duplex and each
> packet is 1514 Bytes. Later, the kernel print '... Memory squeeze, dropping packet' on uart. Stop
> sending IP packet and do 'cat /proc/meminfo', the *MemFree* become small.
>
> Try again, the *MemFree* become smaller, just look like some allocated memory (skbuf) do not be
> free.
>
> Final, the kernel break down, because all memory have been used.
It sounds to me like the problem may be that fcc_enet_rx() is consuming all the memory. This
function is called in interrupt context and spins round the rx buffer descriptor ring until it finds
an empty buffer descriptor. There is no check to stop it going round more than once and each time
it finds a BD it does a dev_alloc_skb().
It is possible that you are receiving data at a high enough rate that fcc_enet_rx() never exits.
What is more likely is that there isn't enough time between rx interrupts for the CPU to tx all the
queued packets.
>
> Q. How can I do to let kernel do not break down? Is it a kernel promblem?
>
This is just a guess, but... it may help to move fcc_enet_rx() from the interrupt handler to a
bottom half. If you do this you should also ensure that it cannot process the rx buffer descriptor
ring more than once per call. This may give the CPU *more* chance to tx queued packets by lowering
the rx priority a little.
I don't know if this would work but I'd be interested to find out.
Alex
prev parent reply other threads:[~2005-07-13 9:14 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-13 2:42 help: FCC_ENET OF MPC8250? gqbenjamin
2005-07-13 9:03 ` Alex Zeffertt [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050713100317.5177bcae.ajz@cambridgebroadband.com \
--to=ajz@cambridgebroadband.com \
--cc=gqbenjamin@21cn.com \
--cc=linuxppc-embedded@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox