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 Afremov (JIRA)" <ji...@apache.org> on 2007/10/21 13:21:50 UTC

[jira] Created: (HARMONY-4982) [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb

[drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb
----------------------------------------------------------------------------------------

                 Key: HARMONY-4982
                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
             Project: Harmony
          Issue Type: Improvement
          Components: DRLVM
         Environment: Linux x86-64 & Window x86-64
            Reporter: Pavel Afremov
            Priority: Critical


I tried to run DRL VM with heap size 3950 M bytes.

1.
I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.

2.
I tried to run DRL VM in OPT mode. The result is sigsegv in jited code.

at java.lang.AbstractStringBuilder.append0() 
    (Ln 168,  ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java "    if (newSize > value.length) {")
at HeapTest.func() 
    (Ln 15, .\HeapTest.java "    System.out.println("iteration " + i);")
at HeapTest.main() 
    (Ln 6, .\HeapTest.java "    test.func();")

The source of it is incorrect signed extension of 32 bit value to 64 bit register (marked by red in attached assembly code).

0000000005967D47  mov         eax,dword ptr [rbx+8] 
0000000005967D4A  movsxd      rax,eax 
0000000005967D4D  mov         rsi,7FFF0000h 
0000000005967D57  mov         r12,rax 
0000000005967D5A  add         r12,rsi 
0000000005967D5D  mov         qword ptr [rsp],r12 
0000000005967D61  mov         rax,7FFF0000h 
0000000005967D6B  cmp         r12,rax 
0000000005967D6E  je          0000000005967E05 


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


[jira] Closed: (HARMONY-4982) [drlvm][gc_gen] Fix (improve) compressed references to support heaps up to 4Gb

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

Xiao-Feng Li closed HARMONY-4982.
---------------------------------

    Resolution: Fixed

> [drlvm][gc_gen] Fix (improve) compressed references to support heaps up to 4Gb
> ------------------------------------------------------------------------------
>
>                 Key: HARMONY-4982
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Linux x86-64 & Window x86-64
>            Reporter: Pavel Afremov
>            Assignee: Alexey Varlamov
>            Priority: Critical
>         Attachments: HARMONY-4982_GC.diff, HeapTest.java
>
>
> I tried to run DRL VM with heap size 3950 M bytes.
> I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
> After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.

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


[jira] Updated: (HARMONY-4982) [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb

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

Pavel Afremov updated HARMONY-4982:
-----------------------------------

    Attachment: HARMONY-4982_GC.diff

HARMONY-4982_GC.diff contains changes in GC.

> [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb
> ----------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4982
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Linux x86-64 & Window x86-64
>            Reporter: Pavel Afremov
>            Priority: Critical
>         Attachments: HARMONY-4982_GC.diff, HeapTest.java
>
>
> I tried to run DRL VM with heap size 3950 M bytes.
> 1.
> I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
> After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.
> 2.
> I tried to run DRL VM in OPT mode. The result is sigsegv in jited code.
> at java.lang.AbstractStringBuilder.append0() 
>     (Ln 168,  ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java "    if (newSize > value.length) {")
> at HeapTest.func() 
>     (Ln 15, .\HeapTest.java "    System.out.println("iteration " + i);")
> at HeapTest.main() 
>     (Ln 6, .\HeapTest.java "    test.func();")
> The source of it is incorrect signed extension of 32 bit value to 64 bit register (marked by red in attached assembly code).
> 0000000005967D47  mov         eax,dword ptr [rbx+8] 
> 0000000005967D4A  movsxd      rax,eax 
> 0000000005967D4D  mov         rsi,7FFF0000h 
> 0000000005967D57  mov         r12,rax 
> 0000000005967D5A  add         r12,rsi 
> 0000000005967D5D  mov         qword ptr [rsp],r12 
> 0000000005967D61  mov         rax,7FFF0000h 
> 0000000005967D6B  cmp         r12,rax 
> 0000000005967D6E  je          0000000005967E05 

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


[jira] Updated: (HARMONY-4982) [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb

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

Pavel Afremov updated HARMONY-4982:
-----------------------------------

    Attachment: HeapTest.java

To reproduce the bug in jited code your can run attached test with large heap:
...jdk\jre\bin\java -Xem:opt -Xmx3950m  HeapTest


> [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb
> ----------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4982
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Linux x86-64 & Window x86-64
>            Reporter: Pavel Afremov
>            Priority: Critical
>         Attachments: HeapTest.java
>
>
> I tried to run DRL VM with heap size 3950 M bytes.
> 1.
> I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
> After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.
> 2.
> I tried to run DRL VM in OPT mode. The result is sigsegv in jited code.
> at java.lang.AbstractStringBuilder.append0() 
>     (Ln 168,  ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java "    if (newSize > value.length) {")
> at HeapTest.func() 
>     (Ln 15, .\HeapTest.java "    System.out.println("iteration " + i);")
> at HeapTest.main() 
>     (Ln 6, .\HeapTest.java "    test.func();")
> The source of it is incorrect signed extension of 32 bit value to 64 bit register (marked by red in attached assembly code).
> 0000000005967D47  mov         eax,dword ptr [rbx+8] 
> 0000000005967D4A  movsxd      rax,eax 
> 0000000005967D4D  mov         rsi,7FFF0000h 
> 0000000005967D57  mov         r12,rax 
> 0000000005967D5A  add         r12,rsi 
> 0000000005967D5D  mov         qword ptr [rsp],r12 
> 0000000005967D61  mov         rax,7FFF0000h 
> 0000000005967D6B  cmp         r12,rax 
> 0000000005967D6E  je          0000000005967E05 

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


[jira] Updated: (HARMONY-4982) [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb

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

Pavel Afremov updated HARMONY-4982:
-----------------------------------

    Description: 
I tried to run DRL VM with heap size 3950 M bytes.

I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.



  was:
I tried to run DRL VM with heap size 3950 M bytes.

1.
I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.

2.
I tried to run DRL VM in OPT mode. The result is sigsegv in jited code.

at java.lang.AbstractStringBuilder.append0() 
    (Ln 168,  ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java "    if (newSize > value.length) {")
at HeapTest.func() 
    (Ln 15, .\HeapTest.java "    System.out.println("iteration " + i);")
at HeapTest.main() 
    (Ln 6, .\HeapTest.java "    test.func();")

The source of it is incorrect signed extension of 32 bit value to 64 bit register (marked by red in attached assembly code).

0000000005967D47  mov         eax,dword ptr [rbx+8] 
0000000005967D4A  movsxd      rax,eax 
0000000005967D4D  mov         rsi,7FFF0000h 
0000000005967D57  mov         r12,rax 
0000000005967D5A  add         r12,rsi 
0000000005967D5D  mov         qword ptr [rsp],r12 
0000000005967D61  mov         rax,7FFF0000h 
0000000005967D6B  cmp         r12,rax 
0000000005967D6E  je          0000000005967E05 



I moved JIT part in separate JIRA HARMONY-4991

> [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb
> ----------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4982
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Linux x86-64 & Window x86-64
>            Reporter: Pavel Afremov
>            Assignee: Alexey Varlamov
>            Priority: Critical
>         Attachments: HARMONY-4982_GC.diff, HeapTest.java
>
>
> I tried to run DRL VM with heap size 3950 M bytes.
> I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
> After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.

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


[jira] Updated: (HARMONY-4982) [drlvm][gc_gen] Fix (improve) compressed references to support heaps up to 4Gb

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

Pavel Afremov updated HARMONY-4982:
-----------------------------------

    Summary: [drlvm][gc_gen] Fix (improve) compressed references to support heaps up to 4Gb  (was: [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb)

> [drlvm][gc_gen] Fix (improve) compressed references to support heaps up to 4Gb
> ------------------------------------------------------------------------------
>
>                 Key: HARMONY-4982
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Linux x86-64 & Window x86-64
>            Reporter: Pavel Afremov
>            Assignee: Alexey Varlamov
>            Priority: Critical
>         Attachments: HARMONY-4982_GC.diff, HeapTest.java
>
>
> I tried to run DRL VM with heap size 3950 M bytes.
> I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
> After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.

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


[jira] Assigned: (HARMONY-4982) [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb

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

Alexey Varlamov reassigned HARMONY-4982:
----------------------------------------

    Assignee: Alexey Varlamov

> [drlvm][gc_gen][jit][opt] Fix (improve) compressed references to support heaps up to 4Gb
> ----------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4982
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Linux x86-64 & Window x86-64
>            Reporter: Pavel Afremov
>            Assignee: Alexey Varlamov
>            Priority: Critical
>         Attachments: HARMONY-4982_GC.diff, HeapTest.java
>
>
> I tried to run DRL VM with heap size 3950 M bytes.
> 1.
> I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
> After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.
> 2.
> I tried to run DRL VM in OPT mode. The result is sigsegv in jited code.
> at java.lang.AbstractStringBuilder.append0() 
>     (Ln 168,  ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java "    if (newSize > value.length) {")
> at HeapTest.func() 
>     (Ln 15, .\HeapTest.java "    System.out.println("iteration " + i);")
> at HeapTest.main() 
>     (Ln 6, .\HeapTest.java "    test.func();")
> The source of it is incorrect signed extension of 32 bit value to 64 bit register (marked by red in attached assembly code).
> 0000000005967D47  mov         eax,dword ptr [rbx+8] 
> 0000000005967D4A  movsxd      rax,eax 
> 0000000005967D4D  mov         rsi,7FFF0000h 
> 0000000005967D57  mov         r12,rax 
> 0000000005967D5A  add         r12,rsi 
> 0000000005967D5D  mov         qword ptr [rsp],r12 
> 0000000005967D61  mov         rax,7FFF0000h 
> 0000000005967D6B  cmp         r12,rax 
> 0000000005967D6E  je          0000000005967E05 

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


[jira] Commented: (HARMONY-4982) [drlvm][gc_gen] Fix (improve) compressed references to support heaps up to 4Gb

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12536665 ] 

Xiao-Feng Li commented on HARMONY-4982:
---------------------------------------

I've committed temporarily to let JIT investigation to continue.

> [drlvm][gc_gen] Fix (improve) compressed references to support heaps up to 4Gb
> ------------------------------------------------------------------------------
>
>                 Key: HARMONY-4982
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4982
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Linux x86-64 & Window x86-64
>            Reporter: Pavel Afremov
>            Assignee: Alexey Varlamov
>            Priority: Critical
>         Attachments: HARMONY-4982_GC.diff, HeapTest.java
>
>
> I tried to run DRL VM with heap size 3950 M bytes.
> I changed line in GC_Gen to fix limitation which avoid usage of large heap. You can find changes in attached patch.
> After that DRL VM in JET mode works with large heap succesfully on both Linux x86-64 and Windows x86-64.

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