06 May, 2011
9 commits
-
This patch adds a multiple message send syscall and is the send
version of the existing recvmmsg syscall. This is heavily
based on the patch by Arnaldo that added recvmmsg.I wrote a microbenchmark to test the performance gains of using
this new syscall:http://ozlabs.org/~anton/junkcode/sendmmsg_test.c
The test was run on a ppc64 box with a 10 Gbit network card. The
benchmark can send both UDP and RAW ethernet packets.64B UDP
batch pkts/sec
1 804570
2 872800 (+ 8 %)
4 916556 (+14 %)
8 939712 (+17 %)
16 952688 (+18 %)
32 956448 (+19 %)
64 964800 (+20 %)64B raw socket
batch pkts/sec
1 1201449
2 1350028 (+12 %)
4 1461416 (+22 %)
8 1513080 (+26 %)
16 1541216 (+28 %)
32 1553440 (+29 %)
64 1557888 (+30 %)We see a 20% improvement in throughput on UDP send and 30%
on raw socket send.[ Add sparc syscall entries. -DaveM ]
Signed-off-by: Anton Blanchard
Signed-off-by: David S. Miller -
Force dev_alloc_name() to be called from register_netdevice() by
dev_get_valid_name(). That allows to remove multiple explicit
dev_alloc_name() calls.The possibility to call dev_alloc_name in advance remains.
This also fixes veth creation regresion caused by
84c49d8c3e4abefb0a41a77b25aa37ebe8d6b743Signed-off-by: Jiri Pirko
Signed-off-by: David S. Miller -
Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
To avoid link notification duplication
Signed-off-by: Dmitry Kravkov
Signed-off-by: Vladislav Zolotarov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Reported-by: Karim Hamiti
Signed-off-by: Giuseppe Cavallaro
Signed-off-by: David S. Miller
05 May, 2011
18 commits
-
can: rename can_try_module_get to can_get_proto
can_try_module_get does return a struct can_proto.
The name explains what is done in so much detail that a caller
may not notice that a struct can_proto is locked/unlocked.Signed-off-by: Kurt Van Dijck
Acked-by: Oliver Hartkopp
Signed-off-by: David S. Miller -
commit 53914b67993c724cec585863755c9ebc8446e83b had the
same message. That commit did put everything in place but
did not make can_proto const itself.Signed-off-by: Kurt Van Dijck
Acked-by: Oliver Hartkopp
Signed-off-by: David S. Miller -
Instead of rt->rt_{dst,src}
Signed-off-by: David S. Miller
-
First, make callers pass on-stack flowi4 to ip_route_output_gre()
so they can get at the fully resolved flow key.Next, use that in ipgre_tunnel_xmit() to avoid the need to use
rt->rt_{dst,src}.Signed-off-by: David S. Miller
-
This eliminates the need to use rt->rt_{src,dst}.
Signed-off-by: David S. Miller
-
PCIe connections should be expressed as GT/s (GigaTransfers per second)
instead of the current Gb/s (Gigabits per second). In addition, it is
incorrect because (due to PCIe gen 1 & 2 having a 20% overhead) the
actually data rate, when expressed in Gb/s, is only 80% of the rate of
GT/s.Signed-off-by: Don Skidmore
Tested-by: Evan Swanson
Signed-off-by: Jeff Kirsher -
Introduce buffered read/writes which greatly improves performance on
parts with large EEPROMs.Previously reading/writing a word requires taking/releasing of synchronization
semaphores which adds 10ms to each operation. The optimization is to
read/write in buffers, but make sure the semaphore is not held for >500ms
according to the datasheet.Since we can't read the EEPROM page size ixgbe_detect_eeprom_page_size() is
used to discover the EEPROM size when needed and keeps the result in
word_page_size for the rest of the run time.Use buffered reads for ethtool -e.
Signed-off-by: Emil Tantilov
Tested-by: Evan Swanson
Signed-off-by: Jeff Kirsher -
warning: symbol 'before' shadows an earlier one
Convert large macros to functions similar to e1000e.
Signed-off-by: Emil Tantilov
Acked-by: Don Skidmore
Tested-by: Evan Swanson
Signed-off-by: Jeff Kirsher -
Correcting a simple typo with enabling software defined pins. I don't
believe this was causing any issues but this is how it was meant to be
implemented.Signed-off-by: Don Skidmore
Tested-by: Evan Swanson
Signed-off-by: Jeff Kirsher -
Change remaining direct calls to function pointers.
Signed-off-by: Emil Tantilov
Tested-by: Evan Swanson
Signed-off-by: Jeff Kirsher -
This device lies about supporting phys_id. Remove it and just
let the upper layer report not supported.Signed-off-by: Stephen Hemminger
Tested-by:
Signed-off-by: Jeff Kirsher -
Recent commits have changed how EEPROM size is checked and if the size
word is misconfigured, the driver will fail to load. This patch adds a
check for invalid size word in the EEPROM and uses default size instead
for 82576 parts.Reported-by: Stefan Assmann
Signed-off-by: Carolyn Wyborny
Tested-by: Jeff Pieper
Signed-off-by: Jeff Kirsher -
Based on the original patch sent by Stephen Hemminger.
This version incorporates the ethtool changes that Bruce Allan
submitted.CC: Stephen Hemminger
Signed-off-by: Jeff Kirsher
Tested-by: Evan Swanson -
Instead of rt->rt_{dst,src}
The only tricky part is source route option handling.
If the source route option is enabled we can't just use plain 'daddr',
we have to use opt->opt.faddr.Signed-off-by: David S. Miller
-
In function 'e100_hw_init':
warning: 'err' may be used uninitialized in this functionSigned-off-by: Emil Tantilov
Tested-by: Aaron Brown
Signed-off-by: Jeff Kirsher -
Instead of rt->rt_{dst,src}
Signed-off-by: David S. Miller
-
Fix kconfig unmet dependency warning: HAVE_BPF_JIT depends on NET, so
make the "select" of it depend on NET also.warning: (X86) selects HAVE_BPF_JIT which has unmet direct dependencies (NET)
Signed-off-by: Randy Dunlap
Signed-off-by: David S. Miller
04 May, 2011
9 commits
-
Instead of rt->rt_{src,dst}
Signed-off-by: David S. Miller
-
Instead of rt->rt_{src,dst}
Signed-off-by: David S. Miller
-
Instead of rt->rt_src
Signed-off-by: David S. Miller
-
Instead of rt->rt_{src,dst}
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
-
To more accurately reflect that it is purely a routing
cache lookup key and is used in no other context.Signed-off-by: David S. Miller
-
Use information from the skb as much as possible, currently
this means daddr, saddr, and TOS.Signed-off-by: David S. Miller
-
stmmac.h uses struct platform_device and doesn't include
. Whereas drivers/net/stmmac/stmmac.h includes it, but
doesn't directly use it. And so we get following compilation warning while using
this file:
warning: ‘struct platform_device’ declared inside parameter listThis patch includes in linux/stmmac.h and removes it
from drivers/net/stmmac/stmmac.hSigned-off-by: Viresh Kumar
Acked-by: Giuseppe Cavallaro
Signed-off-by: David S. Miller
03 May, 2011
3 commits
-
Four years ago, Patrick made a change to hold rtnl mutex during netlink
dump callbacks.I believe it was a wrong move. This slows down concurrent dumps, making
good old /proc/net/ files faster than rtnetlink in some situations.This occurred to me because one "ip link show dev ..." was _very_ slow
on a workload adding/removing network devices in background.All dump callbacks are able to use RCU locking now, so this patch does
roughly a revert of commits :1c2d670f366 : [RTNETLINK]: Hold rtnl_mutex during netlink dump callbacks
6313c1e0992 : [RTNETLINK]: Remove unnecessary locking in dump callbacksThis let writers fight for rtnl mutex and readers going full speed.
It also takes care of phonet : phonet_route_get() is now called from rcu
read section. I renamed it to phonet_route_get_rcu()Signed-off-by: Eric Dumazet
Cc: Patrick McHardy
Cc: Remi Denis-Courmont
Acked-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Slow path output route resolution always makes sure that
->{saddr,daddr} are set, and also if we trigger into IPSEC resolution
we initialize them as well, because xfrm_lookup() expects them to be
fully resolved.But if we hit the fast path and flowi4->flowi4_proto is zero, we won't
do this initialization.Therefore, move the IPSEC path initialization to the route cache
lookup fast path to make sure these are always set.Signed-off-by: David S. Miller
02 May, 2011
1 commit
-
The rcu protected macros rcu_dereference() and rcu_assign_pointer()
for the bat_priv->primary_if need to be used, as well as spin/rcu locking.Otherwise we might end up using a primary_if pointer pointing to already
freed memory.Signed-off-by: Marek Lindner
Signed-off-by: Sven Eckelmann