harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Kuksenko (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-4001) [drlvm][threading] DRLVM can't start more then ~1600 threads due to memory consumption (win32).
Date Wed, 30 May 2007 14:05:16 GMT
[drlvm][threading] DRLVM can't start more then ~1600 threads due to memory consumption (win32).
-----------------------------------------------------------------------------------------------

                 Key: HARMONY-4001
                 URL: https://issues.apache.org/jira/browse/HARMONY-4001
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
         Environment: Windows Server 2003 (32-bit)
            Reporter: Sergey Kuksenko
            Priority: Critical


Attached test shown that DRLVM is not avaliable to have more then ~1600 threads running simultaneously.
Even such empty threads as in the test.
This bug is critical to running SpecJAppServer2004 because of even simple txRate=100 needs
~1300 running threads.
The test tries to run 3000 simultaneously threads (doing nothing).
RI pass the test succesfully.

Perfmon data shows the following:
- starting each thread adds (in average) 1.24M of memory to the process address space.
- so the test on 1636 thread reached 2G Windows limit and hung up. 

Setting to Sun1.6 -Xss1M options which significially increase stack size for each thread leads
to failure too (after 1827 thread). But RI throws the follwoing exception:
Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
        at java.lang.Thread.start0(Native Method)
        at java.lang.Thread.start(Thread.java:597)
        at Test.main(Test.java:17)

1. DRLVM should have the similar option for managing thread stack size.
2. DRLVM should correctly throw exception in this case.
3. default stack size shoule be less then 1M.

I found that "vm\thread\src\thread_java_basic.c" has harcoded default thread stack size as
1M. But setting it to 16K doesn't change the test behavior and even in this case I can see
with perfmon that each thread use 1.24M.


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


Mime
View raw message