23 Dec, 2009

1 commit

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (36 commits)
    powerpc/gc/wii: Remove get_irq_desc()
    powerpc/gc/wii: hlwd-pic: convert irq_desc.lock to raw_spinlock
    powerpc/gamecube/wii: Fix off-by-one error in ugecon/usbgecko_udbg
    powerpc/mpic: Fix problem that affinity is not updated
    powerpc/mm: Fix stupid bug in subpge protection handling
    powerpc/iseries: use DECLARE_COMPLETION_ONSTACK for non-constant completion
    powerpc: Fix MSI support on U4 bridge PCIe slot
    powerpc: Handle VSX alignment faults correctly in little-endian mode
    powerpc/mm: Fix typo of cpumask_clear_cpu()
    powerpc/mm: Fix hash_utils_64.c compile errors with DEBUG enabled.
    powerpc: Convert BUG() to use unreachable()
    powerpc/pseries: Make declarations of cpu_hotplug_driver_lock() ANSI compatible.
    powerpc/pseries: Don't panic when H_PROD fails during cpu-online.
    powerpc/mm: Fix a WARN_ON() with CONFIG_DEBUG_PAGEALLOC and CONFIG_DEBUG_VM
    powerpc/defconfigs: Set HZ=100 on pseries and ppc64 defconfigs
    powerpc/defconfigs: Disable token ring in powerpc defconfigs
    powerpc/defconfigs: Reduce 64bit vmlinux by making acenic and cramfs modules
    powerpc/pseries: Select XICS and PCI_MSI PSERIES
    powerpc/85xx: Wrong variable returned on error
    powerpc/iseries: Convert to proc_fops
    ...

    Linus Torvalds
     

21 Dec, 2009

4 commits

  • Fix the following build failures:

    arch/powerpc/platforms/embedded6xx/flipper-pic.c: In function 'flipper_pic_map':
    arch/powerpc/platforms/embedded6xx/flipper-pic.c:105: error: implicit declaration of function 'get_irq_desc'

    arch/powerpc/platforms/embedded6xx/hlwd-pic.c: In function 'hlwd_pic_map':
    arch/powerpc/platforms/embedded6xx/hlwd-pic.c:98: error: implicit declaration of function 'get_irq_desc'

    These failures are caused by the changes introduced in commit
    "powerpc: Remove get_irq_desc()". The reason these drivers were not
    updated is that they weren't merged yet.

    Signed-off-by: Albert Herranz
    Signed-off-by: Benjamin Herrenschmidt

    Albert Herranz
     
  • Fix the following build failures:

    arch/powerpc/platforms/embedded6xx/hlwd-pic.c: In function 'hlwd_pic_irq_cascade':
    arch/powerpc/platforms/embedded6xx/hlwd-pic.c:135: error: passing argument 1 of 'spin_lock' from incompatible pointer type
    arch/powerpc/platforms/embedded6xx/hlwd-pic.c:137: error: passing argument 1 of 'spin_unlock' from incompatible pointer type
    arch/powerpc/platforms/embedded6xx/hlwd-pic.c:145: error: passing argument 1 of 'spin_lock' from incompatible pointer type
    arch/powerpc/platforms/embedded6xx/hlwd-pic.c:149: error: passing argument 1 of 'spin_unlock' from incompatible pointer type

    These failures are caused by the changes introduced in commit
    "genirq: Convert irq_desc.lock to raw_spinlock". The reason this driver
    was not updated is that it wasn't merged yet.

    Signed-off-by: Albert Herranz
    Signed-off-by: Benjamin Herrenschmidt

    Albert Herranz
     
  • Benjamin Herrenschmidt
     
  • Benjamin Herrenschmidt
     

20 Dec, 2009

3 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6:
    alpha: Convert BUG() to use unreachable()
    alpha: Add minimal support for software performance events
    alpha: Wire up missing/new syscalls

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    perf session: Make events_stats u64 to avoid overflow on 32-bit arches
    hw-breakpoints: Fix hardware breakpoints -> perf events dependency
    perf events: Dont report side-band events on each cpu for per-task-per-cpu events
    perf events, x86/stacktrace: Fix performance/softlockup by providing a special frame pointer-only stack walker
    perf events, x86/stacktrace: Make stack walking optional
    perf events: Remove unused perf_counter.h header file
    perf probe: Check new event name
    kprobe-tracer: Check new event/group name
    perf probe: Check whether debugfs path is correct
    perf probe: Fix libdwarf include path for Debian

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, irq: Allow 0xff for /proc/irq/[n]/smp_affinity on an 8-cpu system
    Makefile: Unexport LC_ALL instead of clearing it
    x86: Fix objdump version check in arch/x86/tools/chkobjdump.awk
    x86: Reenable TSC sync check at boot, even with NONSTOP_TSC
    x86: Don't use POSIX character classes in gen-insn-attr-x86.awk
    Makefile: set LC_CTYPE, LC_COLLATE, LC_NUMERIC to C
    x86: Increase MAX_EARLY_RES; insufficient on 32-bit NUMA
    x86: Fix checking of SRAT when node 0 ram is not from 0
    x86, cpuid: Add "volatile" to asm in native_cpuid()
    x86, msr: msrs_alloc/free for CONFIG_SMP=n
    x86, amd: Get multi-node CPU info from NodeId MSR instead of PCI config space
    x86: Add IA32_TSC_AUX MSR and use it
    x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers
    initramfs: add missing decompressor error check
    bzip2: Add missing checks for malloc returning NULL
    bzip2/lzma/gzip: pre-boot malloc doesn't return NULL on failure

    Linus Torvalds
     

19 Dec, 2009

5 commits


18 Dec, 2009

27 commits

  • The kbuild's select command doesn't propagate through the config
    dependencies.

    Hence the current rules of hardware breakpoint's config can't
    ensure perf can never be disabled under us.

    We have:

    config X86
    selects HAVE_HW_BREAKPOINTS

    config HAVE_HW_BREAKPOINTS
    select PERF_EVENTS

    config PERF_EVENTS
    [...]

    x86 will select the breakpoints but that won't propagate to perf
    events. The user can still disable the latter, but it is
    necessary for the breakpoints.

    What we need is:

    - x86 selects HAVE_HW_BREAKPOINTS and PERF_EVENTS
    - HAVE_HW_BREAKPOINTS depends on PERF_EVENTS

    so that we ensure PERF_EVENTS is enabled and frozen for x86.

    This fixes the following kind of build errors:

    In file included from arch/x86/kernel/hw_breakpoint.c:31:
    include/linux/hw_breakpoint.h: In function 'hw_breakpoint_addr':
    include/linux/hw_breakpoint.h:39: error: 'struct perf_event' has no member named 'attr'

    v2: Select also ANON_INODES from x86, required for perf

    Reported-by: Cyrill Gorcunov
    Reported-by: Michal Marek
    Reported-by: Andrew Randrianasulu
    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Paul Mackerras
    Cc: Randy Dunlap
    Cc: K.Prasad
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Use the new unreachable() macro instead of for(;;);

    Signed-off-by: David Daney
    CC: Richard Henderson
    CC: Ivan Kokshaysky
    CC: linux-alpha@vger.kernel.org
    Signed-off-by: Matt Turner

    David Daney
     
  • In the kernel the patch enables configuration of the perf event
    option, adds the perf_event_open syscall, and includes a minimal
    architecture specific asm/perf_event.h header file.

    Signed-off-by: Michael Cree
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Signed-off-by: Matt Turner

    Michael Cree
     
  • This wire up the: fallocate, timerfd_create, timerfd_settime,
    timerfd_gettime, signalfd4, eventfd2, epoll_create1, dup3, pipe2,
    inotify_init1, preadv, pwritev and rt_tgsigqueueinfo syscalls for
    the alpha port.

    For umount2, alpha have an "old" and "new" version called: oldumount and
    umount; so ignore umount2.

    Rebased on top of 6e17e8b9fb74b9fb9f6ea331f7f4a049c5b4c4b8 by Matt
    Turner.

    Signed-off-by: Daniele Calore
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Signed-off-by: Matt Turner

    Daniele Calore
     
  • John Blackwood reported:
    > on an older Dell PowerEdge 6650 system with 8 cpus (4 are hyper-threaded),
    > and 32 bit (x86) kernel, once you change the irq smp_affinity of an irq
    > to be less than all cpus in the system, you can never change really the
    > irq smp_affinity back to be all cpus in the system (0xff) again,
    > even though no error status is returned on the "/bin/echo ff >
    > /proc/irq/[n]/smp_affinity" operation.
    >
    > This is due to that fact that BAD_APICID has the same value as
    > all cpus (0xff) on 32bit kernels, and thus the value returned from
    > set_desc_affinity() via the cpu_mask_to_apicid_and() function is treated
    > as a failure in set_ioapic_affinity_irq_desc(), and no affinity changes
    > are made.

    set_desc_affinity() is already checking if the incoming cpu mask
    intersects with the cpu online mask or not. So there is no need
    for the apic op cpu_mask_to_apicid_and() to check again
    and return BAD_APICID.

    Remove the BAD_APICID return value from cpu_mask_to_apicid_and()
    and also fix set_desc_affinity() to return -1 instead of using BAD_APICID
    to represent error conditions (as cpu_mask_to_apicid_and() can return
    logical or physical apicid values and BAD_APICID is really to represent
    bad physical apic id).

    Reported-by: John Blackwood
    Root-caused-by: John Blackwood
    Signed-off-by: Suresh Siddha
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Suresh Siddha
     
  • The retry logic in ug_putc() is broken.

    If the TX fifo is not ready and the counter runs out it will have a
    value of -1 and no transfer should be attempted. Also, a counter
    with a value of 0 means that the TX fifo got ready in the last try
    and the transfer should be attempted.

    Reported-by: "Juha Leppanen"
    Signed-off-by: "Juha Leppanen"
    Signed-off-by: Albert Herranz
    Signed-off-by: Benjamin Herrenschmidt

    Albert Herranz
     
  • Since commit 57b150cce8e004ddd36330490a68bfb59b7271e9, desc->affinity
    of an irq is changed after calling desc->chip->set_affinity.
    Therefore we need to fix the irq_choose_cpu() not to depend on the
    desc->affinity for new mask.

    Signed-off-by: Jiajun Wu
    Signed-off-by: Li Yang
    Signed-off-by: Benjamin Herrenschmidt

    Yang Li
     
  • Commit d28513bc7f675d28b479db666d572e078ecf182d ("Fix bug in pagetable
    cache cleanup with CONFIG_PPC_SUBPAGE_PROT"), itself a fix for
    breakage caused by an earlier clean up patch of mine, contains a
    stupid bug. I changed the parameters of the subpage_protection()
    function, but failed to update one of the callers.

    This patch fixes it, and replaces a void * with a typed pointer so
    that the compiler will warn on such an error in future.

    Signed-off-by: David Gibson
    Signed-off-by: Benjamin Herrenschmidt

    David Gibson
     
  • The _ONSTACK variant should be used for on-stack completion,
    otherwise it will break lockdep.

    Signed-off-by: Yong Zhang
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: linuxppc-dev@ozlabs.org
    Signed-off-by: Benjamin Herrenschmidt

    Yong Zhang
     
  • On machines using the Apple U4 bridge (AKA IBM CPC945) PCIe interface such
    as the latest generation G5 machines x16 slot or the x16 slot of the
    PowerStation, MSIs are currently broken (and will oops when enabling).

    This fixes the oops and implements proper support for those. Instead of
    using the PCIe HT bridge conversion, on such slots we need to use
    a bunch of magic registers in the bridge as the MSI target, encoding
    the interrupt number in the low bits of the address itself

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • This patch fixes the handling of VSX alignment faults in little-endian
    mode (the current code assumes the processor is in big-endian mode).

    The patch also makes the handlers clear the top 8 bytes of the register
    when handling an 8 byte VSX load.

    This is based on 2.6.32.

    Signed-off-by: Neil Campbell
    Cc:
    Acked-by: Michael Neuling
    Signed-off-by: Benjamin Herrenschmidt

    Neil Campbell
     
  • The function name of cpumask_clear_cpu was not correct. Fortunately
    nobody uses that code with hotplug yet :-)

    Reported-by: Jin Qing
    Signed-off-by: Li Yang
    Signed-off-by: Benjamin Herrenschmidt

    Yang Li
     
  • This time without the funny characters.

    Fix following build errors generated with DEBUG=1

    cc1: warnings being treated as errors
    arch/powerpc/mm/hash_utils_64.c: In function 'htab_dt_scan_page_sizes':
    arch/powerpc/mm/hash_utils_64.c:343: error: format '%04x' expects type 'unsigned int', but argument 4 has type 'long unsigned int'
    arch/powerpc/mm/hash_utils_64.c:343: error: format '%08x' expects type 'unsigned int', but argument 5 has type 'long unsigned int'
    arch/powerpc/mm/hash_utils_64.c: In function 'htab_initialize':
    arch/powerpc/mm/hash_utils_64.c:666: error: format '%x' expects type 'unsigned int', but argument 4 has type 'long unsigned int'
    ... SNIP ...

    Signed-off-by: Sachin Sant
    Signed-off-by: Benjamin Herrenschmidt

    Sachin P. Sant
     
  • Use the new unreachable() macro instead of for(;;);

    Signed-off-by: David Daney
    CC: Benjamin Herrenschmidt
    CC: Paul Mackerras
    CC: linuxppc-dev@ozlabs.org
    Signed-off-by: Benjamin Herrenschmidt

    David Daney
     
  • And add the __acquires() and __releases() annotations, while at it.

    Signed-off-by: Gautham R Shenoy
    Signed-off-by: Benjamin Herrenschmidt

    Gautham R Shenoy
     
  • If an online-attempt on a CPU which has been offlined using H_CEDE
    with an appropriate cede latency hint fails, don't panic.

    Instead print the error message and let the __cpu_up() code notify the
    CPU Hotplug framework of the failure, which in turn can notify the
    other subsystem through CPU_UP_CANCELED.

    Signed-off-by: Gautham R Shenoy
    Signed-off-by: Benjamin Herrenschmidt

    Gautham R Shenoy
     
  • Set need to call __set_pte_at() and not set_pte_at() from __change_page_attr()
    since the later will perform checks with CONFIG_DEBUG_VM that aren't suitable
    to the way we override an existing PTE. (More specifically, it doesn't let
    you write over a present PTE).

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • Now we have high res timers there is less of a reason for a high HZ value.
    Furthermore I think there a few reasons we should reduce HZ to 100:

    - Timer interrupt overhead. While this overhead is small, there are
    applications that are very sensitive to jitter (eg some HPC apps).

    - Issues with the timer wheel code. When coming out of NO_HZ idle we work our
    way through the timer code one tick at a time. If we have been idle a long
    time, this adds up - I sometimes see milliseconds of time spent in that
    loop.

    Long term we should fix the timer wheel algorithm, but for now if we reduce
    HZ then we reduce the amount of work the timer code has to do when coming
    out of idle.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • Token what? Lets save some space in our powerpc kernels and remove token
    ring support.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • Machines with acenic adapters are rare these days, so we may as well make it
    a module. Cramfs is also very rarely used so we can make it a module.

    Together this saves 143kB on a 64bit compile:

    text data bss dec hex filename
    8247176 1729404 1221988 11198568 aae068 vmlinux~
    8134997 1727588 1188836 11051421 a8a19d vmlinux

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • It's possible to set CONFIG_XICS without CONFIG_PCI_MSI. When that happens,
    the kernel fails to build with

    arch/powerpc/platforms/built-in.o: In function `.xics_startup':
    xics.c:(.text+0x12f60): undefined reference to `.unmask_msi_irq' make: ***
    [.tmp_vmlinux1] Error 1

    Furthermore, as noted by Benjamin Herrenschmidt, "CONFIG_XICS should be
    made invisible and selected by PSERIES."

    This patch fixes PSERIES to select both options

    Signed-off-by: Mel Gorman
    Signed-off-by: Benjamin Herrenschmidt

    Mel Gorman
     
  • The wrong variable was returned in the case of an error.

    Signed-off-by: Roel Kluin
    Cc: Kumar Gala
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Benjamin Herrenschmidt

    Roel Kluin
     
  • Signed-off-by: Alexey Dobriyan
    Cc: Benjamin Herrenschmidt
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Benjamin Herrenschmidt

    Alexey Dobriyan
     
  • The Collaborative Memory Manager (CMM) module allocates individual pages
    over time that are not migratable. On a long running system this can
    severely impact the ability to find enough pages to support a hotplug
    memory remove operation.

    This patch adds a memory isolation notifier and a memory hotplug notifier.
    The memory isolation notifier will return the number of pages found in
    the range specified. This is used to determine if all of the used pages
    in a pageblock are owned by the balloon (or other entities in the notifier
    chain). The hotplug notifier will free pages in the range which is to be
    removed. The priority of this hotplug notifier is low so that it will be
    called near last, this helps avoids removing loaned pages in operations
    that fail due to other handlers.

    CMM activity will be halted when hotplug remove operations are active and
    resume activity after a delay period to allow the hypervisor time to
    adjust.

    Signed-off-by: Robert Jennings
    Cc: Mel Gorman
    Cc: Ingo Molnar
    Cc: Brian King
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Gerald Schaefer
    Cc: KAMEZAWA Hiroyuki
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Benjamin Herrenschmidt

    Robert Jennings
     
  • …/rusty/linux-2.6-for-linus

    * 'cpumask-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    cpumask: rename tsk_cpumask to tsk_cpus_allowed
    cpumask: don't recommend set_cpus_allowed hack in Documentation/cpu-hotplug.txt
    cpumask: avoid dereferencing struct cpumask
    cpumask: convert drivers/idle/i7300_idle.c to cpumask_var_t
    cpumask: use modern cpumask style in drivers/scsi/fcoe/fcoe.c
    cpumask: avoid deprecated function in mm/slab.c
    cpumask: use cpu_online in kernel/perf_event.c

    Linus Torvalds
     
  • …/git/tmlind/linux-omap-2.6

    * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
    OMAP3: serial - fix bug introduced in
    mfd: twl: fix twl4030 rename for remaining driver, board files
    USB ehci: replace mach header with plat
    omap3: Allow EHCI to be built on OMAP3

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (71 commits)
    MIPS: Lasat: Fix botched changes to sysctl code.
    RTC: rtc-cmos.c: Fix warning on MIPS
    MIPS: Cleanup random differences beween lmo and Linus' kernel.
    MIPS: No longer hardwire CONFIG_EMBEDDED to y
    MIPS: Fix and enhance built-in kernel command line
    MIPS: eXcite: Remove platform.
    MIPS: Loongson: Cleanups of serial port support
    MIPS: Lemote 2F: Suspend CS5536 MFGPT Timer
    MIPS: Excite: move iodev_remove to .devexit.text
    MIPS: Lasat: Convert to proc_fops / seq_file
    MIPS: Cleanup signal code initialization
    MIPS: Modularize COP2 handling
    MIPS: Move EARLY_PRINTK to Kconfig.debug
    MIPS: Yeeloong 2F: Cleanup reset logic using the new ec_write function
    MIPS: Yeeloong 2F: Add LID open event as the wakeup event
    MIPS: Yeeloong 2F: Add basic EC operations
    MIPS: Move several variables from .bss to .init.data
    MIPS: Tracing: Make function graph tracer work with -mmcount-ra-address
    MIPS: Tracing: Reserve $12(t0) for mcount-ra-address of gcc 4.5
    MIPS: Tracing: Make ftrace for MIPS work without -fno-omit-frame-pointer
    ...

    Linus Torvalds