From owner-freebsd-current@freebsd.org Wed Mar 17 07:02:02 2021 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5EEA357C57B for ; Wed, 17 Mar 2021 07:02:02 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "anubis.delphij.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4F0h0p15ngz4lL6; Wed, 17 Mar 2021 07:02:01 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from p51.home.us.delphij.net (unknown [IPv6:2601:646:8601:f4a:e670:b8ff:fe5c:4e69]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id E36453E4E8; Wed, 17 Mar 2021 00:01:49 -0700 (PDT) From: Xin Li Subject: Re: ThinkPad: reboots after successful shutdown -p Reply-To: d@delphij.net To: Warner Losh , Xin Li Cc: Xin LI , FreeBSD Current , Jung-uk Kim , "Conrad E. Meyer" , Marcel Moolenaar , Warner Losh , byuu@tutanota.com, interloper255@gmail.com References: Organization: The FreeBSD Project Message-ID: <53e336e7-1b08-5ebf-27a2-de7ca756024c@delphij.net> Date: Wed, 17 Mar 2021 00:01:49 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4F0h0p15ngz4lL6 X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-Mailman-Approved-At: Wed, 17 Mar 2021 08:09:37 +0000 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Mar 2021 07:02:02 -0000 On 3/16/21 9:45 PM, Warner Losh wrote: > > > On Tue, Mar 16, 2021 at 10:18 PM Xin Li > 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 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,