File transfer performance
We use FileTransferProtocol to transfer binaries and their runfiles to the device for execution. For the QEMU toolchains, we use the SSHDriver (which implements FileTransferProtocol), and that uses scp under the hood.
In //labgrid/run, we call FileTransferProtocol.put on the entire runfiles directory. That transfers files individually, and it's excruciatingly slow.
Here are a few possible approaches:
- Use
scpwith compression (-Cflag), which would require patchingSSHDriver - Use custom compression, packing the folder before the transfer and unpacking after
- Use
rsync - Use another file transfer protocol
For approaches 2-4, we should investigate creating a custom driver implementing the FileTransferProtocol to abstract this logic. It would likely need to specify a priority.
Edited by Alex Tercete