android_kernel_samsung_univ.../include/net
Eric Dumazet a5d2809040 codel: fix maxpacket/mtu confusion
Under presence of TSO/GSO/GRO packets, codel at low rates can be quite
useless. In following example, not a single packet was ever dropped,
while average delay in codel queue is ~100 ms !

qdisc codel 0: parent 1:12 limit 16000p target 5.0ms interval 100.0ms
 Sent 134376498 bytes 88797 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 13626b 3p requeues 0
  count 0 lastcount 0 ldelay 96.9ms drop_next 0us
  maxpacket 9084 ecn_mark 0 drop_overlimit 0

This comes from a confusion of what should be the minimal backlog. It is
pretty clear it is not 64KB or whatever max GSO packet ever reached the
qdisc.

codel intent was to use MTU of the device.

After the fix, we finally drop some packets, and rtt/cwnd of my single
TCP flow are meeting our expectations.

qdisc codel 0: parent 1:12 limit 16000p target 5.0ms interval 100.0ms
 Sent 102798497 bytes 67912 pkt (dropped 1365, overlimits 0 requeues 0)
 backlog 6056b 3p requeues 0
  count 1 lastcount 1 ldelay 36.3ms drop_next 0us
  maxpacket 10598 ecn_mark 0 drop_overlimit 0

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Kathleen Nichols <nichols@pollere.com>
Cc: Dave Taht <dave.taht@gmail.com>
Cc: Van Jacobson <vanj@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-05-03 22:17:40 -04:00
..
9p 9p: switch p9_client_read() to passing struct iov_iter * 2015-04-11 22:28:27 -04:00
bluetooth Bluetooth: Read LE remote features during connection establishment 2015-04-09 08:36:54 +03:00
caif
irda
iucv
netfilter netfilter: nf_tables: mark stateful expressions 2015-04-13 20:12:31 +02:00
netns netns: remove BUG_ONs from net_generic() 2015-04-17 15:21:48 -04:00
nfc nfc: nci: Add comment to explain NCI_HCI_MAX_PIPES 2015-04-06 00:19:05 +02:00
phonet
sctp sctp: avoid to repeatedly declare external variables 2015-03-25 11:40:16 -04:00
tc_act act_bpf: add initial eBPF support for actions 2015-03-20 19:10:44 -04:00
6lowpan.h
act_api.h
addrconf.h
af_ieee802154.h
af_rxrpc.h
af_unix.h
af_vsock.h
ah.h
arp.h
atmclip.h
ax25.h
ax88796.h
bond_3ad.h
bond_alb.h
bond_options.h
bonding.h net/bonding: Make DRV macros private 2015-04-26 22:59:53 -04:00
busy_poll.h
cfg80211-wext.h
cfg80211.h cfg80211: move IE split utilities here from mac80211 2015-04-07 13:56:41 +02:00
cfg802154.h
checksum.h
cipso_ipv4.h
cls_cgroup.h
codel.h codel: fix maxpacket/mtu confusion 2015-05-03 22:17:40 -04:00
compat.h net: switch importing msghdr from userland to {compat_,}import_iovec() 2015-04-09 00:02:26 -04:00
datalink.h
dcbevent.h
dcbnl.h net/dcb: Add IEEE QCN attribute 2015-03-06 21:50:02 -05:00
dn_dev.h
dn_fib.h
dn_neigh.h netfilter: Pass socket pointer down through okfn(). 2015-04-07 15:25:55 -04:00
dn_nsp.h
dn_route.h
dn.h
dsa.h net: dsa: Add basic framework to support ndo_fdb functions 2015-03-29 13:23:54 -07:00
dsfield.h
dst_ops.h net: Remove protocol from struct dst_ops 2015-03-09 16:06:10 -04:00
dst.h
esp.h
ethoc.h
fib_rules.h net: Kill hold_net release_net 2015-03-12 14:39:40 -04:00
firewire.h
flow_keys.h
flow.h
flowcache.h
fou.h
garp.h
gen_stats.h
genetlink.h net: Introduce possible_net_t 2015-03-12 14:39:40 -04:00
geneve.h
gre.h
gro_cells.h
gue.h
icmp.h
ieee80211_radiotap.h
ieee802154_netdev.h
if_inet6.h ipv6: do retries on stable privacy addresses 2015-03-23 22:12:09 -04:00
inet6_connection_sock.h inet: get rid of central tcp/dccp listener timer 2015-03-20 12:40:25 -04:00
inet6_hashtables.h ipv6: get rid of __inet6_hash() 2015-03-18 22:00:35 -04:00
inet_common.h
inet_connection_sock.h inet: fix possible panic in reqsk_queue_unlink() 2015-04-24 11:39:15 -04:00
inet_ecn.h
inet_frag.h
inet_hashtables.h inet: get rid of last __inet_hash_connect() argument 2015-03-18 22:00:35 -04:00
inet_sock.h inet: fix request sock refcounting 2015-03-17 22:02:29 -04:00
inet_timewait_sock.h tcp/dccp: get rid of central timewait timer 2015-04-13 16:40:05 -04:00
inetpeer.h tcp: simplify inetpeer_addr_base use 2015-03-31 13:58:35 -04:00
ip6_checksum.h
ip6_fib.h
ip6_route.h netfilter: Pass socket pointer down through okfn(). 2015-04-07 15:25:55 -04:00
ip6_tunnel.h udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb(). 2015-04-07 15:29:08 -04:00
ip_fib.h ipv4: FIB Local/MAIN table collapse 2015-03-11 16:22:14 -04:00
ip_tunnels.h ipip,gre,vti,sit: implement ndo_get_iflink 2015-04-02 14:05:00 -04:00
ip_vs.h net: Introduce possible_net_t 2015-03-12 14:39:40 -04:00
ip.h netfilter: Pass socket pointer down through okfn(). 2015-04-07 15:25:55 -04:00
ipcomp.h
ipconfig.h
ipv6.h net: remove extra newlines 2015-04-07 22:24:37 -04:00
ipx.h
iw_handler.h
lapb.h
lib80211.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h
mac80211.h cfg80211: move IE split utilities here from mac80211 2015-04-07 13:56:41 +02:00
mac802154.h mac802154: fix transmission power datatype 2015-04-09 19:56:15 +02:00
mip6.h
mld.h
mpls.h
mrp.h
ndisc.h
neighbour.h net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state. 2015-03-20 21:47:40 -04:00
net_namespace.h net: Introduce possible_net_t 2015-03-12 14:39:40 -04:00
net_ratelimit.h
netevent.h
netlabel.h
netlink.h netlink: implement nla_get_in_addr and nla_get_in6_addr 2015-03-31 13:58:35 -04:00
netprio_cgroup.h
netrom.h
nexthop.h
nl802154.h
p8022.h
ping.h
pkt_cls.h
pkt_sched.h
protocol.h
psnap.h
raw.h
rawv6.h
red.h
regulatory.h
request_sock.h inet: fix possible panic in reqsk_queue_unlink() 2015-04-24 11:39:15 -04:00
rose.h
route.h
rtnetlink.h rtnetlink: Mark name argument of rtnl_create_link() const 2015-04-10 12:42:40 -07:00
sch_generic.h net_sched: destroy proto tp when all filters are gone 2015-03-09 15:35:55 -04:00
scm.h
secure_seq.h
slhc_vj.h
snmp.h
sock.h Merge branch 'iocb' into for-davem 2015-04-09 00:01:38 -04:00
Space.h
stp.h
switchdev.h switchdev: kernel-doc cleanup on swithdev ops 2015-03-20 21:36:53 -04:00
tcp_memcontrol.h
tcp_states.h inet: add TCP_NEW_SYN_RECV state 2015-03-12 22:58:12 -04:00
tcp.h inet_diag: fix access to tcp cc information 2015-04-17 13:28:31 -04:00
timewait_sock.h
transp_v6.h
tso.h
udp_tunnel.h udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb(). 2015-04-07 15:29:08 -04:00
udp.h
udplite.h
vsock_addr.h
vxlan.h udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb(). 2015-04-07 15:29:08 -04:00
wext.h
wimax.h
x25.h
x25device.h
xfrm.h netfilter: Pass socket pointer down through okfn(). 2015-04-07 15:25:55 -04:00