write barrier and card marking

David Holmes David.Holmes at oracle.com
Fri Aug 13 16:23:10 PDT 2010


Tony,

This is a GC question not a runtime question so I've cc'ed the GC list 
and bcc'ed the runtime list.

David

Tony Guan said the following on 08/14/10 02:28:
> Hi there,
> 
> I wrote one collector of my own in hotspot, but now I have a problem.
> In the new collector, I inserted another generation between the
> defNewGeneration and TenuredGeneration. To collect this new
> generation, I modified the defNewGeneration collector, which is gc by
> copying survivors.
> 
> After the collection on this generation, I am now having an Null
> pointer exception in the java program. My guess is that the collector
> failed to identify the live objects in the generation. Here I need
> some one to tell me if there is any missed modification on the write
> barrier or card marking.
> 
> As far as I know, the write barrier works whenever a field write
> happens, without regards to which generation is influenced. So this
> means that the card of the written field will be marked. So my problem
> should be in the closures that check if there are any live objects in
> the generation. Am I right?
> 
> Or other than the card scanning, is there anything special that I
> should process?
> 
> Thanks a lot!
> 
> 
> Tony (Xiaohua Guan)


More information about the hotspot-gc-dev mailing list