Hi Robin,
On 10/10/2017 12:57 AM, Robin Westberg wrote:
Hi David,
Thanks for taking the time to look at this!
On 9 Oct 2017, at 03:26, David Holmes <david.hol...@oracle.com> wrote:
Hi Robin,
On 6/10/2017 8:22 PM, Robin Westberg wrote:
Hi all,
Please review this change to add event-based tracing events for biased lock
revocations:
Issue: https://bugs.openjdk.java.net/browse/JDK-8187042
Webrev (courtesy of Erik Gahlin): http://cr.openjdk.java.net/~egahlin/8187042/
I have a few queries:
First, why is there no event for the self-revocation path?
That’s a good question, I did not want to add events for revocations done
without consulting the bulk revocation heuristics (as that could generate a
very large amount of events), so I may have mistakenly thought of the
self-revocation as a part of that.. But certainly makes sense to have an event
there as well, I’ll do a bit of testing and add one.
Ok.
Second, is there a reason you can't put the event management inside the VM
operation code and so avoid the need to adjust the safepoint counter?
Well yes, the event itself is configured to record the current thread together
with a stack trace, but that requires that the event is actually generated from
the thread that should be recorded.
Ah - good point. And good to know the requesting thread is captured -
that wasn't clear to me from the event snippets in the webrev.
Third, I would have expected to see more detail in the event such as which
thread (id) the object was biased to and which thread revoked the bias. Even
perhaps some notion of which instance was involved (though that's harder to
shows).
Right, I’ve been looking at capturing which thread the object was biased
towards, but I was afraid of the possible races there as the thread pointer in
the mark would have to be saved before executing the VM operation. For that to
work 100% reliably I suspect it would have to be done inside the safepoint.
Right the thread holding the bias may not even exist any more! This may
need to utilise the new Thread-SMR work (as a future RFE of course). :)
I will create an updated webrev after looking into adding an event for the
self-revocation path.
Thanks,
David
Best regards,
Robin