You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Geir Magnusson Jr (JIRA)" <ji...@apache.org> on 2006/08/23 18:49:17 UTC
[jira] Closed: (HARMONY-1125) [DRLVM] Thread Manager component
contribution
[ http://issues.apache.org/jira/browse/HARMONY-1125?page=all ]
Geir Magnusson Jr closed HARMONY-1125.
--------------------------------------
> [DRLVM] Thread Manager component contribution
> ---------------------------------------------
>
> Key: HARMONY-1125
> URL: http://issues.apache.org/jira/browse/HARMONY-1125
> Project: Harmony
> Issue Type: Improvement
> Components: Contributions
> Reporter: Andrey Chernyshev
> Assigned To: Geir Magnusson Jr
> Attachments: 0002-fixed-HARMONY-1125-on-top-of-HARMONY-1144-j.u.c.patch, DRLVM-update-for-new-ThreadManager-09-08e.diff, harmony-1125-updated.patch, ThreadManager-09-08e.zip
>
>
> This patch is an improvement for DRLVM which consolidates it's threading
> subsystem into a single component - Thread Manager.
> The attached bundle consists of two parts:
> 1) ThreadManager-09-08e.zip
> - Thread Manager code, tests and documentation
> (it has to be unzipped into drlvm/trunk directory)
> 2) DRLVM-update-for-new-ThreadManager-09-08e.diff
> - Patch that integrates Thread Manager into DRLVM.
> The primary purpose of this update is to make a step toward archiving a
> better modularity within the DRLVM, as well as do some enhancements over
> its threading subsystem. This is the result of refactoring of the
> threading-related code in the DRLVM into a separate library which
> is now implemented on top of the Apache Porting Layer.
> Here is the summary of enhancements that were made:
> - Threading becomes a modular component in JVM with a well-defined interface
> (one may try playing now with the different threading implementations without
> rewriting random pieces of the drlvm code);
> - Thread Manager is implemented on top of APR which may help to simplify
> it's porting to other platforms (the only platform dependent piece is JIT helpers)
> - Java monitors are reimplemented such that:
> - Performance is improved with help of the lock reservation algorithm
> (see http://portal.acm.org/citation.cfm?id=582433)
> - Recursion overflow condition is now handled correctly
> - Thread creation overhead is decreased;
> - Java threads now are always created at the single place;
> - Miscellaneous threading bugs went away, for example: hangs during thread stress tests,
> crashes on sleep(), incorrect reporting of JVMTI state and others.
> Note that the low-level (or "native") interface of the Thread Manager
> has been designed to be hythread-compatible with the intent of having
> classlib and DRLVM sharing the same threading library. It also adds
> a certain extensions to the original hythread which were required by
> drlvm (located in hythread_ext.h). However, these functions can still
> be easily renamed from hythread_* to something else if people believe
> this idea is wrong.
> Thread Manager comes with the extensive documentation which uncovers some
> of the details of the DRLVM's threading subsystem (you may find it at vm/thread/doc/ThreadManager.htm).
> There is also a set of unit tests for Thread Manager (located at vm/tests/unit)
> those framework can probably be used for the further unit tests development for
> other modules in DRLVM.
> The integration patch consists of the following pieces:
> build/make/* - changes necessary to include unit tests and accommodate
> new threading structure
> build/patches/*/APR - quick fixes to a few bugs in the APR: apr_thread_cond
> on Windows, apr_thread_yield on Linux.
> Note that the Thread Manager implementation requires a certain
> funct-ty which appeared to be beyond the APR, these additional
> functions were added for now at vm\port\include\apr_thread_ext.h:
> apr_thread_set_priority()
> apr_memory_rw_barrier()
> apr_thread_yield_other()
> apr_thread_times()
> apr_thread_cancel()
> If we find this code useful we may try proposing them
> back to the APR project.
> vm/vmcore/src/thread/* - These files contained old threading code which is now
> either completely removed or re-mapped into new Thread Manager.
>
> vm/vmcore/src/thread/hythr/
> - it was "hythread" emulation library, now it is replaced with the
> more funcitonal "native" layer of the Thread Manager (which still
> implements the most of hythread_* API).
> vm/port/src/encoder/* - added support for ROR instruction to the encoder
> Other changes were done as required to replace the references to the old threading code
> with the calls/references to the new Thread Manager.
> Thank you,
> Andrey Chernyshev
> Intel Middleware Products Division
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira