Couple minor notes after upgrading to 23.02
Norman Feske
norman.feske at genode-labs.com
Fri Jun 30 11:50:34 CEST 2023
Hi Cedrik,
thanks for sharing your findings.
On 2023-06-29 16:44, ttcoder at netcourrier.com wrote:
> * vfs_pipe: components that use the "pipe" plug-in should make sure to enable RTC (<libc rtc="/dev/rtc"...>)
> as of 23.02 -- previously it would work without specifying an RTC path. This probably has zero impact
> since everyone properly configures their libc config (unlike me in the one scenario that brought this up..!)
This made me curios because the nightly tests [1,2] for the vfs_pipe
plugin do in fact not configure the rtc for the libc, yet are known to work.
[1]
https://github.com/genodelabs/genode/blob/master/repos/libports/recipes/pkg/test-libc_fifo_pipe/runtime
[2]
https://github.com/genodelabs/genode/blob/master/repos/libports/recipes/pkg/test-libc_pipe/runtime
I guess that the use of the rtc has a side effect that covers up the
symptom of a problem that might still lurk there. To get to the bottom
of it, I'd need more information or - ideally - a scenario to reproduce
the non-working state.
There is one suspicion: The VFS changes in 23.02 foster the batching of
I/O in the file-system session. When operating both sides of a pipe
through the same file-system session, there is the risk that a write
operations fits into the file-system session's packet-stream buffer but
not in the pipe buffer in the remote pipe. Once the pipe is saturated, a
reader must consume content before any new progress can be made. But
when the reader issues its read request through the same file-system
session as used by the writer - which is still clogged by the not yet
completed write operation - we end up in a deadlock situation. May this
be the case in your scenario?
In practice, such situations don't occur whenever both ends of one pipe
are operated by different components - each using a distinct file-system
session. But when interacting with a pipe behind a chain of VFS servers,
stalling effects are plausible. But as I said, I'm just speculating.
Should you by any chance find a way to come up with a run script that
shows the non-working behavior, I'd love to investigate it.
Cheers
Norman
--
Dr.-Ing. Norman Feske
Genode Labs
https://www.genode-labs.com · https://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
More information about the users
mailing list