2007-08-10 05:19:55

by Jidong Xiao

[permalink] [raw]
Subject: Question about PF_NOFREEZE

if one thread set its current->flag with PF_NOFREEZE, then it means
this thread is unfreezable,does this mean, when the system entered
into a suspended state, even though all the other threads have already
gone sleep, this thread still keeps awaken?

One thing I am very confused is, if all the other threads goes to
sleep,can this only one thread(assume only one thread marked itself as
unfreezable.) still works well?

Regards
Jason


2007-08-10 15:10:55

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: Question about PF_NOFREEZE

On Friday, 10 August 2007 07:19, jidong xiao wrote:
> if one thread set its current->flag with PF_NOFREEZE, then it means
> this thread is unfreezable,does this mean, when the system entered
> into a suspended state, even though all the other threads have already
> gone sleep, this thread still keeps awaken?

It will be able to run when all freezable threads are frozen.

> One thing I am very confused is, if all the other threads goes to
> sleep,can this only one thread(assume only one thread marked itself as
> unfreezable.) still works well?

The question is rather theoretical, because there are some unfreezable threads
in the system. In theory, such a thread can work well as long as it doesn't
need to wait for another thread that is frozen.

Greetings,
Rafael


--
"Premature optimization is the root of all evil." - Donald Knuth