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.