linux/include
Andrew Morton 498d0c5711 [PATCH] set_current_state() commentary
Explain the mysteries of set_current_state().

Quoth Linus:

 The scheduler itself never needs the memory barrier at all.

 The barrier is needed only if the user itself ends up testing some other
 thing afterwards, ie if you have

 	set_process_state(TASK_INTERRUPTIBLE);
 	if (still_need_to_sleep())
 		schedule();

 then the "still_need_to_sleep()" thing may test flags and wakeup events,
 and then you _may_ want to (and often do) make sure that the write of
 TASK_INTERRUPTIBLE is serialized wrt the reads of any wakeup data (since
 the wakeup may have happened on another CPU).

 So the comment is somewhat wrong. We don't really _care_ whether the state
 propagates out to other CPU's since all of our actions are purely local,
 and there is nothing we do that is conditional on any other CPU: we're
 going to sleep unconditionally, and the scheduler only cares about _our_
 state, not about somebody elses state.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-13 08:22:29 -07:00
..
acpi [ACPI] ACPICA 20050902 2005-09-03 00:15:11 -04:00
asm-alpha [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-09-10 10:16:47 -07:00
asm-arm26 [PATCH] include/asm-arm26/hardirq.h: remove #define irq_enter() 2005-09-10 10:06:30 -07:00
asm-cris [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
asm-frv [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
asm-generic [PATCH] x86-64: Increase TLB flush array size 2005-09-12 10:49:58 -07:00
asm-h8300 [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
asm-i386 [PATCH] x86-64: i386/x86-64: Fix time going twice as fast problem on ATI Xpress chipsets 2005-09-12 10:50:58 -07:00
asm-ia64 Pull sn-features into release branch 2005-09-11 14:34:23 -07:00
asm-m32r [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-m68k [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
asm-m68knommu [PATCH] m68knommu: optimized local_irq_disable, and platform reboot code 2005-09-12 20:04:15 -07:00
asm-mips [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-parisc [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-powerpc [PATCH] ppc64: Add definitions for new PTRACE calls 2005-09-12 17:19:12 +10:00
asm-ppc [PATCH] ppc32: remove use of asm/segment.h 2005-09-13 08:22:28 -07:00
asm-ppc64 [PATCH] ppc64: Remove unused code 2005-09-12 17:19:12 +10:00
asm-s390 [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-sh [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-sh64 [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
asm-sparc [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-sparc64 [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
asm-um [PATCH] uml spinlock breakage 2005-09-10 16:50:01 -07:00
asm-v850 [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
asm-x86_64 [PATCH] x86-64: clean up local_add/sub arguments 2005-09-12 10:50:59 -07:00
asm-xtensa kbuild: m68k,parisc,ppc,ppc64,s390,xtensa use generic asm-offsets.h support 2005-09-09 20:57:26 +02:00
linux [PATCH] set_current_state() commentary 2005-09-13 08:22:29 -07:00
math-emu Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
media [PATCH] v4l: tveeprom improved to support newer Hauppage cards 2005-09-09 13:57:54 -07:00
mtd [MTD] NAND: Honour autoplacement schemes supplied by the caller 2005-05-23 13:20:45 +02:00
net [NETROM]: Introduct stuct nr_private 2005-09-12 14:28:03 -07:00
pcmcia [PATCH] pcmcia: add pcmcia to IRQ information 2005-09-09 13:57:48 -07:00
rdma [PATCH] IB CM: support CM redir 2005-09-09 18:23:32 -07:00
rxrpc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scsi [SCSI] Alter the scsi_add_device() API to conform to what users expect 2005-09-10 14:43:25 -05:00
sound [PATCH] DocBook: fix kernel-api documentation generation 2005-09-09 14:03:43 -07:00
video [PATCH] framebuffer: new driver for cyberblade/i1 graphics core 2005-09-09 13:58:02 -07:00