Messages in this thread | | | From | "Chava Leviatan" <> | Subject | kernel thread and cahche memeory at 2.4 | Date | Wed, 11 Oct 2006 14:02:23 +0200 |
| |
Hi ,
I am trying to understand whether there is any context (thread wise) involved when I do alloc_skb.
I have a kernel module that runs a kernel thread. (2.4.18 , regular PC with 2 ethernet interfaces) That thread generates an ICMP packet every 50 milisec. It does it as follows:
- call to alloc_skb - fill ip header and icmp header - fill in the necessary skb fields - call to ip_rcv to inject the packet into the stack
Al of that worked just fine , and I was able to inspect the outgoing packets through ethereal. The problem occured while I did a rmmod for that module - the machine just crashed (reset )
After spending some time in debugging this problem , I added a short delay at my exit function before the stop thread call. I have discovered that the last call to __kfree_skb from net_tx_action must come while my kernel thread is still alive .
I am trying to understand why is it so . Is there any importance to the context that had performed the alloc ?
Thanks for any tip, Chava
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |