[Bloat] [Codel] The challenge

Eric Dumazet eric.dumazet at gmail.com
Thu May 10 02:27:22 PDT 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