splnet() and friends
Thomas.Doerfler at imd-systems.de
Mon May 6 08:57:25 UTC 2002
> Buenas dias.
> I found that spl*() routines does nothing in RTEMS (splx, splnet, splimp
> especially) but they seem to perform synchronization tasks in original
> BSD code. Thus if we have two receiving interface which incapsulation is
> IP, the ipintr() will add packets to IP input queue without
> locking/unlocking it and under high loads it MAY cause to lost mbufs or
> even crash. I didn't observed this condition either but it seems
> possible for me. When I looked for splnet the situation is become worse
> for me :-/. Can you give some comments on it?
> Using rtems_bsdnet_semaphore for locking everything in networking code
> is not good idea - it will reduce maximum bandwith.
But nevertheless using a global semaphore for locking the
whole network stack is the method used in the RTEMS port of
the network stack. See the Documentation "Networking
Supplement" (or so). I guess adapting the splxxx scheme to
RTEMS would have been too much effort.
> - " Why do you call this software 'beta' ? "
> - " Cuz it beta than nothin' ! "
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler Herbststrasse 8
D-82178 Puchheim Germany
email: Thomas.Doerfler at imd-systems.de
PGP public key available at: http://www.imd-
More information about the users