RFR(m): 8220351: Cross-modifying code

Robbin Ehn robbin.ehn at oracle.com
Thu Mar 14 09:33:34 UTC 2019


Hi Martin,

On 3/14/19 10:25 AM, Doerr, Martin wrote:
> Hi Robbin,
> 
>> But that is whole new subject and let's keep that separate from this :)
> Sure, we can keep the modification side discussion separate. This change is already difficult enough ��
> 
> 
> Btw. I haven't sent the ppc/s390 instruction cache barriers. Here they are:
> 
> orderAccess_aix/linux_ppc.hpp:
> inline void OrderAccess::instruction_pipeline() { inlasm_isync(); }
> 
> orderAccess_linux_s390.hpp:
> inline void OrderAccess::instruction_pipeline() { inlasm_zarch_sync(); }
> 

Thanks!

>> nmethod::oops_do calls the closure f->do_oop(r->oop_addr()) for oops encoded into the instruction stream.
>> I couldn't find a call to AbstractICache::invalidate_range.

I think I miss-understood you here, the reason I heard for not doing
invalidate_range/word in nmethod::oops_do is that it was deemed that a
safepoint is 'long enough'.

/Robbin

> 
> Look for ICache::invalidate_range, I see 11 calls on x64.
> And one call to AbstractICache/ICache::invalidate_word.
> Btw I have spent some time looking at x86/icache_x86.cpp...
> But that is whole new subject and let's keep that separate from this :)
> 
> I'll create issues for some of these topics, which if nothing else should be
> discussed.
> 
> /Robbin
> 
>>
>> Does anybody know where it is or if it's missing?
>>
>> Best regards,
>> Martin
>>


More information about the hotspot-dev mailing list