From: Paul M. <le...@li...> - 2007-06-18 03:59:01
|
Now that 2.6.22 is winding down, it's time to review what's going on for the 2.6.23 merge window. The big changes so far are mostly centered around NUMA and sparsemem support, rework of the IRQ controllers and the machvec, as well as some Kconfig reordering (we're now in much better shape to survive allyesconfig/allmodconfig/randconfig for regression testing). There's quite a bit of SMP code also, for 4-way SH-X3, so some of that will make it in, with most of the later 2.6.23-rc's then being targetted at fixing up a lot of the remaining locking issues and so on. multi-node NUMA is presently only wired up on SH-MobileR (SH7722), particularly its URAM block (128kB SRAM), but SH7785 and others will follow, all the way up to 6-nodes for SH-X3. There'll be some documentation on the wiki a bit later on how to work with it, for those that are interested. There are a couple outstanding patches required to make use of this, including changing the node interleave map for kernel data structure spreading at system init time, which can be found here: http://marc.info/?l=linux-mm&m=118117916022379&w=2 and either SLUB + http://marc.info/?l=linux-mm&m=118127614524083&w=2, or SLOB + http://marc.info/?l=linux-mm&m=118213456808163&w=2 SLAB is also possible, but is quite heavy on the non-reclaimable slab pages, so is better avoided for tiny nodes. cpusets + page migration is also possible, but with a node this small, page migration is best avoided. Simply mounting the node with a mempolicy via tmpfs or using libnuma is the best way for applications to make use of the memory (remember that URAM access bypasses the cache controller!). The outstanding patches should also be merged during the -rc1 window, via alternate channels. The queue so far: Magnus Damm (2): sh: rework intc2 code sh: rework ipr code Nobuhiro Iwamatsu (1): sh: Add L-BOX RE2 to mach-types. Paul Mundt (37): sh: Split out CPU topology initialization. sh: __user annotations for __get/__put_user(). sh: Fixup machvec support. sh: Shut up SH2-DSP compile warnings. sh: Rework CPU/board dependencies. sh: Fixup cmdline handling from machvec changes. sh: Get multiple boards in one image working again. sh: Kill off machvec aliases. sh: Rip out special unknown machvec. sh: Fix SH-4 CPU selects. sh: pfn_valid() depends on flatmem. sh: sparsemem support. sh: Allow for bootmem debug support. sh: Register multiple nodes in topology_init(). sh: Mark sparsemem regions present earlier. sh: Enable IPR-IRQ for SH7206. sh: Wrap CPU tuning through cc-option. sh: Tidy compiler warnings for SH-2A build. sh: Wire up mempolicy syscalls. sh: Default to 4-byte alignment for SLUB objects. sh: Fix up max_zone_pfns[] with multiple nodes. sh: Use asm/sections.h for linker section symbols. sh: Support for multiple nodes. sh: URAM node support for SH7722. sh: Make NUMA depend on sparsemem. sh: Fix the SH7722 flatmem build. sh: Fix up cpu to node mapping in sysfs. sh: memory hot-add for sparsemem users support. sh: Kill off dead SH7604 support. sh: Compile fix for SH7604 removal. sh: Tidy up dependencies for SH-2 build. sh: Fixup misaligned data for sh2 lockdep. fs: hugetlbfs: Disable for shnommu. sh: Kill off broken dma page ops. sh: Fix up the math-emu build. sh: Only support PMB for SH-X cores. sh: Update SH-2/SH-2A defconfigs. Robert P. J. Day (1): sh: Warn against direct inclusion of <asm/rwsem.h>. Takashi YOSHII (1): sh: Align .machvec.init section on a 4-byte boundary. Yoshihiro Shimoda (1): sh: Provide a defconfig for R7780MP. arch/sh/Kconfig | 355 ++++---- arch/sh/Kconfig.debug | 5 + arch/sh/Makefile | 98 ++- arch/sh/boards/dreamcast/setup.c | 3 +- arch/sh/boards/hp6xx/mach.c | 4 +- arch/sh/boards/hp6xx/setup.c | 3 +- arch/sh/boards/landisk/setup.c | 3 +- arch/sh/boards/lboxre2/setup.c | 3 +- arch/sh/boards/mpc1211/setup.c | 3 +- arch/sh/boards/renesas/edosk7705/setup.c | 3 +- arch/sh/boards/renesas/hs7751rvoip/setup.c | 3 +- arch/sh/boards/renesas/r7780rp/Kconfig | 6 +- arch/sh/boards/renesas/r7780rp/setup.c | 3 +- arch/sh/boards/renesas/rts7751r2d/setup.c | 3 +- arch/sh/boards/renesas/sh7710voipgw/setup.c | 3 +- arch/sh/boards/renesas/systemh/setup.c | 3 +- arch/sh/boards/saturn/Makefile | 8 - arch/sh/boards/saturn/io.c | 26 - arch/sh/boards/saturn/irq.c | 118 --- arch/sh/boards/saturn/setup.c | 31 - arch/sh/boards/saturn/smp.c | 68 -- arch/sh/boards/se/7206/setup.c | 3 +- arch/sh/boards/se/7300/setup.c | 3 +- arch/sh/boards/se/73180/setup.c | 3 +- arch/sh/boards/se/7343/setup.c | 3 +- arch/sh/boards/se/7619/setup.c | 3 +- arch/sh/boards/se/770x/irq.c | 124 ++-- arch/sh/boards/se/770x/setup.c | 3 +- arch/sh/boards/se/7722/irq.c | 15 +- arch/sh/boards/se/7722/setup.c | 3 +- arch/sh/boards/se/7751/irq.c | 59 +- arch/sh/boards/se/7751/setup.c | 3 +- arch/sh/boards/se/7780/irq.c | 45 +- arch/sh/boards/se/7780/setup.c | 3 +- arch/sh/boards/sh03/setup.c | 31 +- arch/sh/boards/shmin/setup.c | 33 +- arch/sh/boards/snapgear/setup.c | 31 +- arch/sh/boards/superh/microdev/setup.c | 3 +- arch/sh/boards/titan/setup.c | 25 +- arch/sh/boards/unknown/Makefile | 6 - arch/sh/boards/unknown/setup.c | 21 - arch/sh/cchips/Kconfig | 6 +- arch/sh/configs/r7780mp_defconfig | 1223 +++++++++++++++++++++++++++ arch/sh/configs/se7206_defconfig | 272 ++---- arch/sh/configs/se7619_defconfig | 215 ++---- arch/sh/drivers/dma/Kconfig | 17 - arch/sh/drivers/pci/Kconfig | 1 + arch/sh/kernel/Makefile | 9 +- arch/sh/kernel/cf-enabler.c | 6 +- arch/sh/kernel/cpu/init.c | 15 +- arch/sh/kernel/cpu/irq/intc2.c | 58 +- arch/sh/kernel/cpu/irq/ipr.c | 59 +- arch/sh/kernel/cpu/sh2/entry.S | 1 + arch/sh/kernel/cpu/sh2/probe.c | 13 +- arch/sh/kernel/cpu/sh2/setup-sh7619.c | 24 +- arch/sh/kernel/cpu/sh2a/setup-sh7206.c | 24 +- arch/sh/kernel/cpu/sh3/setup-sh7705.c | 40 +- arch/sh/kernel/cpu/sh3/setup-sh7709.c | 84 ++- arch/sh/kernel/cpu/sh3/setup-sh7710.c | 42 +- arch/sh/kernel/cpu/sh4/Makefile | 4 + arch/sh/kernel/cpu/sh4/setup-sh7750.c | 58 +- arch/sh/kernel/cpu/sh4/setup-sh7760.c | 45 +- arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 29 +- arch/sh/kernel/cpu/sh4a/setup-sh7780.c | 15 +- arch/sh/kernel/cpu/sh4a/setup-sh7785.c | 16 +- arch/sh/kernel/machvec.c | 130 +++ arch/sh/kernel/process.c | 18 +- arch/sh/kernel/ptrace.c | 8 +- arch/sh/kernel/setup.c | 208 +---- arch/sh/kernel/signal.c | 5 +- arch/sh/kernel/syscalls.S | 6 +- arch/sh/kernel/topology.c | 49 ++ arch/sh/kernel/traps.c | 5 +- arch/sh/kernel/vmlinux.lds.S | 4 +- arch/sh/math-emu/math.c | 18 +- arch/sh/mm/Kconfig | 77 +- arch/sh/mm/Makefile | 5 +- arch/sh/mm/init.c | 107 ++- arch/sh/mm/numa.c | 92 ++ arch/sh/mm/pg-dma.c | 95 --- arch/sh/tools/mach-types | 2 +- drivers/serial/sh-sci.h | 25 +- fs/Kconfig | 2 +- include/asm-sh/bugs.h | 2 +- include/asm-sh/cache.h | 4 + include/asm-sh/cpu-sh2/cache.h | 20 +- include/asm-sh/hd64461.h | 2 +- include/asm-sh/hw_irq.h | 42 + include/asm-sh/irq.h | 40 - include/asm-sh/machvec.h | 4 +- include/asm-sh/machvec_init.h | 53 -- include/asm-sh/mmzone.h | 46 + include/asm-sh/page.h | 10 + include/asm-sh/processor.h | 6 +- include/asm-sh/rwsem.h | 6 +- include/asm-sh/saturn/io.h | 19 - include/asm-sh/saturn/smpc.h | 34 - include/asm-sh/sections.h | 2 +- include/asm-sh/setup.h | 1 + include/asm-sh/sh03/io.h | 4 - include/asm-sh/snapgear.h | 4 - include/asm-sh/sparsemem.h | 16 + include/asm-sh/system.h | 16 +- include/asm-sh/topology.h | 30 + include/asm-sh/uaccess.h | 40 +- include/asm-sh/ubc.h | 9 +- mm/Kconfig | 2 +- 107 files changed, 2854 insertions(+), 1862 deletions(-) |