Alexei Fedotov wrote:
Gregory,

Thank you for explaining. As far as I unerstand writing to the thread
unsafe list is enough to cause segmentation fault on smp. You need to
update two fields, and this cannot be done atomically.

Writing to the list won't do any harm as long as the list is not used. Only the head of the list is used for writing, and if some ->next fields have wrong pointers it won't matter as long as no one reads the list.

According to the wiki page [1] I need to cleanup CodeChunkInfo
structures anyway. Access to the code chunks is synchronized via
method locks. I believe it would be a good idea to unify these chunk
storages. Won't you object?

Yes I object. There is no reason to mix JIT generated code chunks and VM generated stubs. These are two totally different code areas, and over synchronization is not needed just because the code pieces call each other. As I've written, in case JVMTI is disabled, compile_add_dynamic_generated_code_chunk should not do anything at all, it should just return.

--
Gregory

Reply via email to