I'm trying to write a kernel module that implements rapid spanning tree,
and I get the "BUG: soft lockup detected on CPU#0!" message.
I'm running this on a thales switch with 2.6.16 kernel, and I can't patch this.
My module have 2 types of softIRQ context, receiving a frame and un system tick.
When any of these interrupts are thrown, I compute state machines that implements spanning tree protocol
for each port of the bridge (10 state machine, 10 ports).
I have a theory but I'm not sure of it.
Is it possible that if the function which compute those state machine (running on interrupt context) is running for more than 10sec,
it could generate this error ?
If it's the case, do you think workqueue could be the solution (because it can sleep) ?