vfs fifo pipe and file system session write
Stefan Thöni
stefan.thoeni at gapfruit.com
Tue Dec 8 12:38:37 CET 2020
Hello Genodians
We are still trying to introduce a named pipe for communication between
libc components and pure genode components. Our vfs fifo pipe now works
with multiple threads in the same process, but only when it's hosted in
the vfs of that same component. As soon as we host it in separate vfs
component it stalls randomly.
Our analysis shows that the reason for this lies in the implementation
of the file system session interface, where the write operation doesn't
report back the number of bytes written but the receiving vfs component
instead retries the write operation. This leads to a permanent blocking
of the vfs component as no read operation can alleviate the full buffer
of the fifo pipe.
We think the only proper fix would be a change in the file system
session to allow the write operation to report back the number of bytes
written. Is there a specific reason to keep the write 'fire-and-forget',
other than simplicity?
Best regards
Stefan
--
Freundliche Grüsse
Stefan Thöni
Chairman of the Board
Senior Security Architect
+41 79 610 64 95
gapfruit AG
Baarerstrasse 135
6300 Zug
https://gapfruit.com
More information about the users
mailing list