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
scp
with compression (-C
flag), 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