]> rtime.felk.cvut.cz Git - frescor/fwp.git/commit
Implemented synchronous and asynchronous sending
authorMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 6 Nov 2009 14:02:15 +0000 (15:02 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 6 Nov 2009 14:02:15 +0000 (15:02 +0100)
commit0b59f4792b0e22c2a1fb703d632ef1c08ecb78fb
tree27584a65b23ea17a85b22c603a0d44713f0227c0
parent568ef85d5ec328a2b12d44cc7831c862b436eab4
Implemented synchronous and asynchronous sending

The main goal of this big change is to avoid delays caused by CPU
scheduler when rescheduling from application thread to VRES TX thread.
According to our fwp-timing.c experiment, these delays can by even
several milliseconds long.

Now, whenever VRES capacity allows, send operation is invoked directly
from application thread. Only if the budget is insufficient, the
message can be queued for sending later by VRES thread, provided that
asynchronous send was requested. In case of synchronous send, the
application thread is blocked until the budget is replenished.

Besides the above change, the code was cleaned up a lot.

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
17 files changed:
.topmsg
fwp/lib/frsh_fwp/fwp_fna.c
fwp/lib/frsh_fwp/fwp_fra.c
fwp/lib/fwp/fwp_conf.h
fwp/lib/fwp/fwp_endpoint.c
fwp/lib/fwp/fwp_endpoint.h
fwp/lib/fwp/fwp_msgb.c
fwp/lib/fwp/fwp_msgb.h
fwp/lib/fwp/fwp_msgq.c
fwp/lib/fwp/fwp_msgq.h
fwp/lib/fwp/fwp_vres.c
fwp/lib/fwp/fwp_vres.h
fwp/lib/fwp/tests/fwp_prototest/fwp_sendrecv_test1.c
fwp/lib/fwp/tests/fwp_prototest/fwp_sendrecv_test2.c
fwp/lib/fwp/tests/fwp_vrestest/fwp_vrestest1.c
fwp/lib/fwp/tests/fwp_vrestest/fwp_vrestest2.c
fwp/tests/timing/fwp-timing.c