RFR: 8214257: IC cache not clean after cleaning assertion failure

Erik Österlund erik.osterlund at oracle.com
Fri Nov 30 09:50:07 UTC 2018

Hi Tobias,

Thanks for the review!


On 2018-11-29 09:07, Tobias Hartmann wrote:
> Hi Erik,
> looks good to me. Please run at least hs-tier1,hs-tier2,hs-precheckin-comp before pushing.
> Best regards,
> Tobias
> On 27.11.18 14:00, Erik Österlund wrote:
>> Hi,
>> Back in 8212681, an abstract CompiledICLocker was introduce to protect inline caches from concurrent
>> patching.
>> Unfortunately, not all patching of ICs started using the CompiledICLocker. There were still some
>> callsites using the Patching_lock. Therefore, the assert may trigger sometimes saying the IC cache
>> is not clean right after cleaning, due to other concurrent modifications under the Patching_lock.
>> Also, in CompiledIC::set_to_clean(), the condition for safe_transition was altered incorrectly from
>> is_at_safepoint() to CompiledICLocker::is_safe(), causing cleaning to not used transition, so I
>> reinstated that in this patch.
>> This patch depends on 8214338 by assuming that the CompiledICLocker does not use safepoint checks,
>> as it is now used from leaf calls where safepointing is not allowed.
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8214257
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8214257/webrev.00/
>> Thanks,
>> /Erik

More information about the hotspot-dev mailing list