td_swvoltick

From: Eric van Gyzen <eric_at_vangyzen.net>
Date: Fri, 12 Jan 2018 13:31:41 -0600
should_yield() compares thread::td_swvoltick to 'ticks' to determine
whether a thread is hogging and should yield.  Since td_swvoltick
records 'ticks' /before/ the actual context switch, the calculation in
should_yield() includes any time that the thread was switched out.  It
seems that should_yield() wants to know how long the thread has actually
been running.  Therefore, td_swvoltick should record 'ticks' /after/
sched_switch() returns.

Does this make sense, or am I missing something?

If this makes sense, I would probably keep the current assignment in
mi_switch() and simply add a second assignment after the call to
sched_switch().  That way, db_show_thread will still show useful data
for sleeping threads.  I would do the same for td_swinvolticks.

I'll be happy to make the change myself.  I just want a sanity check
before I bother.

Thanks in advance,

Eric
Received on Fri Jan 12 2018 - 18:31:50 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:14 UTC