linux-2.6
18 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Thu, 12 Jan 2006 20:23:03 +0000 (12:23 -0800)] 
Merge master.kernel.org:/home/rmk/linux-2.6-serial

18 years agoMerge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds [Thu, 12 Jan 2006 20:22:17 +0000 (12:22 -0800)] 
Merge master.kernel.org:/home/rmk/linux-2.6-mmc

18 years ago[PATCH] Revert ide softirq handling
Jens Axboe [Thu, 12 Jan 2006 19:44:12 +0000 (20:44 +0100)] 
[PATCH] Revert ide softirq handling

There's a problem with the REQ_BLOCK_PC handling as well (bad ->data_len
handling) where it could actually complete a request ahead of time.  I
suggest we just back this out for now, I will resubmit it later when I'm
fully confident in it.

This reverts commit 8672d57138b34447719cd7749f3d21070e1175a1

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[SERIAL] turn serial semaphores into mutexes
Arjan van de Ven [Thu, 12 Jan 2006 18:44:32 +0000 (18:44 +0000)] 
[SERIAL] turn serial semaphores into mutexes

Turn several drivers/serial/ semaphores-used-as-mutex into mutexes

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[MMC+MFD] Convert mmc to mutexes
Arjan van de Ven [Thu, 12 Jan 2006 18:43:35 +0000 (18:43 +0000)] 
[MMC+MFD] Convert mmc to mutexes

convert mfd and mmc to mutexes

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/tglx/hrtimer-2.6
Linus Torvalds [Thu, 12 Jan 2006 18:22:11 +0000 (10:22 -0800)] 
Merge /pub/scm/linux/kernel/git/tglx/hrtimer-2.6

18 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
Linus Torvalds [Thu, 12 Jan 2006 18:21:22 +0000 (10:21 -0800)] 
Merge git://git./linux/kernel/git/paulus/powerpc-merge

Fix up delete/modify conflict of arch/ppc/kernel/process.c by hand (it's
gone, gone, gone).

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge git://oss.sgi.com:8090/oss/git/xfs-2.6
Linus Torvalds [Thu, 12 Jan 2006 17:10:34 +0000 (09:10 -0800)] 
Merge git://oss.sgi.com:8090/oss/git/xfs-2.6

18 years ago[PATCH] m68k: console code in head.S needs framebuffer support built in
Al Viro [Thu, 12 Jan 2006 09:06:40 +0000 (01:06 -0800)] 
[PATCH] m68k: console code in head.S needs framebuffer support built in

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: fix PIO case in esp
Al Viro [Thu, 12 Jan 2006 09:06:40 +0000 (01:06 -0800)] 
[PATCH] m68k: fix PIO case in esp

we always set ->SCp.ptr to physical address of buffer; for DMA that's
just what we need, but we end up using it as virtual address in PIO
case of esp_do_data(), with obvious breakage as soon as memory mapping
becomes non-trivial.  The fix is obvious.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: fix macfb init
Al Viro [Thu, 12 Jan 2006 09:06:39 +0000 (01:06 -0800)] 
[PATCH] m68k: fix macfb init

To be used by module_init() function should return int; same for functions
that have "return -ENODEV;" in them, actually ;-)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: fix reference to init_task in vmlinux-sun3.lds
Al Viro [Thu, 12 Jan 2006 09:06:38 +0000 (01:06 -0800)] 
[PATCH] m68k: fix reference to init_task in vmlinux-sun3.lds

it's *(.data.init_task), not init_task...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: fix use of void foo(void) asm("bar") in traps.c
Al Viro [Thu, 12 Jan 2006 09:06:37 +0000 (01:06 -0800)] 
[PATCH] m68k: fix use of void foo(void) asm("bar") in traps.c

with gcc4 these have file scope, so having them different in different
blocks doesn't work anymore

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers
Al Viro [Thu, 12 Jan 2006 09:06:36 +0000 (01:06 -0800)] 
[PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: Moved initialisation of conswitchp from subarches to global arch setup
Al Viro [Thu, 12 Jan 2006 09:06:35 +0000 (01:06 -0800)] 
[PATCH] m68k: Moved initialisation of conswitchp from subarches to global arch setup

Signed-off-by: Kars de Jong <jongk@linux-m68k.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: cast in strnlen switched to unsigned long
Al Viro [Thu, 12 Jan 2006 09:06:34 +0000 (01:06 -0800)] 
[PATCH] m68k: cast in strnlen switched to unsigned long

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: NULL noise removal
Al Viro [Thu, 12 Jan 2006 09:06:34 +0000 (01:06 -0800)] 
[PATCH] m68k: NULL noise removal

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: dmasound __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:33 +0000 (01:06 -0800)] 
[PATCH] m68k: dmasound __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: zorro __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:32 +0000 (01:06 -0800)] 
[PATCH] m68k: zorro __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: amifb __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:31 +0000 (01:06 -0800)] 
[PATCH] m68k: amifb __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: dsp56k __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:31 +0000 (01:06 -0800)] 
[PATCH] m68k: dsp56k __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: amiserial __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:30 +0000 (01:06 -0800)] 
[PATCH] m68k: amiserial __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: ataflop __user annotations, NULL noise removal
Al Viro [Thu, 12 Jan 2006 09:06:29 +0000 (01:06 -0800)] 
[PATCH] m68k: ataflop __user annotations, NULL noise removal

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: amiflop __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:28 +0000 (01:06 -0800)] 
[PATCH] m68k: amiflop __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: checksum __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:28 +0000 (01:06 -0800)] 
[PATCH] m68k: checksum __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: syscalls __user annotation
Al Viro [Thu, 12 Jan 2006 09:06:27 +0000 (01:06 -0800)] 
[PATCH] m68k: syscalls __user annotation

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: rtc __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:26 +0000 (01:06 -0800)] 
[PATCH] m68k: rtc __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: signal __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:25 +0000 (01:06 -0800)] 
[PATCH] m68k: signal __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: basic __user annotations
Al Viro [Thu, 12 Jan 2006 09:06:24 +0000 (01:06 -0800)] 
[PATCH] m68k: basic __user annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: basic iomem annotations
Al Viro [Thu, 12 Jan 2006 09:06:24 +0000 (01:06 -0800)] 
[PATCH] m68k: basic iomem annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: compile fixes for dmasound (static vs. extern)
Al Viro [Thu, 12 Jan 2006 09:06:23 +0000 (01:06 -0800)] 
[PATCH] m68k: compile fixes for dmasound (static vs. extern)

sound/oss/dmasound/dmasound_atari.c has static expand_bal
sound/oss/dmasound/dmasound_q40.c has static expand_bal
sound/oss/dmasound/dmasound_awacs.c has non-static expand_bal
sound/oss/dmasound/trans_16.c uses expand_bal from dmasound_awacs.c
all 4 include dmasound.h; extern for expand_bal used to be there,
which is a bloody bad idea, considering _atari and _q40.  Moved the
extern to trans_16.c.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: lvalues abuse in dmasound
Al Viro [Thu, 12 Jan 2006 09:06:22 +0000 (01:06 -0800)] 
[PATCH] m68k: lvalues abuse in dmasound

Cast is not an lvalue

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: dmasound_paula.c lvalues abuse (from m68k CVS)
Al Viro [Thu, 12 Jan 2006 09:06:21 +0000 (01:06 -0800)] 
[PATCH] m68k: dmasound_paula.c lvalues abuse (from m68k CVS)

Avoid warnings about use of cast expressions as lvalues

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: lvalues abuse in mac8390
Al Viro [Thu, 12 Jan 2006 09:06:21 +0000 (01:06 -0800)] 
[PATCH] m68k: lvalues abuse in mac8390

Cast is not an lvalue

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: bogus function argument types (sun3_pgtable.h)
Al Viro [Thu, 12 Jan 2006 09:06:20 +0000 (01:06 -0800)] 
[PATCH] m68k: bogus function argument types (sun3_pgtable.h)

function arguments can't be inline, TYVM...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: broken constraints on mulu.l
Al Viro [Thu, 12 Jan 2006 09:06:19 +0000 (01:06 -0800)] 
[PATCH] m68k: broken constraints on mulu.l

Too permissive constraint on mulu.l - the first argument should not be
an a-register.  Fixed by replacing "g" with "dm"; with older gcc we got
lucky and it had never attempted mulu.l %a0, %d1:%d0.  These days it
does, with predictable objections from as(1).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: memory input should be an lvalue (mac/misc.c)
Al Viro [Thu, 12 Jan 2006 09:06:18 +0000 (01:06 -0800)] 
[PATCH] m68k: memory input should be an lvalue (mac/misc.c)

gcc4 is less forgiving and wants memory inputs to be real lvalues; variable
added and value stored in it explicitly before doing __asm__.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: static vs. extern in amigaints.h
Al Viro [Thu, 12 Jan 2006 09:06:17 +0000 (01:06 -0800)] 
[PATCH] m68k: static vs. extern in amigaints.h

extern declaration of static object removed from header

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: static vs. extern in sun3ints.h
Al Viro [Thu, 12 Jan 2006 09:06:17 +0000 (01:06 -0800)] 
[PATCH] m68k: static vs. extern in sun3ints.h

extern declaration of static object removed from header

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: static vs. extern in scc.h
Al Viro [Thu, 12 Jan 2006 09:06:16 +0000 (01:06 -0800)] 
[PATCH] m68k: static vs. extern in scc.h

extern declaration before the static one

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: isa_{type,sex} should be exported
Al Viro [Thu, 12 Jan 2006 09:06:15 +0000 (01:06 -0800)] 
[PATCH] m68k: isa_{type,sex} should be exported

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: oktagon makefile fix
Al Viro [Thu, 12 Jan 2006 09:06:14 +0000 (01:06 -0800)] 
[PATCH] m68k: oktagon makefile fix

oktagon_esp is described as modular.  However, drivers/scsi/Makefile doesn't
handle it right - it's multi-object module, with one of the parts being built
from .S.  Current makefile tries to declare each part a module of its own;
that not only wouldn't work (oktagon_io.o doesn't have the right parts for
that), it actually doesn't even build since kbuild doesn't believe in
single-object modules built from .S.  Turned into proper multi-object
module...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: dumb typo in atyfb
Al Viro [Thu, 12 Jan 2006 09:06:13 +0000 (01:06 -0800)] 
[PATCH] m68k: dumb typo in atyfb

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: switch mac/misc.c to direct use of appropriate cuda/pmu/maciisi requests
Al Viro [Thu, 12 Jan 2006 09:06:13 +0000 (01:06 -0800)] 
[PATCH] m68k: switch mac/misc.c to direct use of appropriate cuda/pmu/maciisi requests

kill ADBREQ_RAW use, replace adb_read_time(), etc.  with per-type variants,
eliminated remapping from pmu ones, fix the ifdefs (PMU->PMU68K)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: namespace pollution fix (custom->amiga_custom)
Al Viro [Thu, 12 Jan 2006 09:06:12 +0000 (01:06 -0800)] 
[PATCH] m68k: namespace pollution fix (custom->amiga_custom)

in amigahw.h custom renamed to amiga_custom, in drivers with few instances the
same replacement, in the rest - #define custom amiga_custom in driver itself

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: compile fix - updated vmlinux.lds to include LOCK_TEXT
Al Viro [Thu, 12 Jan 2006 09:06:11 +0000 (01:06 -0800)] 
[PATCH] m68k: compile fix - updated vmlinux.lds to include LOCK_TEXT

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: compile fix - hardirq checks were in wrong place
Al Viro [Thu, 12 Jan 2006 09:06:10 +0000 (01:06 -0800)] 
[PATCH] m68k: compile fix - hardirq checks were in wrong place

move the sanity check for NR_IRQS being no more than 1<<HARDIRQ_BITS from
asm-m68k/hardirq.h to asm-m68k/irq.h; needed since NR_IRQS is not necessary
know at the points of inclusion of asm/hardirq.h due to the rather ugly header
dependencies on m68k.  Fix is by far simpler than trying to massage those
dependencies...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] death of get_thread_info/put_thread_info
Al Viro [Thu, 12 Jan 2006 09:06:09 +0000 (01:06 -0800)] 
[PATCH] death of get_thread_info/put_thread_info

{get,put}_thread_info() were introduced in 2.5.4 and never
had been called by anything in the tree.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] mips: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:06:08 +0000 (01:06 -0800)] 
[PATCH] mips: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] mips: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:06:07 +0000 (01:06 -0800)] 
[PATCH] mips: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] mips: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:06:07 +0000 (01:06 -0800)] 
[PATCH] mips: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] ia64: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:06:06 +0000 (01:06 -0800)] 
[PATCH] ia64: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] ia64: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:06:05 +0000 (01:06 -0800)] 
[PATCH] ia64: task_thread_info()

on ia64 thread_info is at the constant offset from task_struct and stack
is embedded into the same beast.  Set __HAVE_THREAD_FUNCTIONS, made
task_thread_info() just add a constant.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cris: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:06:04 +0000 (01:06 -0800)] 
[PATCH] cris: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cris: fix KSTK_EIP
Al Viro [Thu, 12 Jan 2006 09:06:04 +0000 (01:06 -0800)] 
[PATCH] cris: fix KSTK_EIP

cris KSTK_EIP looked for pt_regs at the right offset but from the wrong
place - forgotten ->thread_info

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cris: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:06:03 +0000 (01:06 -0800)] 
[PATCH] cris: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] powerpc: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:06:02 +0000 (01:06 -0800)] 
[PATCH] powerpc: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] powerpc: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:06:01 +0000 (01:06 -0800)] 
[PATCH] powerpc: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sh64: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:06:01 +0000 (01:06 -0800)] 
[PATCH] sh64: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] arm26: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:06:00 +0000 (01:06 -0800)] 
[PATCH] arm26: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] arm26: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:59 +0000 (01:05 -0800)] 
[PATCH] arm26: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] arm26: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:59 +0000 (01:05 -0800)] 
[PATCH] arm26: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] arm: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:58 +0000 (01:05 -0800)] 
[PATCH] arm: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] arm: end_of_stack()
Al Viro [Thu, 12 Jan 2006 09:05:57 +0000 (01:05 -0800)] 
[PATCH] arm: end_of_stack()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] arm: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:57 +0000 (01:05 -0800)] 
[PATCH] arm: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] arm: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:56 +0000 (01:05 -0800)] 
[PATCH] arm: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] h8300: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:55 +0000 (01:05 -0800)] 
[PATCH] h8300: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] parisc: task_stack_page(), task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:55 +0000 (01:05 -0800)] 
[PATCH] parisc: task_stack_page(), task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68knommu: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:54 +0000 (01:05 -0800)] 
[PATCH] m68knommu: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:53 +0000 (01:05 -0800)] 
[PATCH] m68k: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] frv: task_thread_info(), task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:53 +0000 (01:05 -0800)] 
[PATCH] frv: task_thread_info(), task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m32r: task_pt_regs(), task_stack_page(), task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:52 +0000 (01:05 -0800)] 
[PATCH] m32r: task_pt_regs(), task_stack_page(), task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] v850: task_stack_page(), task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:51 +0000 (01:05 -0800)] 
[PATCH] v850: task_stack_page(), task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] xtensa: task_pt_regs(), task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:50 +0000 (01:05 -0800)] 
[PATCH] xtensa: task_pt_regs(), task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] s390: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:50 +0000 (01:05 -0800)] 
[PATCH] s390: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] s390: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:49 +0000 (01:05 -0800)] 
[PATCH] s390: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] uml: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:48 +0000 (01:05 -0800)] 
[PATCH] uml: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] uml: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:48 +0000 (01:05 -0800)] 
[PATCH] uml: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sparc: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:47 +0000 (01:05 -0800)] 
[PATCH] sparc: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sparc: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:46 +0000 (01:05 -0800)] 
[PATCH] sparc: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sh: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:45 +0000 (01:05 -0800)] 
[PATCH] sh: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sh: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:45 +0000 (01:05 -0800)] 
[PATCH] sh: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sh: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:44 +0000 (01:05 -0800)] 
[PATCH] sh: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sparc64: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:43 +0000 (01:05 -0800)] 
[PATCH] sparc64: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sparc64: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:43 +0000 (01:05 -0800)] 
[PATCH] sparc64: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sparc64: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:42 +0000 (01:05 -0800)] 
[PATCH] sparc64: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:41 +0000 (01:05 -0800)] 
[PATCH] i386: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: fix task_pt_regs()
akpm@osdl.org [Thu, 12 Jan 2006 09:05:41 +0000 (01:05 -0800)] 
[PATCH] i386: fix task_pt_regs()

\r)

From: Al Viro <viro@ftp.linux.org.uk>

task_pt_regs() needs the same offset-by-8 to match copy_thread()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:40 +0000 (01:05 -0800)] 
[PATCH] i386: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] amd64: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:39 +0000 (01:05 -0800)] 
[PATCH] amd64: task_stack_page()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] amd64: task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:38 +0000 (01:05 -0800)] 
[PATCH] amd64: task_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] amd64: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:38 +0000 (01:05 -0800)] 
[PATCH] amd64: task_thread_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] alpha: task_pt_regs()
akpm@osdl.org [Thu, 12 Jan 2006 09:05:37 +0000 (01:05 -0800)] 
[PATCH] alpha: task_pt_regs()

\r)

From: Al Viro <viro@ftp.linux.org.uk>

rename alpha_task_regs() to task_pt_regs(), switch open-coded instances
to use of the helper.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] alpha: task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:36 +0000 (01:05 -0800)] 
[PATCH] alpha: task_stack_page()

use task_stack_page() for accesses to stack page of task in alpha-specific
parts of tree

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] alpha: task_thread_info()
Al Viro [Thu, 12 Jan 2006 09:05:36 +0000 (01:05 -0800)] 
[PATCH] alpha: task_thread_info()

use task_thread_info() for accesses to thread_info of task in arch/alpha
and include/asm-alpha

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] missing helper - task_stack_page()
Al Viro [Thu, 12 Jan 2006 09:05:34 +0000 (01:05 -0800)] 
[PATCH] missing helper - task_stack_page()

Patchset annotates arch/* uses of ->thread_info.  Ones that really are about
access of thread_info of given process are simply switched to
task_thread_info(task); ones that deal with access to objects on stack are
switched to new helper - task_stack_page().  A _lot_ of the latter are
actually open-coded instances of "find where pt_regs are"; those are
consolidated into task_pt_regs(task) (many architectures actually have such
helper already).

Note that these annotations are not mandatory - any code not converted to
these helpers still works.  However, they clean up a lot of places and have
actually caught a number of bugs, so converting out of tree ports would be a
good idea...

As an example of breakage caught by that stuff, see i386 pt_regs mess - we
used to have it open-coded in a bunch of places and when back in April Stas
had fixed a bug in copy_thread(), the rest had been left out of sync.  That
required two followup patches (the latest - just before 2.6.15) _and_ still
had left /proc/*/stat eip field broken.  Try ps -eo eip on i386 and watch the
junk...

This patch:

new helper - task_stack_page(task).  Returns pointer to the memory object
containing task stack; usually thread_info of task sits in the beginning
of that object.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sched: filter affine wakeups
akpm@osdl.org [Thu, 12 Jan 2006 09:05:32 +0000 (01:05 -0800)] 
[PATCH] sched: filter affine wakeups

\r)

From: Nick Piggin <nickpiggin@yahoo.com.au>

Track the last waker CPU, and only consider wakeup-balancing if there's a
match between current waker CPU and the previous waker CPU.  This ensures
that there is some correlation between two subsequent wakeup events before
we move the task.  Should help random-wakeup workloads on large SMP
systems, by reducing the migration attempts by a factor of nr_cpus.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] scheduler cache-hot-autodetect
akpm@osdl.org [Thu, 12 Jan 2006 09:05:30 +0000 (01:05 -0800)] 
[PATCH] scheduler cache-hot-autodetect

\r)

From: Ingo Molnar <mingo@elte.hu>

This is the latest version of the scheduler cache-hot-auto-tune patch.

The first problem was that detection time scaled with O(N^2), which is
unacceptable on larger SMP and NUMA systems. To solve this:

- I've added a 'domain distance' function, which is used to cache
  measurement results. Each distance is only measured once. This means
  that e.g. on NUMA distances of 0, 1 and 2 might be measured, on HT
  distances 0 and 1, and on SMP distance 0 is measured. The code walks
  the domain tree to determine the distance, so it automatically follows
  whatever hierarchy an architecture sets up. This cuts down on the boot
  time significantly and removes the O(N^2) limit. The only assumption
  is that migration costs can be expressed as a function of domain
  distance - this covers the overwhelming majority of existing systems,
  and is a good guess even for more assymetric systems.

  [ People hacking systems that have assymetries that break this
    assumption (e.g. different CPU speeds) should experiment a bit with
    the cpu_distance() function. Adding a ->migration_distance factor to
    the domain structure would be one possible solution - but lets first
    see the problem systems, if they exist at all. Lets not overdesign. ]

Another problem was that only a single cache-size was used for measuring
the cost of migration, and most architectures didnt set that variable
up. Furthermore, a single cache-size does not fit NUMA hierarchies with
L3 caches and does not fit HT setups, where different CPUs will often
have different 'effective cache sizes'. To solve this problem:

- Instead of relying on a single cache-size provided by the platform and
  sticking to it, the code now auto-detects the 'effective migration
  cost' between two measured CPUs, via iterating through a wide range of
  cachesizes. The code searches for the maximum migration cost, which
  occurs when the working set of the test-workload falls just below the
  'effective cache size'. I.e. real-life optimized search is done for
  the maximum migration cost, between two real CPUs.

  This, amongst other things, has the positive effect hat if e.g. two
  CPUs share a L2/L3 cache, a different (and accurate) migration cost
  will be found than between two CPUs on the same system that dont share
  any caches.

(The reliable measurement of migration costs is tricky - see the source
for details.)

Furthermore i've added various boot-time options to override/tune
migration behavior.

Firstly, there's a blanket override for autodetection:

migration_cost=1000,2000,3000

will override the depth 0/1/2 values with 1msec/2msec/3msec values.

Secondly, there's a global factor that can be used to increase (or
decrease) the autodetected values:

migration_factor=120

will increase the autodetected values by 20%. This option is useful to
tune things in a workload-dependent way - e.g. if a workload is
cache-insensitive then CPU utilization can be maximized by specifying
migration_factor=0.

I've tested the autodetection code quite extensively on x86, on 3
P3/Xeon/2MB, and the autodetected values look pretty good:

Dual Celeron (128K L2 cache):

 ---------------------
 migration cost matrix (max_cache_size: 131072, cpu: 467 MHz):
 ---------------------
           [00]    [01]
 [00]:     -     1.7(1)
 [01]:   1.7(1)    -
 ---------------------
 cacheflush times [2]: 0.0 (0) 1.7 (1784008)
 ---------------------

Here the slow memory subsystem dominates system performance, and even
though caches are small, the migration cost is 1.7 msecs.

Dual HT P4 (512K L2 cache):

 ---------------------
 migration cost matrix (max_cache_size: 524288, cpu: 2379 MHz):
 ---------------------
           [00]    [01]    [02]    [03]
 [00]:     -     0.4(1)  0.0(0)  0.4(1)
 [01]:   0.4(1)    -     0.4(1)  0.0(0)
 [02]:   0.0(0)  0.4(1)    -     0.4(1)
 [03]:   0.4(1)  0.0(0)  0.4(1)    -
 ---------------------
 cacheflush times [2]: 0.0 (33900) 0.4 (448514)
 ---------------------

Here it can be seen that there is no migration cost between two HT
siblings (CPU#0/2 and CPU#1/3 are separate physical CPUs). A fast memory
system makes inter-physical-CPU migration pretty cheap: 0.4 msecs.

8-way P3/Xeon [2MB L2 cache]:

 ---------------------
 migration cost matrix (max_cache_size: 2097152, cpu: 700 MHz):
 ---------------------
           [00]    [01]    [02]    [03]    [04]    [05]    [06]    [07]
 [00]:     -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)
 [01]:  19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)
 [02]:  19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)
 [03]:  19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1)
 [04]:  19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1)
 [05]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1)
 [06]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1)
 [07]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -
 ---------------------
 cacheflush times [2]: 0.0 (0) 19.2 (19281756)
 ---------------------

This one has huge caches and a relatively slow memory subsystem - so the
migration cost is 19 msecs.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Cc: <wilder@us.ibm.com>
Signed-off-by: John Hawkes <hawkes@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sched: add cacheflush() asm
Ingo Molnar [Thu, 12 Jan 2006 09:05:27 +0000 (01:05 -0800)] 
[PATCH] sched: add cacheflush() asm

Add per-arch sched_cacheflush() which is a write-back cacheflush used by
the migration-cost calibration code at bootup time.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Implement ioctl emulation for the parport character device
Andi Kleen [Thu, 12 Jan 2006 09:05:26 +0000 (01:05 -0800)] 
[PATCH] Implement ioctl emulation for the parport character device

Fixes bugzilla.kernel.org bug 2903.

Cc: <tim@cyberelk.net>
Cc: <andrea@suse.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>