Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Oct 2023 06:43:10 +0100
From:      Graham Perrin <grahamperrin@gmail.com>
To:        FreeBSD CURRENT <freebsd-current@freebsd.org>, freebsd-fs@freebsd.org
Subject:   Occasional supend/sleep failures: race? USB, HP dock, ZFS, three L2ARC devices.
Message-ID:  <836bc229-22d8-4856-90db-2dffd2c2cd2f@gmail.com>
In-Reply-To: <5a642c3d-6b32-4614-ad7d-40f72b92e537@gmail.com>
References:  <5a642c3d-6b32-4614-ad7d-40f72b92e537@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 31/08/2023 19:42, Graham Perrin wrote (to freebsd-current alone, 
<https://lists.freebsd.org/archives/freebsd-current/2023-August/004509.html>):

> I have a suspend.sh script that aims to take three cache devices 
> offline before sleep of the computer:
>
> % grep -v -e '# ' /etc/rc.suspend | uniq | grep -B 3 -A 2 suspend.sh
> #!/bin/sh
> #
>
> /usr/local/sbin/suspend.sh
>
>         echo "Usage: $0 [apm|acpi] [standby,suspend|1-4]"
> % grep -v -e '# ' /usr/local/sbin/suspend.sh | uniq
> #!/bin/sh
>
> while mount | grep Transcend 2>&1; do
>    zpool export Transcend
>    sleep 5
> done
>
> zpool offline august gpt/cache1-august
> zpool offline august gpt/cache2-august
> zpool offline august gpt/cache3-august
>
> sync
>
> killall pulseaudio
>
> while fstat | grep -e dsp -e mixer 2>&1; do
>    fstat | grep -e dsp -e mixer | cut -w -f 3 | while read pid;
>       do kill -15 "$pid"
>    done
> done
>
> sysctl hw.snd.default_unit=1
>
> %
>
>
> …


On the morning of Tuesday 26th September, I predicted a failure 
(internal HDD ada1 was busy with a buildworld), so I took a screenshot 
before attempting to sleep the notebook (HP ZBook 17 G2).

The album at <https://photos.app.goo.gl/wg2Ab5Huod1ToEMn8>; begins with 
cropped and non-cropped versions of this shot (08:07:51).

08:10: the failure to suspend, photographed. L2ARC device 
gpt/cache1-august at the foot of the screen.

08:11: the HP dock. Two of four USB ports at the side occupied by flash 
drives, both Kingston DataTraveler 3.0. gpt/cache1-august above, 
gpt/cache2-august below.

08:12: the screen, after physically disconnecting various peripherals 
but not the dock. At the foot of the screen: a Kingston DataTraveler 
2.0, which provides gpt/cache3-august. This drive was at the side of the 
notebook (was not docked).

08:13: the screen, after removing the HP ZBook from the HP dock.

REMARKABLE: neither of the DataTraveler 3.0 devices (in the side of the 
dock) appears in any photograph.


Is this a race condition? As if the OS, or ZFS, prematurely lost the 
ability to handle the docked storage devices on USB.

Can I do anything to make the sleep-related script (above) stronger, to 
reduce the risk of failure?

Might things be more reliable _without_ acpi_hp(4)?


FreeBSD 15.0-CURRENT on the morning of 26th September would have been 
n265350-72d97e1dd9cc:

% bectl list -c creation | tail -n 5
n265350-72d97e1dd9cc-c -      -          882M  2023-09-19 12:45
n265350-72d97e1dd9cc-d -      -          775M  2023-09-23 12:09
n265538-915af883221a-a -      -          256M  2023-09-26 16:30
n265538-915af883221a-b -      -          257M  2023-09-28 09:05
n265538-915af883221a-c NR     /          503G  2023-09-29 23:34
%

% grep acpi_hp /boot/loader.conf
acpi_hp_load="YES"
# dev.acpi_hp.0.verbose=1
% man 4 acpi_hp
%

<https://man.freebsd.org/cgi/man.cgi?query=acpi_hp&sektion=4&manpath=freebsd-release#BUGS>; 
experimental, etc.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?836bc229-22d8-4856-90db-2dffd2c2cd2f>