linux/drivers/macintosh
Rafael J. Wysocki 8314418629 Freezer: make kernel threads nonfreezable by default
Currently, the freezer treats all tasks as freezable, except for the kernel
threads that explicitly set the PF_NOFREEZE flag for themselves.  This
approach is problematic, since it requires every kernel thread to either
set PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn't
care for the freezing of tasks at all.

It seems better to only require the kernel threads that want to or need to
be frozen to use some freezer-related code and to remove any
freezer-related code from the other (nonfreezable) kernel threads, which is
done in this patch.

The patch causes all kernel threads to be nonfreezable by default (ie.  to
have PF_NOFREEZE set by default) and introduces the set_freezable()
function that should be called by the freezable kernel threads in order to
unset PF_NOFREEZE.  It also makes all of the currently freezable kernel
threads call set_freezable(), so it shouldn't cause any (intentional)
change of behaviour to appear.  Additionally, it updates documentation to
describe the freezing of tasks more accurately.

[akpm@linux-foundation.org: build fixes]
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Nigel Cunningham <nigel@nigel.suspend2.net>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17 10:23:02 -07:00
..
adb-iop.c [PATCH] m68k pt_regs fixes 2006-10-07 10:51:14 -07:00
adb.c adb_probe_task: remove unneeded flush_signals() call 2007-07-16 09:05:50 -07:00
adbhid.c Input: adbhid - do not access input_dev->private directly 2007-05-08 23:34:30 -04:00
ans-lcd.c [POWERPC] Remove old interface find_devices 2007-04-24 22:09:02 +10:00
apm_emu.c [POWERPC] apm_emu: Use generic apm-emulation 2007-05-02 16:42:19 +10:00
Kconfig x86_64: Fix only make Macintosh drivers default on Macs 2007-06-22 18:41:18 -07:00
mac_hid.c [POWERPC] drivers/macintosh/mac_hid.c: Make code static 2007-05-02 16:41:36 +10:00
macio_asic.c [POWERPC] Rename get_property to of_get_property: partial drivers 2007-04-27 15:51:56 +10:00
macio_sysfs.c [POWERPC] macintosh: Use common modalias generation for macio_sysfs 2007-05-07 20:31:15 +10:00
macio-adb.c [POWERPC] Remove find_compatible_devices 2007-04-24 22:08:57 +10:00
Makefile [POWERPC] Xserve cpu-meter driver 2006-12-04 20:39:30 +11:00
mediabay.c ide: add "initializing" argument to ide_register_hw() 2007-05-10 00:01:10 +02:00
nvram.c [PATCH] mark struct file_operations const 4 2007-02-12 09:48:45 -08:00
rack-meter.c [POWERPC] Rename get_property to of_get_property: partial drivers 2007-04-27 15:51:56 +10:00
smu.c [POWERPC] Rename device_is_compatible to of_device_is_compatible 2007-05-07 20:31:14 +10:00
therm_adt746x.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
therm_pm72.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
therm_pm72.h [POWERPC] Xserve G5 thermal control fixes 2006-07-28 10:42:49 +10:00
therm_windtunnel.c i2c: Make i2c_del_driver a void function 2007-05-01 23:26:32 +02:00
via-cuda.c CUDA ADB fixes 2007-05-04 17:59:07 -07:00
via-macii.c m68k: Mac II ADB fixes 2007-05-04 17:59:07 -07:00
via-maciisi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
via-pmu68k.c m68k: pmu_queue_request() declaration conflict 2007-05-04 17:59:06 -07:00
via-pmu-backlight.c backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
via-pmu-event.c Input: via-pmu - add input device support 2006-06-26 01:49:55 -04:00
via-pmu-event.h Input: via-pmu - add input device support 2006-06-26 01:49:55 -04:00
via-pmu-led.c [POWERPC] via-pmu: remove LED sleep notifier 2007-05-08 11:54:19 +10:00
via-pmu.c [POWERPC] via-pmu: remove LED sleep notifier 2007-05-08 11:54:19 +10:00
windfarm_core.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
windfarm_cpufreq_clamp.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
windfarm_lm75_sensor.c [POWERPC] Rename device_is_compatible to of_device_is_compatible 2007-05-07 20:31:14 +10:00
windfarm_max6690_sensor.c [POWERPC] Rename device_is_compatible to of_device_is_compatible 2007-05-07 20:31:14 +10:00
windfarm_pid.c [PATCH] windfarm license fix 2006-03-06 18:40:45 -08:00
windfarm_pid.h [PATCH] powerpc: Thermal control for dual core G5s 2006-02-07 22:05:14 -08:00
windfarm_pm81.c [PATCH] powerpc: windfarm shall request it's sub modules 2006-11-15 19:57:12 -08:00
windfarm_pm91.c [PATCH] powerpc: windfarm shall request it's sub modules 2006-11-15 19:57:12 -08:00
windfarm_pm112.c [PATCH] powerpc: windfarm shall request it's sub modules 2006-11-15 19:57:12 -08:00
windfarm_smu_controls.c [POWERPC] Rename device_is_compatible to of_device_is_compatible 2007-05-07 20:31:14 +10:00
windfarm_smu_sat.c i2c: Fix the i2c_smbus_read_i2c_block_data() prototype 2007-07-12 14:12:29 +02:00
windfarm_smu_sensors.c [POWERPC] Rename get_property to of_get_property: partial drivers 2007-04-27 15:51:56 +10:00
windfarm.h [PATCH] powerpc: Thermal control for dual core G5s 2006-02-07 22:05:14 -08:00