You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Aleksey Shipilev (JIRA)" <ji...@apache.org> on 2007/08/31 12:38:31 UTC

[jira] Created: (HARMONY-4704) [drlvm][jni] JNI transition improvements

[drlvm][jni] JNI transition improvements
----------------------------------------

                 Key: HARMONY-4704
                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
             Project: Harmony
          Issue Type: Improvement
            Reporter: Aleksey Shipilev


The root issue for JNI transition improvements

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


[jira] Assigned: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gregory Shimansky reassigned HARMONY-4704:
------------------------------------------

    Assignee: Gregory Shimansky

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>            Assignee: Gregory Shimansky
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Commented: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Pavel Pervov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587566#action_12587566 ] 

Pavel Pervov commented on HARMONY-4704:
---------------------------------------

4) You introduce gcc 4+ warnings by inserting the construct like &(((Type*)NULL)->field). Please, use workaround like this: Type* dummy = NULL; &(dummy->field);

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Commented: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587581#action_12587581 ] 

Aleksey Shipilev commented on HARMONY-4704:
-------------------------------------------

Thanks for comments, Pavel!
This issue is umbrella, I put the composite patch for convenience purposes only, please refer to dependent issues for individual issues. There you might also find performance data justifying each change. Reviewing this composite patch you're looking into POC parts too.

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Commented: (HARMONY-4704) [drlvm][jni] JNI transition improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12524679 ] 

Aleksey Shipilev commented on HARMONY-4704:
-------------------------------------------

So far, on the JNI microtest (calling several million on JNI methods):

$ ../../Builds/shade.0903.jni.0.clean/bin/java -Xmx128m -Xms128m nalog.nalog
iteration: 0  millis:8532
iteration: 1  millis:8572
iteration: 2  millis:8561

$ ../../Builds/shade.0903.jni.4.cumulative/bin/java -Xmx128m -Xms128m nalog.nalog
iteration: 0  millis:5477
iteration: 1  millis:5528
iteration: 2  millis:5528

Thus, +55% boost.

> [drlvm][jni] JNI transition improvements
> ----------------------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete.patch
>
>
> The root issue for JNI transition improvements

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


[jira] Updated: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aleksey Shipilev updated HARMONY-4704:
--------------------------------------

    Description: The root issue for JNI improvements  (was: The root issue for JNI transition improvements)
        Summary: [drlvm][jni] JNI improvements  (was: [drlvm][jni] JNI transition improvements)

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements

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


[jira] Commented: (HARMONY-4704) [drlvm][jni] JNI transition improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12524766 ] 

Aleksey Shipilev commented on HARMONY-4704:
-------------------------------------------

The cumulative patch gives +14% boost on Dacapo:jython, +5% boost on Dacapo:pmd, +3% boost on Dacapo:chart, Dacapo:fop and Dacapo:luindex.

> [drlvm][jni] JNI transition improvements
> ----------------------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete.patch
>
>
> The root issue for JNI transition improvements

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


[jira] Commented: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Pavel Pervov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587565#action_12587565 ] 

Pavel Pervov commented on HARMONY-4704:
---------------------------------------

JNI-complete.patch:
1) Why pop_m2n_noexp in the code, but pop_noexp_m2n in LIL? Is it to make parsing easier? Is code simplification worth this inconsistency?
2) It would be nice to document added LIL instructions somewhere. I can guess that HSE/HSD is the pair of hythread_suspend_enable/hythread_suspend_disable.
3) I can also try to guess that 'noexp' means "no exception expected". If that's true - I'd personally prefer 'noexn' suffix.

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Assigned: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gregory Shimansky reassigned HARMONY-4704:
------------------------------------------

    Assignee:     (was: Gregory Shimansky)

Unassigning myself from an umbrella task.

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Updated: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aleksey Shipilev updated HARMONY-4704:
--------------------------------------

    Comment: was deleted

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Updated: (HARMONY-4704) [drlvm][jni] JNI transition improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aleksey Shipilev updated HARMONY-4704:
--------------------------------------

    Attachment: JNI-complete-2.patch

JNI-complete-2.patch
Updated patch with changes at HARMONY-4729 and HARMONY-4705.

> [drlvm][jni] JNI transition improvements
> ----------------------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI transition improvements

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


[jira] Updated: (HARMONY-4704) [drlvm][jni] JNI transition improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aleksey Shipilev updated HARMONY-4704:
--------------------------------------

    Attachment: JNI-complete.patch

JNI-complete.patch
Combined HARMONY-4729, HARMONY-4714, HARMONY-4705.

> [drlvm][jni] JNI transition improvements
> ----------------------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete.patch
>
>
> The root issue for JNI transition improvements

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


[jira] Commented: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Pavel Pervov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587567#action_12587567 ] 

Pavel Pervov commented on HARMONY-4704:
---------------------------------------

5) Please, remove commented code.

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Updated: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aleksey Shipilev updated HARMONY-4704:
--------------------------------------

    Description: 
The root issue for JNI improvements:

Clean:
HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS

Dirty:
HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice

Proof-of-concept
HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder



  was:The root issue for JNI improvements


> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Commented: (HARMONY-4704) [drlvm][jni] JNI improvements

Posted by "Aleksey Shipilev (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587580#action_12587580 ] 

Aleksey Shipilev commented on HARMONY-4704:
-------------------------------------------

Thanks for comments, Pavel!
This issue is umbrella, I put the composite patch for convenience purposes only, please refer to dependent issues for individual issues. There you might also find performance data justifying each change.

> [drlvm][jni] JNI improvements
> -----------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete-2.patch, JNI-complete.patch
>
>
> The root issue for JNI improvements:
> Clean:
> HARMONY-4705 [drlvm][jni] JNI transition uses ineffective TLS get
> HARMONY-4811 [drlvm][exception] exn_raised() should cache the TLS
> Dirty:
> HARMONY-4714 [drlvm][jni] JNI transition checks exceptions twice
> Proof-of-concept
> HARMONY-4729 [drlvm][jni] JNI transition should inline hythread_suspend_enable() and hythread_suspend_disable()
> HARMONY-4806 [drlvm][jni] Experiment: rewriting entire JNI transition stub on encoder

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


[jira] Updated: (HARMONY-4704) [drlvm][jni] JNI transition improvements

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov updated HARMONY-4704:
-------------------------------------

    Component/s: DRLVM

> [drlvm][jni] JNI transition improvements
> ----------------------------------------
>
>                 Key: HARMONY-4704
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4704
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Aleksey Shipilev
>         Attachments: JNI-complete.patch
>
>
> The root issue for JNI transition improvements

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