Date: Fri, 12 Jan 2018 13:31:41 -0600 From: Eric van Gyzen <eric@vangyzen.net> To: FreeBSD Current <freebsd-current@FreeBSD.org> Subject: td_swvoltick Message-ID: <603d2786-86be-583c-9ff6-d8d73eddf77e@vangyzen.net>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?603d2786-86be-583c-9ff6-d8d73eddf77e>