On 12/05/2017 09:26 AM, Mark Price wrote: > I'm investigating some long time-to-safepoint pauses in oracle/openjdk. The > application in question > is also suffering from some fairly nasty I/O problems where latency-sensitive > threads are being > descheduled in uninterruptible sleep state due to needing a file-system lock. > > My question: can the JVM detect that a thread is in signal/interrupt-handler > code and thus treat it > as though it is at a safepoint (as I believe happens when a thread is in > native code via a JNI call)? > > For instance, given the stack trace below, will the JVM need to wait for the > thread to be scheduled > back on to CPU in order to come to a safepoint, or will it be treated as > "in-native"? > > 7fff81714cd9 __schedule ([kernel.kallsyms]) > 7fff817151e5 schedule ([kernel.kallsyms]) > 7fff81717a4b rwsem_down_write_failed ([kernel.kallsyms]) > 7fff813556e7 call_rwsem_down_write_failed ([kernel.kallsyms]) > 7fff817172ad down_write ([kernel.kallsyms]) > 7fffa0403dcf xfs_ilock ([kernel.kallsyms]) > 7fffa04018fe xfs_vn_update_time ([kernel.kallsyms]) > 7fff8122cc5d file_update_time ([kernel.kallsyms]) > 7fffa03f7183 xfs_filemap_page_mkwrite ([kernel.kallsyms]) > 7fff811ba935 do_page_mkwrite ([kernel.kallsyms]) > 7fff811bda74 handle_pte_fault ([kernel.kallsyms]) > 7fff811c041b handle_mm_fault ([kernel.kallsyms]) > 7fff8106adbe __do_page_fault ([kernel.kallsyms]) > 7fff8106b0c0 do_page_fault ([kernel.kallsyms]) > 7fff8171af48 page_fault ([kernel.kallsyms]) > ---- java stack trace ends here ----
I am pretty sure out-of-band page fault in Java thread does not yield a safepoint. At least because safepoint polls happen at given location in the generated code, because we need the pointer map as the part of the machine state, and that is generated by Hotspot (only) around the safepoint polls. Page faulting on random read/write insns does not have that luxury. Even if JVM had intercepted that fault, there is not enough metadata to work on. The stacktrace above seems to say you have page faulted and this incurred disk I/O? This is swapping, I think, and all performance bets are off at that point. Thanks, -Aleksey -- You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
signature.asc
Description: OpenPGP digital signature
