Join us on our own very special Reddit: /r/Linuxers
Thoughts on Quick resume / DirectStorage for Linux
Page: 1/2»
  Go to:
Cyril 11 Nov

I'm interested on how (or when) this functionality could work on Linux.
Have you some links of software that can already achieve this?

I know Nyrna with that kind of feature but it doesn't work with multiple apps and not after a reboot either.

Do you know if someone is working on it?
Thanks!

CatKiller 11 Nov

The mechanism that's in Linux is peer-to-peer direct memory access (P2P DMA). Because of where the money is in Linux, the primary work is for network to storage and storage to storage. Storage to GPU is tricky but in progress. The primary difficulty is making sure that it will work before you try it; I think it currently uses whitelists to achieve that.

The suspend/resume stuff I don't know of anything similar; that's the kind of thing that benefits from a rigidly-defined use-case rather than the usable-for-anything mechanisms that make sense for Linux to prefer. Plus suspend/resume in general has been wrinkly.

whizse 11 Nov
  • Supporter

RE Quick resume: SIGSTOP / SIGCONT

(Kidding of course, I suppose it's something that actually suspends/resumes a process to disk?)

Cyril 11 Nov

I'm mostly interested in Quick resume though, and yes it seems that it goes to the disk, like the hibernation mode.
On the Xbox Series X, as I understand it (didn't read a lot about it), when "pausing" a game, it doesn't consume resources (RAM, CPU or GPU), if it was the case it would be not great at all for the performances in-game. We speaking about a console of course, it's the only purpose.

How it can be difficult to do that?
Sure Microsoft won't release the source code of the feature, and it will remain Windows exclusive.
But I hope some Linux enthusiasts will work on it for our beloved OS.

CatKiller 11 Nov

Quoting: CyrilBut I hope some Linux enthusiasts will work on it for our beloved OS.

The place that kind of functionality would go, should someone make it, would be systemd, as the process that starts and stops other processes.

Cyril 11 Nov

Quoting: CatKiller
Quoting: CyrilBut I hope some Linux enthusiasts will work on it for our beloved OS.

The place that kind of functionality would go, should someone make it, would be systemd, as the process that starts and stops other processes.

Have you an opinion on nyrna? I'm curious because from my point of view I don't see the real difficult to have a quick resume feature on Linux (or macOS...) but in the other hand it seems developers might have ones.
On their Github page they mention CRIU, but it doesn't work with X applications...

whizse 11 Nov
  • Supporter

Skimming through the Nyrna source, it really is just a simple wrapper around SIGSTOP / SIGCONT.

CatKiller 11 Nov

Quoting: CyrilHave you an opinion on nyrna?


I'd not heard of it till you mentioned it. From a quick look, it seems quite simplistic.

QuoteI'm curious because from my point of view I don't see the real difficult to have a quick resume feature on Linux (or macOS...) but in the other hand it seems developers might have ones.

For the right implementation of the thing you're after, you'd want something that could keep track of the process and any child processes, and their memory usage, so that all the processes can be suspended together, their RAM contents put into an image which is saved to disc (optionally over restarts) and unloaded, then reloading the RAM image in such a way that the processes don't notice that the actual memory addresses have changed, then restart the processes and recreate their windows without any of them getting confused. It seems like the sort of thing that's doable from systemd/cgroups/some kind of containerisation, as long as there's sufficient interest. Most use cases for that kind of thing would just use a VM, though.

Cyril 11 Nov

At least Microsoft did it with their console, but as said we don't have the source code and don't know how precisely (even if it's not for Linux though, it could be interesting).

CatKiller 11 Nov

Quoting: CyrilAt least Microsoft did it with their console, but as said we don't have the source code and don't know how precisely (even if it's not for Linux though, it could be interesting).
The Xbox runs each game in a separate Hyper-V VM.

Cyril 12 Nov

Quoting: CatKiller
Quoting: CyrilAt least Microsoft did it with their console, but as said we don't have the source code and don't know how precisely (even if it's not for Linux though, it could be interesting).
The Xbox runs each game in a separate Hyper-V VM.

So I suppose with that they can achieve it without negative impact on performances. I know nothing about Hyper-V, but it seems it's available on Linux, isn't it?
If yes, anyone have tested it?

On a console, the user don't notice it, it works OOTB. But with a PC, I'm wondering if setup VMs etc worth it... Maybe it can be pretty simple, I don't know.

While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.