[ofa-general] Re: [PATCH 00/12 -Rev2] Implement batching skb API
Krishna Kumar2
krkumar2 at in.ibm.com
Mon Jul 23 02:53:27 PDT 2007
> I have started a 10 run test for various buffer sizes and processes, and
> will post the results on Monday.
The 10 iteration run results for Rev2 are (average) :
----------------------------------------------------------------------------------
Test Case Org New %Change
----------------------------------------------------------------------------------
TCP 1 Process
Size:32 2703 3063 13.31
Size:128 12948 12217 -5.64
Size:512 48108 55384 15.12
Size:4096 129089 132586 2.70
Average: 192848 203250 5.39
TCP 4 Processes
Size:32 10389 10768 3.64
Size:128 39694 42265 6.47
Size:512 159563 156373 -1.99
Size:4096 268094 256008 -4.50
Average: 477740 465414 -2.58
TCP No Delay 1 Process
Size:32 2606 2950 13.20
Size:128 8115 11864 46.19
Size:512 39113 42608 8.93
Size:4096 103966 105333 1.31
Average: 153800 162755 5.82
TCP No Delay 4 Processes
Size:32 4213 8727 107.14
Size:128 17579 35143 99.91
Size:512 70803 123936 75.04
Size:4096 203541 225259 10.67
Average: 296136 393065 32.73
--------------------------------------------------------------------------
Average: 1120524 1224484 9.28%
There are three cases that degrade a little (upto -5.6%), but there are 13
cases
that improve, and many of those are in the 13% to over 100% (7 cases).
Thanks,
- KK
Krishna Kumar2/India/IBM at IBMIN wrote on 07/22/2007 02:34:57 PM:
> This set of patches implements the batching API, and makes the following
> changes resulting from the review of the first set:
>
> Changes :
> ---------
> 1. Changed skb_blist from pointer to static as it saves only 12 bytes
> (i386), but bloats the code.
> 2. Removed requirement for driver to set "features & NETIF_F_BATCH_SKBS"
> in register_netdev to enable batching as it is redundant. Changed
this
> flag to NETIF_F_BATCH_ON and it is set by register_netdev, and other
> user changable calls can modify this bit to enable/disable batching.
> 3. Added ethtool support to enable/disable batching (not tested).
> 4. Added rtnetlink support to enable/disable batching (not tested).
> 5. Removed MIN_QUEUE_LEN_BATCH for batching as high performance drivers
> should not have a small queue anyway (adding bloat).
> 6. skbs are purged from dev_deactivate instead of from unregister_netdev
> to drop all references to the device.
> 7. Removed changelog in source code in sch_generic.c, and unrelated
renames
> from sch_generic.c (lockless, comments).
> 8. Removed xmit_slots entirely, as it was adding bloat (code and header)
> and not adding value (it is calculated and set twice in internal send
> routine and handle work completion, and referenced once in batch
xmit;
> and can instead be calculated once in xmit).
>
> Issues :
> --------
> 1. Remove /sysfs support completely ?
> 2. Whether rtnetlink support is required as GSO has only ethtool ?
>
> Patches are described as:
> Mail 0/12 : This mail.
> Mail 1/12 : HOWTO documentation.
> Mail 2/12 : Changes to netdevice.h
> Mail 3/12 : dev.c changes.
> Mail 4/12 : Ethtool changes.
> Mail 5/12 : sysfs changes.
> Mail 6/12 : rtnetlink changes.
> Mail 7/12 : Change in qdisc_run & qdisc_restart API, modify callers
> to use this API.
> Mail 8/12 : IPoIB include file changes.
> Mail 9/12 : IPoIB verbs changes
> Mail 10/12 : IPoIB multicast, CM changes
> Mail 11/12 : IPoIB xmit API addition
> Mail 12/12 : IPoIB xmit internals changes (ipoib_ib.c)
>
> I have started a 10 run test for various buffer sizes and processes, and
> will post the results on Monday.
>
> Please review and provide feedback/ideas; and consider for inclusion.
>
> Thanks,
>
> - KK
More information about the general
mailing list