kernel_optimize_test/arch/arm
Nicolas Pitre ec706dab29 ARM: add a vma entry for the user accessible vector page
The kernel makes the high vector page visible to user space. This page
contains (amongst others) small code segments that can be executed in
user space.  Make this page visible through ptrace and /proc/<pid>/mem
in order to let gdb perform code parsing needed for proper unwinding.

For example, the ERESTART_RESTARTBLOCK handler actually has a stack
frame -- it returns to a PC value stored on the user's stack.   To
unwind after a "sleep" system call was interrupted twice, GDB would
have to recognize this situation and understand that stack frame
layout -- which it currently cannot do.

We could fix this by hard-coding addresses in the vector page range into
GDB, but that isn't really portable as not all of those addresses are
guaranteed to remain stable across kernel releases.  And having the gdb
process make an exception for this page and get  content from its own
address space for it looks strange, and it is not future proof either.

Being located above PAGE_OFFSET, this vma cannot be deleted by
user space code.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2010-10-01 22:35:19 -04:00
..
boot ARM: Fix build error when using KCONFIG_CONFIG 2010-09-19 16:18:37 +01:00
common arm: fix "arm: fix pci_set_consistent_dma_mask for dmabounce devices" 2010-09-22 17:22:38 -07:00
configs omap: Fix omap_4430sdp_defconfig for make oldconfig 2010-08-16 09:22:04 +03:00
include/asm ARM: add a vma entry for the user accessible vector page 2010-10-01 22:35:19 -04:00
kernel ARM: add a vma entry for the user accessible vector page 2010-10-01 22:35:19 -04:00
lib
mach-aaec2000 ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-at91 ARM: 6406/1: at91sam9g45: fix i2c bus speed 2010-09-23 15:08:48 +01:00
mach-bcmring ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-clps711x ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-cns3xxx
mach-davinci ARM: 6409/1: davinci: map sram using MT_MEMORY_NONCACHED instead of MT_DEVICE 2010-09-25 15:58:40 +01:00
mach-dove ARM: dove: fix __io() definition to use bus based offset 2010-09-19 22:43:42 -04:00
mach-ebsa110 ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-ep93xx ARM: 6359/1: ep93xx: move clock initialization earlier 2010-09-08 12:28:39 +01:00
mach-footbridge ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-gemini
mach-h720x ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-imx ARM: imx: fix build failure concerning otg/ulpi 2010-08-23 20:50:17 -07:00
mach-integrator ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx arm: fix "arm: fix pci_set_consistent_dma_mask for dmabounce devices" 2010-09-22 17:22:38 -07:00
mach-ixp23xx
mach-ixp2000
mach-kirkwood ARM: kirkwood: Unbreak PCIe I/O port 2010-09-19 22:43:25 -04:00
mach-ks8695
mach-lh7a40x
mach-loki
mach-lpc32xx
mach-mmp ARM: pxa168: fix corrected reset vector 2010-09-25 09:47:03 +08:00
mach-msm ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-mv78xx0
mach-mx3 Merge branch 'imx-for-2.6.36' of git://git.pengutronix.de/git/imx/linux-2.6 2010-09-01 10:08:50 +01:00
mach-mx5 ARM: mxc: turn off HWCAP_NEON for older versions of imx51 silicon 2010-10-01 22:26:38 -04:00
mach-mx25 Merge branch 'imx-for-2.6.36' of git://git.pengutronix.de/git/imx/linux-2.6 2010-09-01 10:08:50 +01:00
mach-mxc91231
mach-netx ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-nomadik
mach-ns9xxx
mach-nuc93x
mach-omap1 ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-omap2 ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-orion5x ARM: Fix gen_nand probe structures contents 2010-08-12 02:21:18 +01:00
mach-pnx4008 ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-pxa Merge master.kernel.org:/home/rmk/linux-2.6-arm 2010-09-27 12:32:36 -07:00
mach-realview
mach-rpc ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-s3c24a0/include/mach
mach-s3c64xx ARM: S3C64XX: Add IORESOURCE_IRQ_HIGHLEVEL flag to dm9000 on mach-real6410 2010-09-18 09:54:55 +09:00
mach-s3c2400
mach-s3c2410 ARM: SAMSUNG: Fix on build warning regarding VMALLOC_END type 2010-08-27 15:28:38 +09:00
mach-s3c2412
mach-s3c2416 s3c-fb: add device name initialization 2010-08-11 08:59:10 -07:00
mach-s3c2440 panic: keep blinking in spite of long spin timer mode 2010-08-11 08:59:22 -07:00
mach-s3c2443 s3c-fb: add device name initialization 2010-08-11 08:59:10 -07:00
mach-s5p6440 ARM: SAMSUNG: Fix on build warning regarding VMALLOC_END type 2010-08-27 15:28:38 +09:00
mach-s5p6442 ARM: SAMSUNG: Fix on build warning regarding VMALLOC_END type 2010-08-27 15:28:38 +09:00
mach-s5pc100 Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-08-11 09:13:19 -07:00
mach-s5pv210 ARM: S5PV210: Add FIMC clocks 2010-09-14 17:59:16 +09:00
mach-s5pv310 ARM: S5PV310: Fix on Secondary CPU startup 2010-08-27 18:29:58 +09:00
mach-sa1100
mach-shark ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-shmobile ARM: mach-shmobile: ap4evb: fix write protect for SDHI1 2010-08-20 20:41:23 +09:00
mach-spear3xx
mach-spear6xx
mach-stmp37xx
mach-stmp378x
mach-tegra arm: tegra: VMALLOC_END should be unsigned long 2010-08-22 12:54:23 -07:00
mach-u300 ARM: 6377/1: supply _cansleep gpio function to U300 2010-09-17 10:16:49 +01:00
mach-ux500
mach-versatile ARM: do not define VMALLOC_END relative to PAGE_OFFSET 2010-10-01 22:28:19 -04:00
mach-vexpress ARM: 6411/1: vexpress: set RAM latencies to 1 cycle for PL310 on ct-ca9x4 tile 2010-09-27 14:57:36 +01:00
mach-w90x900 i2c/nuc900: add i2c driver support for nuc900 2010-08-11 00:34:38 +01:00
mm ARM: implement CONFIG_STRICT_DEVMEM by disabling access to RAM via /dev/mem 2010-10-01 22:31:34 -04:00
nwfpe
oprofile
plat-iop
plat-mxc ARM: imx: set cache line size to 64 bytes for i.MX5 2010-08-21 12:22:43 +02:00
plat-nomadik ARM: 6376/1: plat-nomadik: MTU: Change prescaler limit and comment updates 2010-09-17 10:16:48 +01:00
plat-omap ARM: 6408/1: omap: Map only available sram memory 2010-09-25 15:58:40 +01:00
plat-orion
plat-pxa ARM: pxa: Make id const in pwm_probe() 2010-08-30 09:59:44 +08:00
plat-s3c24xx
plat-s5p ARM: S5P: Decrease IO Registers memory region size on FIMC 2010-09-14 17:57:55 +09:00
plat-samsung ARM: SAMSUNG: Fix on s5p_gpio_[get,set]_drvstr 2010-09-14 17:59:31 +09:00
plat-spear
plat-stmp3xxx
plat-versatile
tools ARM: Update mach-types 2010-09-09 22:49:26 +01:00
vfp
Kconfig ARM: SECCOMP support 2010-10-01 22:32:18 -04:00
Kconfig-nommu
Kconfig.debug ARM: implement CONFIG_STRICT_DEVMEM by disabling access to RAM via /dev/mem 2010-10-01 22:31:34 -04:00
Makefile ARM: link board specific files after core files 2010-10-01 22:26:38 -04:00