[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: RFR: 8187042: Events to show which objects are associated with biased object revocations
From:       Robin Westberg <robin.westberg () oracle ! com>
Date:       2017-10-16 15:02:35
Message-ID: 48E53B0F-FD1F-44CF-912D-37661F5906C6 () oracle ! com
[Download RAW message or body]

Thanks for the reviews Markus, Erik and David!

Filed https://bugs.openjdk.java.net/browse/JDK-8189368 \
<https://bugs.openjdk.java.net/browse/JDK-8189368> for the improvement to add \
information on the thread currently holding the bias when it is revoked.

Best regards,
Robin

> On 16 Oct 2017, at 13:23, Markus Gronlund <markus.gronlund@oracle.com> wrote:
> 
> Hi Robin,
> 
> Looks good.
> 
> Thanks
> Markus
> 
> From: Robin Westberg 
> Sent: den 13 oktober 2017 16:56
> To: David Holmes
> Cc: serviceability-dev@openjdk.java.net
> Subject: Re: RFR: 8187042: Events to show which objects are associated with biased \
> object revocations 
> Hi again,
> 
> Here's an updated version that adds a separate event for the self-revocation path. \
> It's a new event class as it is a bit different from the non-self-revocation path, \
> it does not have any relevant safepoint ID for example. 
> Webrev:
> http://cr.openjdk.java.net/~egahlin/8187042_2/ \
> <http://cr.openjdk.java.net/~egahlin/8187042_2/>  
> 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). :) 
> Ah yeah, that may be an effective way of doing it. Another idea suggested by Markus \
> Grönlund was to capture the thread's id inside the operation and propagate it \
> through an additional field in the VM operation class. But anyway, I'll file a \
> separate RFE for investigating that improvement. 
> Best regards,
> Robin
> 
> 
> I will create an updated webrev after looking into adding an event for the \
> self-revocation path. 
> Thanks,
> David
> 
> 
> Best regards,
> Robin


[Attachment #3 (unknown)]

<html><head><meta http-equiv="Content-Type" content="text/html \
charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; \
-webkit-line-break: after-white-space;" class="">Thanks for the reviews Markus, Erik \
and David!<br class=""><div class=""><br class=""></div><div class="">Filed&nbsp;<a \
href="https://bugs.openjdk.java.net/browse/JDK-8189368" \
class="">https://bugs.openjdk.java.net/browse/JDK-8189368</a>&nbsp;for the \
improvement to add information on the thread currently holding the bias when it is \
revoked.</div><div class=""><br class=""></div><div class="">Best regards,</div><div \
class="">Robin</div><div class=""><br class=""><div><blockquote type="cite" \
class=""><div class="">On 16 Oct 2017, at 13:23, Markus Gronlund &lt;<a \
href="mailto:markus.gronlund@oracle.com" class="">markus.gronlund@oracle.com</a>&gt; \
wrote:</div><br class="Apple-interchange-newline"><div class=""><div \
class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: \
12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \
letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class=""><span lang="EN-US" style="font-size: 11pt; font-family: Calibri, \
sans-serif; color: rgb(31, 73, 125);" class="">Hi Robin,<o:p \
class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; \
font-family: 'Times New Roman', serif;" class=""><span lang="EN-US" style="font-size: \
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""><o:p \
class="">&nbsp;</o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: \
12pt; font-family: 'Times New Roman', serif;" class=""><span lang="EN-US" \
style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" \
class="">Looks good.<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm \
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span \
lang="EN-US" style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, \
73, 125);" class=""><br class="">Thanks<o:p class=""></o:p></span></div><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class=""><span lang="EN-US" style="font-size: 11pt; font-family: Calibri, \
sans-serif; color: rgb(31, 73, 125);" class="">Markus<o:p \
class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; \
font-family: 'Times New Roman', serif;" class=""><span lang="EN-US" style="font-size: \
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=""><o:p \
class="">&nbsp;</o:p></span></div><div class=""><div style="border-style: solid none \
none; border-top-width: 1pt; border-top-color: rgb(181, 196, 223); padding: 3pt 0cm \
0cm;" class=""><div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: \
'Times New Roman', serif;" class=""><b class=""><span lang="EN-US" style="font-size: \
10pt; font-family: Tahoma, sans-serif;" class="">From:</span></b><span lang="EN-US" \
style="font-size: 10pt; font-family: Tahoma, sans-serif;" class=""><span \
class="Apple-converted-space">&nbsp;</span>Robin Westberg<span \
class="Apple-converted-space">&nbsp;</span><br class=""><b class="">Sent:</b><span \
class="Apple-converted-space">&nbsp;</span>den 13 oktober 2017 16:56<br class=""><b \
class="">To:</b><span class="Apple-converted-space">&nbsp;</span>David Holmes<br \
class=""><b class="">Cc:</b><span class="Apple-converted-space">&nbsp;</span><a \
href="mailto:serviceability-dev@openjdk.java.net" \
class="">serviceability-dev@openjdk.java.net</a><br class=""><b \
class="">Subject:</b><span class="Apple-converted-space">&nbsp;</span>Re: RFR: \
8187042: Events to show which objects are associated with biased object \
revocations<o:p class=""></o:p></span></div></div></div><div style="margin: 0cm 0cm \
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><o:p \
class="">&nbsp;</o:p></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; \
font-family: 'Times New Roman', serif;" class="">Hi again,<o:p \
class=""></o:p></div><div class=""><div style="margin: 0cm 0cm 0.0001pt; font-size: \
12pt; font-family: 'Times New Roman', serif;" class=""><o:p \
class="">&nbsp;</o:p></div></div><div class=""><div style="margin: 0cm 0cm 0.0001pt; \
font-size: 12pt; font-family: 'Times New Roman', serif;" class="">Here's an updated \
version that adds a separate event for the self-revocation path. It's a new event \
class as it is a bit different from the non-self-revocation path, it does not have \
any relevant safepoint ID for example.<o:p class=""></o:p></div></div><div \
class=""><div style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times \
New Roman', serif;" class=""><o:p class="">&nbsp;</o:p></div></div><div class=""><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class="">Webrev:<o:p class=""></o:p></div></div><div class=""><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class=""><a href="http://cr.openjdk.java.net/~egahlin/8187042_2/" \
style="color: purple; text-decoration: underline;" \
class="">http://cr.openjdk.java.net/~egahlin/8187042_2/</a>&nbsp;<o:p \
class=""></o:p></div></div><div class=""><div style="margin: 0cm 0cm 0.0001pt; \
font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><o:p \
class="">&nbsp;</o:p></div><div class=""><blockquote style="margin-top: 5pt; \
margin-bottom: 5pt;" class=""><div class=""><blockquote style="margin-top: 5pt; \
margin-bottom: 5pt; font-variant-caps: normal; text-align: start; \
-webkit-text-stroke-width: 0px; word-spacing: 0px;" class=""><blockquote \
style="margin-top: 5pt; margin-bottom: 5pt;" class=""><div style="margin: 0cm 0cm \
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span \
style="font-size: 9pt; font-family: Helvetica, sans-serif;" class="">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).<o:p \
class=""></o:p></span></div></blockquote><div style="margin: 0cm 0cm 0.0001pt; \
font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span \
style="font-size: 9pt; font-family: Helvetica, sans-serif;" class="">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.<o:p \
class=""></o:p></span></div></blockquote><div style="margin: 0cm 0cm 0.0001pt; \
font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><span \
style="font-size: 9pt; font-family: Helvetica, sans-serif;" class=""><br \
class="">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). :)</span><o:p \
class=""></o:p></div></div></blockquote><div class=""><div style="margin: 0cm 0cm \
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><o:p \
class="">&nbsp;</o:p></div></div><div class=""><div style="margin: 0cm 0cm 0.0001pt; \
font-size: 12pt; font-family: 'Times New Roman', serif;" class="">Ah yeah, that may \
be an effective way of doing it. Another idea suggested by Markus Grönlund was to \
capture the thread's id inside the operation and propagate it through an additional \
field in the VM operation class. But anyway, I'll file a separate RFE for \
investigating that improvement.<o:p class=""></o:p></div></div><div class=""><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class=""><o:p class="">&nbsp;</o:p></div></div><div class=""><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class="">Best regards,<o:p class=""></o:p></div></div><div class=""><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class="">Robin<o:p class=""></o:p></div></div><div style="margin: 0cm 0cm \
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" class=""><br \
class=""><br class=""><o:p class=""></o:p></div><div class=""><blockquote \
style="margin-top: 5pt; margin-bottom: 5pt; font-variant-caps: normal; text-align: \
start; -webkit-text-stroke-width: 0px; word-spacing: 0px;" class=""><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class=""><span style="font-size: 9pt; font-family: Helvetica, sans-serif;" \
class="">I will create an updated webrev after looking into adding an event for the \
self-revocation path.<o:p class=""></o:p></span></div></blockquote><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class=""><span style="font-size: 9pt; font-family: Helvetica, sans-serif;" \
class=""><br class="">Thanks,<br class="">David<br class=""><br \
style="font-variant-caps: normal; text-align: start; -webkit-text-stroke-width: 0px; \
word-spacing: 0px;" class=""><br class=""></span><o:p class=""></o:p></div><div \
style="margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', \
serif;" class=""><span style="font-size: 9pt; font-family: Helvetica, sans-serif;" \
class="">Best regards,<br \
class="">Robin</span></div></div></div></div></div></div></blockquote></div><br \
class=""></div></body></html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic