Two questions about read barrier

View: New views
4 Messages — Rating Filter:   Alert me  

Two questions about read barrier

by Colin(Du Li) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, guys,

I have two question about read barrier.
1. why cannot use static read barrier?
In method org.jikesrvm.mm.mminterface.MemoryManage.init(), there is an assertion checker:
    if (VM.VerifyAssertions) VM._assert(!Selected.Constraints.get().needsStaticReadBarrier());
Does that means static read barrier can never be used? why?

2. What is "needsReferenceTypeReadBarrier"? What is the difference between needsReferenceTypeReadBarrier and readBarrier?

Thanks.

Du LI

Re: [rvm-research] Two questions about read barrier

by Eddie Aftandilian-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Colin,

I can only answer your second question.

> 2. What is "needsReferenceTypeReadBarrier"? What is the difference between
> needsReferenceTypeReadBarrier and readBarrier?

ReferenceTypeReadBarrier applies to java.lang.ref types, that is,
SoftReference, WeakReference, and PhantomReference.  It is needed for
concurrent GC.  It does not apply to normal reference reads.

-Eddie

P.S. Apologies if you receive this twice.  I sent a reply 5 hours ago,
but it hasn't shown up on the list yet.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Jikesrvm-researchers mailing list
Jikesrvm-researchers@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers

Re: [rvm-research] Two questions about read barrier

by Robin Garner :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Colin(Du Li) wrote:
> Hi, guys,
>
> I have two question about read barrier.
> 1. why cannot use static read barrier?
> In method org.jikesrvm.mm.mminterface.MemoryManage.init(), there is an
> assertion checker:
>     if (VM.VerifyAssertions)
> VM._assert(!Selected.Constraints.get().needsStaticReadBarrier());
> Does that means static read barrier can never be used? why?

I'll have a stab at this.

None of the existing MMTk collectors need or use a static read barrier -
in fact none of them (apart from the Poisoned Heap collector, which is
just a test case) require read barriers at all.  On the other hand, MMTk
is a toolkit for the implementation of memory managers, and there are
certainly several researchers building and/or maintaining MMTk
collectors that use read barriers, which is why support exists in the
SVN head.

The assertion in MemoryManager is a signal to you that support for the
static read barrier is either nonexistent or buggy on the JikesRVM side
of the fence.

Currently the MMTk collectors treat the static fields as a source of
roots, and scan them en-masse during the stop-the-world GC phase.
Static read barriers are generally required to implement on-the-fly
collectors, which are currently somewhat difficult to implement in MMTk.

So if you need static read barriers, you'll need to either do some
implementation or debugging.

cheers,
Robin

> 2. What is "needsReferenceTypeReadBarrier"? What is the difference between
> needsReferenceTypeReadBarrier and readBarrier?
>
> Thanks.
>
> Du LI


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Jikesrvm-researchers mailing list
Jikesrvm-researchers@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers

Re: [rvm-research] Two questions about read barrier

by Colin(Du Li) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank both.
Your posts are really helpful!

Du Li
Robin Garner wrote:
Colin(Du Li) wrote:
> Hi, guys,
>
> I have two question about read barrier.
> 1. why cannot use static read barrier?
> In method org.jikesrvm.mm.mminterface.MemoryManage.init(), there is an
> assertion checker:
>     if (VM.VerifyAssertions)
> VM._assert(!Selected.Constraints.get().needsStaticReadBarrier());
> Does that means static read barrier can never be used? why?

I'll have a stab at this.

None of the existing MMTk collectors need or use a static read barrier -
in fact none of them (apart from the Poisoned Heap collector, which is
just a test case) require read barriers at all.  On the other hand, MMTk
is a toolkit for the implementation of memory managers, and there are
certainly several researchers building and/or maintaining MMTk
collectors that use read barriers, which is why support exists in the
SVN head.

The assertion in MemoryManager is a signal to you that support for the
static read barrier is either nonexistent or buggy on the JikesRVM side
of the fence.

Currently the MMTk collectors treat the static fields as a source of
roots, and scan them en-masse during the stop-the-world GC phase.
Static read barriers are generally required to implement on-the-fly
collectors, which are currently somewhat difficult to implement in MMTk.

So if you need static read barriers, you'll need to either do some
implementation or debugging.

cheers,
Robin

> 2. What is "needsReferenceTypeReadBarrier"? What is the difference between
> needsReferenceTypeReadBarrier and readBarrier?
>
> Thanks.
>
> Du LI


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Jikesrvm-researchers mailing list
Jikesrvm-researchers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers