Ok. :)
David
On 25/02/2013 6:36 PM, Markus Grönlund wrote:
Thank you Staffan.
I still need an ok from a (R)eviewer to proceed with this - can I ask for this
please?
Best regards
Markus
-----Original Message-----
From: Staffan Larsen
Sent: den 20 februari 2013 11:42
To: Markus Grönlund
Cc: David Holmes; Dean Long; Erik Gahlin; [email protected];
[email protected]
Subject: Re: RFR(XXS): 8007147: Trace event ExecuteVMOperation may get dangling
pointer
Looks good!
/Staffan
On 20 feb 2013, at 11:15, Markus Grönlund <[email protected]> wrote:
Thanks for your input on this one.
I think I am hearing that we can proceed with assigning a 0 (zero) as the thread id to
indicate the thread information is unknown for a non-blocking operation. Risk being of
course to have a false "hit" if a 0 is assigned by some OS as a thread id, and
even worse if 0 is also re-used across threads. This should be considered low risk. In
addition, the occasional wrong info in the caller thread field might not warrant avoiding
presenting info about non-blocking operations.
Resolving this would incorporate a lot of investigation which must be dealt
with outside the scope of this bug.
By adding additional comments about this fact (thread 0 being used to indicate
"thread unknown" for non-blocking ops) I think we can proceed with a modified
version of the first webrev01, but with additional comments added.
Updated webrev can be found here:
http://cr.openjdk.java.net/~mgronlun/8007147/webrev03/
Thanks again
Markus
-----Original Message-----
From: David Holmes
Sent: den 20 februari 2013 03:38
To: Dean Long
Cc: Staffan Larsen; Markus Grönlund;
[email protected];
[email protected]
Subject: Re: RFR(XXS): 8007147: Trace event ExecuteVMOperation may get
dangling pointer
On 20/02/2013 5:30 AM, Dean Long wrote:
On 2/19/2013 11:00 AM, Staffan Larsen wrote:
On 19 feb 2013, at 19:56, Dean Long <[email protected]
<mailto:[email protected]>> wrote:
When the VM_Operation is created, we could take a snapshot of the
thread_id of the caller, then use that later.
One problem with that is if the thread_id gets reused for a new
thread quickly after the old thread terminates. This is perhps
ulikely, but could happen.
Or we could block the creating thread from fully exiting until the
VM op executes.
That would introduce a lot more synchronization and state to keep
track of.
I think we could do it with a reference count on the thread, a wait
in thread exit, and a notify in the VM thread.
We have a similar dangling pointer problem with JVMTI (7154963), and
a reference count should solve that problem as well.
I think that proposal needs a lot more investigation, certainly it is well out
of scope for this bug. There are potential dangling thread pointers all over
the JVM interfaces.
David
-----
dl
/Staffan