You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Salikh Zakirov (JIRA)" <ji...@apache.org> on 2007/03/02 17:25:51 UTC

[jira] Created: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

[drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
--------------------------------------------------------------------------------------

                 Key: HARMONY-3288
                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
             Project: Harmony
          Issue Type: Improvement
            Reporter: Salikh Zakirov
         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch

Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
significant memory overhead.

The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.

The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
I will work further to remove this dependency as well.

The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>            Reporter: Salikh Zakirov
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment:     (was: 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch)

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment:     (was: 0002-rewritten-HyCond-and-HyMutex-to-use-Pthreads-Win32.patch)

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0007-Remove-thread-pool-completely.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0002-rewritten-HyCond-and-HyMutex-to-use-Pthreads-Win32.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-Pthreads-Win32.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Commented: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov commented on HARMONY-3288:
-----------------------------------------

I've attached updated patch series (patches 0001-0010), which addresses most of the issues, specifically
1) thread creation interfaces have been added to OS layer, to facilitate independence of ARP thread API and APR pools
2) hycond and hymutex OS-specific code has been separated using files rather than #ifdefs
3) cunit test linking problem worked around (patch 0010)
4) linux version also implemented and tested

The known regression are
- on Linux, the test gc.SynchronizedFinilazersTest occasionally crashes on pthread_kill with NULL pthread_t. This definitely related to the thread block reuse. Apparently, the old thread block which has been reused for a new, maybe yet unborn thread, is still linked to the thread list, and is present in the all thread iteration.

I wasn't quite able to find the root cause of this issue, but since I'm planning to go on with HARMONY-3289 to make the thread block lifecycle shorter and more explicit, I hope to be able to fix the issue soon.

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment:     (was: 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch)

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment:     (was: 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch)

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-Pthreads-Win32.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0010-Fix-cunit-test-linking-with-APR-problem.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment:     (was: 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch)

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Component/s: DRLVM

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0011-Acquire-global-thread-lock-on-creating-new-thread.patch

0011-Acquire-global-thread-lock-on-creating-new-thread.patch fixes the gc.SynchronizedFinilazersTest failure.

The regression was caused by a race condition, when the thread registered itself with the thread group,
and thus became available for suspending, before the creator thread completed the os_thread_create() call
and have thead->os_handle initialized properly. Subsequent access to not yet initialized thread->os_handle
field caused segfaults or assertion failures.

With this fix, the patch is ready to be committed, 'build test' passed on Linux/ia32 (SUSE9).

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch, 0011-Acquire-global-thread-lock-on-creating-new-thread.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Assigned: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

weldon washburn reassigned HARMONY-3288:
----------------------------------------

    Assignee: weldon washburn

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Closed: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

weldon washburn closed HARMONY-3288.
------------------------------------

    Resolution: Fixed

build, build test runs on winxp32 and linux 32 RHEL4.0 w/ gcc 4.0.2

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch, 0011-Acquire-global-thread-lock-on-creating-new-thread.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>            Reporter: Salikh Zakirov
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0006-Remove-thread-local-pool.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment:     (was: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch)

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0009-Add-assertions-on-os_handle.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Salikh Zakirov
>         Assigned To: weldon washburn
>         Attachments: 0001-allocate-monitors-latches-and-semaphores-from-C-heap.patch, 0002-Introduce-OS-layer-for-thread-functions-instead-of-APR.patch, 0003-Fix-cunit-tests-to-pass-a-valid-stack-size-attribute.patch, 0004-Rewrite-hymutex-and-hycond-to-use-OS-layer-instead-of-APR.patch, 0005-fixed-callers-of-hymutex-and-hycond-to-use-address.patch, 0006-Remove-thread-local-pool.patch, 0007-Remove-thread-pool-completely.patch, 0008-replaced-apr_get_thread_time-s-with-hythread_get_thread_times.patch, 0009-Add-assertions-on-os_handle.patch, 0010-Fix-cunit-test-linking-with-APR-problem.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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


[jira] Updated: (HARMONY-3288) [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables

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

Salikh Zakirov updated HARMONY-3288:
------------------------------------

    Attachment: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch

> [drlvm][thread] Use Pthreads/Win32 rather than APR for mutexes and condition variables
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3288
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3288
>             Project: Harmony
>          Issue Type: Improvement
>            Reporter: Salikh Zakirov
>         Attachments: 0001-allocate-fat-monitors-from-heap-directly-not-in-a-thread-pool.patch, 0002-rewritten-HyCond-and-HyMutex-to-use-pthread-calls.patch, 0003-fixed-callers-of-hymutex-and-hycond-to-use-address.patch
>
>
> Currently DRLVM uses APR mutexes and condition variables. These require APR memory pools to be allocated from,
> and releasing memory pools may be tricky at times. For example, the memory lifecycle of the native monitor is associated
> with the java object lifecycle, thus requires a specific object-specific pool. While this solution is possible, it will incur
> significant memory overhead.
> The attached patch series proposes a simplified model by using Pthreads or Win32 interfaces directly, without layering APR.
> It allows for explicit memory allocation and deallocation, and makes fixing thread memory model much easier.
> The patch series is incomplete, as it still uses APR thread creation APIs, and thus APR pools are still created for every thread.
> I will work further to remove this dependency as well.
> The patches

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