[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
splimp, splx locks in network code - cause of my vanished buffers ?
- Date: Wed, 15 Mar 2000 14:29:02 -0000
- From: Nick.SIMON at syntegra.bt.co.uk (Nick.SIMON at syntegra.bt.co.uk)
- Subject: splimp, splx locks in network code - cause of my vanished buffers ?
Using rtems 4.0.0, I have two ethernet ports, one running the normal BSD
stack and one with a special raw ethernet stack. The latter uses the same
pool of mbufs and clusters as the bsd stack, and all the usual macros like
MGETHDR and MFREE.
Unfortunately, with both networks whizzing away merrily, it eventually dies
from lack of mbufs (and there are plenty to start with). I see that in
rtems_bsdnet_internal.h the macros splimp and splx are defined to do
nothing, which allows certain timing hits an opportunity to screw up the
free chain.
Questions:
(1) Can I use rtems_interrupt_disable() for splimp, ...enable for splx?
(2) What about splnet?
(3) Am I barking up the wrong tree?
TIA