The Bottomhalves helper thread is periodically invoked in response to IRQ (interrupt requests) from the host devices: virtio-fs (for file system events/responses), virtio-vsock (for networking events/responses, in particular incoming packets), virtio-console (for input/output events/responses, in particular incoming characters).
This thread should never put itself in the THREAD_BLOCKED state -- there are no events it is blocked on.
However, this thread is seen in the BLOCKED state, though very-very rarely, when I put an assert like this:
Description of the problem
The Bottomhalves helper thread is periodically invoked in response to IRQ (interrupt requests) from the host devices: virtio-fs (for file system events/responses), virtio-vsock (for networking events/responses, in particular incoming packets), virtio-console (for input/output events/responses, in particular incoming characters).
This thread should never put itself in the
THREAD_BLOCKED
state -- there are no events it is blocked on.However, this thread is seen in the BLOCKED state, though very-very rarely, when I put an assert like this:
I tried to catch and analyze it, but this happened only a couple times in my several days of debugging. So I won't investigate this bug further now.
Steps to reproduce
Instead of the assert that doesn't give any useful info, we can also print a backtrace like this: