All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
To: dccp@vger.kernel.org
Subject: Re: [PATCH 1/1]: Fix packet tardiness bug in CCID 3
Date: Wed, 03 Jan 2007 11:58:08 +0000	[thread overview]
Message-ID: <200701031158.08831@strip-the-willow> (raw)
In-Reply-To: <200612212044.42230@strip-the-willow>

Ian,

I really do appreciate your effort and your input has been helpful, but
do you not agree that such a bug needs to be tackled at the root?
Please see below.

|  > [CCID 3]: Fix packet tardiness BUG
|  >
|  > Problem:
|  > --------
|  >  Due to packet scheduling in CCID 3, it can happen that the
|  >  actual send time of a packet is later than t_now: in this case
|  >  t_nom < t_now.
|  >  This case brings the entire packet scheduling out of sync, since
|  >  the next packet is scheduled at t_nom + t_ipi, and t_nom is in
|  >  the past.
|  >
|  > Fix:
|  > ----
|  >  Update t_nom to t_now whenever a packet is late due to scheduling
|  >  (and then t_nom < t_now). This update takes place in ccid3_hc_tx_
|  >  send_packet. In between calls to this function, it is irrelevant
|  >  if t_nom < t_now (since it will be caught eventually).
|  >
|  Agree with the problem statement and your fix helps but I think this
|  fix isn't quite right and mine uses a bit too much CPU resource.

|  
|  The problem with yours is that it resets t_nom whenever it is late
|  rather than just due to t_ipi changing. 
Sorry, did you read the earlier emails that I sent? The point is that
t_ipi will never cause t_nom to become negative. Let things be what they
may - one thing is clear: the problem of being too late in scheduling must
be accounted for. This is what the patch does.

There is a second issue which is more subtle: there are several functions
which access t_nom asynchronously: packet_sent, packet_recv, no_feedback timer.
Due to concurrency this means that we have a race condition if we allow
several functions to access t_nom without enforcing mutual exclusion via
locks: the problem is that one function can read an old t_nom, while t_ipi
has just been subtracted .... and so on. I have prepared another patch to
take care of this.


|  The problem like this is that if the packet is late for other reasons 
|  then we shouldn't slow down following packets as it hurts performance. 
Ian, which `other reasons' do you mean?: it is logically impossible to create
a t_nom < t_now other than being too late in scheduling.

Gerrit

      parent reply	other threads:[~2007-01-03 11:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-21 20:44 [PATCH 1/1]: Fix packet tardiness bug in CCID 3 Gerrit Renker
2006-12-28  1:45 ` Ian McDonald
2007-01-03 11:58 ` Gerrit Renker [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200701031158.08831@strip-the-willow \
    --to=gerrit@erg.abdn.ac.uk \
    --cc=dccp@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.