> |error = uvm_pglistalloc(map.pagesize, avail_start,
> | avail_end, 0, 0, &mlist, 1, 1);
> |if (error) {
> | wakeup(&uvm.pagedaemon);
> | error = uvm_pglistalloc(map.pagesize, avail_start,
> | avail_end, 0, 0, &mlist, 1, 1);
wakeup で為されることは, そこで寝ている process を run queue に入れる
ことだけです. sleep して cpu resource を使わせてあげる必要があります.
# で, generic な memory shotage wait channel が要るとう話になるんでし
# たっけ?
enami.