On 10/18/06, Nikolay Kuznetsov <[EMAIL PROTECTED]> wrote:

> I agree it is required to have a solid model in mind. I also believe
> it is required to have such design/implementation which doesn't allow
> to break that model.

No, that's the point if functionality is so safe that it's impossible
to break the model,
it's not so highly important(as in our case) to understand how it
works, this model will restore itself.


hmmm.... this is probably a case where we are all saying the same thing only
using different words.  Nikolay, would it be possible for you to try a
different way of explaining the above?  It would really be appreciated.

It's ok to have safe points inside disabled regions only if it is
> really safe to enable GC at that point. All such cases should be taken
> with extreme caution. In our particular case we can't guarantee that
> it is safe to suspend the thread. That's why I think having something
> like assert(hythread_is_suspend_enabled) in the beginning of
> hythread_suspend_all is really required? Of cause it will require some
> changes in VM and TM...

Again, I agree that sometimes safepoints enable suspension in wrong
places an assert must be placed inside conditions, for instance, but
suspend_all is the rare place where safe_point placed in
suspend_disable region intentionally, by design(please refer to the
lock semantics of safe regions in my answer to Weldon).

> Could you give the most impossible thing to do?
Peace All Over the World? :)

> I was thinking of TM
> as of quite independent component. But now it seems like some parts of
> it are really depend on DRLVM implementation. :-(

First of all, TM _is_ independent component, but some of its functions
designed for special usage(it's potentially unsafe to nail up smth
with the gun, for instance).
Also, I believe that TM suspension safe enough an should not be
rewritten w/o special need, and even if it should the performance of
this functionality should be always in mind.
Current suspension scheme was tested on multiple workloads and tuned
to achieve better performance, and note that not even using additional
locks but having CAS to perform suspend_disable/enable leads to
noticeable performance loss.

Actually my idea from the beginning is that while we don't have a
scenario we should not change suspension algorithm. It's good enough,
robust tuned for better performance of GC.

Nik.

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Weldon Washburn
Intel Middleware Products Division

Reply via email to