From: moeller0 <moeller0@gmx.de>
To: Eric Dumazet <eric.dumazet@gmail.com>
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: [Codel] fq_codel_drop vs a udp flood
Date: Fri, 6 May 2016 17:25:47 +0200 [thread overview]
Message-ID: <2BFC725A-F007-4D63-89BD-E1845F7E89BE@gmx.de> (raw)
In-Reply-To: <1462541156.13075.34.camel@edumazet-glaptop3.roam.corp.google.com>
Hi Eric,
> On May 6, 2016, at 15:25 , Eric Dumazet <eric.dumazet@gmail.com> wrote:
>
> 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.
This sounds great, so we can teach, say sqm to set this to a reasonable value given the (shaped) bandwidth of a given interface. Would something like this also make sense/is possible on the send side for GSO/TSO?
>
> 2) Tracking skb->truesize looks mandatory for small devices.
> I will add this to fq_codel.
Thanks.
>
> 3) Making sure skb->truesize is accurate is a long term effort we want
> to constantly monitor, since some drivers are doing under estimations.
Is there an easy way to test/measure this? Say if 2) is implemented how can one figure out how much memory is actually allocated for a given queue?
Best Regards & Merci beaucoup
Sebastian
>
> Thanks.
>
>
>
>
>
next prev parent reply other threads:[~2016-05-06 15:26 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-01 3:41 Dave Taht
2016-05-01 4:46 ` [Codel] [Make-wifi-fast] " Jonathan Morton
2016-05-01 5:08 ` [Codel] " Ben Greear
2016-05-01 5:23 ` Dave Taht
2016-05-01 14:47 ` [Codel] [Make-wifi-fast] " dpreed
[not found] ` <CAJq5cE2woA3yb6i_7NLPpxjzvhsVk5uL8BnSTAY7Lp-M0KiPNg@mail.gmail.com>
[not found] ` <CAJq5cE2K0yrz6ALAoKWu23RSJZX9Y_P7Mqcy9ba8e-L3AVhOaA@mail.gmail.com>
2016-05-01 15:51 ` Jonathan Morton
[not found] ` <CACiydb+nNEWfO8XS63MnrW0LazORAGX+L+fF1xZ2_2sCLeRAsg@mail.gmail.com>
2016-05-02 18:40 ` Dave Taht
2016-05-02 20:17 ` Isaac Konikoff
2016-05-05 13:55 ` Roman Yeryomin
2016-05-05 14:55 ` Roman Yeryomin
2016-05-02 19:47 ` David Lang
2016-05-01 17:59 ` [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
[not found] ` <CACiydbKUu11=zWitkDha0ddgk1-G_Z4-e1+=9ky776VktF5HHg@mail.gmail.com>
2016-05-02 15:07 ` Eric Dumazet
[not found] ` <CACiydbKeKUENncrc-NmYRcku-DGVeGqqzYMqsCqKdxPsR7yUOQ@mail.gmail.com>
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
2016-05-06 15:25 ` moeller0 [this message]
2016-05-06 15:58 ` Eric Dumazet
2016-05-06 16:30 ` moeller0
2016-05-06 9:42 ` [Codel] OpenWRT wrong adjustment of fq_codel defaults (Was: 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 ` [Codel] [Make-wifi-fast] " David Lang
2016-05-16 8:26 ` Roman Yeryomin
2016-05-16 8:46 ` David Lang
2016-05-16 10:34 ` [Codel] [OpenWrt-Devel] " Sebastian Moeller
2016-05-16 8:14 ` [Codel] " Roman Yeryomin
2016-05-16 14:23 ` [Codel] [Make-wifi-fast] " Eric Dumazet
2016-05-16 16:04 ` [Codel] " Dave Taht
2016-05-16 19:46 ` Roman Yeryomin
[not found] ` <572DBC21.10209@darbyshire-bryant.me.uk>
2016-05-15 22:47 ` Roman Yeryomin
2016-05-03 2:26 ` [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
[not found] ` <CACiydbL0K2fQT4EXm4LjDaxDLC+AVj9szTpyHq2iUwuPVNNz+g@mail.gmail.com>
2016-05-02 15:04 ` Eric Dumazet
[not found] ` <CACiydbJStMOr0HKpw68zxDPgQRdwjR88aDis9fv12umzKAvWqw@mail.gmail.com>
2016-05-02 15:01 ` [Codel] [Make-wifi-fast] " 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/codel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2BFC725A-F007-4D63-89BD-E1845F7E89BE@gmx.de \
--to=moeller0@gmx.de \
--cc=ath10k@lists.infradead.org \
--cc=brouer@redhat.com \
--cc=chromatix99@gmail.com \
--cc=codel@lists.bufferbloat.net \
--cc=dave.taht@gmail.com \
--cc=eric.dumazet@gmail.com \
--cc=leroi.lists@gmail.com \
--cc=make-wifi-fast@lists.bufferbloat.net \
/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