linux/drivers
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
..
acorn [PATCH] fix request->cmd == INT cases 2007-07-10 08:03:34 +02:00
acpi PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
amba
ata Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
atm Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
auxdisplay Use menuconfig objects II - auxdisplay 2007-07-16 09:05:40 -07:00
base dma: make dma pool to use kmalloc_node 2007-07-16 09:05:51 -07:00
block Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
bluetooth [Bluetooth] Remove the redundant non-seekable llseek method 2007-07-11 06:53:45 +02:00
cdrom bsg: add a request_queue argument to scsi_cmd_ioctl() 2007-07-16 08:52:45 +02:00
char Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
clocksource PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
connector Use menuconfig objects: connector 2007-07-16 09:05:40 -07:00
cpufreq [CPUFREQ] Restore previously used governor on a hot-replugged CPU 2007-07-13 01:29:51 -04:00
crypto Use menuconfig objects: crypto hw 2007-07-16 09:05:40 -07:00
dio
dma dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs 2007-07-16 09:05:45 -07:00
edac Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
eisa virtual_eisa_root_init() should be __init 2007-05-08 11:15:02 -07:00
fc4
firewire firewire: fw-sbp2: fix DMA mapping of management ORBs 2007-07-10 00:07:49 +02:00
firmware edd: switch to pci_get based API 2007-07-16 09:05:42 -07:00
hid USB: add reset_resume method 2007-07-12 16:34:30 -07:00
hwmon hwmon/coretemp: fix a broken error path 2007-06-24 08:59:10 -07:00
i2c parse error, drivers/i2c/busses/i2c-pmcmsp.c 2007-07-17 10:22:59 -07:00
ide Slab allocators: Replace explicit zeroing with __GFP_ZERO 2007-07-17 10:23:02 -07:00
ieee1394 Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
infiniband Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
input Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
isdn PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
kvm KVM: Prevent guest fpu state from leaking into the host 2007-06-15 12:30:59 +03:00
leds [S390] Kconfig: menus with depends on HAS_IOMEM. 2007-05-10 15:46:07 +02:00
macintosh Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
mca mca: add integrated device bus matching 2007-05-09 12:30:49 -07:00
md Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
media Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
message Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
mfd Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
misc sony-laptop: use NULL for pointer 2007-07-16 09:05:46 -07:00
mmc Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
mtd Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
net Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
nubus
oprofile Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
parisc sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00
parport parport_pc: it887x fix 2007-07-16 09:05:50 -07:00
pci Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-07-16 17:58:08 -07:00
pcmcia Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
pnp Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
power Merge git://git.infradead.org/battery-2.6 2007-07-15 16:56:12 -07:00
ps3 [POWERPC] PS3: Storage Driver Core 2007-06-28 19:19:20 +10:00
rapidio sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
rtc Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-07-16 17:58:08 -07:00
s390 Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
sbus cpwatchdog build fix 2007-07-16 09:05:53 -07:00
scsi Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
serial Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-07-16 17:58:08 -07:00
sh
sn
spi sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
tc [MIPS] DEC: Fix modpost warning. 2007-07-12 17:41:07 +01:00
telephony Use menuconfig objects II - Telephony 2007-07-16 09:05:40 -07:00
usb Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
video Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
w1 Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
zorro sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
Kconfig Merge git://git.infradead.org/~dwmw2/battery-2.6 2007-07-10 14:47:59 -07:00
Makefile [BATTERY] Universal power supply class (was: battery class) 2007-07-10 11:25:44 +01:00