All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Jesper Dangaard Brouer <jbrouer@redhat.com>
Cc: "Jesper Dangaard Brouer" <brouer@redhat.com>,
	"Stephen Hemminger" <stephen@networkplumber.org>,
	"David Miller" <davem@redhat.com>,
	j.vimal@gmail.com, "Michal Soltys" <soltys@ziu.info>,
	"Mike Frysinger" <vapier@gentoo.org>,
	"Jussi Kivilinna" <jussi.kivilinna@mbnet.fi>,
	"Patrick McHardy" <kaber@trash.net>,
	"Jiri Pirko" <jpirko@redhat.com>,
	"Toke Høiland-Jørgensen" <toke@toke.dk>,
	"Dave Taht" <dave.taht@gmail.com>,
	netdev@vger.kernel.org, bloat@lists.bufferbloat.net,
	"Dan Siemon" <dan@coverfire.com>,
	"Jim Gettys" <jg@freedesktop.org>,
	"Steven Barth" <cyrus@openwrt.org>,
	"Felix Fietkau" <nbd@nbd.name>, "Jiri Benc" <jbenc@redhat.com>
Subject: Re: RFC: Proposed fix for tc linklayer calc broken after commit 56b765b79 (htb: improved accuracy at high rates)
Date: Thu, 06 Jun 2013 07:28:06 -0700	[thread overview]
Message-ID: <1370528885.24311.346.camel@edumazet-glaptop> (raw)
In-Reply-To: <20130606155504.0eb6570a@redhat.com>

On Thu, 2013-06-06 at 15:55 +0200, Jesper Dangaard Brouer wrote:
> Requesting comments.
> 
> So, bacically commit 56b765b79 (htb: improved accuracy at high rates),
> broke the "linklayer atm" handling.  As it didn't update the iproute tc util.
> 
> Treating this as a regression fix, this is the smallest and least
> intrusive solution I could come up with.
> 
> I'm basically restoring the "linklayer atm" handling, by using the
> __reserved field in struct tc_ratespec, to convey the chosen
> linklayer option.
> 
> 
> KERNEL patch:
> =============
> 
> [PATCH RFC] net_sched: restore "linklayer atm" handling
> 
> From: Jesper Dangaard Brouer <brouer@redhat.com>
> 
> commit 56b765b79 ("htb: improved accuracy at high rates")
> broke the "linklayer atm" handling.
> 
>  tc class add ... htb rate X ceil Y linklayer atm
> 
> This patch restores the "linklayer atm" handling, by using the
> __reserved field in struct tc_ratespec, to convey the choosen
> linklayer option.
> 
> This requires a corrosponding iproute2 tc fix, that updates this
> field.  Older tc binaries can be detected by the kernel, as the
> field would be zero.
> 
> Request-For-Comments-by: Jesper Dangaard Brouer <brouer@redhat.com>
> ---
> 
>  include/net/sch_generic.h      |    8 +++++++-
>  include/uapi/linux/pkt_sched.h |   11 ++++++++++-
>  net/sched/sch_generic.c        |    4 ++++
>  3 files changed, 21 insertions(+), 2 deletions(-)
> 
> 
> diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
> index e7f4e21..c9916b1 100644
> --- a/include/net/sch_generic.h
> +++ b/include/net/sch_generic.h
> @@ -682,13 +682,18 @@ struct psched_ratecfg {
>  	u64	rate_bps;
>  	u32	mult;
>  	u16	overhead;
> +	u8	linklayer;
>  	u8	shift;
>  };
>  
>  static inline u64 psched_l2t_ns(const struct psched_ratecfg *r,
>  				unsigned int len)
>  {
> -	return ((u64)(len + r->overhead) * r->mult) >> r->shift;
> +	u64 pkt_len = len + r->overhead;
> +
> +	if (r->linklayer == TC_LINKLAYER_ATM)
> +		pkt_len = DIV_ROUND_UP(pkt_len,48)*53;

Is this working on 32bit kernel ?

> +	return (pkt_len * r->mult) >> r->shift;
>  }

I have no idea why you include so many people on your mails.

This looks like ATM link have real rate of 48/53 of the rate.


Since we have to distribute a new tc version, why not doing

"tc ... rate rate X ceil Y linklayer atm"

->

"tc ... rate  X*48/53 Y*48/53"

It avoids hard coded values in the kernel.

Or make it use STAB if people really want to count bits/cells instead of
bytes.

Lets try to keep this overhead out of the fast path.

      reply	other threads:[~2013-06-06 14:28 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-29 13:13 tc linklayer ADSL calc broken after commit 56b765b79 (htb: improved accuracy at high rates) Jesper Dangaard Brouer
2013-05-29 15:52 ` Eric Dumazet
2013-05-29 22:50   ` Stephen Hemminger
2013-05-29 23:18     ` Eric Dumazet
2013-05-30  9:15       ` Jesper Dangaard Brouer
2013-05-30  9:52         ` [Bloat] " Steinar H. Gunderson
     [not found]     ` <20130529155034.334092c5-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2013-05-30  0:34       ` Dave Taht
2013-05-30  8:09     ` Jesper Dangaard Brouer
2013-05-30  7:51   ` Jesper Dangaard Brouer
2013-05-30 14:39     ` Eric Dumazet
2013-05-30 15:55       ` Jesper Dangaard Brouer
2013-05-30 16:29         ` Jussi Kivilinna
2013-06-02 21:15 ` Eric Dumazet
2013-06-02 21:33   ` [PATCH iproute2] htb: report overhead attribute Eric Dumazet
2013-06-03 15:45     ` Rick Jones
2013-06-03 15:56       ` Eric Dumazet
2013-06-04 11:11         ` Jesper Dangaard Brouer
2013-06-04 13:58           ` Eric Dumazet
2013-06-04 15:08             ` Jesper Dangaard Brouer
2013-06-03 19:50       ` Jussi Kivilinna
2013-06-07 15:56     ` Stephen Hemminger
2013-06-07 16:00       ` Eric Dumazet
2013-06-04 12:13 ` Bad shaping at low rates, after commit 56b765b79 (htb: improved accuracy at high rates) Jesper Dangaard Brouer
2013-06-04 15:18   ` Eric Dumazet
2013-06-04 15:55     ` Eric Dumazet
2013-06-04 16:02       ` Eric Dumazet
2013-06-04 17:11         ` [PATCH] net_sched: htb: do not mix 1ns and 64ns time units Eric Dumazet
2013-06-04 20:21           ` Jesper Dangaard Brouer
     [not found]             ` <20130604222135.67eedab8-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-06-04 20:26               ` Dave Taht
2013-06-04 21:02                 ` Eric Dumazet
2013-06-04 20:50             ` Eric Dumazet
2013-06-05  0:44           ` David Miller
2013-06-06 13:55 ` RFC: Proposed fix for tc linklayer calc broken after commit 56b765b79 (htb: improved accuracy at high rates) Jesper Dangaard Brouer
2013-06-06 14:28   ` Eric Dumazet [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=1370528885.24311.346.camel@edumazet-glaptop \
    --to=eric.dumazet@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=brouer@redhat.com \
    --cc=cyrus@openwrt.org \
    --cc=dan@coverfire.com \
    --cc=dave.taht@gmail.com \
    --cc=davem@redhat.com \
    --cc=j.vimal@gmail.com \
    --cc=jbenc@redhat.com \
    --cc=jbrouer@redhat.com \
    --cc=jg@freedesktop.org \
    --cc=jpirko@redhat.com \
    --cc=jussi.kivilinna@mbnet.fi \
    --cc=kaber@trash.net \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=soltys@ziu.info \
    --cc=stephen@networkplumber.org \
    --cc=toke@toke.dk \
    --cc=vapier@gentoo.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.