All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bill Fink <billfink@mindspring.com>
To: Thomas Graf <tgraf@suug.ch>
Cc: Chris Friesen <chris.friesen@genband.com>,
	Eric Dumazet <eric.dumazet@gmail.com>, Vimal <j.vimal@gmail.com>,
	netdev@vger.kernel.org, shemminger <shemminger@vyatta.com>
Subject: Re: [PATCH] Rate should be u64 to avoid integer overflow at high speeds (>= ~35Gbit)
Date: Wed, 13 Mar 2013 02:01:56 -0400	[thread overview]
Message-ID: <20130313020156.c9dd9841.billfink@mindspring.com> (raw)
In-Reply-To: <20130312154245.GA13101@casper.infradead.org>

On Tue, 12 Mar 2013, Thomas Graf wrote:

> On 03/12/13 at 08:29am, Chris Friesen wrote:
> > The only problem I see is that you can't set the multiplier with a
> > new tool and then query the rate with old tools.
> > 
> > But you're going to run into that problem with the old tools no
> > matter what you do--and not doing anything is a crappy option as
> > well.
> > 
> > Some kind of multiplier or shift makes as much sense as anything
> > else. With old tools you get current behaviour, with new tools you
> > can specify a multiplying factor to trade off resolution vs
> > precision.
> 
> The introduction of a shift operator or multiplier introduces
> inprecision. I'd much rather see new 64bit Netlink attributes
> that, if present, replace the old rate values and statistics.
> 
> You will need to add a new Netlink attribute anyway and we might
> as well transfer the actual rate instead of a multiplier. Just
> like we did with IFLA_STATS64.

The last time this was discussed appears to be (on 2011-03-28):

	http://marc.info/?l=linux-netdev&m=130128741907282&w=2

where Maciej Żenczykowski argued that creating a new 64-bit
Netlink attribute for this would be much more complex than for
the IFLA_STATS64 support.  There was no reply.

Providing a new multiplier/shift parameter would be a simple
way to extend support for higher rates, and would not break
existing user space that doesn't require the higher rates.
I imagine the user would not explicitly specify the multiplier/
shift parameter, but would just normally specify the desired
rate, and a newer tc would figure out what multiplier/shift
to use if a high enough rate demanded it.  To maintain user
space compatibility, the kernel should report back the same
rate and multiplier/shift it was given, and the newer tc would
convert it back to the user's originally specified rate.  Older
user space that was fine with the ~34 Gbps rate limitation would
always have the default multiplier of 1 or shift of 0 bits, and
would see the exact same unmultiplied/unshifted rate it always
did.

I also believe 32 bits of precision is significant enough
at these higher data rates.

					-Bill

  parent reply	other threads:[~2013-03-13  6:02 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-10  3:20 [PATCH] Rate should be u64 to avoid integer overflow at high speeds (>= ~35Gbit) Vimalkumar
2013-03-10  4:03 ` Eric Dumazet
2013-03-10  4:53   ` Vimal
2013-03-10  5:05     ` Eric Dumazet
2013-03-10  5:49       ` Bill Fink
2013-03-10  5:54         ` Eric Dumazet
2013-03-12 14:29           ` Chris Friesen
2013-03-12 15:42             ` Thomas Graf
2013-03-12 15:44               ` Eric Dumazet
2013-03-12 15:53               ` Chris Friesen
2013-03-12 15:56                 ` Chris Friesen
2013-03-13  6:01               ` Bill Fink [this message]
2013-03-13  6:13                 ` Eric Dumazet
2013-03-13 15:29                   ` Bill Fink
2013-03-13 15:34                     ` Stephen Hemminger
2013-03-13 16:57                       ` Chris Friesen
2013-03-14  4:08                       ` Bill Fink

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=20130313020156.c9dd9841.billfink@mindspring.com \
    --to=billfink@mindspring.com \
    --cc=chris.friesen@genband.com \
    --cc=eric.dumazet@gmail.com \
    --cc=j.vimal@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@vyatta.com \
    --cc=tgraf@suug.ch \
    /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.