> >> The target process is *already* waiting for the IO stuck inside the
> >> kernel. It is not on a runqueue, not it is considered to be places
> >> there.
> >
> > since procwrite doesn't acquire anything other than the debug lock,
> > how do you know?  the proc could start up again before you notice.
> 
> How? If there's a stop message already written to /proc/n/ctl. Once
> that is done, the process is guaranteed to be in 2 states and those
> states only: continue waiting for the I/O, being actually Stopped.
> Both of the don't let the scheduler take it to the runqueue.

here's the senerio, i think  (works fine on a single processor)
a                       b
acquire debug lock      
sleep                   complete io
                        sched
                        run a bit
                        syscall
wakeup

- erik

Reply via email to