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.

-Eric
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to