Date: Fri, 12 Jan 2018 16:36:56 -0600 From: Eric van Gyzen <eric@vangyzen.net> To: Konstantin Belousov <kostikbel@gmail.com> Cc: FreeBSD Current <freebsd-current@FreeBSD.org> Subject: Re: td_swvoltick Message-ID: <b6a1b076-1e2f-e0f4-8934-6ed94ee796ae@vangyzen.net> In-Reply-To: <20180112193659.GL1684@kib.kiev.ua> References: <603d2786-86be-583c-9ff6-d8d73eddf77e@vangyzen.net> <20180112193659.GL1684@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On 01/12/2018 13:36, Konstantin Belousov wrote: > On Fri, Jan 12, 2018 at 01:31:41PM -0600, Eric van Gyzen wrote: >> 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? > Yes, it does make sense to me. Thanks, Kostik. If anyone else is interested: https://reviews.freebsd.org/D13892 >> >> 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?b6a1b076-1e2f-e0f4-8934-6ed94ee796ae>