Re: ixgbe question
From: <hidden>
Date: 2009-11-23 18:44:43
Eric Dumazet writes:
> slone_skb set to 1, this changes nothing but slows down pktgen (obviously)
> All RX processing of 16 RX queues done by CPU 1 only.
Well just pulled net-next-2.6 and ran with both 82598 and 82599 boards and
pkt load gets distributed among the cpu-cores.
Something mysterious or very obvious...
You can even try the script it's a sort of Internet Link traffic emulation
well you have to set up your routing.
Cheers
--ro
#! /bin/sh
#modprobe pktgen
function pgset() {
local result
echo $1 > $PGDEV
result=`cat $PGDEV | fgrep "Result: OK:"`
if [ "$result" = "" ]; then
cat $PGDEV | fgrep Result:
fi
}
function pg() {
echo inject > $PGDEV
cat $PGDEV
}
# Config Start Here -----------------------------------------------------------
remove_all()
{
# thread config
PGDEV=/proc/net/pktgen/kpktgend_0
pgset "rem_device_all"
PGDEV=/proc/net/pktgen/kpktgend_1
pgset "rem_device_all"
PGDEV=/proc/net/pktgen/kpktgend_2
pgset "rem_device_all"
PGDEV=/proc/net/pktgen/kpktgend_3
pgset "rem_device_all"
PGDEV=/proc/net/pktgen/kpktgend_4
pgset "rem_device_all"
PGDEV=/proc/net/pktgen/kpktgend_5
pgset "rem_device_all"
PGDEV=/proc/net/pktgen/kpktgend_6
pgset "rem_device_all"
PGDEV=/proc/net/pktgen/kpktgend_7
pgset "rem_device_all"
}
remove_all
PGDEV=/proc/net/pktgen/kpktgend_0
pgset "add_device eth2@0"
PGDEV=/proc/net/pktgen/kpktgend_1
pgset "add_device eth2@1"
PGDEV=/proc/net/pktgen/kpktgend_2
pgset "add_device eth2@2"
PGDEV=/proc/net/pktgen/kpktgend_3
pgset "add_device eth2@3"
# device config
#
# Sending a mix of pkt sizes of 64, 576 and 1500
#
CLONE_SKB="clone_skb 1"
PKT_SIZE="pkt_size 60"
COUNT="count 000000"
DELAY="delay 0000"
#MAC="00:21:28:08:40:EE"
#MAC="00:21:28:08:40:EF"
#MAC="00:1B:21:17:C1:CD"
MAC="00:14:4F:DA:8C:66"
#MAC="00:14:4F:6B:CD:E8"
PGDEV=/proc/net/pktgen/eth2@0
echo "Configuring $PGDEV"
pgset "$COUNT"
pgset "$CLONE_SKB"
pgset "pkt_size 1496"
pgset "$DELAY"
pgset "flag QUEUE_MAP_CPU"
pgset "flag IPDST_RND"
pgset "flag FLOW_SEQ"
pgset "dst_min 11.0.0.0"
pgset "dst_max 11.255.255.255"
pgset "flows 2048"
pgset "flowlen 30"
pgset "dst_mac $MAC"
PGDEV=/proc/net/pktgen/eth2@1
echo "Configuring $PGDEV"
pgset "$COUNT"
pgset "$CLONE_SKB"
pgset "pkt_size 576"
pgset "$DELAY"
pgset "flag QUEUE_MAP_CPU"
pgset "flag IPDST_RND"
pgset "flag FLOW_SEQ"
pgset "dst_min 11.0.0.0"
pgset "dst_max 11.255.255.255"
pgset "flows 2048"
pgset "flowlen 30"
pgset "dst_mac $MAC"
PGDEV=/proc/net/pktgen/eth2@2
echo "Configuring $PGDEV"
pgset "$COUNT"
pgset "$CLONE_SKB"
pgset "$DELAY"
pgset "pkt_size 60"
pgset "flag QUEUE_MAP_CPU"
pgset "flag IPDST_RND"
pgset "flag FLOW_SEQ"
pgset "dst_min 11.0.0.0"
pgset "dst_max 11.255.255.255"
pgset "flows 2048"
pgset "flowlen 30"
pgset "dst_mac $MAC"
PGDEV=/proc/net/pktgen/eth2@3
echo "Configuring $PGDEV"
pgset "$COUNT"
pgset "$CLONE_SKB"
pgset "pkt_size 1496"
pgset "$DELAY"
pgset "flag QUEUE_MAP_CPU"
pgset "flag IPDST_RND"
pgset "flag FLOW_SEQ"
pgset "dst_min 11.0.0.0"
pgset "dst_max 11.255.255.255"
pgset "flows 2048"
pgset "flowlen 30"
pgset "dst_mac $MAC"
# Time to run
PGDEV=/proc/net/pktgen/pgctrl
echo "Running... ctrl^C to stop"
pgset "start"
echo "Done"
grep pps /proc/net/pktgen/*