The request-response test case is used for testing.
A test stand has two hosts: a client and a server.
Client: Xeon X7560 (4 cpu * 8 cores * 2 threads), RAM 256Gb, RHEL 6
Server: Xeon X7550 (4 cpu * 8 cores * 2 threads), RAM 128Gb, RHEL 6 with
custom kernel (CONFIG_NR_CPUS=4)

The server side configuration:
* Interrupts are bound to CPUs.
 # cpu=0; for i in `cat /proc/interrupts | grep eth4-Tx | awk '{ print $1
}'`; do irq=`echo ${i/:/}`; echo $cpu > /proc/irq/${irq}/smp_affinity_list;
let cpu++; done
* Execute netserver
 # ./netperf-2.6.0/src/netserver

The following command is executed for testing on the client side:
SERVER_IP=192.168.125.1; for i in `seq 1 128`; do ./src/netperf -H
$SERVER_IP -t TCP_RR -v 0 -l 10 -- -r 1024 & done  | awk ' { p += $1; print
$1 } END { print p } '
This command executes netperf 128 times, then summarize all results.

I found that this test returns 372293 req/sec without a problematic patch
and only 334911 req/sec with this patch. A degradation is about 10%.

commit 1d1a79b5b94b0aa84e1e78dd9acdcffb12274848
Author: Jacob Keller <jacob.e.kel...@intel.com>
Date:   Tue May 22 06:18:08 2012 +0000

    ixgbe: Check PTP Rx timestamps via BPF filter

    This patch fixes a potential Rx timestamp deadlock that causes the Rx
    timestamping to stall indefinitely. The issue could occur when a PTP
packet is
    timestamped by hardware but never reaches the Rx queue. In order to
prevent a
    permanent loss of timestamping, the RXSTMP(L/H) registers have to be
read to
    unlock them. (This used to only occur when a packet that was timestamped
    reached the software.) However the registers can't be read early
otherwise
    there is no way to correlate them to the packet.

    This patch introduces a filter function which can be used to determine
if a
    packet should have been timestamped. Supplied with the filter setup by
the
    hwtstamp ioctl, check to make sure the PTP protocol and message type
match the
    expected values. If so, then read the timestamp registers (to free
them.) At
    this point check the descriptor bit, if the bit is set then we know this
    packet correlates to the timestamp stored in the RXTSTAMP registers.
    Otherwise, assume that packet was dropped by the hardware, and ignore
this
    timestamp value. However, we have at least unlocked the rxtstamp
registers for
    future timestamping.

    Due to the way the driver handles skb data, it cannot be directly
accessed. In
    order to work around this, a copy of the skb data into a linear buffer
is
    made. From this buffer it becomes possible to read the data correctly

    Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com>
    Reviewed-by: Richard Cochran <richardcoch...@gmail.com>
    Tested-by: Phil Schmitt <phillip.j.schm...@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com>

# lsmod
Module                  Size  Used by
fuse                   77814  0
netconsole             14465  0
ebt_among              12643  1
ebtable_filter         12827  1
ebtables               30831  1 ebtable_filter
binfmt_misc            17424  1
joydev                 17457  0
coretemp               13529  0
kvm_intel             136052  0
kvm                   407763  1 kvm_intel
crc32c_intel           12858  0
microcode              19340  0
pcspkr                 12718  0
ixgbe                 200398  0
mdio                   13398  1 ixgbe
i2c_i801               17765  0
i2c_core               34045  1 i2c_i801
lpc_ich                17061  0
mfd_core               13145  1 lpc_ich
i7core_edac            23499  0
edac_core              51035  1 i7core_edac
igb                   158748  0
dca                    14601  2 ixgbe,igb
ptp                    18413  2 ixgbe,igb
pps_core               18595  1 ptp
megaraid_sas           81926  4

Ask me, if you will need more information. Sorry, if it is a wrong alarm.

Thanks.
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to