RFR (S): Reset bitmaps in MarkCompact should use parallel threads
Roman Kennke
rkennke at redhat.com
Wed Nov 2 19:56:30 UTC 2016
While you are looking at this, you could also check whether or not it
makes a difference if we used BitMap::clear_large_range() (which uses
memset) instead of BitMap::clear_range() (which uses a simple for-loop)
:-) I strongly suspect that memset might be faster. Requires some
additions to CMBitMap class though.
Roman
Am Mittwoch, den 02.11.2016, 20:31 +0100 schrieb Aleksey Shipilev:
> On 11/02/2016 08:20 PM, Roman Kennke wrote:
> >
> > >
> > > 3. VMThread (!): Reset prev bitmap
> >
> > Duh. How did that happen?
>
> There was a TODO that we want to use workers to clear this bitmap. So
> here we are :)
>
> >
> > >
> > > Aside: At some point, we'd have to see if we can decouple
> > > SHConcurrentMark enough to use Parallel, not Concurrent, threads
> > > for
> > > MarkCompact cycle.
> >
> > I argued with Christine a bunch of times whether or not we should
> > just
> > use a single thread pool, and simply change the number of threads
> > used
> > on demand. Would you see any benefit in that? Or disadvantage?
>
> I think having a single thread pool simplifies things for us.
>
> As long as the same observed behavior for Concurrent/Parallel thread
> count stays. E.g. having a machine of 10 cores, I might want to tune
> down mutator to have 4 cores, concurrent GC to have other 6, and
> parallel GC, if it happens to run and stop my mutator, to have all
> 10!
> Now, I can do that by saying -XX:ParallelGCThreads=10
> -XX:ConcurrentGCThreads=6.
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list