RFR: 8265035: Remove unneeded exception check from refill_ic_stubs()

Patricio Chilano Mateo pchilanomate at openjdk.java.net
Tue Apr 13 01:55:56 UTC 2021


On Mon, 12 Apr 2021 14:46:02 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:

> Hi,
> 
> Please review this small fix. The HAS_PENDING_EXCEPTION check will always return false since EXCEPTION_MARK will check that there are no pending exceptions upon entering and VMThread::execute() doesn't throw exceptions.
> The comment says that we could get a potential async exception, which is true, since the JT will be blocked waiting on VMOperation_lock. However delivering an async exception doesn't set the _pending_exception field, only additional fields (see JavaThread::send_thread_stop() -> set_pending_async_exception()) that will be later check in check_and_handle_async_exceptions() and only then _pending_exception will be set.
> 
> Thanks,
> Patricio

Hi David,

Thanks for looking at this.

> Changes look good.
> 
> Though I wonder whether we even need the EXCEPTION_MARK?

I think it can be removed actually. The alternative could be to change it for assert(!HAS_PENDING_EXCEPTION, "there should be no pending exceptions") to only verify that there are no pending exceptions when entering refill_ic_stubs(). But I think that only makes sense if the following code can throw exceptions and you want to avoid overriding a possibly already pending one. So if you are okay too I can remove it.

Thanks,
Patricio
> Thanks,
> David

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

PR: https://git.openjdk.java.net/jdk/pull/3436


More information about the hotspot-runtime-dev mailing list