2007/5/24, Eric Saxe <[EMAIL PROTECTED]>:
Thomas De Schampheleire wrote: > > All calls to dispdeq() are immediately followed by a call to either > setfrontdq() or setbackdq(). Only in one place is this not the case: > in the swapout() function. If I understand correctly, this will swap a > process out of memory because there is insufficient space. This also > means that the process cannot continue executing. In the example in > our logs, the dispdeq() calls all follow each other, without any signs > of calls to setfrontdq() or setbackdq(), even though the swapin() > function calls setfrontdq(). > So either there is a problem in the logs we have, or I am missing > something here. The most common call site for dispdeq() is disp_gebest() which is called in the context of the idle() loop. So this would be the case of an idle CPU stealing work from a remote CPUs run queue. In that case, disp_getbest() returns the thread to disp_getwork() / idle() which proceeds to swtch_to() the thread.
So this indeed means that after the call to dispdeq, either I should see a call to disp_getwork() or disp() or idle_exit(). Neither is the case in my logs, so I suspect something is wrong there...
-Eric
_______________________________________________ opensolaris-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
