Currently the virtionfs implementation uses as single Virtio queue polling thread and a single NFS socket polling thread (called service thread in libnfs).
The goal is to move to 8 Virtio queue polling threads and 8 NFS socket polling threads (as our DPU has 8 cores). The optimal number of threads is probably eight because the DPU has eight cores and of these 16 threads only 8 would need to run at a time (either sending or receiving).
To do this multiple NFS connections are needed, which is supported in NFS 4.1. This feature is called 'session trunking'.
Currently the
virtionfs
implementation uses as single Virtio queue polling thread and a single NFS socket polling thread (called service thread inlibnfs
). The goal is to move to 8 Virtio queue polling threads and 8 NFS socket polling threads (as our DPU has 8 cores). The optimal number of threads is probably eight because the DPU has eight cores and of these 16 threads only 8 would need to run at a time (either sending or receiving). To do this multiple NFS connections are needed, which is supported in NFS 4.1. This feature is called 'session trunking'.