-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added shared memory multi-server feature #917
base: main
Are you sure you want to change the base?
Conversation
Nothing too obvious to comment in the code.
I passed more details to Jarek in slack |
Any idea how this can or should be tested? |
37d3bb5
to
ba95458
Compare
ba95458
to
99db384
Compare
Tested briefly and audio works through shared mem. |
99db384
to
e0df8c1
Compare
Currently, audio and GUI data are sent using shared memory. It's controlled by the The testing process should focus on detecting potential file descriptor or socket leaks by stopping and restarting these services repeatedly. Additional tests can be performed using any Unix sockets-enabled app, e.g., netcat. Keep in mind that it requires allocating additional shared memory slots (the shmSlots option). It's possible to reuse already assigned slots, but it requires shutting down the server and client using it. VM1: server
VM2: client
|
Tested on Lenovo-X1
Detected problems:
|
e0df8c1
to
88a14a4
Compare
Updated the systemd kill signal for Waypipe: it now uses |
Tested again on Lenovo-X1 The bug is fixed. bat tests pass Monitored now all VMs with the test script while starting all apps and closing them. Number of file descriptors change as noticed before. Nothing suspicious there. |
Checked with native Orin AGX and NX
Notes:
|
Checked with crosscompile Orin AGX and NX' Issues:
|
That old bug "VM apps (running outside gui.vm) don't launch after log out and log in" is back again although it was fixed at some point. (See comments on Jan 13 - 14.) |
Checked with native Orin AGX and NX
|
@@ -28,7 +28,7 @@ | |||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINfyjcPGIRHEtXZgoF7wImA5gEY6ytIfkBeipz4lwnj6 [email protected]" | |||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMsRi+yikYJjpLhJZHlCb9N4Wb7fHUEh0Y6XekD9DyTQ [email protected]" | |||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEA7p7hHPvPT6uTU44Nb/p9/DT9mOi8mpqNllnpfawDE tanel@nixos" | |||
|
|||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIwGPH/oOrD1g15uiPV4gBKGk7f8ZBSyMEaptKOVs3NG jaroslawkurowski@TII-JaroslawKurowski" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets move it to separate commit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK
The bug is related to the PR I have raised. Even after fixing the issue by removing Waypipe tmp files, quickly logging out and back in still blocks services. I can provide a temporary workaround, but I believe fixing the root cause in the mentioned PR is the better approach |
8080899
to
82daf58
Compare
Added removal waypipe of /tmp sockets in order to fix problem with re-logging (though the problem with quick re-logging still persists). |
82daf58
to
d4c1f8c
Compare
d4c1f8c
to
33457f6
Compare
33457f6
to
3ad180d
Compare
Signed-off-by: Jaroslaw Kurowski <[email protected]>
3ad180d
to
6f884dc
Compare
Fixed the logout process. A recent update on the main branch caused a SIGKILL signal to be sent, preventing the proper propagation of the termination event |
Tested on Lenovo-X1
Didn't encounter the bug anymore (log out - log in - launch app). Removing the bug tag. |
"gala-vm" | ||
"zathura-vm" | ||
"comms-vm" | ||
"business-vm" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be set in the modules/reference/profiles/mvp. because it it not known here in common that these are the enabled vms.
"chrome-vm" | ||
"business-vm" | ||
"comms-vm" | ||
"gala-vm" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same as above
environment.systemPackages = [ | ||
(pkgs.memsocket.override { vms = cfg.instancesCount; }) | ||
(pkgs.callPackage ../../../packages/pkgs-by-name/memsocket/package.nix { inherit (cfg) shmSlots; }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do not do this. use the (pkgs.memsocket.override { vms = cfg.shmSlotst; })
method to use the package
Description of changes
The memsocket application has been enhanced with the following new features and updates:
Introduced a Nix framework for the automatic generation of configurations for servers (currently supporting audio and video) and their clients.
Enabled the transfer of audio and video data via shared memory from application VMs to designated servers, including gui-vm and audio-vm.
Documentation: https://confluence.tii.ae/x/uEPOAg
Checklist for things done
x86_64
aarch64
riscv64
make-checks
and it passesnixos-rebuild ... switch
Instructions for Testing