Skip to content

pdist: Add pdistd service for distmaster(s) #326

Merged
merged 2 commits into from
Jul 4, 2023
Merged

pdist: Add pdistd service for distmaster(s) #326

merged 2 commits into from
Jul 4, 2023

Conversation

donald
Copy link
Collaborator

@donald donald commented Jun 13, 2023

Add a network service on the distmaster for clients to use to request a pdist
Add a startup service for desktops to check their pdist status and request either an asynchronous pdist update or an synchronous pdist update followed by a reboot if needed.

@pmenzel
Copy link
Contributor

pmenzel commented Jun 13, 2023

s/out-update/auto-update/

Copy link
Contributor

@pmenzel pmenzel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

telnet deinemuddah 237 von maleficent führt zu den folgenden Zeilen in journalctl auf deinemuddah:

Jun 13 15:56:43 deinemuddah.molgen.mpg.de systemd[1]: Started 141.14.18.119:55986.
Jun 13 15:57:30 deinemuddah.molgen.mpg.de systemd[1]: pdistd@7-141.14.30.156:237-141.14.18.119:55986.service: Succeeded.
Jun 13 15:57:30 deinemuddah.molgen.mpg.de systemd[1]: pdistd@7-141.14.30.156:237-141.14.18.119:55986.service: Consumed 14.824s CPU time.

@donald
Copy link
Collaborator Author

donald commented Jun 15, 2023

Fixed pdist.services WantedBy=multiuser.target to WantedBy=multi-user.target

Problem with pdist-bootcheck: The pcpool systems stop console output after i915 drm initialization. But if we do syncrchonous pdist update and reboot without any indication to the user what is happening, the user will assume the system to be frozen.

I guess that is the same problem, why the virtual consoles are not working there.

@donald
Copy link
Collaborator Author

donald commented Jun 15, 2023

For some reason blacklist i915 in modprobe.d doesn't work.
But if I remove i915.ko, everything is fine. Even switching between virtual consoles and graphical session works again.
What do we need i915.ko for?

@donald donald closed this Jun 15, 2023
@donald donald reopened this Jun 15, 2023
@donald
Copy link
Collaborator Author

donald commented Jun 15, 2023

Close was accidentally.
blacklist i915 in modprobe.d not working, but install i915 /bin/true does. systemd-udevd doesn't use modprobe but the kmod library (both from the kmod package). But it seems to set KMOD_PROBE_APPLY_BLACKLIST in kmod_module_probe_insert_module. So I don't know why blacklist is not working.

@pmenzel
Copy link
Contributor

pmenzel commented Jun 15, 2023

What do we need i915.ko for?

We have some smaller systems with integrated Intel graphics, for example amaru and machdoch.

@pmenzel
Copy link
Contributor

pmenzel commented Jun 15, 2023

Maybe it’s the following issues:

  1. https://github.com/NVIDIA/open-gpu-kernel-modules/issues/341
  2. https://bugzilla.kernel.org/show_bug.cgi?id=216303#c28

A fix could be commit https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5ae3716cfdcd286268133867f67d0803847acefc:

commit 5ae3716cfdcd286268133867f67d0803847acefc
Author: Daniel Vetter <[daniel.vetter@ffwll.ch](mailto:daniel.vetter@ffwll.ch)>
Date:   Thu Apr 6 15:21:07 2023 +0200

    video/aperture: Only remove sysfb on the default vga pci device

@donald
Copy link
Collaborator Author

donald commented Jun 16, 2023

Jun 16 12:34:18 icebear.molgen.mpg.de systemd[1]: named.service: Found ordering cycle on automount.service/start
Jun 16 12:34:18 icebear.molgen.mpg.de systemd[1]: named.service: Found dependency on basic.target/start
Jun 16 12:34:18 icebear.molgen.mpg.de systemd[1]: named.service: Found dependency on sockets.target/start
Jun 16 12:34:18 icebear.molgen.mpg.de systemd[1]: named.service: Found dependency on pdistd.socket/start
Jun 16 12:34:18 icebear.molgen.mpg.de systemd[1]: named.service: Found dependency on network.target/start
Jun 16 12:34:18 icebear.molgen.mpg.de systemd[1]: named.service: Found dependency on named.service/start
Jun 16 12:34:18 icebear.molgen.mpg.de systemd[1]: named.service: Job automount.service/start deleted to break ordering cycle starting with named.service/start

@pmenzel
Copy link
Contributor

pmenzel commented Jun 19, 2023

In pdist> Add pdist-bootcheck do you mean a colon :?

@donald
Copy link
Collaborator Author

donald commented Jun 19, 2023

In pdist> Add pdist-bootcheck do you mean a colon :?

Yeah, but the rest of the commit message is also not final :-)

@donald
Copy link
Collaborator Author

donald commented Jun 21, 2023

video/aperture: Only remove sysfb on the default vga pci device

With this patch or with a 6.3 kernel, virtual consoles work again. However,the console output is still lost during boot when the i915 driver initialized, presumably because the output is then going to the video output of the intel card. This can not be confirmed, because when a monitor is connected to the intel hdmi output, it is used right away.

@donald
Copy link
Collaborator Author

donald commented Jun 21, 2023

Maybe it not because of the 6.3 kernel that the console comes back after the time, but because of the fact we didn't have a Intel driver for the test kernel and so the nouveau was loaded instead. The nouveau driver seems to have the functionality needed for the virtual consoles. But still the display is gone when i915 starts and comes back seconds later with a cleared screen when noveau starts. Usually you wouldn't notice, because at the same time the display manage starts and clears the screen again.

Idea: Avoid autoloading i915 and continue with the initial console (configure by bios, I guess) for as long as possible. This way, we can see the boot messages and errors and are able to notify the user if a update is required and causes longer delays.

When that is all done and we are ready to switch to graphic mode, manually load i915 manually just as we load nouveau or Nvidia.

@donald donald force-pushed the add-pdistd branch 3 times, most recently from 88e3ef7 to d8508af Compare July 1, 2023 15:52
@donald
Copy link
Collaborator Author

donald commented Jul 1, 2023

This in on top of #328

To implement auto-update on boot, we need a way for a client to trigger a
pdist-update for itself on its distmaster.

Add a service for the distmaster(s), which allows a client to do that by
connecting to a fixed port on the distmaster (`telnet deinemuddah 237`).
Add service to check pdist time for the booting system. If older than 7
days, request a synchonous pdist from the distmater and reboot. If only
older than 1 day, require an asynchronous pdist while the boot can
continue.
@donald donald merged commit 3e21c9d into master Jul 4, 2023
@donald donald mentioned this pull request Jul 5, 2023
Sign in to join this conversation on GitHub.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants