Here is the latest batch of updates for CCID3. I held it back for almost two
days, got bogged down by testing.
As an experiment (not part of the patch set), I tried to set the tx timestamp
not
in ccid3_hc_tx_packet_sent but in ccid3_hc_tx_send_packet. The result was that
on SMP
computers I got several bug messages that "r_sample < 0" (in
ccid3_hc_tx_packet_recv).
This is a hint that the mysteriously high RTT values have to do with the way
the history
is updated.
I am almost fully convinced that it is necessary to armour the packet history
list
operations with read/write locks. The reasons:
* list manipulation is asynchronous, packet_sent/send_packet fill the list,
while
packet_recv purges
* send_packet may sleep so that meanwhile new entries are put on top
* after applying patch 9 I got, for the first time, accurate RTT values [patch
9
puts all history work into packet_sent]
It would be good to have further opinions/ideas on this.
Here is now the overview:
Patch 1: completes the migration towards using scaled_div/scaled_div32, by
updating the TFRC calculation also.
Patch 2: attempts to reduce CPU load by only delivering to the CCID module
which is currently active, to avoid unnecessary processing.
Patch 3: warns when discarding a TX packet; also, EINTR is no longer a bug
case.
Patch 4: reduces ccid3_hc_tx_insert_options, since currently all its
operations are
redundant.
Patch 5: takes care that the RTT values are all initialised properly.
Patch 6: sanity-checks RTT values. Thanks Ian :-)
Patch 7: puts all window counter updating functionality into an extra routine.
Patch 8: Removes the unused dccphtx_ccval field - it is used nowhere and not
needed.
==> Note: The same holds for the u32 field `dccphtx_rtt' - it is
also not needed by the code. Shall it also be removed ???
Patch 9: concentrates all history updating in packet_sent. I believe that this
is
much cleaner and could already observe much shorter RTT values than
usual.
Patch 10: clerical - unifies the output format of debugging messages (less
confusing).
Patch 11: clerical - I had difficulties reading packet_history.h since rx/tx
function
declarations are intermingled. This just reorders them to appear
separate and
following the same order of declarations.
Patch 12: clerical - does the same as patch 11, but for the source file.
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html