All of lore.kernel.org
 help / color / mirror / Atom feed
From: fengguang.wu@intel.com
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: netdev@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: -27% netperf TCP_STREAM regression by "tcp_memcontrol: Kill struct tcp_memcontrol"
Date: Tue, 22 Oct 2013 22:41:29 +0100	[thread overview]
Message-ID: <20131022214129.GB2715@localhost> (raw)

Hi Eric,

We noticed big netperf throughput regressions

    a4fe34bf902b8f709c63      2e685cad57906e19add7  
------------------------  ------------------------  
                  707.40       -40.7%       419.60  lkp-nex04/micro/netperf/120s-200%-TCP_STREAM
                 2775.60       -23.7%      2116.40  lkp-sb03/micro/netperf/120s-200%-TCP_STREAM
                 3483.00       -27.2%      2536.00  TOTAL netperf.Throughput_Mbps

and bisected it to

commit 2e685cad57906e19add7189b5ff49dfb6aaa21d3
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat Oct 19 16:26:19 2013 -0700

    tcp_memcontrol: Kill struct tcp_memcontrol
    
    Replace the pointers in struct cg_proto with actual data fields and kill
    struct tcp_memcontrol as it is not fully redundant.
    
    This removes a confusing, unnecessary layer of abstraction.
    
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

:040000 040000 a1896af98145c8ae2765a787845c43c9700c7dc0 02c93b50f66f1d1b34983bf3cc7e9a0dcc7105dc M	include
:040000 040000 ebe5d0619b54ddf730224f6581f595491eb36989 cd560b4a6e56cecac931814ba16420e167eb68f6 M	mm
:040000 040000 5df01f70484e07fbf98a7d5b8e0a53270777ac3d 1f8d1b340d8810a79691777f4e3ee529027b3c9b M	net
bisect run success

# bad: [aec2994e1799312822a30fefc27205e7360fe5af] Merge 'pwm/for-next' into devel-hourly-2013102222
# good: [31d141e3a666269a3b6fcccddb0351caf7454240] Linux 3.12-rc6
git bisect start 'aec2994e1799312822a30fefc27205e7360fe5af' '31d141e3a666269a3b6fcccddb0351caf7454240' '--'
# good: [ef26157747d42254453f6b3ac2bd8bd3c53339c3] batman-adv: tvlv - basic infrastructure
git bisect good ef26157747d42254453f6b3ac2bd8bd3c53339c3
# bad: [cc6a88faebab06b0323818cd102a6aae443cf34a] Merge 'netdev-next/master' into devel-hourly-2013102222
git bisect bad cc6a88faebab06b0323818cd102a6aae443cf34a
# good: [5cda73b68ebf7e08586d61e6777e64e12df23f07] Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
git bisect good 5cda73b68ebf7e08586d61e6777e64e12df23f07
# good: [a8fab0744585c1ab61009bfc1a1958f28e1c864f] x86/jump_label: expect default_nop if static_key gets enabled on boot-up
git bisect good a8fab0744585c1ab61009bfc1a1958f28e1c864f
# good: [21d35d212469c3138f8916f7e47b779313d79751] net: sky2: remove unnecessary pci_set_drvdata()
git bisect good 21d35d212469c3138f8916f7e47b779313d79751
# bad: [61c1db7fae21ed33c614356a43bf6580c5e53118] ipv6: sit: add GSO/TSO support
git bisect bad 61c1db7fae21ed33c614356a43bf6580c5e53118
# good: [a4fe34bf902b8f709c635ab37f1f39de0b86cff2] tcp_memcontrol: Remove the per netns control.
git bisect good a4fe34bf902b8f709c635ab37f1f39de0b86cff2
# bad: [1b66917d6b76db0abe1a1bbf86b2517ba8b91d98] cgxb4: remove duplicate include in cxgb4.h
git bisect bad 1b66917d6b76db0abe1a1bbf86b2517ba8b91d98
# bad: [0a6fa23dcb10eeb21adfd9955f7030f952a8122d] ipv4: Use math to point per net sysctls into the appropriate struct net.
git bisect bad 0a6fa23dcb10eeb21adfd9955f7030f952a8122d
# bad: [2e685cad57906e19add7189b5ff49dfb6aaa21d3] tcp_memcontrol: Kill struct tcp_memcontrol
git bisect bad 2e685cad57906e19add7189b5ff49dfb6aaa21d3
# first bad commit: [2e685cad57906e19add7189b5ff49dfb6aaa21d3] tcp_memcontrol: Kill struct tcp_memcontrol


                              netperf.Throughput_Mbps

   750 ++-------------------------------------------------------------------+
       *...*...                             .*...                         ..*
   700 ++      *...*..*...*...*...*...*...*.     *...*...*...*...*..*...*.  |
       |                                                                    |
   650 ++                                                                   |
       |                                                                    |
   600 ++                                                                   |
       |                                                                    |
   550 ++                                                                   |
       |                                                                    |
   500 ++                                                                   |
       |                                                                    |
   450 ++                                                                   |
       O   O       O  O   O       O       O  O   O   O   O   O              |
   400 ++------O--------------O-------O-------------------------------------+


                                  vmstat.system.in

   17200 ++-----------------------------------------------------------------+
   17100 ++               ..*..*.      *...*..                              |
         |          *...*.       ..  ..       *                        .*...|
   17000 ++       ..                .          +                     *.     *
   16900 ++..*.. .                 *            +                  ..       |
   16800 *+     *                                +       *        .         |
   16700 ++                                       *..   + +      *          |
         |                                           . +   +   ..           |
   16600 ++                                           *     + .             |
   16500 ++                                                  *              |
   16400 ++                                                                 |
   16300 ++                                                                 |
         O          O   O      O       O              O                     |
   16200 ++  O  O           O      O       O  O   O      O   O              |
   16100 ++-----------------------------------------------------------------+


                                   vmstat.system.cs

   550000 ++----------------------------------------------------------------+
   500000 *+..*..*..        *...*..    *...  ..*..*..    .*..*...*..    *...*
          |         .     ..       . ..    *.        . ..           . ..    |
   450000 ++         *...*          *                 *              *      |
   400000 ++                                                                |
   350000 ++                                                                |
   300000 ++                                                                |
          |                                                                 |
   250000 ++                                                                |
   200000 ++                                                                |
   150000 ++                                                                |
   100000 ++                                                                |
          |                                                                 |
    50000 O+  O  O   O   O  O   O   O  O   O   O  O   O   O  O              |
        0 ++----------------------------------------------------------------+


                          lock_stat.slock-AF_INET.contentions

   150000 ++----------------------------------------------------------------+
          |                 *...         ..*...                             |
   140000 ++               +    *      *.      *                            |
   130000 ++              +      :    :         :                           |
          |            ..*        :   :         :                       *...*
   120000 ++ .*..  ..*.           :  :         O :                    ..    |
   110000 ++.    *.                : :           :                  .*      |
          *                         *             :       *       ..        |
   100000 ++                                      *.     + :     *          |
    90000 ++                                        ..  +   :  ..           |
          |                                            +    : .             |
    80000 ++                           O              *      *              |
    70000 O+         O   O      O                     O                     |
          |   O             O       O             O          O              |
    60000 ++-----O-------------------------O--------------O-----------------+


                 lock_stat.slock-AF_INET.contentions.lock_sock_nested

   130000 ++----------------------------------------------------------------+
          |                                                                 |
   120000 ++                *...         ..*...*                            |
   110000 ++               +    *      *.       :                           |
          |               +      +    :        O:                       *...*
   100000 ++ .*..   .*...*        +   :          :                    ..    |
          |..     ..               + :           :                  .*      |
    90000 *+     *                  *             :       *       ..        |
          |                                       *.     + :     *          |
    80000 ++                                        ..  +   :  ..           |
    70000 ++                                           +    : .             |
          |              O      O      O              *      *              |
    60000 O+         O                            O   O                     |
          |   O  O          O       O      O              O  O              |
    50000 ++----------------------------------------------------------------+


                    lock_stat.slock-AF_INET.contentions.tcp_v4_rcv

   150000 ++----------------------------------------------------------------+
          |                 *...                                            |
   140000 ++               +    *      *...*...*                            |
   130000 ++              +      :    :         :                           |
          |            ..*        :   :         :                       *...*
   120000 ++ .*..  ..*.           :  :         O :                    ..    |
   110000 ++.    *.                : :           :                  .*      |
          *                         *             :               ..        |
   100000 ++                                      *.      *      *          |
    90000 ++                                        ..  .. +   ..           |
          |                                            .    + .             |
    80000 ++                           O              *      *              |
    70000 ++         O   O      O                     O                     |
          O   O             O       O             O          O              |
    60000 ++-----O-------------------------O--------------O-----------------+


                        lock_stat.slock-AF_INET/1.contentions

   50000 ++-----------------------------------------------------------------+
         |                  *..                                           ..*
   45000 ++                +           *...*..                          *.  |
   40000 ++               +    *.     +       *..                     ..    |
         |  .*..         +       ..  +           .                 ..*      |
   35000 ++.    *...  ..*           +             *      *.      *.         |
         *          *.             *               :    :  ..  ..           |
   30000 ++                                         :   :     .             |
         |                                          :  :     *              |
   25000 ++                                          : :                    |
   20000 ++                                           *                     |
         |                                    O                             |
   15000 ++                            O              O                     |
         O   O  O   O   O   O  O   O       O      O      O   O              |
   10000 ++-----------------------------------------------------------------+


                  lock_stat.slock-AF_INET/1.contentions.tcp_v4_rcv

   50000 ++-----------------------------------------------------------------+
         |                  *..                                           ..*
   45000 ++                +           *...*..                          *.  |
   40000 ++               +    *.     +       *..                     ..    |
         |  .*..         +       ..  +           .                 ..*      |
   35000 ++.    *...  ..*           +             *      *.      *.         |
         *          *.             *               :    :  ..  ..           |
   30000 ++                                         :   :     .             |
         |                                          :  :     *              |
   25000 ++                                          : :                    |
   20000 ++                                           *                     |
         |                                    O                             |
   15000 ++                            O              O                     |
         O   O  O   O   O   O  O   O       O      O      O   O              |
   10000 ++-----------------------------------------------------------------+


                 lock_stat.slock-AF_INET/1.contentions.release_sock

   35000 ++-----------------------------------------------------------------*
         |                  *..                                         *.  |
   30000 ++                +           *...*..*.                      ..    |
         |                +    *..   ..         ..                 ..*      |
         |  .*..         +        . .                    *.      *.         |
   25000 ++.    *...*...*          *              *     :  ..  ..           |
         *                                         +    :     .             |
   20000 ++                                         +  :     *              |
         |                                           + :                    |
   15000 ++                                           *                     |
         |                                                                  |
         |                                    O                             |
   10000 O+         O   O      O       O          O   O                     |
         |   O  O           O      O       O             O   O              |
    5000 ++-----------------------------------------------------------------+


                           lock_stat.&rq->lock.contentions

   45000 ++-----------------------------------------------------------------+
         |                 .*..        *...                                 |
   40000 ++              ..    *..   ..    *..                              |
   35000 ++ .*..      ..*         . .         *.                       .*...*
         |..    *...*.             *            ..                  .*.     |
   30000 *+                                                       ..        |
   25000 ++                                       *..    *...  ..*          |
         |                                           . ..    *.             |
   20000 ++                                           *                     |
   15000 ++                                                                 |
         |                                                                  |
   10000 ++                                                                 |
    5000 O+  O  O   O   O   O  O   O   O   O  O   O   O      O              |
         |                                               O                  |
       0 ++-----------------------------------------------------------------+


                   lock_stat.&rq->lock.contentions.try_to_wake_up

   35000 ++-----------------------------------------------------------------+
         |                                                                  |
   30000 ++                .*..            *..                              |
         |   *           ..    *..        :                                 |
   25000 ++.. :         *         .       :   *.                        *   |
         |.   :        :           *.    :      ..                      ::  |
   20000 *+    :       :             .. :                       .*     :  : |
         |     :      :                 :         *...        ..  +    :  : |
   15000 ++     :    :                 *              *      *     +  :    :|
         |      *... :                                 +   ..       + :     *
   10000 ++         *                                   + .          *      |
         |                                               *                  |
    5000 ++                                   O                             |
         O   O  O   O   O   O  O       O   O          O  O   O              |
       0 ++------------------------O--------------O-------------------------+


                     lock_stat.&rq->lock.contentions.__schedule

   35000 ++-----------------------------------------------------------------+
         |                                                                  |
   30000 ++                 *..                                             |
         |                ..              .*..                              |
   25000 ++ .*           .     *...     ..                              *.  |
         |..  +        .*          *...*      *                        :  ..|
   20000 *+    +     ..                        +                       :    |
         |      *...*                           +              ..*... :     *
   15000 ++                                      +         ..*.      *      |
         |                                        *...*..*.                 |
   10000 ++                                                                 |
         |                                                                  |
    5000 ++                    O                                            |
         O   O  O   O   O   O      O   O   O  O   O   O  O   O              |
       0 ++-----------------------------------------------------------------+


             lock_stat.&(&base->lock)->rlock.contentions.lock_timer_base

   18000 ++----------------------------*------------------------------------+
         |                ..*..       +    *..                         .*...*
   16000 ++           ..*.     *..   +        *...                  .*.     |
   14000 ++ .*..*...*.            . +             *      *.       ..        |
         |..                       *               +    :  ..   .*          |
   12000 *+                                         +   :     ..            |
   10000 ++                                          + :     *              |
         |                                            *                     |
    8000 ++                                                                 |
    6000 ++                                                                 |
         |                                                                  |
    4000 ++                                                                 |
    2000 ++                    O                                            |
         O   O  O   O   O   O      O   O   O  O   O   O  O   O              |
       0 ++-----------------------------------------------------------------+


                     lock_stat.&(&n->list_lock)->rlock.contentions

   140000 ++----------------------------------------------------------------+
          |                                       O                         |
   120000 O+  O  O   O   O  O   O                     O                     |
          |                         O  O   O   O          O  O              |
   100000 ++                                                                |
          |                                                                 |
    80000 ++                                                                |
          |                                                                 |
    60000 ++                                                                |
          |                                                                 |
    40000 ++                                                                |
          |                                                                 |
    20000 ++                                                                |
          |                                                                 |
        0 *+--*--*---*---*--*---*---*--*---*---*--*---*---*--*---*---*--*---*


            lock_stat.&(&n->list_lock)->rlock.contentions.get_partial_node

   250000 ++----------------------------------------------------------------+
          |                                                                 |
          O                                       O                         |
   200000 ++  O  O   O   O  O   O   O  O   O   O      O      O              |
          |                                               O                 |
          |                                                                 |
   150000 ++                                                                |
          |                                                                 |
   100000 ++                                                                |
          |                                                                 |
          |                                                                 |
    50000 ++                                                                |
          |                                                                 |
          |                                                                 |
        0 *+--*--*---*---*--*---*---*--*---*---*--*---*---*--*---*---*--*---*


           lock_stat.&(&n->list_lock)->rlock.contentions.unfreeze_partials

   45000 ++-----------------------------------------------------------------+
         O                                        O                         |
   40000 ++         O   O   O                         O                     |
   35000 ++  O  O              O   O       O  O          O   O              |
         |                             O                                    |
   30000 ++                                                                 |
   25000 ++                                                                 |
         |                                                                  |
   20000 ++                                                                 |
   15000 ++                                                                 |
         |                                                                  |
   10000 ++                                                                 |
    5000 ++                                                                 |
         |                                                                  |
       0 *+--*--*---*---*---*--*---*---*---*--*---*---*--*---*---*---*--*---*


                                  iostat.cpu.user

   1.8 ++-------------------------------------------------------------------+
       *...*...*.         *...*.      *...*..                               |
   1.6 ++        ..     ..      ..  ..       *...*..    .*...*...*      *...*
       |               .           .                . ..          +   ..    |
       |           *..*           *                  *             + .      |
   1.4 ++                                                           *       |
       |                                                                    |
   1.2 ++                                                                   |
       |                                                                    |
     1 ++                                                                   |
       |                                                                    |
       |                                                                    |
   0.8 ++                         O       O      O   O                      |
       O   O   O   O  O   O   O       O      O           O   O              |
   0.6 ++-------------------------------------------------------------------+


                                  iostat.cpu.system

   96.6 ++------------------------------------------------------------------+
        |   O          O              O   O       O  O   O                  |
   96.4 O+      O  O       O   O  O                          O              |
        |                                                                   |
        |                                                                   |
   96.2 ++                                                                  |
        |                                                                   |
     96 ++                                                                  |
        |                                                                   |
   95.8 ++                                    O                             |
        |            ..*.         *.                 *..            *..     |
        |          *.    ..      +  ..             ..   .         ..   .  ..*
   95.6 ++       ..             +           ..*...*      *...  ..*      *.  |
        |     ..*          *...*      *...*.                 *.             |
   95.4 *+--*---------------------------------------------------------------+


             reply	other threads:[~2013-10-22 21:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-22 21:41 fengguang.wu [this message]
2013-10-22 22:00 ` -27% netperf TCP_STREAM regression by "tcp_memcontrol: Kill struct tcp_memcontrol" David Miller
2013-10-23  4:38   ` Eric W. Biederman
2013-10-23  6:10     ` Fengguang Wu
2013-10-23  9:43       ` Eric W. Biederman
2013-10-23 11:46         ` Fengguang Wu
2013-10-23 12:25     ` Christoph Paasch
2013-10-23 13:02       ` Eric Dumazet
2013-10-23 19:55         ` [PATCH] Fix: Dereference pointer-value of sk_prot->memory_pressure Eric W. Biederman
2013-10-23 20:15           ` David Miller
2013-10-23 19:58         ` Eric W. Biederman
2013-10-23 22:07       ` -27% netperf TCP_STREAM regression by "tcp_memcontrol: Kill struct tcp_memcontrol" Fengguang Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131022214129.GB2715@localhost \
    --to=fengguang.wu@intel.com \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.