Mercurial > hg > truffle
comparison src/os_cpu/linux_x86/vm/os_linux_x86.hpp @ 12313:899ecf76b570
8023956: Provide a work-around to broken Linux 32 bit "Exec Shield" using CS for NX emulation (crashing with SI_KERNEL)
Summary: Execute some code at a high virtual address value, and keep mapped
Reviewed-by: coleenp, zgu
author | dsimms |
---|---|
date | Wed, 25 Sep 2013 13:58:13 +0200 |
parents | b9a9ed0f8eeb |
children | de6a9e811145 |
comparison
equal
deleted
inserted
replaced
12292:084b21cd0228 | 12313:899ecf76b570 |
---|---|
34 | 34 |
35 // Used to register dynamic code cache area with the OS | 35 // Used to register dynamic code cache area with the OS |
36 // Note: Currently only used in 64 bit Windows implementations | 36 // Note: Currently only used in 64 bit Windows implementations |
37 static bool register_code_area(char *low, char *high) { return true; } | 37 static bool register_code_area(char *low, char *high) { return true; } |
38 | 38 |
39 /* | |
40 * Work-around for broken NX emulation using CS limit, Red Hat patch "Exec-Shield" | |
41 * (IA32 only). | |
42 * | |
43 * Map and execute at a high VA to prevent CS lazy updates race with SMP MM | |
44 * invalidation.Further code generation by the JVM will no longer cause CS limit | |
45 * updates. | |
46 * | |
47 * Affects IA32: RHEL 5 & 6, Ubuntu 10.04 (LTS), 10.10, 11.04, 11.10, 12.04. | |
48 * @see JDK-8023956 | |
49 */ | |
50 static void workaround_expand_exec_shield_cs_limit(); | |
51 | |
39 #endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP | 52 #endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP |