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, EricReceived 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