Discussion:
File_system signals
Nobody III
2016-06-28 19:51:37 UTC
Permalink
In my fs_filter component (much like the vfs server), I am trying to allow
multiple clients fast, non-blocking access to multiple filesystems. To do
this without several threads, my component needs to know when each
filesystem server unblocks so it can send more packets. Unfortunately, the
File_system::Client interface (which File_system::Connection inherits)
doesn't provide a way to receive signals when the server acknowledges
packets or is ready for more packets, given that it only provides a
Session:Tx::Source object for accessing the packet stream. The
Session::Tx::Source interface provide the methods sigh_ack_avail() and
sigh_ready_to_submit(), which allow a cilent to get the signal handlers
currently in use, but doesn't allow registering new signal handlers. I
added a workaround that exposes the Packet_stream_tx::Client object to the
client, but it would be good to have a better way to register these signal
handlers. Is there currently a way to do this, or does this require a
modification to the API, like what I did?
Norman Feske
2016-06-29 18:35:21 UTC
Permalink
Hello Ben,
The Session::Tx::Source interface provide
the methods sigh_ack_avail() and sigh_ready_to_submit(), which allow a
cilent to get the signal handlers currently in use, but doesn't allow
registering new signal handlers. I added a workaround that exposes the
Packet_stream_tx::Client object to the client, but it would be good to
have a better way to register these signal handlers. Is there currently
a way to do this, or does this require a modification to the API, like
what I did?
That's an interesting problem. Thank you for raising it.

I actually do not see a better solution to your's. It might be sensible
to add the two signal-handler registering methods 'sigh_ready_to_submit'
and 'sigh_ack_avail' to the 'File_system::Client'. Those methods would
then call the respective methods on the '_tx' member.

Cheers
Norman
--
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Nobody III
2016-06-29 22:03:16 UTC
Permalink
I did as you suggested. Here's the commit:
db21ae2575e3c68d4955865d3d40b999d21f2fdf (on my fork, branch fs_filter)
Post by Norman Feske
Hello Ben,
The Session::Tx::Source interface provide
the methods sigh_ack_avail() and sigh_ready_to_submit(), which allow a
cilent to get the signal handlers currently in use, but doesn't allow
registering new signal handlers. I added a workaround that exposes the
Packet_stream_tx::Client object to the client, but it would be good to
have a better way to register these signal handlers. Is there currently
a way to do this, or does this require a modification to the API, like
what I did?
That's an interesting problem. Thank you for raising it.
I actually do not see a better solution to your's. It might be sensible
to add the two signal-handler registering methods 'sigh_ready_to_submit'
and 'sigh_ack_avail' to the 'File_system::Client'. Those methods would
then call the respective methods on the '_tx' member.
Cheers
Norman
--
Dr.-Ing. Norman Feske
Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
GeschÀftsfÌhrer: Dr.-Ing. Norman Feske, Christian Helmuth
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
Loading...