25 Jan, 2008

1 commit

  • Keep track of processes being debugged (including the kernel itself)
    and turn the OCD system on and off as appropriate. Since enabling
    debugging turns off some optimizations in the CPU core, this fixes the
    issue that enabling KProbes support or simply running a program under
    gdbserver will reduce system performance significantly until the next
    reboot.

    The CPU performance will still be reduced for all processes while a
    process is being debugged, but this is a lot better than reducing the
    performance forever.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

07 Dec, 2007

1 commit

  • Generate a new set of OCD register definitions in asm/ocd.h and rename
    __mfdr() and __mtdr() to ocd_read() and ocd_write() respectively.

    The bitfield definitions are a lot more complete now, and they are
    entirely based on bit numbers, not masks. This is because OCD
    registers are frequently accessed from assembly code, where bit
    numbers are a lot more useful (can be fed directly to sbr, bfins,
    etc.)

    Bitfields that consist of more than one bit have two definitions:
    _START, which indicates the number of the first bit, and _SIZE, which
    indicates the number of bits. These directly correspond to the
    parameters taken by the bfextu, bfexts and bfins instructions.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

17 Oct, 2007

1 commit

  • Introduce architecture dependent kretprobe blacklists to prohibit users
    from inserting return probes on the function in which kprobes can be
    inserted but kretprobes can not.

    This patch also removes "__kprobes" mark from "__switch_to" on x86_64 and
    registers "__switch_to" to the blacklist on x86-64, because that mark is to
    prohibit user from inserting only kretprobe.

    Signed-off-by: Masami Hiramatsu
    Cc: Prasanna S Panchamukhi
    Acked-by: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masami Hiramatsu
     

13 May, 2007

1 commit

  • Avoid the costly notifier list in the pagefault path and call
    the kprobes code directly. The same change went into the 2.6.22
    cycle for powerpc, 2s390 and sparc64 already.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Haavard Skinnemoen

    Christoph Hellwig
     

09 May, 2007

1 commit

  • This patch moves the die notifier handling to common code. Previous
    various architectures had exactly the same code for it. Note that the new
    code is compiled unconditionally, this should be understood as an appel to
    the other architecture maintainer to implement support for it aswell (aka
    sprinkling a notify_die or two in the proper place)

    arm had a notifiy_die that did something totally different, I renamed it to
    arm_notify_die as part of the patch and made it static to the file it's
    declared and used at. avr32 used to pass slightly less information through
    this interface and I brought it into line with the other architectures.

    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: fix vmalloc_sync_all bustage]
    [bryan.wu@analog.com: fix vmalloc_sync_all in nommu]
    Signed-off-by: Christoph Hellwig
    Cc:
    Cc: Russell King
    Signed-off-by: Bryan Wu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

08 Dec, 2006

1 commit

  • While working on SH kprobes, I noticed that avr32 got the preemption
    handling wrong in the no probe case. The idea is that upon entry of
    kprobe_handler() preemption is disabled outright across the life of the
    kprobe, only to be re-enabled in post_kprobe_handler().

    However, in the event that the probe is never activated, there's never any
    chance of hitting the post probe handler, which allows for the current
    avr32 implementation to disable preemption indefinitely, as it's currently
    missing a re-enable when no probe is activated.

    Signed-off-by: Paul Mundt
    Cc: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Mundt
     

26 Oct, 2006

1 commit


26 Sep, 2006

1 commit

  • This adds support for the Atmel AVR32 architecture as well as the AT32AP7000
    CPU and the AT32STK1000 development board.

    AVR32 is a new high-performance 32-bit RISC microprocessor core, designed for
    cost-sensitive embedded applications, with particular emphasis on low power
    consumption and high code density. The AVR32 architecture is not binary
    compatible with earlier 8-bit AVR architectures.

    The AVR32 architecture, including the instruction set, is described by the
    AVR32 Architecture Manual, available from

    http://www.atmel.com/dyn/resources/prod_documents/doc32000.pdf

    The Atmel AT32AP7000 is the first CPU implementing the AVR32 architecture. It
    features a 7-stage pipeline, 16KB instruction and data caches and a full
    Memory Management Unit. It also comes with a large set of integrated
    peripherals, many of which are shared with the AT91 ARM-based controllers from
    Atmel.

    Full data sheet is available from

    http://www.atmel.com/dyn/resources/prod_documents/doc32003.pdf

    while the CPU core implementation including caches and MMU is documented by
    the AVR32 AP Technical Reference, available from

    http://www.atmel.com/dyn/resources/prod_documents/doc32001.pdf

    Information about the AT32STK1000 development board can be found at

    http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3918

    including a BSP CD image with an earlier version of this patch, development
    tools (binaries and source/patches) and a root filesystem image suitable for
    booting from SD card.

    Alternatively, there's a preliminary "getting started" guide available at
    http://avr32linux.org/twiki/bin/view/Main/GettingStarted which provides links
    to the sources and patches you will need in order to set up a cross-compiling
    environment for avr32-linux.

    This patch, as well as the other patches included with the BSP and the
    toolchain patches, is actively supported by Atmel Corporation.

    [dmccr@us.ibm.com: Fix more pxx_page macro locations]
    [bunk@stusta.de: fix `make defconfig']
    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Adrian Bunk
    Signed-off-by: Dave McCracken
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen