06 Dec, 2009

2 commits

  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (470 commits)
    x86: Fix comments of register/stack access functions
    perf tools: Replace %m with %a in sscanf
    hw-breakpoints: Keep track of user disabled breakpoints
    tracing/syscalls: Make syscall events print callbacks static
    tracing: Add DEFINE_EVENT(), DEFINE_SINGLE_EVENT() support to docbook
    perf: Don't free perf_mmap_data until work has been done
    perf_event: Fix compile error
    perf tools: Fix _GNU_SOURCE macro related strndup() build error
    trace_syscalls: Remove unused syscall_name_to_nr()
    trace_syscalls: Simplify syscall profile
    trace_syscalls: Remove duplicate init_enter_##sname()
    trace_syscalls: Add syscall_nr field to struct syscall_metadata
    trace_syscalls: Remove enter_id exit_id
    trace_syscalls: Set event_enter_##sname->data to its metadata
    trace_syscalls: Remove unused event_syscall_enter and event_syscall_exit
    perf_event: Initialize data.period in perf_swevent_hrtimer()
    perf probe: Simplify event naming
    perf probe: Add --list option for listing current probe events
    perf probe: Add argv_split() from lib/argv_split.c
    perf probe: Move probe event utility functions to probe-event.c
    ...

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

    * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (63 commits)
    x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking up the PCI tree
    x86/amd-iommu: Remove amd_iommu_pd_table
    x86/amd-iommu: Move reset_iommu_command_buffer out of locked code
    x86/amd-iommu: Cleanup DTE flushing code
    x86/amd-iommu: Introduce iommu_flush_device() function
    x86/amd-iommu: Cleanup attach/detach_device code
    x86/amd-iommu: Keep devices per domain in a list
    x86/amd-iommu: Add device bind reference counting
    x86/amd-iommu: Use dev->arch->iommu to store iommu related information
    x86/amd-iommu: Remove support for domain sharing
    x86/amd-iommu: Rearrange dma_ops related functions
    x86/amd-iommu: Move some pte allocation functions in the right section
    x86/amd-iommu: Remove iommu parameter from dma_ops_domain_alloc
    x86/amd-iommu: Use get_device_id and check_device where appropriate
    x86/amd-iommu: Move find_protection_domain to helper functions
    x86/amd-iommu: Simplify get_device_resources()
    x86/amd-iommu: Let domain_for_device handle aliases
    x86/amd-iommu: Remove iommu specific handling from dma_ops path
    x86/amd-iommu: Remove iommu parameter from __(un)map_single
    x86/amd-iommu: Make alloc_new_range aware of multiple IOMMUs
    ...

    Linus Torvalds
     

01 Dec, 2009

1 commit

  • Code was added to mm/higmem.c that depends on several
    kmap types that powerpc does not support. We add dummy
    invalid definitions for KM_NMI, KM_NM_PTE, and KM_IRQ_PTE.

    According to list discussion, this fix should not be needed
    anymore starting with 2.6.33. The code is commented to this
    effect so hopefully we will remember to remove this.

    Signed-off-by: Becky Bruce
    Signed-off-by: Benjamin Herrenschmidt

    Becky Bruce
     

18 Nov, 2009

1 commit

  • …ux/kernel/git/josh/linux-misc

    * 'hostprogs-wmissing-prototypes' of git://git.kernel.org/pub/scm/linux/kernel/git/josh/linux-misc:
    Makefile: Add -Wmising-prototypes to HOSTCFLAGS
    oss: Mark loadhex static in hex2hex.c
    dtc: Mark various internal functions static
    dtc: Set "noinput" in the lexer to avoid an unused function
    drm: radeon: Mark several functions static in mkregtable
    arch/sparc/boot/*.c: Mark various internal functions static
    arch/powerpc/boot/addRamDisk.c: Mark several internal functions static
    arch/alpha/boot/tools/objstrip.c: Mark "usage" static
    Documentation/vm/page-types.c: Declare checked_open static
    genksyms: Mark is_reserved_word static
    kconfig: Mark various internal functions static
    kconfig: Make zconf.y work with current bison

    Linus Torvalds
     

17 Nov, 2009

1 commit


16 Nov, 2009

1 commit


15 Nov, 2009

1 commit


11 Nov, 2009

1 commit


10 Nov, 2009

1 commit

  • This enables us to avoid printing swiotlb memory info when we
    initialize swiotlb. After swiotlb initialization, we could find
    that we don't need swiotlb.

    This patch removes the code to print swiotlb memory info in
    swiotlb_init() and exports the function to do that.

    Signed-off-by: FUJITA Tomonori
    Cc: chrisw@sous-sol.org
    Cc: dwmw2@infradead.org
    Cc: joerg.roedel@amd.com
    Cc: muli@il.ibm.com
    Cc: tony.luck@intel.com
    Cc: benh@kernel.crashing.org
    LKML-Reference:
    [ -v2: merge up conflict ]
    Signed-off-by: Ingo Molnar

    FUJITA Tomonori
     

05 Nov, 2009

10 commits


30 Oct, 2009

1 commit


28 Oct, 2009

14 commits

  • Add some dummy symbols for the branches at 0xf00, 0xf20 and 0xf40,
    otherwise hits end up in trap_0e which is confusing to the user.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • If CONFIG_PPC_ISERIES isn't defined we end up with
    iseries_check_pending_irqs and do_work at the same address.
    perf ends up picking iseries_check_pending_irqs which creates
    confusing backtraces. Hide it.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • A lot of hits in "setup" doesn't make much sense, so hide this symbol and
    allow all the hits to end up in copy_4k_page.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • Kernel modules should be able to place their debug output inside our
    powerpc debugfs directory.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • The overhead of HCALL_STATS is quite high and the functionality is very
    rarely used. Key statistics are also missing (eg min/max).

    With the new hcall tracepoints much more powerful tracing can be done in
    a kernel module. Lets disable this by default.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • While most users of the hcall tracepoints will only want the opcode
    and return code, some will want all the arguments. To avoid the
    complexity of using varargs we pass a pointer to the register save
    area, which contains all the arguments.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • Add hcall_entry and hcall_exit tracepoints. This replaces the inline
    assembly HCALL_STATS code and converts it to use the new tracepoints.

    To keep the disabled case as quick as possible, we embed a status word
    in the TOC so we can get at it with a single load. By doing so we
    keep the overhead at a minimum. Time taken for a null hcall:

    No tracepoint code: 135.79 cycles
    Disabled tracepoints: 137.95 cycles

    For reference, before this patch enabling HCALL_STATS resulted in a null
    hcall of 201.44 cycles!

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • We can monitor the effectiveness of our power management of both the
    kernel and hypervisor by probing the timer interrupt. For example, on
    this box we see 10.37s timer interrupts on an idle core:

    -0 [010] 3900.671297: timer_interrupt_entry: pt_regs=c0000000ce1e7b10
    -0 [010] 3900.671302: timer_interrupt_exit: pt_regs=c0000000ce1e7b10

    -0 [010] 3911.042963: timer_interrupt_entry: pt_regs=c0000000ce1e7b10
    -0 [010] 3911.042968: timer_interrupt_exit: pt_regs=c0000000ce1e7b10

    -0 [010] 3921.414630: timer_interrupt_entry: pt_regs=c0000000ce1e7b10
    -0 [010] 3921.414635: timer_interrupt_exit: pt_regs=c0000000ce1e7b10

    Since we have a 207MHz decrementer it will go negative and fire every 10.37s
    even if Linux is completely idle.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • This adds powerpc-specific tracepoints for interrupt entry and exit.

    While we already have generic irq_handler_entry and irq_handler_exit
    tracepoints there are cases on our virtualised powerpc machines where an
    interrupt is presented to the OS, but subsequently handled by the hypervisor.
    This means no OS interrupt handler is invoked.

    Here is an example on a POWER6 machine with the patch below applied:

    -0 [006] 3243.949840744: irq_entry: pt_regs=c0000000ce31fb10
    -0 [006] 3243.949850520: irq_exit: pt_regs=c0000000ce31fb10

    -0 [007] 3243.950218208: irq_entry: pt_regs=c0000000ce323b10
    -0 [007] 3243.950224080: irq_exit: pt_regs=c0000000ce323b10

    -0 [000] 3244.021879320: irq_entry: pt_regs=c000000000a63aa0
    -0 [000] 3244.021883616: irq_handler_entry: irq=87 handler=eth0
    -0 [000] 3244.021887328: irq_handler_exit: irq=87 return=handled
    -0 [000] 3244.021897408: irq_exit: pt_regs=c000000000a63aa0

    Here we see two phantom interrupts (no handler was invoked), followed
    by a real interrupt for eth0. Without the tracepoints in this patch we
    would have missed the phantom interrupts.

    Signed-off-by: Anton Blanchard
    Acked-by: Steven Rostedt
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • Hook up the alignment-faults and emulation-faults events for powerpc.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • perf_event wants a separate event for alignment and emulation faults,
    so create another emulation event. This will make it easy to hook in
    perf_event at one spot.

    We pass in regs which will be required for these events.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • In continuous sampling mode we want the SDAR to update. While we can
    select between dcache misses and ERAT (L1-TLB) misses, a decent default
    is to enable both.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • When we take an exception and the SDAR isn't synchronised we currently
    log 0 as the address. Unfortunately this is a pretty common value, so
    use ~0UL instead.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     
  • Benjamin Herrenschmidt
     

27 Oct, 2009

6 commits

  • Based on an original patch by Valentine Barshak

    Use preempt_schedule_irq to prevent infinite irq-entry and
    eventual stack overflow problems with fast-paced IRQ sources.

    This kind of problems has been observed on the PASemi Electra IDE
    controller. We have to make sure we are soft-disabled before calling
    preempt_schedule_irq and hard disable interrupts after that
    to avoid unrecoverable exceptions.

    This patch also moves the "clrrdi r9,r1,THREAD_SHIFT" out of
    the #ifdef CONFIG_PPC_BOOK3E scope, since r9 is clobbered
    and has to be restored in both cases.

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • Fix the following 3 issues:

    arch/powerpc/kernel/process.c: In function 'arch_randomize_brk':
    arch/powerpc/kernel/process.c:1183: error: 'mmu_highuser_ssize' undeclared (first use in this function)
    arch/powerpc/kernel/process.c:1183: error: (Each undeclared identifier is reported only once
    arch/powerpc/kernel/process.c:1183: error: for each function it appears in.)
    arch/powerpc/kernel/process.c:1183: error: 'MMU_SEGSIZE_1T' undeclared (first use in this function)

    In file included from arch/powerpc/kernel/setup_64.c:60:
    arch/powerpc/include/asm/mmu-hash64.h:132: error: redefinition of 'struct mmu_psize_def'
    arch/powerpc/include/asm/mmu-hash64.h:159: error: expected identifier or '(' before numeric constant
    arch/powerpc/include/asm/mmu-hash64.h:396: error: conflicting types for 'mm_context_t'
    arch/powerpc/include/asm/mmu-book3e.h:184: error: previous declaration of 'mm_context_t' was here

    cc1: warnings being treated as errors
    arch/powerpc/kernel/pci_64.c: In function 'pcibios_unmap_io_space':
    arch/powerpc/kernel/pci_64.c:100: error: unused variable 'res'

    Signed-off-by: Kumar Gala
    Signed-off-by: Benjamin Herrenschmidt

    Kumar Gala
     
  • This defconfig's purpose at this time is to help catch compile errors
    between Book-3S and Book-3E support in ppc64. It is based on the
    ppc64_defconfig with some things disabled that we dont support on
    Book-3E right now (hugetlbfs, slices, etc.)

    Signed-off-by: Kumar Gala
    Signed-off-by: Benjamin Herrenschmidt

    Kumar Gala
     
  • Prior to the arch/ppc -> arch/powerpc transition, xmon had support for single
    stepping on 4xx boards. The functionality was lost when arch/ppc was removed.
    This patch restores single step support for 44x boards, and Book-E in general.

    Signed-off-by: Josh Boyer
    Signed-off-by: Benjamin Herrenschmidt

    Josh Boyer
     
  • The ABI specifies a 64K alignment, we need to map the vDSO accordingly

    Signed-off-by: Andreas Schwab
    Signed-off-by: Benjamin Herrenschmidt

    Andreas Schwab
     
  • Due to missing segment assignments the .text section was put in the NOTES
    segment (and marked as NOTE section), and the .got was put in the DYNAMIC
    segment.

    Signed-off-by: Andreas Schwab
    Signed-off-by: Benjamin Herrenschmidt

    Andreas Schwab