Lets make wifi fast again!
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: moeller0 <moeller0@gmx.de>
Cc: "Jesper Dangaard Brouer" <brouer@redhat.com>,
	"Dave Täht" <dave.taht@gmail.com>,
	make-wifi-fast@lists.bufferbloat.net,
	ath10k <ath10k@lists.infradead.org>,
	"codel@lists.bufferbloat.net" <codel@lists.bufferbloat.net>,
	"Jonathan Morton" <chromatix99@gmail.com>,
	"Roman Yeryomin" <leroi.lists@gmail.com>
Subject: Re: [Make-wifi-fast] [Codel] fq_codel_drop vs a udp flood
Date: Fri, 06 May 2016 06:25:56 -0700	[thread overview]
Message-ID: <1462541156.13075.34.camel@edumazet-glaptop3.roam.corp.google.com> (raw)
In-Reply-To: <D29AB9B2-D514-4D14-9A16-CFB9ECD05B17@gmx.de>

On Fri, 2016-05-06 at 13:46 +0200, moeller0 wrote:
> Hi Jesper,
> 
> > On May 6, 2016, at 13:33 , Jesper Dangaard Brouer
> <brouer@redhat.com> wrote:
> > 
> > 
> > On Fri, 6 May 2016 10:41:53 +0200 moeller0 <moeller0@gmx.de> wrote:
> > 
> >> 	Speaking out of total ignorance, I ask why not account
> >> GRO/GSO packets by the number of their fragments against the packet
> >> limit? Counting a 64kB packets as equivalent to a 64B packet
> probably
> >> is the right thing if one tries to account for the work the OS
> needs
> >> to perform to figure out what to do with the packet, but for
> limiting
> >> the memory consumption it introduces an impressive/manly level of
> >> uncertainty (2 orders of magnitude). 
> > 
> > Looking at the drop code in fq_codel:
> >
> https://github.com/torvalds/linux/blob/v4.6-rc6/net/sched/sch_fq_codel.c#L136
> > 
> > It looks like we are finding the "fat" flow to drop from based on
> > number of bytes queued.  And AFAIK skb->len also account for the
> total
> > length of all GSO packets (Eric?)
> > 
> > Even better, we are using qdisc_pkt_len(skb), which also account for
> > the GSO headers in qdisc_pkt_len_init(). 
> > https://github.com/torvalds/linux/blob/v4.6-rc6/net/core/dev.c#L2993
> > 
> > If anything, the GSO packets get hit harder by the fq_codel_drop
> > function, as we drop the entire GSO skb.
> 
> 	This sounds all very reassuring!
> 
> > 
> > 
> > Is the issue you are raising that the 1024 packet limit, would allow
> > 1024 x 64K bytes to be queued before the drop kicks in? (Resulting
> in
> > using too much memory on your small device).
> 
> 	Yes, I guess I need to explain better. My wndr3700v7 only sports a
> measly 64MB ram total, so in the past with the default 10240 limit I
> could force OOM-initiated reboots. So my angle on this issue is
> always, I want my router to survive even if the the network is
> over-saturated (I do not expect the router to work well under those
> circumstances, but I somehow think it should at least not reboot
> during DOS conditions…). Cake allows to specify a hard memory limit
> that looks a skb-truesize to allow stricter memory control for people
> like me, making the whole GRO/GSO issue go away, at least as far as
> OOM is concerned. And as I begin to understand once a link reaches a
> certain bandwidth GRO/GSO will become helpful again, especially on
> small routers as they help reduce the work the kernel needs to to per
> byte…

Angles of attack :

1) I will provide a per device /sys/class/net/eth0/gro_max_frags so that
we can more easily control amount of segs per GRO packets. It makes
sense to have GRO, but not so much allowing it to cook big packets that
might hurt FQ.

2) Tracking skb->truesize looks mandatory for small devices.
I will add this to fq_codel.

3) Making sure skb->truesize is accurate is a long term effort we want
to constantly monitor, since some drivers are doing under estimations.

Thanks.






  reply	other threads:[~2016-05-06 13:25 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-01  3:41 [Make-wifi-fast] " Dave Taht
2016-05-01  4:46 ` Jonathan Morton
2016-05-01  5:08 ` Ben Greear
2016-05-01  5:23   ` Dave Taht
2016-05-01 14:47     ` dpreed
     [not found]       ` <CAJq5cE2woA3yb6i_7NLPpxjzvhsVk5uL8BnSTAY7Lp-M0KiPNg@mail.gmail.com>
     [not found]         ` <CAJq5cE2K0yrz6ALAoKWu23RSJZX9Y_P7Mqcy9ba8e-L3AVhOaA@mail.gmail.com>
2016-05-01 15:51           ` Jonathan Morton
2016-05-02 14:03       ` Roman Yeryomin
2016-05-02 18:40         ` Dave Taht
2016-05-02 20:17           ` [Make-wifi-fast] [Codel] " Isaac Konikoff
2016-05-05 13:55           ` [Make-wifi-fast] " Roman Yeryomin
2016-05-05 14:55             ` Roman Yeryomin
2016-05-02 19:47         ` David Lang
2016-05-01 17:59 ` [Make-wifi-fast] [Codel] " Eric Dumazet
2016-05-01 18:20   ` Jonathan Morton
2016-05-01 18:46     ` Eric Dumazet
2016-05-01 19:55       ` Eric Dumazet
2016-05-02  7:47         ` Jesper Dangaard Brouer
2016-05-01 20:35       ` Jonathan Morton
2016-05-01 20:55         ` Eric Dumazet
2016-05-02 14:18           ` Roman Yeryomin
2016-05-02 15:07             ` Eric Dumazet
2016-05-02 15:43               ` Roman Yeryomin
2016-05-02 16:14                 ` Eric Dumazet
2016-05-02 17:08                   ` Dave Taht
2016-05-02 17:44                     ` Eric Dumazet
2016-05-05 14:32                     ` Roman Yeryomin
2016-05-05 14:53                   ` Roman Yeryomin
2016-05-05 15:32                     ` Dave Taht
2016-05-05 16:07                       ` Roman Yeryomin
2016-05-05 16:59                         ` Jonathan Morton
2016-05-05 17:39                           ` Roman Yeryomin
2016-05-05 18:16                             ` Dave Taht
2016-05-05 18:33                           ` Dave Taht
2016-05-05 16:12                     ` Eric Dumazet
2016-05-05 16:25                       ` Roman Yeryomin
2016-05-05 16:42                         ` Roman Yeryomin
2016-05-06 10:55                           ` Roman Yeryomin
2016-05-05 19:23                         ` Eric Dumazet
2016-05-05 19:41                           ` Dave Taht
2016-05-06  8:41                             ` moeller0
2016-05-06 11:33                               ` Jesper Dangaard Brouer
2016-05-06 11:46                                 ` moeller0
2016-05-06 13:25                                   ` Eric Dumazet [this message]
2016-05-06 15:25                                     ` moeller0
2016-05-06 15:58                                       ` Eric Dumazet
2016-05-06 16:30                                         ` moeller0
2016-05-06  9:42                           ` [Make-wifi-fast] OpenWRT wrong adjustment of fq_codel defaults (Was: [Codel] fq_codel_drop vs a udp flood) Jesper Dangaard Brouer
2016-05-06 12:47                             ` Jesper Dangaard Brouer
2016-05-06 18:43                               ` Roman Yeryomin
2016-05-06 18:56                                 ` Roman Yeryomin
2016-05-06 19:43                                   ` Dave Taht
2016-05-15 22:34                                     ` Roman Yeryomin
2016-05-15 23:07                                       ` Eric Dumazet
2016-05-15 23:27                                         ` Roman Yeryomin
2016-05-16  8:12                                       ` David Lang
2016-05-16  8:26                                         ` Roman Yeryomin
2016-05-16  8:46                                           ` David Lang
2016-05-16 10:34                                             ` [Make-wifi-fast] [OpenWrt-Devel] " Sebastian Moeller
2016-05-16  8:14                                       ` [Make-wifi-fast] " Roman Yeryomin
2016-05-16 14:23                                         ` Eric Dumazet
2016-05-16 16:04                                         ` Dave Taht
2016-05-16 19:46                                           ` Roman Yeryomin
2016-05-07  9:57                             ` Kevin Darbyshire-Bryant
2016-05-15 22:47                               ` Roman Yeryomin
2016-05-03  2:26     ` [Make-wifi-fast] [Codel] fq_codel_drop vs a udp flood Dave Taht
2016-05-03  5:21       ` Dave Taht
2016-05-03 12:39         ` Agarwal, Anil
2016-05-03 12:50           ` Agarwal, Anil
2016-05-03 13:35             ` Eric Dumazet
2016-05-03 15:37               ` Agarwal, Anil
2016-05-03 17:37               ` Dave Taht
2016-05-03 17:54                 ` Eric Dumazet
2016-05-03 18:11                   ` Dave Taht
2016-05-01 18:26   ` Dave Taht
2016-05-01 22:30     ` Eric Dumazet
2016-05-02 14:09   ` Roman Yeryomin
2016-05-02 15:04     ` Eric Dumazet
2016-05-02 15:42       ` Roman Yeryomin
2016-05-02 13:47 ` [Make-wifi-fast] " Roman Yeryomin
2016-05-02 15:01   ` Eric Dumazet

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

  List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/

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

  git send-email \
    --in-reply-to=1462541156.13075.34.camel@edumazet-glaptop3.roam.corp.google.com \
    --to=eric.dumazet@gmail.com \
    --cc=ath10k@lists.infradead.org \
    --cc=brouer@redhat.com \
    --cc=chromatix99@gmail.com \
    --cc=codel@lists.bufferbloat.net \
    --cc=dave.taht@gmail.com \
    --cc=leroi.lists@gmail.com \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    --cc=moeller0@gmx.de \
    /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