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

Reply via email to