15 Aug, 2009

1 commit

  • The persistent clock of some architectures (e.g. s390) have a
    better granularity than seconds. To reduce the delta between the
    host clock and the guest clock in a virtualized system change the
    read_persistent_clock function to return a struct timespec.

    Signed-off-by: Martin Schwidefsky
    Cc: Ingo Molnar
    Acked-by: John Stultz
    Cc: Daniel Walker
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Martin Schwidefsky
     

11 Aug, 2009

1 commit

  • …x/kernel/git/tip/linux-2.6-tip

    * 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)
    perf_counter: Zero dead bytes from ftrace raw samples size alignment
    perf_counter: Subtract the buffer size field from the event record size
    perf_counter: Require CAP_SYS_ADMIN for raw tracepoint data
    perf_counter: Correct PERF_SAMPLE_RAW output
    perf tools: callchain: Fix bad rounding of minimum rate
    perf_counter tools: Fix libbfd detection for systems with libz dependency
    perf: "Longum est iter per praecepta, breve et efficax per exempla"
    perf_counter: Fix a race on perf_counter_ctx
    perf_counter: Fix tracepoint sampling to be part of generic sampling
    perf_counter: Work around gcc warning by initializing tracepoint record unconditionally
    perf tools: callchain: Fix sum of percentages to be 100% by displaying amount of ignored chains in fractal mode
    perf tools: callchain: Fix 'perf report' display to be callchain by default
    perf tools: callchain: Fix spurious 'perf report' warnings: ignore empty callchains
    perf record: Fix the -A UI for empty or non-existent perf.data
    perf util: Fix do_read() to fail on EOF instead of busy-looping
    perf list: Fix the output to not include tracepoints without an id
    perf_counter/powerpc: Fix oops on cpus without perf_counter hardware support
    perf stat: Fix tool option consistency: rename -S/--scale to -c/--scale
    perf report: Add debug help for the finding of symbol bugs - show the symtab origin (DSO, build-id, kernel, etc)
    perf report: Fix per task mult-counter stat reporting
    ...

    Linus Torvalds
     

10 Aug, 2009

2 commits

  • On an iMac G5, the b43 driver is failing to initialise because trying to
    set the dma mask to 30-bit fails. Even though there's only 512MiB of RAM
    in the machine anyway:
    https://bugzilla.redhat.com/show_bug.cgi?id=514787

    We should probably let it succeed if the available RAM in the system
    doesn't exceed the requested limit.

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

    Benjamin Herrenschmidt
     
  • * 'kvm-updates/2.6.31' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: Avoid redelivery of edge interrupt before next edge
    KVM: MMU: limit rmap chain length
    KVM: ia64: fix build failures due to ia64/unsigned long mismatches
    KVM: Make KVM_HPAGES_PER_HPAGE unsigned long to avoid build error on powerpc
    KVM: fix ack not being delivered when msi present
    KVM: s390: fix wait_queue handling
    KVM: VMX: Fix locking imbalance on emulation failure
    KVM: VMX: Fix locking order in handle_invalid_guest_state
    KVM: MMU: handle n_free_mmu_pages > n_alloc_mmu_pages in kvm_mmu_change_mmu_pages
    KVM: SVM: force new asid on vcpu migration
    KVM: x86: verify MTRR/PAT validity
    KVM: PIT: fix kpit_elapsed division by zero
    KVM: Fix KVM_GET_MSR_INDEX_LIST

    Linus Torvalds
     

09 Aug, 2009

1 commit

  • If we have the powerpc perf_counter backend compiled in, but
    the cpu we are running on is one where we don't support the
    PMU, we currently oops in hw_perf_group_sched_in if we try to
    use any counters, because ppmu is NULL in that case, and we
    unconditionally dereference ppmu.

    This fixes the problem by adding a check if ppmu is NULL at the
    beginning of hw_perf_group_sched_in, and also at the beginning
    of the other functions that get called from the perf_counter
    core, i.e. hw_perf_disable, hw_perf_enable, and
    hw_perf_counter_setup.

    Signed-off-by: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: benh@kernel.crashing.org
    Signed-off-by: Ingo Molnar

    Paul Mackerras
     

06 Aug, 2009

1 commit


05 Aug, 2009

1 commit


30 Jul, 2009

7 commits

  • Signed-off-by: Kumar Gala

    Kumar Gala
     
  • General update of defconfig including the following notable changes:
    - Enable Highmem support.
    - Support for PCMCIA based daughter card.

    Signed-off-by: Martyn Welch
    Signed-off-by: Kumar Gala

    Martyn Welch
     
  • General update of defconfig including the following notable changes:
    - Enable GPIO access via sysfs on GE Fanuc's PPC9A.
    - Enable Highmem support.
    - Support for PCMCIA based daughter card.

    Signed-off-by: Martyn Welch
    Signed-off-by: Kumar Gala

    Martyn Welch
     
  • U-Boot maps PCI IO at 0xe0300000, while current dts files specify
    0xe2000000. This leads to the following oops with CONFIG_8139TOO_PIO=y.

    8139too Fast Ethernet driver 0.9.28
    Machine check in kernel mode.
    Caused by (from SRR1=41000): Transfer error ack signal
    Oops: Machine check, sig: 7 [#1]
    MPC837x RDB
    [...]
    NIP [00000900] 0x900
    LR [c0439df8] rtl8139_init_board+0x238/0x524
    Call Trace:
    [cf831d90] [c0439dcc] rtl8139_init_board+0x20c/0x524 (unreliable)
    [cf831de0] [c043a15c] rtl8139_init_one+0x78/0x65c
    [cf831e40] [c0235250] pci_call_probe+0x20/0x30
    [...]

    This patch fixes the issue by specifying the correct PCI IO base
    address.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • Sometimes (e.g. when there are no UEMs attached to a board)
    fsl_pq_mdio_find_free() fails to find a spare address for a TBI PHY,
    this is because get_phy_id() returns bogus 0x0000ffff values
    (0xffffffff is expected), and therefore mdio bus probing fails with
    the following message:

    fsl-pq_mdio: probe of e0082120.mdio failed with error -16

    And obviously ethernet doesn't work after this.

    This patch solves the problem by adding tbi-phy node into mdio node,
    so that we won't scan for spare addresses, we'll just use a fixed one.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • Linux isn't able to detect link changes on ethernet ports that were
    used by U-Boot. This is because U-Boot wrongly clears interrupt
    polarity bit (INTPOL, 0x400) in the extended status register (EXT_SR,
    0x1b) of Marvell PHYs.

    There is no easy way for PHY drivers to know IRQ line polarity (we
    could extract it from the device tree and pass it to phydevs, but
    that'll be quite a lot of work), so for now just reset the PHYs to
    their default states.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • In switch_mmu_context() if we call steal_context_smp() to get a context
    to use we shouldn't fall through and than call steal_context_up(). Doing
    so can be problematic in that the 'mm' that steal_context_up() ends up
    using will not get marked dirty in the stale_map[] for other CPUs that
    might have used that mm. Thus we could end up with stale TLB entries in
    the other CPUs that can cause all kinda of havoc.

    Signed-off-by: Kumar Gala

    Kumar Gala
     

28 Jul, 2009

1 commit

  • mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()

    Upcoming paches to support the new 64-bit "BookE" powerpc architecture
    will need to have the virtual address corresponding to PTE page when
    freeing it, due to the way the HW table walker works.

    Basically, the TLB can be loaded with "large" pages that cover the whole
    virtual space (well, sort-of, half of it actually) represented by a PTE
    page, and which contain an "indirect" bit indicating that this TLB entry
    RPN points to an array of PTEs from which the TLB can then create direct
    entries. Thus, in order to invalidate those when PTE pages are deleted,
    we need the virtual address to pass to tlbilx or tlbivax instructions.

    The old trick of sticking it somewhere in the PTE page struct page sucks
    too much, the address is almost readily available in all call sites and
    almost everybody implemets these as macros, so we may as well add the
    argument everywhere. I added it to the pmd and pud variants for consistency.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: David Howells [MN10300 & FRV]
    Acked-by: Nick Piggin
    Acked-by: Martin Schwidefsky [s390]
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

15 Jul, 2009

2 commits


13 Jul, 2009

1 commit

  • * Remove smp_lock.h from files which don't need it (including some headers!)
    * Add smp_lock.h to files which do need it
    * Make smp_lock.h include conditional in hardirq.h
    It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

    This will make hardirq.h inclusion cheaper for every PREEMPT=n config
    (which includes allmodconfig/allyesconfig, BTW)

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

11 Jul, 2009

2 commits

  • …x/kernel/git/tip/linux-2.6-tip

    * 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (50 commits)
    perf report: Add "Fractal" mode output - support callchains with relative overhead rate
    perf_counter tools: callchains: Manage the cumul hits on the fly
    perf report: Change default callchain parameters
    perf report: Use a modifiable string for default callchain options
    perf report: Warn on callchain output request from non-callchain file
    x86: atomic64: Inline atomic64_read() again
    x86: atomic64: Clean up atomic64_sub_and_test() and atomic64_add_negative()
    x86: atomic64: Improve atomic64_xchg()
    x86: atomic64: Export APIs to modules
    x86: atomic64: Improve atomic64_read()
    x86: atomic64: Code atomic(64)_read and atomic(64)_set in C not CPP
    x86: atomic64: Fix unclean type use in atomic64_xchg()
    x86: atomic64: Make atomic_read() type-safe
    x86: atomic64: Reduce size of functions
    x86: atomic64: Improve atomic64_add_return()
    x86: atomic64: Improve cmpxchg8b()
    x86: atomic64: Improve atomic64_read()
    x86: atomic64: Move the 32-bit atomic64_t implementation to a .c file
    x86: atomic64: The atomic64_t data type should be 8 bytes aligned on 32-bit too
    perf report: Annotate variable initialization
    ...

    Linus Torvalds
     
  • Pull the initial preempt_count value into a single
    definition site.

    Maintainers for: alpha, ia64 and m68k, please have a look,
    your arch code is funny.

    The header magic is a bit odd, but similar to the KERNEL_DS
    one, CPP waits with expanding these macros until the
    INIT_THREAD_INFO macro itself is expanded, which is in
    arch/*/kernel/init_task.c where we've already included
    sched.h so we're good.

    Cc: tony.luck@intel.com
    Cc: rth@twiddle.net
    Cc: geert@linux-m68k.org
    Signed-off-by: Peter Zijlstra
    Acked-by: Matt Mackall
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     

08 Jul, 2009

12 commits

  • This patch fixes various badnesses like this for all interrupt
    controllers:

    ------------[ cut here ]------------
    Badness at c04db9dc [verbose debug info unavailable]
    NIP: c04db9dc LR: c04db9ac CTR: 00000000
    REGS: c053de30 TRAP: 0700 Not tainted (2.6.31-rc1-00432-ge69b2b5-dirty)
    MSR: 00021000 CR: 22020084 XER: 00000000
    TASK = c0500480[0] 'swapper' THREAD: c053c000
    GPR00: 00000001 c053dee0 c0500480 00000000 00000050 00000020 3fffffff 00000000
    GPR08: 00000001 c0540000 e0080080 00000000 22000084 64183600 3ff8f800 00000000
    GPR16: 841b0240 449a0303 00000000 00000000 00000000 00000000 00000000 c04f5bf4
    GPR24: 00000000 00000000 00000000 00000050 00000020 00000000 3fffffff 00000050
    NIP [c04db9dc] alloc_arch_preferred_bootmem+0x48/0x74
    LR [c04db9ac] alloc_arch_preferred_bootmem+0x18/0x74
    Call Trace:
    [c053dee0] [c000a5a4] __of_address_to_resource+0x44/0xd0 (unreliable)
    [c053def0] [c04dba58] ___alloc_bootmem_nopanic+0x50/0x108
    [c053df20] [c04dbb28] ___alloc_bootmem+0x18/0x50
    [c053df30] [c04d5de0] qe_ic_init+0x5c/0x1b0
    [c053df70] [c04d77b0] mpc85xx_mds_pic_init+0xb8/0x10c
    [c053dfb0] [c04cf374] init_IRQ+0x28/0x3c

    p.s. commit 85355bb272db31a3f2dd99d547eef794805e1319 ("powerpc: Fix
    mpic alloc warning") missed some alloc_bootmem() instances, this is
    now fixed.

    Signed-off-by: Anton Vorontsov
    Acked-by: Timur Tabi
    Signed-off-by: Benjamin Herrenschmidt

    Anton Vorontsov
     
  • Current implementation of spin_event_timeout can be interrupted by an
    IRQ or context switch after testing the condition, but before checking
    the timeout. This can cause the loop to report a timeout when the
    condition actually became true in the middle.

    This patch adds one final check of the condition upon exit of the loop
    if the last test of the condition was still false.

    Signed-off-by: Grant Likely
    Acked-by: Timur Tabi
    Signed-off-by: Benjamin Herrenschmidt

    Grant Likely
     
  • pr_debug() can now result in code being generated even when DEBUG
    is not defined. That's not really desirable in some places.

    With CONFIG_DYNAMIC_DEBUG=y:

    size before:
    text data bss dec hex filename
    2036 368 8 2412 96c arch/powerpc/mm/pgtable.o

    size after:
    text data bss dec hex filename
    1677 248 8 1933 78d arch/powerpc/mm/pgtable.o

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • pr_debug() can now result in code being generated even when DEBUG
    is not defined. That's not really desirable in some places.

    With CONFIG_DYNAMIC_DEBUG=y:

    size before:
    text data bss dec hex filename
    7083 1616 0 8699 21fb arch/powerpc/../axon_msi.o

    size after:
    text data bss dec hex filename
    5772 1208 0 6980 1b44 arch/powerpc/../axon_msi.o

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • pr_debug() can now result in code being generated even when DEBUG
    is not defined. That's not really desirable in some places.

    With CONFIG_DYNAMIC_DEBUG=y:

    size before:
    text data bss dec hex filename
    3252 384 0 3636 e34 arch/powerpc/mm/gup.o

    size after:
    text data bss dec hex filename
    2576 96 0 2672 a70 arch/powerpc/mm/gup.o

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • pr_debug() can now result in code being generated even when DEBUG
    is not defined. That's not really desirable in some places.

    With CONFIG_DYNAMIC_DEBUG=y:

    size before:
    text data bss dec hex filename
    3261 416 4 3681 e61 arch/powerpc/mm/slb.o

    size after:
    text data bss dec hex filename
    2861 248 4 3113 c29 arch/powerpc/mm/slb.o

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • Remove duplicated #include('s) in
    arch/powerpc/kernel/mpc7450-pmu.c
    arch/powerpc/kernel/ppc970-pmu.c

    Signed-off-by: Huang Weiyi
    Signed-off-by: Benjamin Herrenschmidt

    Huang Weiyi
     
  • pr_debug() can now result in code being generated even when DEBUG
    is not defined. That's not really desirable in some places.

    With CONFIG_DYNAMIC_DEBUG=y:

    size before:
    text data bss dec hex filename
    1508 48 28 1584 630 powerpc/mm/mmu_context_nohash.o

    size after:
    text data bss dec hex filename
    1088 0 28 1116 45c powerpc/mm/mmu_context_nohash.o

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • pr_debug() can now result in code being generated even when DEBUG
    is not defined. That's not really desirable in some places.

    With CONFIG_DYNAMIC_DEBUG=y:

    size before:
    text data bss dec hex filename
    7720 5488 296 13504 34c0 platforms/pseries/xics.o

    size after:
    text data bss dec hex filename
    7535 5456 296 13287 33e7 platforms/pseries/xics.o

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • Signed-off-by: Joe Perches
    Acked-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Joe Perches
     
  • pr_debug() can now result in code being generated even when DEBUG
    is not defined. That's not really desirable in some places.

    In particular, pSeries_lpar_hpte_insert() goes from 185 instructions
    to 77 instructions as a result of this patch. Luckily that code
    isn't called very often ...

    With CONFIG_DYNAMIC_DEBUG=y:

    size before:
    text data bss dec hex filename
    7284 1552 296 9132 23ac platforms/pseries/lpar.o

    size after:
    text data bss dec hex filename
    5806 1096 296 7198 1c1e platforms/pseries/lpar.o

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • Benjamin Herrenschmidt
     

06 Jul, 2009

2 commits


05 Jul, 2009

1 commit


01 Jul, 2009

2 commits

  • POWER7 has the same PR/HV bit layout as POWER6, so set the flag.

    Signed-off-by: Anton Blanchard
    Acked-by: Paul Mackerras
    Cc: a.p.zijlstra@chello.nl
    Cc: benh@kernel.crashing.org
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Anton Blanchard
     
  • …x/kernel/git/tip/linux-2.6-tip

    * 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (47 commits)
    perf report: Add --symbols parameter
    perf report: Add --comms parameter
    perf report: Add --dsos parameter
    perf_counter tools: Adjust only prelinked symbol's addresses
    perf_counter: Provide a way to enable counters on exec
    perf_counter tools: Reduce perf stat measurement overhead/skew
    perf stat: Use percentages for scaling output
    perf_counter, x86: Update x86_pmu after WARN()
    perf stat: Micro-optimize the code: memcpy is only required if no event is selected and !null_run
    perf stat: Improve output
    perf stat: Fix multi-run stats
    perf stat: Add -n/--null option to run without counters
    perf_counter tools: Remove dead code
    perf_counter: Complete counter swap
    perf report: Print sorted callchains per histogram entries
    perf_counter tools: Prepare a small callchain framework
    perf record: Fix unhandled io return value
    perf_counter tools: Add alias for 'l1d' and 'l1i'
    perf-report: Add bare minimum PERF_EVENT_READ parsing
    perf-report: Add modes for inherited stats and no-samples
    ...

    Linus Torvalds
     

26 Jun, 2009

3 commits

  • Benjamin Herrenschmidt
     
  • When using 64k page sizes, our PTE pages are split in two halves,
    the second half containing the "extension" used to keep track of
    individual 4k pages when not using HW 64k pages.

    However, our page tables used for hugetlb have a slightly different
    format and don't carry that "second half".

    Our code that batched PTEs to be invalidated unconditionally reads
    the "second half" (to put it into the batch), which means that when
    called to invalidate hugetlb PTEs, it will access unrelated memory.

    It breaks when CONFIG_DEBUG_PAGEALLOC is enabled.

    This fixes it by only accessing the second half when the _PAGE_COMBO
    bit is set in the first half, which indicates that we are dealing with
    a "combo" page which represents 16x4k subpages. Anything else shouldn't
    have this bit set and thus not require loading from the second half.

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • The function udbg_44x_as1_flush() has the wrong prototype causing
    a warning when enabling 440 early debug.

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt