* Is wake_up safe on 2.4?
@ 2005-05-29 14:28 manoj.sharma
2005-05-29 15:15 ` Parag Warudkar
0 siblings, 1 reply; 2+ messages in thread
From: manoj.sharma @ 2005-05-29 14:28 UTC (permalink / raw)
To: linux-kernel
Hi,
Is it safe to use wake_up() in 2.4 inside an interrupt handler or in a
spin lock region?
wake_up() uses reshedule_idle() to find an idle cpu for the woken up
task. If it doesn't find any, it checks the current running tasks on all
CPUs and uses goodness value to pick up the best cpu to schedule the
woken up task. Isn't possible to preempt the current task where
reschedule_idle() is running?
There are plenty of instances in the kernel (2.4) where wake_up() is
being used inside interrupt handler or after taking spin locks. If it
can preempt the task calling wake_up(), how safe is it to use then?
Manoj
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Is wake_up safe on 2.4?
2005-05-29 14:28 Is wake_up safe on 2.4? manoj.sharma
@ 2005-05-29 15:15 ` Parag Warudkar
0 siblings, 0 replies; 2+ messages in thread
From: Parag Warudkar @ 2005-05-29 15:15 UTC (permalink / raw)
To: manoj.sharma; +Cc: linux-kernel
On Sunday 29 May 2005 10:28, manoj.sharma@wipro.com wrote:
> Is it safe to use wake_up() in 2.4 inside an interrupt handler or in a
> spin lock region?
>
> wake_up() uses reshedule_idle() to find an idle cpu for the woken up
> task. If it doesn't find any, it checks the current running tasks on all
> CPUs and uses goodness value to pick up the best cpu to schedule the
> woken up task. Isn't possible to preempt the current task where
> reschedule_idle() is running?
>
> There are plenty of instances in the kernel (2.4) where wake_up() is
> being used inside interrupt handler or after taking spin locks. If it
> can preempt the task calling wake_up(), how safe is it to use then?
Looking at the code - On SMP, the woken up task will be always scheduled on a
CPU other than the one executing the caller, in which case caller of
wake_up() is not pre-empted. On UP, it just sets need_resched (different than
calling schedule() ) in which case the caller of wake_up() will be
rescheduled only when appropriate, when it is safe to preempt it.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-05-29 15:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-29 14:28 Is wake_up safe on 2.4? manoj.sharma
2005-05-29 15:15 ` Parag Warudkar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox