All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarek Poplawski <jarkao2@gmail.com>
To: David Miller <davem@davemloft.net>
Cc: John Dykstra <john.dykstra1@gmail.com>,
	Joao Correia <joaomiguelcorreia@gmail.com>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	akpm@linux-foundation.org,
	Stephen Hemminger <shemminger@vyatta.com>
Subject: [PATCH] Re: some tc commands fail on 2.6.29-rc6-git5, works on 2.6.28.7
Date: Thu, 5 Mar 2009 00:34:58 +0100	[thread overview]
Message-ID: <20090304233458.GA8303@ami.dom.local> (raw)
In-Reply-To: <1236135028.7883.44.camel@Maple>

On Tue, Mar 03, 2009 at 08:50:28PM -0600, John Dykstra wrote:
> On Tue, 2009-03-03 at 23:10 +0000, Joao Correia wrote:
> > I have confirmed again that the exact same commands (as on the
> > original message), work flawlessly on 2.6.28.7 without a hitch, and,
> > AFAIK, work as intended. I have also tried the latest 2.6.29-rc6-git7
> > and it still fails like on git6.
> 
> I have also reproduced this on Linus' latest 2.6.29-rc6 tree, using tc
> version iproute2-ss071016 and a kernel config with all traffic control
> features enabled.
> 
> The error reported by tc comes from the kernel-level check added by:
> 
> 	commit c1b56878fb68e9c14070939ea4537ad4db79ffae
> 	Author: Stephen Hemminger <shemminger@vyatta.com>
> 	Date:   Tue Nov 25 21:14:06 2008 -0800
> 
>     	tc: policing requires a rate estimator
> 
>     Found that while trying average rate policing, it was possible to
>     request average rate policing without a rate estimator. This results
>     in no policing which is harmless but incorrect.
> 
>     Since policing could be setup in two steps, need to check
>     in the kernel.
> 
>     Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
>     Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> I got the same error when using the tc version iproute2-ss090115 built
> this evening from the public git repository.
> 
>   -- John
> 

Very nice diagnose, thanks!
Jarek P.

PS: after upgrading iproute I couldn't reproduce this seemingly OK
test with older versions anymore...

------------------->
pkt_sched: act_police: Fix a rate estimator test.

A commit c1b56878fb68e9c14070939ea4537ad4db79ffae "tc: policing requires
a rate estimator" introduced a test which invalidates previously working
configs, based on examples from iproute2: doc/actions/actions-general.
This is too rigorous: a rate estimator is needed only when police's
"avrate" option is used.

Reported-by: Joao Correia <joaomiguelcorreia@gmail.com>
Diagnosed-by: John Dykstra <john.dykstra1@gmail.com>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
---

 net/sched/act_police.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/net/sched/act_police.c b/net/sched/act_police.c
index 5c72a11..f8f047b 100644
--- a/net/sched/act_police.c
+++ b/net/sched/act_police.c
@@ -183,13 +183,6 @@ override:
 		if (R_tab == NULL)
 			goto failure;
 
-		if (!est && (ret == ACT_P_CREATED ||
-			     !gen_estimator_active(&police->tcf_bstats,
-						   &police->tcf_rate_est))) {
-			err = -EINVAL;
-			goto failure;
-		}
-
 		if (parm->peakrate.rate) {
 			P_tab = qdisc_get_rtab(&parm->peakrate,
 					       tb[TCA_POLICE_PEAKRATE]);
@@ -205,6 +198,12 @@ override:
 					    &police->tcf_lock, est);
 		if (err)
 			goto failure_unlock;
+	} else if (tb[TCA_POLICE_AVRATE] &&
+		   (ret == ACT_P_CREATED ||
+		    !gen_estimator_active(&police->tcf_bstats,
+					  &police->tcf_rate_est))) {
+		err = -EINVAL;
+		goto failure_unlock;
 	}
 
 	/* No failure allowed after this point */

  parent reply	other threads:[~2009-03-04 23:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-02  0:36 some tc commands fail on 2.6.29-rc6-git5, works on 2.6.28.7 Joao Correia
2009-03-02  0:57 ` Andrew Morton
2009-03-02 18:44   ` Jarek Poplawski
2009-03-03 23:10     ` Joao Correia
2009-03-04  0:06       ` Jarek Poplawski
2009-03-04  2:50       ` John Dykstra
2009-03-04 14:09         ` Joao Correia
2009-03-04 17:59           ` Denys Fedoryschenko
2009-03-04 23:34         ` Jarek Poplawski [this message]
2009-03-05  0:32           ` [PATCH] " Joao Correia
2009-03-05  0:32             ` Joao Correia
2009-03-05  1:38             ` David Miller

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=20090304233458.GA8303@ami.dom.local \
    --to=jarkao2@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=joaomiguelcorreia@gmail.com \
    --cc=john.dykstra1@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@vyatta.com \
    /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.