RFR: 8225788: Dead code in thread and safepoint
Robbin Ehn
robbin.ehn at oracle.com
Fri Aug 9 13:16:54 UTC 2019
Hi David, Dan, Coleen,
On 2019-06-21 07:52, David Holmes wrote:
> Hi Robbin,
>
> Sorry for the extra long delay on getting back to this.
Sorry for super extra long delay :)
I addressed below and re-based it:
(sorry no inc)
http://cr.openjdk.java.net/~rehn/8225788/v2/webrev/
I think the only loose end is the removal of:
void trace_oops() PRODUCT_RETURN;
Passes T1.
Thanks, Robbin
>
> thread.cpp:
>
> You deleted JavaThread::java_priority(), but in os.cpp we have:
>
> // The mapping from OS priority back to Java priority may be inexact because
> // Java priorities can map M:1 with native priorities. If you want the definite
> // Java priority then use JavaThread::java_priority()
>
> So at a minimum the comment has to be updated. But pushing on ThreadPriority a
> little harder ... in thread.hpp we have:
>
> // Prepare thread and add to priority queue. If a priority is
> // not specified, use the priority of the thread object. Threads_lock
> // must be held while this function is called.
> void prepare(jobject jni_thread, ThreadPriority prio=NoPriority);
>
> The comment is out of date as no "priority queue" is involved anywhere. And the
> only call to JavaThread::prepare doesn't pass a ThreadPriority, so the parameter
> is unneeded and the logic in the implementation can just query the priority from
> the Thread object. That said, the code for that is:
>
> prio = java_lang_Thread::priority(thread_oop());
>
> and I would argue that that line should actually have been:
>
> prio = java_priority();
>
> thus making the function non-dead. As it is a single use I don't mind if the
> function goes but I think the assert it contained:
>
> assert(MinPriority <= priority && priority <= MaxPriority, "sanity check");
>
> should be added to the prepare() code.
>
> ---
>
> vmOperations.hpp
>
> The use of ThreadPriority on set_calling_thread without it being used seems very
> odd. I'll track down when that code got introduced. The "priority" used for the
> VM op queues are not thread priorities so unclear how this came about.
>
> Thanks,
> David
>
> On 14/06/2019 6:08 am, David Holmes wrote:
>> Hi Robbin,
>>
>> Sending out three RFRs after 6pm on my Friday night is not fair! I will look
>> at them all but not in detail till Monday :)
>>
>> This one was much larger than expected. Some surprises hiding in there :)
>> There are a couple of things where my initial reaction is "hang on!" so I need
>> to look at a couple of things more closely. :)
>>
>> E.g isn't JavaThread::trace_oops useful from the debugger?
>>
>> It also seems to me that there is further dead code based on some of your
>> changes E.g. I don't see _orig_thread_state actually being read by anything.
>>
>> Cheers,
>> David
>>
>>
>> On 14/06/2019 10:29 pm, Robbin Ehn wrote:
>>> Hi all, please review.
>>>
>>> Removing some dead code.
>>>
>>> Code:
>>> http://cr.openjdk.java.net/~rehn/8225788/webrev/index.html
>>> Issue:
>>> https://bugs.openjdk.java.net/browse/JDK-8225788
>>>
>>> Thanks, Robbin
More information about the hotspot-runtime-dev
mailing list