Hello,

my current driver works fairly will. If I do UDP or TCP separate it works perfectly (only in release mode, else RX BNA and OVR errors): up to 28 Mbps for UDP with my echo program. I use bursts up to 64 kB - my RX uses 512 128B buffers.

But If I mix UDP with TCP (send both echo requests out in a burst), if fails very fast - even without big bursts: I send UDP 1 kB and TCP 1 kB packet echo request in a burst. -> This crashes the EMAC Ethernet driver! All networking does not work anymore, not a ping, not the httpd server.. But my application still runs (It still toggles the watchdog LED), so only the networking part has crashed.

Why?
- memcopy problem because freeBSD uses sg_list's where the first array is only 14 B, so not aligned anymore to 32 bit boundaries - the deliver() runs in a thread context, not DSR context. The resources are not protected by a mutex, so maybe 2 instances of deliver ...

I will of course investigate this further, but maybe already somebody has a clue?

Kind regards,
Jürgen


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

Reply via email to