linux/drivers
Frederic Weisbecker 1a5645bc90 connector: create connector workqueue only while needed once
The netlink connector uses its own workqueue to relay the datas sent
from userspace to the appropriate callback.  If you launch the test
from Documentation/connector and change it a bit to send a high flow
of data, you will see thousands of events coming to the "cqueue"
workqueue by looking at the workqueue tracer.

This flow of events can be sent very quickly. So, to not encumber the
kevent workqueue and delay other jobs, the "cqueue" workqueue should
remain.

But this workqueue is pointless most of the time, it will always be
created (assuming you have built it of course) although only
developpers with specific needs will use it.

So avoid this "most of the time useless task", this patch proposes to
create this workqueue only when needed once.  The first jobs to be
sent to connector callbacks will be sent to kevent while the "cqueue"
thread creation will be scheduled to kevent too.

The following jobs will continue to be scheduled to keventd until the
cqueue workqueue is created, and then the rest of the jobs will
continue to perform as usual, through this dedicated workqueue.

Each time I tested this patch, only the first event was sent to
keventd, the rest has been sent to cqueue which have been created
quickly.

Also, this patch fixes some trailing whitespaces on the connector files.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-02-02 23:22:04 -08:00
..
accessibility
acpi Merge branch 'misc' into release 2009-01-16 14:45:34 -05:00
amba [ARM] Fix realview build 2009-01-08 16:29:41 +00:00
ata sata_fsl: Return non-zero on error in probe() 2009-01-16 10:23:58 -05:00
atm generic swap(): iphase: rename swap() to swap_byte_order() 2009-01-08 08:31:14 -08:00
auxdisplay
base driver core: Convert '/' to '!' in dev_set_name() 2009-01-20 20:52:08 -08:00
block powerpc/ps3: Printing fixups for l64 to ll64 conversion drivers/block 2009-01-16 16:15:13 +11:00
bluetooth
cdrom
char Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-01-26 17:43:16 -08:00
clocksource
connector connector: create connector workqueue only while needed once 2009-02-02 23:22:04 -08:00
cpufreq Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:12:18 -08:00
cpuidle
crypto
dca
dio m68k: dio - Kill resource_size_t format warnings 2009-01-12 20:56:42 +01:00
dma i.MX31: Image Processing Unit DMA and IRQ drivers 2009-01-19 15:36:21 -07:00
edac
eisa
firewire firewire: core: fix sleep in atomic context due to driver core change 2009-01-09 23:22:32 +01:00
firmware dell_rbu: use scnprintf() instead of less secure sprintf() 2009-01-17 14:27:18 -08:00
gpio gpio: fix probe() error return in gpio driver probes 2009-01-15 16:39:35 -08:00
gpu Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 2009-01-26 15:11:41 -08:00
hid
hwmon Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 2009-01-15 16:40:12 -08:00
i2c i2c: Move old eeprom driver to /drivers/misc/eeprom 2009-01-26 21:19:53 +01:00
ide drivers/ide/palm_bk3710.c buildfix 2009-01-19 13:46:57 +01:00
idle
ieee1394 i2c: Delete many unused adapter IDs 2009-01-26 21:19:52 +01:00
infiniband iw_cxgb3: handle chip reset notifications 2009-01-26 22:22:19 -08:00
input input: PCF50633 input driver 2009-01-11 01:34:25 +01:00
isdn isdn: Fix missing ifdef in isdn_ppp 2009-01-26 12:24:38 -08:00
leds lis3lv02d: merge with leds hp disk 2009-01-15 16:39:40 -08:00
lguest
macintosh
mca
md md: don't retry recovery of raid1 that fails due to error on source drive. 2009-01-09 08:31:11 +11:00
media Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-01-08 11:05:59 -08:00
memstick memstick: annotate endianness of attribute structs 2009-01-09 16:54:41 -08:00
message [SCSI] mpt fusion: Add Firmware debug support 2009-01-13 10:36:02 -06:00
mfd Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-01-13 14:52:35 -08:00
misc eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
mmc [ARM] 5369/1: omap mmc: Add new omap hsmmc controller for 2430 and 34xx, v3 2009-01-24 11:41:21 +00:00
mtd ARM: OMAP: Fix gpio by switching to generic gpio calls, v2 2009-01-15 13:09:52 +02:00
net ixgbe: Update copyright dates, bump the driver version number 2009-02-01 01:19:20 -08:00
nubus
of drivers/of: Add the of_find_i2c_device_by_node function. 2009-01-09 15:49:06 -07:00
oprofile oprofile: fix uninitialized use of struct op_entry 2009-01-17 17:26:39 +01:00
parisc fix early_serial_setup() regression 2009-01-13 14:03:43 -08:00
parport
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-01-26 10:13:36 -08:00
pcmcia powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
platform Merge branch 'misc' into release 2009-01-16 14:45:34 -05:00
pnp Merge branch 'linus' into release 2009-01-09 03:39:43 -05:00
power power_supply: pda_power: Don't request shared IRQs w/ IRQF_DISABLED 2009-01-26 02:09:26 +03:00
ps3 powerpc/ps3: Printing fixups for l64 to ll64 conversion drivers/ps3 2009-01-16 16:15:14 +11:00
rapidio
regulator move wm8400-regulator's probe function to .devinit.text 2009-01-17 13:46:40 +00:00
rtc rtc: rtc-twl4030 don't mask alarm interrupts on shutdown 2009-01-15 16:39:36 -08:00
s390 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-01-26 17:43:16 -08:00
sbus
scsi cxgb3: Replace LRO with GRO 2009-01-21 14:39:13 -08:00
serial sh: fix sh-sci / early printk build on sh7723 2009-01-21 17:44:32 +09:00
sh
sn
spi spi: Move at25 (for SPI eeproms) to /drivers/misc/eeprom 2009-01-26 21:19:54 +01:00
ssb
staging Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2009-01-07 17:22:04 -08:00
tc
telephony
thermal
uio
usb Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-01-26 15:12:47 -08:00
uwb Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-01-08 11:05:59 -08:00
video Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-01-26 15:12:47 -08:00
virtio
w1 w1: send status messages after command processing 2009-01-08 08:31:14 -08:00
watchdog [ARM] omap: watchdog: allow OMAP watchdog driver on OMAP34xx platforms 2009-01-24 16:48:42 +00:00
xen xen: unitialised return value in xenbus_write_transaction 2009-01-26 14:29:26 +01:00
zorro m68k: zorro - Use %pR to print resources 2009-01-12 20:56:43 +01:00
Kconfig
Makefile Merge branch 'drivers-platform' into release 2009-01-09 04:56:56 -05:00