|
Sorry for being late to this thread... On 1/25/2011 12:00 PM, Tom Rodriguez wrote: On Jan 25, 2011, at 8:49 AM, Keith McGuigan wrote:Hello, Synchronous behavior does appear to be required for CompiledMethodLoad or at least the compiled method can't be unloaded until after this event is posted and the event handler returns. CompiledMethodUnload has some restrictions about the memory not being reused for a newly generated compiled method before the unload event is sent. On a good note, the unload event can be posted after the class is unloaded and there are suitable warnings about limited use of the 'method' and 'code_addr' fields. It also looks like there must be order between the load and unload events: CompiledMethodLoad for foo CompiledMethodUnload for foo CompiledMethodLoad for foo (again) which is going to mean coordination between the mechanisms for posting of both CompiledMethodLoad and CompiledMethodUnload events. I have a vague memory of someone saying that there were restrictions on what a JVMTI client was allowed to do in response to a CompiledMethodLoad but I can't find any evidence of that. So is that just a bogus memory or is there some restriction like this? Keith and I crawled over the current JVM/TI spec: http://download.oracle.com/javase/6/docs/platform/jvmti/jvmti.html and we were unable to find anything that restricted being able to call the RedefineClasses() API from the CompiledMethodLoad event handler. I'm not saying your memory is bogus and there some things that we didn't catch until our 4th or 5th readings, but... Dan tomThe "Service thread" now handles both low-memory detection and JVMTI deferred event posting. I left the door open for other types of events to be deferred and posted via this mechanism in case we find other situations where posting events from a non-Java thread causes problems. webrev: http://cr.openjdk.java.net/~kamg/6766644/webrev.01/ -- - Keith |
- Request for review, 6766644: Redefinition of compiled ... Keith McGuigan
- Re: Request for review, 6766644: Redefinition of ... Tom Rodriguez
- Re: Request for review, 6766644: Redefinition... Kelly O'Hair
- Re: Request for review, 6766644: Redefini... Daniel D. Daugherty
- Re: Request for review, 6766644: Redefinition... Karen Kinnear
- Re: Request for review, 6766644: Redefinition... Daniel D. Daugherty
- Re: Request for review, 6766644: Redefini... Tom Rodriguez
- Re: Request for review, 6766644: Rede... Daniel D. Daugherty
- Re: Request for review, 6766644:... Keith McGuigan
- Re: Request for review, 6766... David Holmes
- Re: Request for review, ... Keith McGuigan
- Re: Request for review, ... David Holmes
- Re: Request for review, ... Keith McGuigan
- Re: Request for review, ... David Holmes
- Re: Request for review, ... Keith McGuigan
- Re: Request for review, ... David Holmes
