Hi,
My brand new sparkling OpenBSD VPS is currently in crisis.
Unfortunately there is no reset function to it and I forgot to set the
"break to ddb" function. The vps admin staff is probably already asleep
so I'll have to wait a few hours. On console it says repeatedly:
pagedaemon: wait_pla deadlock detected!
I have tracked it down to this function in uvm/uvm_pmemrange.c
-----
int
uvm_wait_pla(paddr_t low, paddr_t high, paddr_t size, int failok)
{
struct uvm_pmalloc pma;
const char *wmsg = "pmrwait";
if (curproc == uvm.pagedaemon_proc) {
/*
* XXX detect pagedaemon deadlock - see comment in
* uvm_wait(), as this is exactly the same issue.
*/
printf("pagedaemon: wait_pla deadlock detected!\n");
msleep(&uvmexp.free, &uvm.fpageqlock, PVM, wmsg, hz >> 3);
#if defined(DEBUG)
/* DEBUG: panic so we can debug it */
panic("wait_pla pagedaemon deadlock");
#endif
return 0;
}
-----
Now while the opportunist in me says "we should really panic here"
instead of having a DEBUG kernel, the realist in me says to hold on and
think of others.
The question for me then is is the wait_pla pagedaemon deadlock
situation recoverable, or is this really a bug?
Hoping some kernel developers will pick this up and move it to tech@ if
that's appropriate!
I wish I had a dmesg for you but I didn't save one offline from this
vps. I can tell you this much. It's virtualbox'ed, has 2 cpu's and
since yesterday has some memory intensive application that may cause
some things to be moved to swap. I'm gonna have to see to reduce the
memory on that I guess.
Regards,
-peter