On Thu, Sep 15, 2011 at 2:40 AM, Masao Uebayashi <uebay...@gmail.com> wrote: > On Thu, Sep 15, 2011 at 2:13 AM, Emmanuel Dreyfus <m...@netbsd.org> wrote: >> Masao Uebayashi <uebay...@gmail.com> wrote: >> >>> You're faulting on a busy (PG_BUSY) anon page whose owner is also an >>> anon. I suppose the page is being swapped either in or out... >> >> The question is why does it fail to complete? > > Hmm, I don't see any relevant "if (PG_WANTED) wakeup(pg);" in swap > code path, like that done in genfs_getpages().
Sorry, it's done in uvmfault_anonget() { if (we_own) { wakeup(); } }. So what I can think of now is, the underlying bdev can't finish I/O because it allocates memory to handle I/O requests?