splnet() and friends
Vyacheslav V. Burdjanadze
wr at zelax.ru
Mon May 6 14:18:08 UTC 2002
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.
- " Why do you call this software 'beta' ? "
- " Cuz it beta than nothin' ! "
More information about the users