Date: Sat, 25 Jan 2003 15:20:31 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Jeff Roberson <jroberson@chesapeake.net> Cc: Steve Kargl <sgk@troutmask.apl.washington.edu>, Robert Watson <rwatson@FreeBSD.ORG>, Gary Jennejohn <garyj@jennejohn.org>, <arch@FreeBSD.ORG> Subject: Re: New scheduler Message-ID: <200301252320.h0PNKVoq090077@apollo.backplane.com> References: <20030125171217.D18109-100000@mail.chesapeake.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Jeff, while investigating your patch I found a couple of possible issues which I think are causing the time problems. The first problem is sched_choose() appears to be causing a lot of ping-ponging because the swap is made permanent. i.e. it swaps cpu queues but then the new queue (belonging to another cpu) becomes the current queue. For the current choose it doesn't matter, but for the NEXT time choose is called it does. The second issue has to do with the way kg_slptime is calculated. It just doesn't look right to me. I think a better solution is to add an additional field, kg_runtime, and rather then trying to decrement kg_slptime you instead increment kg_runtime, then use the ratio kg_runtime / kg_slptime to calculate the interactivity of the process. If either kg_runtime or kg_slptime exceed SCHED_SLP_MAX, simply scale both down (to deal with overflows). -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301252320.h0PNKVoq090077>