Map SVM regions at a sane offset on arm64 42/9342/2
authorBrian Brooks <brian.brooks@arm.com>
Wed, 8 Nov 2017 03:28:42 +0000 (21:28 -0600)
committerDamjan Marion <dmarion.lists@gmail.com>
Fri, 10 Nov 2017 22:26:10 +0000 (22:26 +0000)
commita3eb63c58543ca9a651692502805bf8272ed6d79
tree727c8fd9c42edbc0130a0d811f3d93ba83c3efe0
parent375e468da3105ed33e164feb572e1c70d826307c
Map SVM regions at a sane offset on arm64

Mapping shared virtual memory at 0x30000000, which appears to be derived
from x86-32, turns out to be too close to the heap on arm64 systems. The
symptoms of memory corruption were random and included crashes in the
Python runtime and what appeared to be corruption of malloc's internal
mutex. Thanks to Gabriel Ganne for pointing out that disabling ASLR seemed
to mitigate the situation.

This patch maps SVM regions at an offset from the arm64 kernel constant
TASK_UNMAPPED_BASE and also assumes a 48-bit VA (for Ubuntu).

Change-Id: I642e5fe83344ab9b5c66c93e0cf1575c17251f3b
Signed-off-by: Brian Brooks <brian.brooks@arm.com>
src/svm/svm_common.h