From: Eric Dumazet <eric.dumazet@gmail.com>
To: Dave Taht <dave.taht@gmail.com>
Cc: "Michal Kubeček" <mkubecek@suse.cz>,
netdev@vger.kernel.org,
"John A. Sullivan III" <jsullivan@opensourcedevel.com>
Subject: [RFC] SFQ planned changes
Date: Tue, 03 Jan 2012 11:40:35 +0100 [thread overview]
Message-ID: <1325587235.2320.37.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC> (raw)
In-Reply-To: <CAA93jw5NYChp+hKWjOWiw7SnGhNe+REofr2KM-85GnKNVpkw6w@mail.gmail.com>
Le mardi 03 janvier 2012 à 10:36 +0100, Dave Taht a écrit :
> I note that (as of yesterday) sfq is performing as well as qfq did
> under most workloads, and is considerably simpler than qfq, but
> what I have in mind for shaping in a asymmetric scenario
> *may* involve 'weighting' - rather than strictly prioritizing -
> small acks... and it may not - I'd like to be able to benchmark
> the various AQM approaches against a variety of workloads
> before declaring victory.
A QFQ setup with more than 1024 classes/qdisc is way too slow at init
time, and consume ~384 bytes per class : ~12582912 bytes for 32768
classes.
We also are limited to 65536 qdisc per device, so QFQ setup using hash
is limited to a 32768 divisor.
Now SFQ as implemented in Linux is very limited, with at most 127 flows
and limit of 127 packets. [ So if 127 flows are active, we have one
packet per flow ]
I plan to add to SFQ following features :
- Ability to specify a per flow limit
Its what is called the 'depth',
currently hardcoded to min(127, limit)
- Ability to have up to 65535 flows (instead of 127)
- Ability to have a head drop (to drop old packets from a flow)
example of use : No more than 20 packets per flow, max 8000 flows, max
20000 packets in SFQ qdisc, hash table of 65536 slots.
tc qdisc add ... sfq \
flows 8000 \
depth 20 \
headdrop \
limit 20000 divisor 65536
Ram usage : 32 bytes per flow, instead of 384 for QFQ, so much better
cache hit ratio. 2 bytes per hash table slots, instead of 8 for QFQ.
(perturb timer for a huge SFQ setup would be not recommended)
next prev parent reply other threads:[~2012-01-03 10:40 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-01 2:30 tc filter mask for ACK packets off? John A. Sullivan III
2012-01-03 7:31 ` Michal Kubeček
2012-01-03 9:36 ` Dave Taht
2012-01-03 10:40 ` Eric Dumazet [this message]
2012-01-03 12:07 ` [RFC] SFQ planned changes Dave Taht
2012-01-03 12:50 ` Eric Dumazet
2012-01-03 16:08 ` Eric Dumazet
2012-01-03 23:57 ` Dave Taht
2012-01-04 0:14 ` Eric Dumazet
2012-01-04 7:56 ` Dave Taht
2012-01-04 8:17 ` Eric Dumazet
2012-01-03 12:18 ` tc filter mask for ACK packets off? John A. Sullivan III
2012-01-03 12:32 ` Eric Dumazet
2012-01-03 12:45 ` John A. Sullivan III
2012-01-03 13:00 ` Dave Taht
2012-01-03 17:57 ` John A. Sullivan III
2012-01-04 0:01 ` Michal Soltys
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=1325587235.2320.37.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC \
--to=eric.dumazet@gmail.com \
--cc=dave.taht@gmail.com \
--cc=jsullivan@opensourcedevel.com \
--cc=mkubecek@suse.cz \
--cc=netdev@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox