You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Pavel Pervov (JIRA)" <ji...@apache.org> on 2007/10/24 16:28:50 UTC

[jira] Updated: (HARMONY-4862) [drlvm][jvmti] TI->setLocallyDisabled() disables whole TI functionality while should disable TI event reporting only

     [ https://issues.apache.org/jira/browse/HARMONY-4862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavel Pervov updated HARMONY-4862:
----------------------------------

    Attachment: jvmti_optimize.patch

The patch fixes disabling local execution of TI to be disabling event reporting.
The patch also adds check if TI needs to report particular events, before calling to jvmti_send_* event reporting functions.

> [drlvm][jvmti] TI->setLocallyDisabled() disables whole TI functionality while should disable TI event reporting only
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4862
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4862
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Pavel Rebriy
>         Attachments: jvmti_optimize.patch
>
>
> JVMTI function TI->setLocallyDisabled() disables locally TI that is TI->isEnabled() returns false.
> The function is called when Java methods is executed into TI method (for instance, jvmtiGetThreadInfo()). Such behavior leads to unstable execution of TI functions. There is several examples:
> 1. SingleStep (or BreakPoint) event is set while another thread is called any Java methods in setLocallyDisabled() mode. Any hardware exceptions occupied during execution of Java method in setLocallyDisabled() mode cannot be processed because TI->isEnabled() returns false.
> 2. JIT compilation of Java methods in setLocallyDisabled() mode doesn't add any instrumentation in it because TI->isEnabled() returns false.
> and so on.
> The issue is created to fix TI->isEnabled() to check TI enable status only and create function TI->canReport() to call it before any reporting which checks TI->isLocallyEnabled() status.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.