NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/44366: poweroff doesn't work
The following reply was made to PR kern/44366; it has been noted by GNATS.
From: David Young <dyoung%pobox.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost, mihai.chelaru%ngnetworks.ro@localhost
Subject: Re: kern/44366: poweroff doesn't work
Date: Thu, 13 Jan 2011 12:07:18 -0600
On Thu, Jan 13, 2011 at 03:25:04PM +0000, Jukka Ruohonen wrote:
> The following reply was made to PR kern/44366; it has been noted by GNATS.
>
> From: Jukka Ruohonen <jruohonen%iki.fi@localhost>
> To: gnats-bugs%NetBSD.org@localhost
> Cc: mihai.chelaru%ngnetworks.ro@localhost
> Subject: Re: kern/44366: poweroff doesn't work
> Date: Thu, 13 Jan 2011 17:20:51 +0200
>
> On Thu, Jan 13, 2011 at 01:10:07PM +0000, Mihai Chelaru wrote:
> > It still doesn't work, sorry. Moreover, I just tested 5.0/i386
> > and 5.1 GENERIC kernels and both completes power off.
>
> Thanks to Jared D. McNeill, the bug was located. This regression was caused
> by adding detach-routines to acpi(4) followed by the commit to i386/amd64
> machdep.c:
>
> revision 1.669
> date: 2009/06/26 23:40:27; author: dyoung; state: Exp; lines: +52 -27
> During a normal shutdown, gracefully tear down arbitrary stacks of
> filesystems and (pseudo-)devices, according to the algorithm at A3
> and A4, below.
>
> Proposed and discussed at
> <http://mail-index.netbsd.org/tech-kern/2009/04/20/msg004864.html>. No
> objections.
>
> ...
>
> In particular, cpu_reboot() now runs config_detach_all(), while acpi(4) can
> not obviously be detached as it is responsible for the hardware powerdown.
> It was also disucssed that removing the dopowerhooks() could be unsafe (even
> on x86).
>
> At the moment it is unclear how this should be resolved.
Two corrections to the above:
acpi(4) is not flagged as detachable at shutdown, so I don't think that
the kernel actually detaches it. The kernel should print a message for
each device that it detaches during shutdown.
I think that you meant shutdownhooks, not powerhooks. You should
be able to rule that out quickly, because few drivers establish
shutdownhooks any longer:
find sys/dev/ sys/arch/{i386,amd64,x86} -type f | xargs grep -l
shutdownhook_est
sys/dev/bi/if_ni.c
sys/dev/eisa/if_fea.c
sys/dev/i2o/iop.c
sys/dev/ic/aac.c
sys/dev/ic/awi.c
sys/dev/ic/cac.c
sys/dev/ic/ciss.c
sys/dev/ic/dpt.c
sys/dev/ic/mlx.c
sys/dev/ic/mtd803.c
sys/dev/ic/tropic.c
sys/dev/isa/if_lc_isa.c
sys/dev/isa/if_ntwoc_isa.c
sys/dev/marvell/gtmpsc.c
sys/dev/mvme/clock_pcctwo.c
sys/dev/pci/amr.c
sys/dev/pci/if_de.c
sys/dev/pci/if_fpa.c
sys/dev/pci/if_lmc.c
sys/dev/pci/if_ntwoc_pci.c
sys/dev/pci/mly.c
sys/dev/pci/twa.c
sys/dev/qbus/if_de.c
sys/dev/sysmon/sysmon_wdog.c
sys/dev/tc/if_fta.c
sys/arch/i386/tags
sys/arch/amd64/tags
If an incomplete or broken detachment routine causes the trouble, you
can narrow in on the problem driver by removing DVF_DETACH_SHUTDOWN
flags from CFATTACH_DECL3_NEW() calls affecting drivers for your
hardware, and adding them back again one by one.
Dave
--
David Young OJC Technologies
dyoung%ojctech.com@localhost Urbana, IL * (217) 278-3933
Home |
Main Index |
Thread Index |
Old Index