On Fri, Jan 20, 2012 at 12:32 PM, Dave Hylands <dhylands@xxxxxxxxx> wrote:
Hi Darshan,
HI Dave,
Replying to all this time....
Thanks.
...snip...
> What if,
> spin_lock_irqsave(&lock, flags);
> for ( ; ; )
> {
> ;
> }
> spin_lock_irqrestore(&lock, flags);
Since you're using spinlocks and disabling interrupts, this would be
running in kernel space.
On a single core machine - you'll have locked up your entire computer.
On a multi-core machine you'll have locked up one core.
You don't need to use the spinlock, just disabling interrupts is
sufficient. Even on a multicore machine, the spinlocks would just
prevent a second core from executing the code if it tried to acquire
the same spinlock.
I don't think that there is any convenient way to kill such a thread.
IMHO, signals are handled when process is about to switch back to user-mode.
If that is the case then what if, there are two threads(in user-mode) in the process where one is stuck
in the syscall which has infinite loop & other is executing some task in the user-mode, then still this process can not be killed?
If that is the case then what if, there are two threads(in user-mode) in the process where one is stuck
in the syscall which has infinite loop & other is executing some task in the user-mode, then still this process can not be killed?
Regards
Darshan
--
Darshan®
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies