This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: DEBUG: Circular MBUF


--- Nick Garnett <nickg@ecoscentric.com> wrote:
> "Kevin S. Martin" <ksmartin1@sbcglobal.net> writes:
>
> > DEBUG: Circular MBUF 0x004d1280!
> > DEBUG: Circular MBUF 0x004d1480!
> > DEBUG: Circular MBUF 0x004d1280!
> 
> The only time I have ever seen symptoms like this is when an ethernet
> driver is buggy and is handing completed transmission buffers back to
> the upper levels more than once. There may be other driver bugs that
> may give the same results.
> 
> So, what ethernet device are you using? It there anything unusual
> about your platform? Is it a standard PC? Have you tried building
> eCos
> with assertions enabled?


My platform is basically a standard i386 PC MotherBoard. The exception
is that my NIC is a NatSemi dp83816. So I'm using Gary Thomas' dp83816
ethernet device driver.

I already have asserts turned on in eCos. None get hit.

> 
> > I did some experimenting and found the exact size that the ping
> fails
> > on:
> > 
> > ping -s 1472 MY_ECOS_BOARDS_IP  -> this work fine
> > ping -s 1473 MY_ECOS_BOARDS_IP  -> this fails immediately
> >
> 
> This is the point at which IP starts to fragment the packet. Perhaps
> the problem is with handling the arrival of two packets in quick
> succession, or maybe transmission of the reply. Maybe events are
> getting lost somehow.
> 
> Take a look at the top of the device driver source, or maybe in its
> header file, there should be a #define DEBUG you can enable to get
> it to generate some trace messages. This might give you an idea about
> what is happening.
> 

I turned on debugging in the dp83816 ethernet driver. Interestingly,
with the driver spitting out diag messages the problem goes away (at
the expense of speed I'm sure). Here are some example debug messages
coming from the dp83816 driver:

On my linux host I did a:

ping -s 3000 MY_ECOS_TARGET_IP

On the ecos console I get:

[cyg_net_init] Init: mbinit(0x00000000)
[cyg_net_init] Init: cyg_net_init_devs(0x00000000)
Init device 'eth0' entry will be booted automatically in 1 seconds.
dp83816_init
DP83816 at 0x00001000, interrupt: 2a
dp83816_init: ESA = 0:6:d5:10:64:f6
[cyg_net_init] Init: loopattach(0x00000000)
[cyg_net_init] Init: ifinit(0x00000000)
[cyg_net_init] Init: domaininit(0x00000000)
[cyg_net_init] Init: cyg_net_add_domain(0x00198c20)
New domain internet at 0x00000000
[cyg_net_init] Init: cyg_net_add_domain(0x00198300)
New domain route at 0x00000000
[cyg_net_init] Init: call_route_init(0x00000000)
[cyg_net_init] Done
.
.
.
dp83816_isr       |
dp83816_deliver   | These three are always printing out
dp83816_RxEvent   |
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_can_send  |
dp83816_send      |
ddp83816_isr      |
p83816_can_send   |
dp83816_can_send  |  This is the handling of one ping
dp83816_send      |
dp83816_can_send  |
dp83816_can_send  |
dp83816_send      |
dp83816_can_send  |
dp83816_deliver   |
dp83816_TxEvent   |
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_can_send
dp83816_send
ddp83816_isr
p83816_can_send
dp83816_can_send
dp83816_send
dp83816_can_send
dp83816_can_send
dp83816_send
dp83816_can_send
dp83816_deliver
dp83816_TxEvent
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_can_send
dp83816_send
ddp83816_isr
p83816_can_send
dp83816_can_send
dp83816_send
dp83816_can_send
dp83816_can_send
dp83816_send
dp83816_can_send
dp83816_deliver
dp83816_TxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent
dp83dp83816_isr
816_can_send
dp83816_send
dp83816_can_send
dp83816_can_send
dp83816_send
dp83816_can_send
dp83816_can_send
dp83816_send
dp83816_can_send
dp83816_deliver
dp83816_TxEvent
dp83816_RxEvent
dp83816_isr
dp83816_deliver
dp83816_RxEvent



-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]