[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <D1E67FCC.3FA19%Shaun.Crampton@metaswitch.com>
Date: Tue, 4 Aug 2015 13:42:24 +0000
From: Shaun Crampton <Shaun.Crampton@...aswitch.com>
To: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: veths often slow to come up
Please CC me on any responses, thanks.
Setting both ends of a veth to be oper UP completes very quickly but I
find that pings only start flowing over the veth after about a second.
This seems to correlate with the NO-CARRIER flag being set or the
interface being in "state UNKNOWN" or "state DOWN² for about a second
(demo script below).
If I run the script repeatedly then sometimes it completes very quickly on
subsequent runs as if there¹s a hot cache somewhere.
Could this be a bug or is there a configuration to speed this up? Seems
odd that it¹s almost exactly 1s on the first run.
Seen on these kernels:
* 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:28:15 UTC 2015 x86_64
x86_64 x86_64 GNU/Linux
* 4.0.9-coreos #2 SMP Thu Jul 30 01:07:55 UTC 2015 x86_64 Intel(R) Xeon(R)
CPU @ 2.50GHz GenuineIntel GNU/Linux
Regards,
-Shaun
Running my test script below (Assumes veth0/1 do not already exist):
$ sudo ./veth-test.sh
Time to create veth:
real 0m0.019s
user 0m0.002s
sys 0m0.010s
Time to wait for carrier:
real 0m1.005s
user 0m0.007s
sys 0m0.123s
# veth-test.sh
#!/bin/bash
function create_veth {
ip link add type veth
ip link set veth0 up
ip link set veth1 up
}
function wait_for_carrier {
while ! ip link show | grep -qE 'veth[01]';
do
sleep 0.05
done
while ip link show | grep -E 'veth[01]¹ | \
grep -Eq 'NO-CARRIER|state DOWN|state UNKNOWN';
do
sleep 0.05
done
}
echo "Time to create veth:"
time create_veth
echo
echo "Time to wait for carrier:"
time wait_for_carrier
ip link del veth0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists