[Bloat] [Codel] The challenge
Eric Dumazet
eric.dumazet at gmail.com
Thu May 10 05:27:22 EDT 2012
On Thu, 2012-05-10 at 11:19 +0200, Steinar H. Gunderson wrote:
> On Thu, May 10, 2012 at 02:16:31AM +0200, Eric Dumazet wrote:
> > Starting from kernel 2.6.13 Hybla has been included in the official
> > Linux kernel. However, this implementation, based on the "module" Linux
> > technology, does not include the last two Hybla components: Hoe's
> > channel bandwidth estimate and packet spacing. Their addition is
> > mandatory to fully benefit from Hybla performance improvement. To this
> > end, it is enough to patch the official kernel with the MultiTCP
> > package, downloadable from the downloads section.
>
> That explains it, indeed. Their latest patch is for 3.0.0, which is maybe
> recent enough that I can try to coax it in next time I compile my kernel :-)
>
> /* Steinar */
Unfortunately patchs seems in a bad shape...
random examples :
+void __tcp_pacing_reset_timer(struct sock *sk)
+{
+ struct tcp_sock *tp = tcp_sk(sk);
+ __u32 timeout = jiffies + tp->pacing.delta;
+
+ if (!mod_timer(&tp->pacing.timer, timeout))
+ sock_hold(sk);
+}
+EXPORT_SYMBOL(__tcp_pacing_reset_timer);
+
timeout should be an "unsigned long"
-static void tcp_conservative_spur_to_response(struct tcp_sock *tp)
+static void tcp_conservative_spur_to_response(struct sock *sk)
{
+ struct tcp_sock *tp = tcp_sk(sk);
tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh);
tp->snd_cwnd_cnt = 0;
tp->bytes_acked = 0;
TCP_ECN_queue_cwr(tp);
- tcp_moderate_cwnd(tp);
+ tcp_moderate_cwnd(sk, tp);
}
There is no point passing both sk and tp to a function, since tcp_sk(sk)
is a nop.
More information about the Bloat
mailing list