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