Re: ThinkPad: reboots after successful shutdown -p

From: Xin Li <delphij_at_delphij.net>
Date: Wed, 17 Mar 2021 00:01:49 -0700
On 3/16/21 9:45 PM, Warner Losh wrote:
> 
> 
> On Tue, Mar 16, 2021 at 10:18 PM Xin Li <delphij_at_freebsd.org
> <mailto:delphij_at_freebsd.org>> wrote:
> 
>     On 11/17/19 23:14, Xin Li wrote:
>     > Hi,
>     >
>     > I recently noticed that if I do a 'shutdown -p' from -CURRENT, the
>     > system would shut down and seemingly powered off, then it would
>     restart
>     > after about 5-10 seconds.
>     >
>     > Is this a known issue?  Arguably this is not necessarily a FreeBSD
>     > issue, but it seems that the Windows 10 installation doesn't have the
>     > problem, so I guess there might be some difference between our and
>     > Windows's shutdown sequence.
> 
>     I've found a workaround for this, for the record, setting
>     hw.efi.poweroff=0 would make the laptop to correctly shutdown.
> 
>     However I don't see anything wrong with sys/dev/efidev/efirt.c's
>     implementation of EFI shutdown; it appears to be essentially the same as
>     implemented in command_poweroff() in stand/efi/loader/main.c, but
>     'poweroff' would work just fine in loader.efi.
> 
>     Can someone familiar with the code shed me some light here? :-)
> 
>     It looks like what Linux did was to prefer ACPI S5, unless it's not
>     available or the system have HW_REDUCED flag in FADT, so if we do
>     something similar it would fix the issue for me, but according to
>     bugs.freebsd.org/233998 <http://bugs.freebsd.org/233998> that's not
>     the case for at least Conor's system
>     (_S5 appears to be in the ACPI dump), so I think it's something else...
> 
> 
> For me, interrupt storm on shutdown has been the causes of issues like
> this...
> 
> Any chance you can eliminate that as a possibility?

Hmm, that's a good question -- is there a way to tell after the screen
was turned off?

Before the screen was turned off, there doesn't appear to be interrupt
storm.  The system was performing a typical FreeBSD shutdown procedure:
All buffers synced, showed uptime, destroyed GELI devices, spin down the
SATA devices, shutdown the cardreader (rtsx0), detached all USB devices
(hidraw1, hidbus, usbhid1, ubt0, uhub0), screen turned slightly red for
a very brief period (maybe side effect of turning off the backlight),
then goes off.

I think most of FreeBSD drivers would turn off interrupt from the device
before detaching, but I haven't looked into all of my devices; but from
what I have seen on screen (captured a 60fps video and can share if that
helps), there doesn't appear to be an interrupt storm before that.

Cheers,
Received on Wed Mar 17 2021 - 06:02:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:27 UTC