RFR: 8201616: Hotspot crashes on linux-sparc after 8189941

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Apr 17 20:28:36 UTC 2018


Looks good. Thank you for tracking this down.

Regards,
Vladimir

On 4/17/18 12:48 PM, John Paul Adrian Glaubitz wrote:
> Hi!
> 
> After having rebuilt OpenJDK several dozen times over several days and bisecting
> for several hours today, I finally found the culprit for the segfault I am seeing
> on linux-sparc which is JDK-8189941 [1].
> 
> Looking at the SPARC-specific changes [2], I noticed the change in os_solaris_sparc.cpp
> to use os::is_poll_address() instead of os::get_polling_page() when a SIGSEGV is caught
> which was missing in os_linux_sparc.cpp.
> 
> Thus, I made that change to os_linux_sparc.cpp as well:
> 
> diff --git a/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp b/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp
> --- a/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp
> +++ b/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp
> @@ -374,7 +374,7 @@
>   }
> 
>   inline static bool checkPollingPage(address pc, address fault, address* stub) {
> -  if (fault == os::get_polling_page()) {
> +  if (os::is_poll_address(fault)) {
>       *stub = SharedRuntime::get_poll_stub(pc);
>       return true;
>     }
> 
> And voila, the crash is gone \o/.
> 
> Please review the change in [3] and invite me over a cold one at next FOSDEM :-).
> 
> Cheers,
> Adrian
> 
>> [1] http://hg.openjdk.java.net/jdk/jdk/rev/0ce0ac68ace7
>> [2] http://hg.openjdk.java.net/jdk/jdk/rev/0ce0ac68ace7#l39.1
>> [3] http://cr.openjdk.java.net/~glaubitz/8201616/webrev.00/
> 


More information about the hotspot-dev mailing list