From: Mattias Nissler <mattias.nissler@gmx.de>
To: Stefano Brivio <stefano.brivio@polimi.it>
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
"John W. Linville" <linville@tuxdriver.com>,
Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [RFC/T][PATCH v2 2/3] rc80211-pid: introduce PID sharpening factor
Date: Mon, 10 Dec 2007 08:44:56 +0100 [thread overview]
Message-ID: <1197272696.7490.31.camel@localhost> (raw)
In-Reply-To: <20071210082154.015f6e6a@morte>
On Mon, 2007-12-10 at 08:21 +0100, Stefano Brivio wrote:
> On Mon, 10 Dec 2007 07:28:01 +0100
> Mattias Nissler <mattias.nissler@gmx.de> wrote:
>
> > > - /* If no frames were transmitted, we assume the old sample is
> > > - * still a good measurement and copy it. */
> > > - if (spinfo->tx_num_xmit == 0)
> > > - pf = spinfo->last_pf;
> >
> > Please don't remove this check. We can never know when anybody starts
> > calling rate_control_pid_sample() without packets transmitted. Then it's
> > good to have it, else we divide by zero in the next line.
>
> But, as you said, rate_control_pid_sample() only gets called by
> rate_control_pid_tx_status(). There, spinfo->tx_num_xmit always get
> increased. The only other spot where spinfo->tx_num_xmit gets changed is in
> rate_control_pid_sample(), where we set it to 0 after that that division
> gets done, and we obviously change its value after having been called by
> rate_control_pid_tx_status(). So, it always get increased before the
> division, and it's never set to a negative value. Therefore, I assume that
> it will never be zero in the division. Am I wrong?
You're totally right. But IMHO it's nicer to be a little defensive here.
You never know what happens to your code in the future. Just imagine
somebody coming up with: Hey, let's use a timer-based approach for
sampling. Ok, that's easy to do, just call sample() every time the timer
expires. And whoops, there's the division by zero when no packets are
transmitted...
Mattias
next prev parent reply other threads:[~2007-12-10 7:45 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-09 20:15 [RFC/T][PATCH 0/3] rc80211-pid: PID controller enhancements Stefano Brivio
2007-12-09 20:19 ` [RFC/T][PATCH 1/3] rc80211-pid: introduce rate behaviour learning algorithm Stefano Brivio
2007-12-09 22:25 ` Mattias Nissler
2007-12-09 23:21 ` Stefano Brivio
2007-12-10 0:17 ` Stefano Brivio
2007-12-10 2:24 ` [RFC/T][PATCH v2 " Stefano Brivio
2007-12-10 6:51 ` Mattias Nissler
2007-12-10 7:23 ` Stefano Brivio
2007-12-11 23:29 ` [RFC/T][PATCH v3 " Stefano Brivio
2007-12-12 0:25 ` [RFC/T][PATCH v4 " Stefano Brivio
2007-12-10 6:48 ` [RFC/T][PATCH " Mattias Nissler
2007-12-10 8:03 ` Stefano Brivio
2007-12-10 20:48 ` Mattias Nissler
2007-12-10 20:56 ` Mattias Nissler
2007-12-10 21:30 ` Stefano Brivio
2007-12-10 22:05 ` Mattias Nissler
2007-12-10 8:08 ` Stefano Brivio
2007-12-10 20:51 ` Mattias Nissler
2007-12-10 21:22 ` Stefano Brivio
2007-12-10 21:31 ` st3
2007-12-10 22:09 ` Mattias Nissler
2007-12-11 14:52 ` Johannes Berg
2007-12-11 17:23 ` Mattias Nissler
2007-12-12 17:13 ` Johannes Berg
2007-12-12 20:06 ` Mattias Nissler
2007-12-12 21:34 ` Stefano Brivio
2007-12-13 11:42 ` Johannes Berg
2007-12-14 5:27 ` Jouni Malinen
2007-12-14 12:09 ` Johannes Berg
2007-12-13 8:00 ` Holger Schurig
2007-12-11 14:51 ` Johannes Berg
2007-12-09 20:21 ` [RFC/T][PATCH 2/3] rc80211-pid: introduce PID sharpening factor Stefano Brivio
2007-12-09 22:29 ` Mattias Nissler
2007-12-09 23:31 ` Stefano Brivio
2007-12-09 23:53 ` Mattias Nissler
2007-12-10 2:28 ` [RFC/T][PATCH v2 " Stefano Brivio
2007-12-10 6:28 ` Mattias Nissler
2007-12-10 7:21 ` Stefano Brivio
2007-12-10 7:44 ` Mattias Nissler [this message]
2007-12-10 8:17 ` Stefano Brivio
2007-12-11 23:31 ` [RFC/T][PATCH v3 " Stefano Brivio
2007-12-09 20:28 ` [RFC/T][PATCH 3/3] rc80211-pid: allow for parameters to be set through sysfs Stefano Brivio
2007-12-09 22:30 ` Mattias Nissler
2007-12-10 2:31 ` [RFC/T][PATCH v2 " Stefano Brivio
2007-12-16 9:40 ` [RFC/T][PATCH " Stefano Brivio
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=1197272696.7490.31.camel@localhost \
--to=mattias.nissler@gmx.de \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=stefano.brivio@polimi.it \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).