Bug#1072722: nvidia-driver: Please configure SYSTEMD_SLEEP_FREEZE_USER_SESSION=false

2024-06-09 Thread Luca Boccassi
On Sun, 9 Jun 2024 at 21:07, Andreas Beckmann  wrote:
>
> Hi Peter,
>
> thanks for testing that.
>
> On 08/06/2024 16.42, Peter De Wachter wrote:
> > Those locations work. But the correct environment variable turns out to be
> > SYSTEMD_SLEEP_FREEZE_USER_SESSIONS (plural), the NEWS file has it wrong.
>
> Hi Luca,
>
> do you need a cloned bug against systemd for the variable mismatch?

Thanks but no need, it's just the changelog, already fixed it.

> > (I've no idea why suspend seemed to work for me yesterday with the wrong
> > variable. Today it definitely didn't.) The overrides probably also need to
> > be installed for the other service files that run systemd-sleep:
> > systemd-hybrid-sleep.service, systemd-hibernate.service and
> > systemd-suspend-then-hibernate.service.
>
> Can you give some hints here?
>
> And if it is the case that we need these override variables in many
> places, isn't there an easier way to "configure systemd-sleep behavior"
> regardless of the way it is being called?

This is a workaround, so the drop-in is the only way. The correct fix
is for the functionality to stop relying on the user session being
runnable to come out of suspension, as that's the real problem. I
realize you can't fix this, but at least it should be reported
upstream, asking them to fix it (they probably won't, I know)



Bug#1072722: nvidia-driver: Please configure SYSTEMD_SLEEP_FREEZE_USER_SESSION=false

2024-06-09 Thread Andreas Beckmann

Hi Peter,

thanks for testing that.

On 08/06/2024 16.42, Peter De Wachter wrote:

Those locations work. But the correct environment variable turns out to be
SYSTEMD_SLEEP_FREEZE_USER_SESSIONS (plural), the NEWS file has it wrong.


Hi Luca,

do you need a cloned bug against systemd for the variable mismatch?


(I've no idea why suspend seemed to work for me yesterday with the wrong
variable. Today it definitely didn't.) The overrides probably also need to
be installed for the other service files that run systemd-sleep:
systemd-hybrid-sleep.service, systemd-hibernate.service and
systemd-suspend-then-hibernate.service.


Can you give some hints here?

And if it is the case that we need these override variables in many 
places, isn't there an easier way to "configure systemd-sleep behavior" 
regardless of the way it is being called?



Andreas



Bug#1072722: nvidia-driver: Please configure SYSTEMD_SLEEP_FREEZE_USER_SESSION=false

2024-06-08 Thread Peter De Wachter
Hi Andreas,

Those locations work. But the correct environment variable turns out to be
SYSTEMD_SLEEP_FREEZE_USER_SESSIONS (plural), the NEWS file has it wrong.
(I've no idea why suspend seemed to work for me yesterday with the wrong
variable. Today it definitely didn't.) The overrides probably also need to
be installed for the other service files that run systemd-sleep:
systemd-hybrid-sleep.service, systemd-hibernate.service and
systemd-suspend-then-hibernate.service.

On Fri, Jun 7, 2024 at 10:05 PM Luca Boccassi  wrote:

> On Fri, 7 Jun 2024 at 21:03, Andreas Beckmann  wrote:
> >
> > On 07/06/2024 08.17, Peter De Wachter wrote:
> > > systemd 256-rc3 was recently uploaded to Debian. Its NEWS file
> mentions:
> > >
> > >  * The behavior of systemd-sleep and systemd-homed has been
> updated to
> > >freeze user sessions when entering the various sleep modes
> or when
> > >locking a homed-managed home area. This is known to cause
> issues with
> > >the proprietary NVIDIA drivers. Packagers of the NVIDIA
> proprietary
> > >drivers may want to add drop-in configuration files that set
> > >SYSTEMD_SLEEP_FREEZE_USER_SESSION=false for
> systemd-suspend.service
> > >and related services, and
> SYSTEMD_HOME_LOCK_FREEZE_SESSION=false for
> > >systemd-homed.service.
> >
> > Thanks for catching that. I'll try to include a fix with the upcoming
> > uploads of the recent CVE series.
> >
> > As I'm not that familiar with configuring systemd bits, do you know what
> > would be the correct locations and contents to ship the fix?
> >
> > If I read the documentation correctly, that should be
> >
> > /usr/lib/systemd/system/systemd-suspend.service.d/nvidia.conf
> > = 8< =
> > [Service]
> > Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSION=false"
> > = >8 =
> >
> > and
> >
> > /usr/lib/systemd/system/systemd-homed.service.d/nvidia.conf
> > = 8< =
> > [Service]
> > Environment="SYSTEMD_HOME_LOCK_FREEZE_SESSION=false"
> > = >8 =
> >
> > Could you verify that this works (after unapplying your temporary
> solution)?
>
> Hi Andreas, I can confirm those are the correct locations. You can
> also omit the quotes.
>


Bug#1072722: nvidia-driver: Please configure SYSTEMD_SLEEP_FREEZE_USER_SESSION=false

2024-06-07 Thread Luca Boccassi
On Fri, 7 Jun 2024 at 21:03, Andreas Beckmann  wrote:
>
> On 07/06/2024 08.17, Peter De Wachter wrote:
> > systemd 256-rc3 was recently uploaded to Debian. Its NEWS file mentions:
> >
> >  * The behavior of systemd-sleep and systemd-homed has been updated 
> > to
> >freeze user sessions when entering the various sleep modes or 
> > when
> >locking a homed-managed home area. This is known to cause issues 
> > with
> >the proprietary NVIDIA drivers. Packagers of the NVIDIA 
> > proprietary
> >drivers may want to add drop-in configuration files that set
> >SYSTEMD_SLEEP_FREEZE_USER_SESSION=false for 
> > systemd-suspend.service
> >and related services, and SYSTEMD_HOME_LOCK_FREEZE_SESSION=false 
> > for
> >systemd-homed.service.
>
> Thanks for catching that. I'll try to include a fix with the upcoming
> uploads of the recent CVE series.
>
> As I'm not that familiar with configuring systemd bits, do you know what
> would be the correct locations and contents to ship the fix?
>
> If I read the documentation correctly, that should be
>
> /usr/lib/systemd/system/systemd-suspend.service.d/nvidia.conf
> = 8< =
> [Service]
> Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSION=false"
> = >8 =
>
> and
>
> /usr/lib/systemd/system/systemd-homed.service.d/nvidia.conf
> = 8< =
> [Service]
> Environment="SYSTEMD_HOME_LOCK_FREEZE_SESSION=false"
> = >8 =
>
> Could you verify that this works (after unapplying your temporary solution)?

Hi Andreas, I can confirm those are the correct locations. You can
also omit the quotes.



Bug#1072722: nvidia-driver: Please configure SYSTEMD_SLEEP_FREEZE_USER_SESSION=false

2024-06-07 Thread Andreas Beckmann

On 07/06/2024 08.17, Peter De Wachter wrote:

systemd 256-rc3 was recently uploaded to Debian. Its NEWS file mentions:

 * The behavior of systemd-sleep and systemd-homed has been updated to
   freeze user sessions when entering the various sleep modes or when
   locking a homed-managed home area. This is known to cause issues with
   the proprietary NVIDIA drivers. Packagers of the NVIDIA proprietary
   drivers may want to add drop-in configuration files that set
   SYSTEMD_SLEEP_FREEZE_USER_SESSION=false for systemd-suspend.service
   and related services, and SYSTEMD_HOME_LOCK_FREEZE_SESSION=false for
   systemd-homed.service.


Thanks for catching that. I'll try to include a fix with the upcoming 
uploads of the recent CVE series.


As I'm not that familiar with configuring systemd bits, do you know what 
would be the correct locations and contents to ship the fix?


If I read the documentation correctly, that should be

/usr/lib/systemd/system/systemd-suspend.service.d/nvidia.conf
= 8< =
[Service]
Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSION=false"
= >8 =

and

/usr/lib/systemd/system/systemd-homed.service.d/nvidia.conf
= 8< =
[Service]
Environment="SYSTEMD_HOME_LOCK_FREEZE_SESSION=false"
= >8 =

Could you verify that this works (after unapplying your temporary solution)?


Thanks

Andreas



Bug#1072722: nvidia-driver: Please configure SYSTEMD_SLEEP_FREEZE_USER_SESSION=false

2024-06-07 Thread Peter De Wachter
Package: nvidia-driver
Version: 545.23.06-1
Severity: normal

systemd 256-rc3 was recently uploaded to Debian. Its NEWS file mentions:

* The behavior of systemd-sleep and systemd-homed has been updated to
  freeze user sessions when entering the various sleep modes or when
  locking a homed-managed home area. This is known to cause issues with
  the proprietary NVIDIA drivers. Packagers of the NVIDIA proprietary
  drivers may want to add drop-in configuration files that set
  SYSTEMD_SLEEP_FREEZE_USER_SESSION=false for systemd-suspend.service
  and related services, and SYSTEMD_HOME_LOCK_FREEZE_SESSION=false for
  systemd-homed.service.

And indeed suspend would hang for me with either nvidia driver
545.23.06-1 or 535.161.08-2.


For anybody stumbling on this bug report: The easiest way to do this
by hand, is to run `systemctl edit systemd-suspend.service` and add
the two lines:

[Service]
Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSION=false"




-- Package-specific info:
uname -a:
Linux fractal 6.8.12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.8.12-1 (2024-05-31) 
x86_64 GNU/Linux

/proc/version:
Linux version 6.8.12-amd64 (debian-ker...@lists.debian.org) 
(x86_64-linux-gnu-gcc-13 (Debian 13.2.0-25) 13.2.0, GNU ld (GNU Binutils for 
Debian) 2.42) #1 SMP PREEMPT_DYNAMIC Debian 6.8.12-1 (2024-05-31)

/proc/driver/nvidia/version:
NVRM version: NVIDIA UNIX x86_64 Kernel Module  545.23.06  Sun Oct 15 17:43:11 
UTC 2023
GCC version:  gcc version 13.2.0 (Debian 13.2.0-25) 

lspci 'display controller [030?]':
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 
1050 Ti] [10de:1c82] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ZOTAC International (MCO) Ltd. Device [19da:a454]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- 
Kernel driver in use: nvidia
Kernel modules: nvidia

dmesg:

Device node permissions:
crw-rw+ 1 root video  226,   0 Jun  7 07:45 /dev/dri/card0
crw-rw+ 1 root render 226, 128 Jun  7 07:45 /dev/dri/renderD128
crw-rw-rw-  1 root root   195, 254 Jun  7 07:45 /dev/nvidia-modeset
crw-rw-rw-  1 root root   195,   0 Jun  7 07:45 /dev/nvidia0
crw-rw-rw-  1 root root   195, 255 Jun  7 07:45 /dev/nvidiactl

/dev/dri/by-path:
total 0
lrwxrwxrwx 1 root root  8 Jun  7 07:45 pci-:01:00.0-card -> ../card0
lrwxrwxrwx 1 root root 13 Jun  7 07:45 pci-:01:00.0-render -> ../renderD128
video:x:44:pdewacht

Alternative 'nvidia':
nvidia - auto mode
  link best version is /usr/lib/nvidia/current
  link currently points to /usr/lib/nvidia/current
  link nvidia is /usr/lib/nvidia/nvidia
  slave nvidia--libEGL_nvidia.so.0-i386-linux-gnu is 
/usr/lib/i386-linux-gnu/libEGL_nvidia.so.0
  slave nvidia--libEGL_nvidia.so.0-x86_64-linux-gnu is 
/usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0
  slave nvidia--libGLX_nvidia.so.0-i386-linux-gnu is 
/usr/lib/i386-linux-gnu/libGLX_nvidia.so.0
  slave nvidia--libGLX_nvidia.so.0-x86_64-linux-gnu is 
/usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0
  slave nvidia--libglxserver_nvidia.so is /usr/lib/nvidia/libglxserver_nvidia.so
  slave nvidia--libnvidia-ml.so.1-x86_64-linux-gnu is 
/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
  slave nvidia--libvdpau_nvidia.so.1-x86_64-linux-gnu is 
/usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1
  slave nvidia--nv-control-dpy is /usr/bin/nv-control-dpy
  slave nvidia--nvidia-application-profiles-key-documentation is 
/usr/share/nvidia/nvidia-application-profiles-key-documentation
  slave nvidia--nvidia-blacklists-nouveau.conf is 
/etc/nvidia/nvidia-blacklists-nouveau.conf
  slave nvidia--nvidia-bug-report.sh is /usr/lib/nvidia/nvidia-bug-report.sh
  slave nvidia--nvidia-debugdump is /usr/bin/nvidia-debugdump
  slave nvidia--nvidia-drm-outputclass.conf is 
/etc/nvidia/nvidia-drm-outputclass.conf
  slave nvidia--nvidia-load.conf is /etc/nvidia/nvidia-load.conf
  slave nvidia--nvidia-modprobe.conf is /etc/nvidia/nvidia-modprobe.conf
  slave nvidia--nvidia-options.conf is /etc/modprobe.d/nvidia-options.conf
  slave nvidia--nvidia-settings is /usr/bin/nvidia-settings
  slave nvidia--nvidia-settings.1.gz is /usr/share/man/man1/nvidia-settings.1.gz
  slave nvidia--nvidia-settings.desktop is 
/usr/share/applications/nvidia-settings.desktop
  slave nvidia--nvidia-smi is /usr/bin/nvidia-smi
  slave nvidia--nvidia-smi.1.gz is /usr/share/man/man1/nvidia-smi.1.gz
  slave nvidia--nvidia_drv.so is /usr/lib/nvidia/nvidia_drv.so
/usr/lib/nvidia/current - priority 545
  slave nvidia--libEGL_nvidia.so.0-i386-linux-gnu: 
/usr/lib/i386-linux-gnu/nvidia/current/libEGL_nvidia.so.0
  slave nvidia--libEGL_nvidia.so.0-x86_64-linux-gnu: 
/usr/lib/x86_64-linux-gnu/nvidia/current/libEGL_nvidia.so.0
  slave nvidia--libGLX_nvidia.so.0-i386-linux-gnu: