1
linux/arch/powerpc/kernel
K.Prasad 5aae8a5370 powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors
Implement perf-events based hw-breakpoint interfaces for PowerPC
64-bit server (Book III S) processors.  This allows access to a
given location to be used as an event that can be counted or
profiled by the perf_events subsystem.

This is done using the DABR (data breakpoint register), which can
also be used for process debugging via ptrace.  When perf_event
hw_breakpoint support is configured in, the perf_event subsystem
manages the DABR and arbitrates access to it, and ptrace then
creates a perf_event when it is requested to set a data breakpoint.

[Adopted suggestions from Paul Mackerras <paulus@samba.org> to
- emulate_step() all system-wide breakpoints and single-step only the
  per-task breakpoints
- perform arch-specific cleanup before unregistration through
  arch_unregister_hw_breakpoint()
]

Signed-off-by: K.Prasad <prasad@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2010-06-22 19:40:50 +10:00
..
vdso32 powerpc: Fix segment mapping in vdso32 2009-10-27 16:42:40 +11:00
vdso64 Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
.gitignore
align.c powerpc: Handle VSX alignment faults correctly in little-endian mode 2009-12-18 14:55:43 +11:00
asm-offsets.c Merge branch 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2010-05-21 17:16:21 -07:00
audit.c
btext.c
cacheinfo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cacheinfo.h
clock.c
compat_audit.c
cpu_setup_6xx.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/fsl-booke: Enable L1 cache on e500v1/e500v2/e500mc CPUs 2009-06-15 21:45:30 -05:00
cpu_setup_pa6t.S
cpu_setup_ppc970.S
cputable.c powerpc/e500mc: Implement machine check handler. 2010-05-21 07:41:52 -05:00
crash_dump.c
crash.c powerpc/kexec: Add support for FSL-BookE 2010-05-24 21:25:32 -05:00
dbell.c
dma-iommu.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
dma-swiotlb.c powerpc: remove unnecessary sync_single_range_* in swiotlb_dma_ops 2010-05-27 09:12:52 -07:00
dma.c powerpc: remove unnecessary sync_single_range_* in swiotlb_dma_ops 2010-05-27 09:12:52 -07:00
e500-pmu.c powerpc/perf: e500 support 2010-03-05 03:04:08 -06:00
entry_32.S powerpc/47x: Base ppc476 support 2010-05-05 09:11:10 -04:00
entry_64.S powerpc/perf_event: Fix oops due to perf_event_do_pending call 2010-05-12 14:34:00 +10:00
exceptions-64e.S powerpc/book3e-64: Remove duplicated #include 2009-09-24 15:31:41 +10:00
exceptions-64s.S powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors 2010-06-22 19:40:50 +10:00
firmware.c powerpc: Make powerpc_firmware_features __read_mostly 2010-02-09 13:56:07 +11:00
fpu.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
fsl_booke_entry_mapping.S powerpc/kexec: Add support for FSL-BookE 2010-05-24 21:25:32 -05:00
ftrace.c Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 10:56:46 -07:00
head_8xx.S powerpc/8xx: Use SPRG2 and DAR registers to stash r11 and cr. 2010-04-07 18:00:34 +10:00
head_32.S KVM: PPC: Add KVM intercept handlers 2010-05-17 12:18:52 +03:00
head_40x.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_44x.S powerpc/4xx: Simple platform for the ISS 4xx simulator 2010-05-05 11:11:56 -04:00
head_64.S KVM: PPC: Name generic 64-bit code generic 2010-05-17 12:18:14 +03:00
head_booke.h powerpc/booke: Add Stack Marking support to Booke Exception Prolog 2010-05-05 08:01:52 -04:00
head_fsl_booke.S powerpc/kexec: Add support for FSL-BookE 2010-05-24 21:25:32 -05:00
hw_breakpoint.c powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors 2010-06-22 19:40:50 +10:00
ibmebus.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
idle_6xx.S
idle_e500.S
idle_power4.S
idle.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
io.c powerpc: tiny memcpy_(to|from)io optimisation 2009-11-04 16:43:12 -07:00
iomap.c
iommu.c powerpc: Remove unused 'protect4gb' boot parameter 2010-05-21 17:31:13 +10:00
irq.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-05-21 11:17:05 -07:00
isa-bridge.c
kgdb.c powerpc,kgdb: Introduce low level trap catching 2010-05-20 21:04:25 -05:00
kprobes.c powerpc/kprobes: Remove resume_execution() in kprobes 2010-06-02 17:50:37 +10:00
l2cr_6xx.S
legacy_serial.c Fix spelling of 'platform' in comments and doc 2010-02-05 12:22:34 +01:00
lparcfg.c powerpc/pseries: Export data from new hcall H_EM_GET_PARMS 2010-04-07 18:00:29 +10:00
machine_kexec_32.c
machine_kexec_64.c powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors 2010-06-22 19:40:50 +10:00
machine_kexec.c
Makefile powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors 2010-06-22 19:40:50 +10:00
misc_32.S powerpc/kexec: Add support for FSL-BookE 2010-05-24 21:25:32 -05:00
misc_64.S powerpc/kexec: Fix race in kexec shutdown 2010-05-21 17:31:11 +10:00
misc.S perf: Always build the powerpc perf_arch_fetch_caller_regs version 2010-04-03 12:42:00 +02:00
module_32.c
module_64.c
module.c module: cleanup FIXME comments about trimming exception table entries. 2009-06-12 21:47:05 +09:30
mpc7450-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
msi.c
nvram_64.c arch/powerpc: Fix continuation line formats 2010-02-09 13:55:05 +11:00
of_device.c arch/powerpc: Move dma_mask from of_device into pdev_archdata 2010-05-22 00:10:40 -06:00
of_platform.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
paca.c powerpc/kexec: Fix race in kexec shutdown 2010-05-21 17:31:11 +10:00
pci_32.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci_64.c of: add 'of_' prefix to machine_is_compatible() 2010-02-09 08:33:00 -07:00
pci_dn.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci_of_scan.c powerpc/pci: Check devices status property when scanning OF tree 2010-05-21 17:31:09 +10:00
pci-common.c PCI: clear bridge resource range if BIOS assigned bad one 2010-06-11 13:24:51 -07:00
perf_callchain.c perf: Fix inconsistency between IP and callchain sampling 2010-01-28 14:31:20 +01:00
perf_event_fsl_emb.c powerpc/perf: e500 support 2010-03-05 03:04:08 -06:00
perf_event.c perf, powerpc: Implement group scheduling transactional APIs 2010-05-11 17:08:24 +02:00
pmc.c powerpc: Convert pmc_owner_lock to raw_spinlock 2010-02-19 14:52:33 +11:00
power4-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
power5-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
power5+-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
power6-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
power7-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
ppc32.h
ppc970-pmu.c powerpc: perf_event: Enable SDAR in continous sample mode 2009-10-28 16:13:02 +11:00
ppc_ksyms.c powerpc: Don't export cvt_fd & _df when CONFIG_PPC_FPU is not set 2010-05-31 11:51:54 +10:00
ppc_save_regs.S
proc_powerpc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
process.c powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors 2010-06-22 19:40:50 +10:00
prom_init_check.sh
prom_init.c powerpc/numa: Add form 1 NUMA affinity 2010-04-28 16:22:33 +10:00
prom_parse.c
prom.c powerpc: Dynamically allocate pacas 2010-03-09 11:52:52 +11:00
ptrace32.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
ptrace.c powerpc, hw_breakpoints: Implement hw_breakpoints for 64-bit server processors 2010-06-22 19:40:50 +10:00
reloc_64.S
rtas_flash.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtas_pci.c
rtas-proc.c powerpc: Move /proc/ppc64 to /proc/powerpc update 2010-01-15 13:26:17 +11:00
rtas-rtc.c
rtas.c powerpc/pseries: Call ibm,os-term if the ibm,extended-os-term is present 2010-04-07 18:00:48 +10:00
rtasd.c powerpc/rtasd: Don't start event scan if scan rate is zero 2010-05-21 17:29:39 +10:00
setup_32.c powerpc: Fix swiotlb to respect the boot option 2010-03-19 16:38:16 +11:00
setup_64.c powerpc: Use more accurate limit for first segment memory allocations 2010-05-21 17:31:10 +10:00
setup-common.c powerpc/cpumask: Update some comments 2010-05-06 17:41:59 +10:00
setup.h
signal_32.c powerpc/booke: Add support for advanced debug registers 2010-02-17 14:03:17 +11:00
signal_64.c
signal.c powerpc/booke: Add support for advanced debug registers 2010-02-17 14:03:17 +11:00
signal.h
smp-tbsync.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
smp.c powerpc: Use common cpu_die (fixes SMP+SUSPEND build) 2010-05-21 17:31:08 +10:00
softemu8xx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
stacktrace.c
suspend.c
swsusp_32.S powerpc/swsusp_32: Fix TLB invalidation 2010-01-15 13:20:07 +11:00
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S powerpc/fsl-booke: Add hibernation support for FSL BookE processors 2010-05-21 07:41:53 -05:00
swsusp.c
sys_ppc32.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
syscalls.c Add generic sys_olduname() 2010-03-12 15:52:32 -08:00
sysfs.c powerpc: Use smt_snooze_delay=-1 to always busy loop 2010-05-21 17:31:12 +10:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
time.c powerpc/perf_event: Fix oops due to perf_event_do_pending call 2010-05-12 14:34:00 +10:00
traps.c Merge commit 'kumar/next' into next 2010-05-31 10:01:50 +10:00
udbg_16550.c trivial: fix typo "for for" in multiple files 2009-09-21 15:14:54 +02:00
udbg.c powerpc: gamecube/wii: early debugging using usbgecko 2009-12-12 22:24:31 -07:00
vdso.c tree-wide: fix a very frequent spelling mistake 2009-11-09 09:40:54 +01:00
vecemu.c
vector.S powerpc: Fix usage of 64-bit instruction in 32-bit altivec code 2009-12-09 18:10:12 +11:00
vio.c Merge remote branch 'origin' into secretlab/next-devicetree 2010-05-22 00:36:56 -06:00
vmlinux.lds.S Rename .data.read_mostly to .data..read_mostly. 2010-03-03 11:26:00 +01:00