comparison src/os_cpu/linux_x86/vm/os_linux_x86.hpp @ 4956:418fb371f2b9

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 7ab5f6318694
children
comparison
equal deleted inserted replaced
3:9329b391d14b 4:3097e15648e1
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