On Thu, 23 Mar 2023 07:03:04 GMT, Thomas Stuefe <stu...@openjdk.org> wrote:

> You now effectively disable execution of generated code for the whole extend 
> of AGCT?

That's exactly what async-profiler does already 
https://github.com/async-profiler/async-profiler/blob/c8de91df6b090af82e91a066deb81a3afb505331/src/profiler.cpp#L383,
 I wonder why we don't have problems there with SafeFetch on older JVMs.

> Okay. Though the prospect of async profiler modifying the code cache by 
> walking the stack seems scary.

We discussed it before. It's probably safe, but yes, my initial reaction was 
also "why not just remove this", but it should have a performance impact.

> Drive by comment: how async safe is WX enabler? If a thread is in the middle 
> of it and we shoot a signal and enable, what will happen?

This is a really good point. I think that making the field that stores this 
information `volatile` could alleviate the problem (?). This would ensure that 
no reordering takes place in:


 _wx_state = WXWrite;
  os::current_thread_enable_wx(_wx_state);

(https://github.com/openjdk/jdk/blob/77cd917a97b184871ab2d3325ceb6c53afeca28b/src/hotspot/share/runtime/thread.inline.hpp#L78)

-------------

PR Comment: https://git.openjdk.org/jdk/pull/13144#issuecomment-1480713645

Reply via email to