Re: [RFD] Freezing of kernel threads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Saturday, 12 May 2007 21:17, Pavel Machek wrote:
> Hi!
> 
> > Having considered the issue of freezing (or not freezing) kernel threads for a
> > longer while I tend to agree with Linus that we shouldn't be freezing as many
> > kernel threads as we currently freeze, but there's one thing that he doesn't
> > seem to take into account.  Namely, there may be some kernel threads that
> > actually *want* (or need) to be frozen. :-)
> > 
> > For the suspend they may be kernel threads that otherwise would need some
> > special synchronization with some device drivers' .suspend() and .resume()
> > callbacks or fs-related kernel threads.  For the CPU hotplug they might be
> > kernel threads that otherwise would interfere with the removal or addition of
> > CPUs.  Still, in each case there seems to be a limited group of kernel threads
> > that may want to be frozen and the remaining kernel threads that shouldn't be
> > involved in any freezer-related actions at all.  However, we currently require
> > all kernel threads to take part in the freezing mechanism, which doesn't seem to
> > be correct.
> 
> Well.. It is actually a feature.
> 
> These days, you have to either add PF_NOFREEZE explicitly (which
> hopefully means you know what you are doing) or add try_to_freeze() at
> specific place.
> 
> If you fail to do that, we'll see freezer failure, quickly, and catch
> the simple bug.

Well, not if PF_NOFREEZE is used.
 
> I'm afraid that if we default to "do not freeze by default", someone
> will just port zfs, will know nothing about suspend, and his 
> "write management info somewhere periodically" thread will corrupt
> people's disks.

We'll have exactly the same result right now if said developer uses
PF_NOFREEZE.
 
> OTOH... perhaps suspend/resume is common enough operation that people
> _know_ they need to stop their writing? ...no, I do not think we are
> there yet.

We never will be there if we don't change the default.

Besides, if a kernel thread calls I_want_to_be_frozen_during_suspend() and
then try_to_freeze(), this seems to be a bit more meaningful than just calling
try_to_freeze() which (almost) everybody does.

Greetings,
Rafael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux