From xenomai-help mailing list [1].
Yeoh Chun Yeow
…..Is this the problem coming from the alloc_skb function call?
Gilles Chanteperdrix
Yes, you can not call alloc_skb from Xenomai domain, as you can not
call most Linux functions. Note that if you are porting a network driver, you should consider using rtnet.
Jan Kiszka
The point here is specifically that even if Linux itself provides
deterministic execution of your IRQ handler, it cannot guarantee that
there is always memory available for alloc_skb. That’s why RTnet uses
preallocated pools for precisely this scenario. But, to avoid potential
misunderstandings right from the start, it is _not_ intended as a
performance or latency “booster” for standard networking applications.
[2]
From those emails above:
- calling alloc_skb & most Linux function from Xenomai domain is not safe
- Consider using RTnet[3] to porting network driver
- alloc_skb is not safe because Linux may have no memory available
[1]xenomai-help [at] gna [dot] org
[2]https://mail.gna.org/public/xenomai-help/2007-08/msg00204.html
[3]http://www.rtnet.org