kernel_optimize_test/drivers
Arjan van de Ven 153d7f3fca [PATCH] Reorganize the cpufreq cpu hotplug locking to not be totally bizare
The patch below moves the cpu hotplugging higher up in the cpufreq
layering; this is needed to avoid recursive taking of the cpu hotplug
lock and to otherwise detangle the mess.

The new rules are:
1. you must do lock_cpu_hotplug() around the following functions:
   __cpufreq_driver_target
   __cpufreq_governor (for CPUFREQ_GOV_LIMITS operation only)
   __cpufreq_set_policy
2. governer methods (.governer) must NOT take the lock_cpu_hotplug()
   lock in any way; they are called with the lock taken already
3. if your governer spawns a thread that does things, like calling
   __cpufreq_driver_target, your thread must honor rule #1.
4. the policy lock and other cpufreq internal locks nest within
   the lock_cpu_hotplug() lock.

I'm not entirely happy about how the __cpufreq_governor rule ended up
(conditional locking rule depending on the argument) but basically all
callers pass this as a constant so it's not too horrible.

The patch also removes the cpufreq_governor() function since during the
locking audit it turned out to be entirely unused (so no need to fix it)

The patch works on my testbox, but it could use more testing
(otoh... it can't be much worse than the current code)

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-26 07:21:40 -07:00
..
acorn [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
acpi [PATCH] Revert "ACPI: execute Notify() handlers on new thread" 2006-07-12 21:02:24 -07:00
amba [PATCH] 64bit resource: fix up printks for resources in misc drivers 2006-06-27 09:23:59 -07:00
atm [ATM]: Typo in drivers/atm/Kconfig... 2006-07-08 13:30:09 -07:00
base [PATCH] Driver core: bus.c cleanups 2006-07-12 16:09:08 -07:00
block [PATCH] cciss: fix stall with softirq handling and CFQ 2006-07-25 15:02:48 +02:00
bluetooth [Bluetooth] Enable SCO support for Broadcom HID proxy dongle 2006-07-24 12:44:34 -07:00
cdrom [PATCH] cdrom: fix bad cgc.buflen assignment 2006-07-10 13:24:15 -07:00
char [WAN]: Converted synclink drivers to use netif_carrier_*() 2006-07-21 14:44:55 -07:00
clocksource [PATCH] GTOD: add scx200 HRT clocksource 2006-06-26 09:58:21 -07:00
connector
cpufreq [PATCH] Reorganize the cpufreq cpu hotplug locking to not be totally bizare 2006-07-26 07:21:40 -07:00
crypto [CRYPTO] padlock: Fix alignment after aes_ctx rearrange 2006-07-15 11:08:50 +10:00
dio
dma [I/OAT]: Remove pci_module_init() from Intel I/OAT DMA engine 2006-07-21 14:50:13 -07:00
edac [PATCH] Fix and enable EDAC sysfs operation 2006-07-10 13:24:25 -07:00
eisa Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fc4 [SCSI] More buffer->request_buffer changes 2006-07-14 09:41:13 -05:00
firmware Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hwmon [PATCH] hwmon: Fix for first generation Abit uGuru chips 2006-07-12 15:43:07 -07:00
i2c [PATCH] pca9539: Honor the force parameter 2006-07-12 15:43:07 -07:00
ide Revert "[PATCH] pcmcia: Make ide_cs work with the memory space of CF-Cards if IO space is not available" 2006-07-12 21:04:16 -07:00
ieee1394 [PATCH] lockdep: annotate ieee1394 skb-queue-head locking 2006-07-03 15:27:08 -07:00
infiniband IB/mthca: Initialize max_cmds before debug code prints it 2006-07-24 09:36:50 -07:00
input [PATCH] lockdep: annotate serio 2006-07-03 15:27:07 -07:00
isdn [PATCH] isdn: cleanup i_rdev udage 2006-07-10 13:24:27 -07:00
leds [PATCH] net48xx LED cleanups 2006-07-14 21:53:54 -07:00
macintosh [PATCH] powermac: Combined fixes for backlight code 2006-07-10 13:24:20 -07:00
mca
md [PATCH] md: fix oops in error-handling 2006-07-10 13:24:17 -07:00
media [PATCH] release_firmware() fixes 2006-07-10 13:24:15 -07:00
message Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2006-07-21 12:04:53 -07:00
mfd [ARM] 3727/1: fix ucb initialization on collie 2006-07-11 22:54:15 +01:00
misc [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
mmc [MMC] Change SDHCI version error to a warning 2006-07-13 16:17:46 +01:00
mtd Merge git://git.infradead.org/mtd-2.6 2006-07-03 21:29:08 -07:00
net [DUMMY]: Avoid an oops when dummy_init_one() failed 2006-07-21 15:09:07 -07:00
nubus Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
oprofile [PATCH] oprofile: convert from semaphores to mutexes 2006-06-25 10:01:04 -07:00
parisc [PATCH] irq-flags: PARISC: Use the new IRQF_ constants 2006-07-02 13:58:52 -07:00
parport [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
pci [PATCH] PCI: PCIE power management quirk 2006-07-12 16:05:48 -07:00
pcmcia [PATCH] don't select CONFIG_HOTPLUG 2006-07-10 13:24:12 -07:00
pnp [PATCH] PNPACPI: support shareable interrupts 2006-07-03 15:26:58 -07:00
rapidio Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rtc [PATCH] RTC subsystem, Add ISL1208 support 2006-07-14 21:53:53 -07:00
s390 [S390] sysfs_create_xxx return values. 2006-07-18 13:46:58 +02:00
sbus [SPARC] sbus: Make sure sbus nodes are named uniquely. 2006-07-21 14:18:06 -07:00
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2006-07-21 12:04:53 -07:00
serial [SERIAL] sunzilog: Fix instance enumeration. 2006-07-21 14:18:25 -07:00
sh
sn [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
spi [PATCH] lockdep: annotate on-stack completions 2006-07-03 15:27:09 -07:00
tc [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
telephony Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6 2006-06-29 14:19:21 -07:00
usb [PATCH] USB: move usb-serial.h to include/linux/usb/ 2006-07-12 16:03:25 -07:00
video [PATCH] mbxfb: Add framebuffer driver for the Intel 2700G 2006-07-14 21:53:55 -07:00
w1 [PATCH] w1: remove drivers/w1/w1.h 2006-07-12 15:38:28 -07:00
zorro Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Kconfig
Makefile [PATCH] Time: i386 Clocksource Drivers 2006-06-26 09:58:21 -07:00