kernel thread and cahche memeory at 2.4

From: Chava Leviatan
Date: Wed Oct 11 2006 - 08:11:13 EST





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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/