[issue713] shutdown freeze and forced unmounts
Matthew Dillon
dillon at apollo.backplane.com
Sat Jul 7 12:10:28 PDT 2007
:Peter Avalos <pavalos at theshell.com> added the comment:
:
:Now I'm seeing acpi_button messages:
Ok, I'm not sure what is going on with the buttons. But lets try
to get some additional information on the forced unmounts. I don't
like the fact that 14 processes seem to be stuck.
Lets try to get a good kernel core for this condition. Here's a patch
which will hopefully print out which mount(s) are having problems, and
will also panic the system when it hits a mount with more then 12
process references (the idea being to try to get a snapshot of the
kernel when its in this situation that can then be kgdb'd).
Once you get a good kernel core, remove the panic.
I have a feeling that the freeze is due to the mount confusion and not
ACPI, but I could be wrong.
Index: vfs_syscalls.c
===================================================================
RCS file: /cvs/src/sys/kern/vfs_syscalls.c,v
retrieving revision 1.117
diff -u -p -r1.117 vfs_syscalls.c
--- vfs_syscalls.c 26 Jun 2007 20:39:33 -0000 1.117
+++ vfs_syscalls.c 7 Jul 2007 19:06:17 -0000
@@ -678,6 +678,8 @@ mount_warning(mp, "Forced unmount: "
"%d process references still "
"present", mp->mnt_refs);
freeok = 0;
+ if (panicstr == NULL && mp->mnt_refs > 12)
+ panic("Panicing on forced unmount");
}
}
@@ -758,7 +760,10 @@ kvprintf(ctl, va);
kprintf("\n");
kfree(buf, M_TEMP);
} else {
- kprintf("unmount(%p): ", mp);
+ kprintf("unmount(%p", mp);
+ if (mp->mnt_ncmounton.ncp && mp->mnt_ncmounton.ncp->nc_name)
+ kprintf(",%s", mp->mnt_ncmounton.ncp->nc_name);
+ kprintf("): ");
kvprintf(ctl, va);
kprintf("\n");
}
More information about the Bugs
mailing list