Re: stopping a process during a timer interrupt

From: Kay Tiong Khoo
Date: Wed Oct 18 2006 - 23:38:30 EST


Thanks!

For the record, I was trying to sleep kernel threads as well as user threads. That didn't work out too well.

All worked fine when I only attempted to sleep user threads.

Kay Tiong

On Oct 18, 2006, at 6:56 AM, Hagen Paul Pfeifer wrote:

* Kay Tiong Khoo | 2006-10-17 18:18:25 [+0800]:

On a timer interrupt, I tried to stop the current process by changing
it's run state to TASK_STOPPED via set_current_state(TASK_STOPPED).
However, this results in a system hang.

I can't find a way to stop the current process during an interrupt
context. Does such code exist in the kernel? If not, how does one go
about implementing it from within a kernel module.

Take a look at some driver implementations!
There you will find some ways how to put a process into a sleep state.

Grep for "*->state*TASK_UNINTERRUPTIBLE" and take also a look at the
interaction with schedule() and spinlocks.

Thanks.
Kay Tiong

Best regards

--
Hagen Pfeifer

-
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/