221
submitted 1 year ago by MoreCoffee@lemm.ee to c/linux@lemmy.ml

Systemd 254 released and now has a new soft-reboot option:

    * A new "soft-reboot" mechanism has been added to the service manager.
      A "soft reboot" is similar to a regular reboot, except that it
      affects userspace only: the service manager shuts down any running
      services and other units, then optionally switches into a new root
      file system (mounted to /run/nextroot/), and then passes control to a
      systemd instance in the new file system which then starts the system
      up again. The kernel is not rebooted and neither is the hardware,
      firmware or boot loader. This provides a fast, lightweight mechanism
      to quickly reset or update userspace, without the latency that a full
      system reset involves. Moreover, open file descriptors may be passed
      across the soft reboot into the new system where they will be passed
      back to the originating services. This allows pinning resources
      across the reboot, thus minimizing grey-out time further. This new
      reboot mechanism is accessible via the new "systemctl soft-reboot"
      command.>
all 22 comments
sorted by: hot top controversial new old
[-] Toribor@corndog.social 64 points 1 year ago

If I'm understanding this right it seems like a good fast way to test that services start up properly without doing a full reboot so that's pretty nice.

[-] CloverSi@lemmy.comfysnug.space 36 points 1 year ago

Wow, this seems really useful! What a neat feature.

[-] throwawayish@lemmy.ml 27 points 1 year ago* (last edited 1 year ago)

Hard-reboots are no longer required on Silverblue when installing or upgrading packages (besides kernel) through rpm-ostree. Arguably one should only sparingly rely on rpm-ostree for installing packages. But it's great to have access to soft-reboot when setting up a new system.

[-] Atemu@lemmy.ml 10 points 1 year ago
  • Support for System V service scripts is now deprecated and will be removed in a future release. Please make sure to update your software now to include a native systemd unit file instead of a legacy System V script to retain compatibility with future systemd releases.

Why is this being removed?

I wouldn't use it but it certainly seems handy for a quick hack and also for people who are used to the old ways.

[-] dr_robot@kbin.social 45 points 1 year ago

Maintaining legacy options is always maintenance overhead or things you need to work around when implementing new features. I suspect that they've concluded that not enough people use it anymore to justify the overhead.

[-] PM_ME_UR_PCAPS@lemmy.ml 19 points 1 year ago* (last edited 1 year ago)

Yeah it’s not like service files are difficult to write. They’re certainly easier than sysv init files

[-] r0b0@sopuli.xyz 10 points 1 year ago

Also:

When the system hibernates, information about the device and offset used is now written to a non-volatile EFI variable. On next boot the system will attempt to resume from the location indicated in this EFI variable. This should make hibernation a lot more robust, while requiring no manual configuration of the resume location.

[-] Chais@sh.itjust.works 4 points 1 year ago* (last edited 1 year ago)

Does that mean we will be able to update graphics drivers without a full reboot if the kernel didn't update?

[-] treadful@lemmy.zip 18 points 1 year ago

I don't think any graphics drivers run in user-space, so probably not.

[-] garam@lemmy.my.id 6 points 1 year ago

Kernel space..

GNU Hurd.. Hurt.. 😂

[-] Backslash@feddit.de 5 points 1 year ago

Yes they do, Mesa being one. Only the close to the metal stuff and Kernel-DRM is handled in kernel space, most of the heavy stuff is done in user space.

[-] treadful@lemmy.zip 4 points 1 year ago

Where's the line you're drawing? And what would be the "heavy stuff" in user-space?

I'm far from a kernel expert, but I still have the i915 module loaded into the kernel on this bad boy, which I think most people would call a driver.

[-] Backslash@feddit.de 2 points 1 year ago

The heavy stuff would be things like shader compilation and state management for multiple different graphics APIs (OpenGL and Vulkan mostly).

AFAIK Linux graphics drivers are usually separated into a userspace and a kernel space component, like amdgpu on the kernel side and RADV/RadeonSI within Mesa on the userspace side. So you do not need to do a full reboot to e.g. benefit from performance optimizations within Mesa to get things like faster shader compilation or more efficient draw call submission, which I think most people care about when doing driver updates. In fact you don't even need to soft reboot, because once Mesa is updated, all following uses of it already run the new version, all without a reboot. However if your GPU is not yet supported by the kernel side, then Mesa is of no use to you.

That being said, yes the kernel side is a very important part of the driver, but it's such a low-level driver that very few people would be able to do much of anything with it, which is why I made that distinction.

[-] Chais@sh.itjust.works 2 points 1 year ago

True. Dammit.

[-] Zamundaaa@discuss.tchncs.de 2 points 1 year ago

You could always do that. If you update Mesa, any applications you start after updating will use the new version of Mesa

[-] Chais@sh.itjust.works 1 points 1 year ago

Oh? I thought I'd at least have to reload a kernel module or something.

[-] spez@sh.itjust.works 3 points 1 year ago

So is this like that windows 'fast boot' or whatever it's called thing?

[-] bamboo@lemm.ee 33 points 1 year ago

It is nothing like that. Windows fast boot is just fancy resume from hibernation.

[-] aksdb@feddit.de 11 points 1 year ago

It's a mix. It hibernates what would be the result of a systemd soft-reboot, before user space starts up again.

this post was submitted on 30 Jul 2023
221 points (97.8% liked)

Linux

47344 readers
1350 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS