:Peter Avalos <[EMAIL PROTECTED]> 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");
        }

Reply via email to