1
linux/include
Venki Pallipadi 6e453a6751 Add support for deferrable timers
Introduce a new flag for timers - deferrable: Timers that work normally
when system is busy.  But, will not cause CPU to come out of idle (just to
service this timer), when CPU is idle.  Instead, this timer will be
serviced when CPU eventually wakes up with a subsequent non-deferrable
timer.

The main advantage of this is to avoid unnecessary timer interrupts when
CPU is idle.  If the routine currently called by a timer can wait until
next event without any issues, this new timer can be used to setup timer
event for that routine.  This, with dynticks, allows CPUs to be lazy,
allowing them to stay in idle for extended period of time by reducing
unnecesary wakeup and thereby reducing the power consumption.

This patch:

Builds this new timer on top of existing timer infrastructure.  It uses
last bit in 'base' pointer of timer_list structure to store this deferrable
timer flag.  __next_timer_interrupt() function skips over these deferrable
timers when CPU looks for next timer event for which it has to wake up.

This is exported by a new interface init_timer_deferrable() that can be
called in place of regular init_timer().

[akpm@linux-foundation.org: Privatise a #define]
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:05 -07:00
..
acpi remove "struct subsystem" as it is no longer needed 2007-05-02 18:57:59 -07:00
asm-alpha move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-arm move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-arm26 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-avr32 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-blackfin blackfin architecture 2007-05-07 12:12:58 -07:00
asm-cris move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-frv move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-generic move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-h8300 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-i386 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-ia64 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-m32r move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-m68k move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-m68knommu move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-mips move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-parisc move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-powerpc parport->dev driver model support 2007-05-08 11:15:05 -07:00
asm-ppc move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-s390 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-sh move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-sh64 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-sparc move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-sparc64 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-um move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-v850 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-x86_64 move die notifier handling to common code 2007-05-08 11:15:04 -07:00
asm-xtensa move die notifier handling to common code 2007-05-08 11:15:04 -07:00
crypto [CRYPTO] cryptd: Add software async crypto daemon 2007-05-02 14:38:32 +10:00
keys [AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both 2007-04-26 15:48:28 -07:00
linux Add support for deferrable timers 2007-05-08 11:15:05 -07:00
math-emu Delete unused header file math-emu/extended.h 2007-05-08 11:15:05 -07:00
media i2c: Cleanup the includes of <linux/i2c.h> 2007-05-01 23:26:29 +02:00
mtd UBI: Unsorted Block Images 2007-04-27 14:23:33 +03:00
net [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
pcmcia add new_id to PCMCIA drivers 2007-05-07 12:12:50 -07:00
rdma Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2007-05-07 12:18:21 -07:00
rxrpc [AF_RXRPC]: Delete the old RxRPC code. 2007-04-26 15:55:48 -07:00
scsi [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
sound [ALSA] version 1.0.14rc3 2007-03-14 08:25:52 +01:00
video
Kbuild