netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Simon Kirby <sim@netnation.com>
To: "David S. Miller" <davem@redhat.com>
Cc: netdev@oss.sgi.com, linux-net@vger.kernel.org, kuznet@ms2.inr.ac.ru
Subject: Re: Route cache performance under stress
Date: Thu, 29 May 2003 13:51:25 -0700	[thread overview]
Message-ID: <20030529205125.GA30058@netnation.com> (raw)
In-Reply-To: <20030522.153330.74735095.davem@redhat.com>

On Thu, May 22, 2003 at 03:33:30PM -0700, David S. Miller wrote:

>    If you'd like I can try to regenerate a profile, but you probably
>    already know what it will look like.
> 
> I obviously know some things that will change, but I am still
> very much interested in new profiles.

Sorry for the delay -- I was away for a few days.  Here are profile
results from the same machine (still with XT-PIC), the same 300000 route
entries, and your original patch that fixes the hashing.  I should also
mention that in all of these tests I have one filter rule in the INPUT
chain (after routing) to avoid sending back zillions of ICMP packets out
to the spoofed source IPs.

...
    27 check_pgt_cache                            0.8438
  1430 ip_rcv_finish                              2.4870
   135 ipv4_dst_destroy                           2.8125
   357 cpu_idle                                   3.1875
  7714 ip_route_input_slow                        3.3481
   434 fib_rules_policy                           3.8750
  2952 ip_rcv                                     5.2714
    85 kmem_cache_alloc                           5.3125
  2188 netif_receive_skb                          5.4700
  2734 alloc_skb                                  5.6958
   822 skb_release_data                           5.7083
  2161 __kfree_skb                                5.8723
   572 ip_local_deliver                           5.9583
  1023 __constant_c_and_count_memset              6.3937
  3801 fib_validate_source                        6.7875
  6778 rt_garbage_collect                         7.1801
   497 __fib_res_prefsrc                          7.7656
  3035 inet_select_addr                           8.2473
  2717 tcp_match                                  8.4906
   552 ipt_hook                                   8.6250
   706 kmalloc                                    8.8250
  1561 kfree                                      8.8693
  1287 jhash_3words                               8.9375
  5937 nf_hook_slow                              10.9136
  2532 fib_semantic_match                        12.1731
  2356 eth_type_trans                            12.2708
  2166 nf_iterate                                12.3068
  4446 net_rx_action                             12.6307
  1622 kfree_skbmem                              12.6719
   842 rt_hash_code                              13.1562
 16030 ipt_do_table                              14.5199
  2104 tg3_recycle_rx                            14.6111
 13795 tg3_rx                                    14.6133
  5667 __kmem_cache_alloc                        17.7094
  1193 ipt_route_hook                            18.6406
  2851 do_gettimeofday                           19.7986
  7423 fib_lookup                                23.1969
  1497 fib_rule_put                              23.3906
  8803 ip_packet_match                           26.1994
  4970 dst_destroy                               28.2386
 22479 rt_intern_hash                            29.2695
  8804 kmem_cache_free                           55.0250
  8380 dst_alloc                                 58.1944
 18252 fn_hash_lookup                            63.3750
 25473 tg3_interrupt                             75.8125
 24036 do_softirq                               100.1500
 51355 ip_route_input                           118.8773
 57304 tg3_poll                                 188.5000
111691 handle_IRQ_event                         698.0688
168828 default_idle                             2637.9375

Full profile output available here:

	http://blue.netnation.com/sim/ref/
	readprofile.full_route_table_hash_fixed.*

Note that if I increase the packet rate and NAPI kicks in, all of the
handle_IRQ and similar overhead basically disappears because it no longer
uses IRQs.  Pretty spiffy.  Here is a profile of that:

...
    25 tasklet_hi_action                          0.1562
    46 timer_bh                                   0.2054
    97 net_rx_action                              0.2756
    93 tg3_vlan_rx                                0.3875
   158 tg3_poll                                   0.5197
  1630 ip_rcv_finish                              2.8348
   142 ipv4_dst_destroy                           2.9583
   429 fib_rules_policy                           3.8304
  8959 ip_route_input_slow                        3.8885
  2438 ip_rcv                                     4.3536
  2504 alloc_skb                                  5.2167
  1991 __kfree_skb                                5.4103
  2279 netif_receive_skb                          5.6975
   929 skb_release_data                           6.4514
   669 ip_local_deliver                           6.9688
  1175 __constant_c_and_count_memset              7.3438
  2367 tcp_match                                  7.3969
   124 kmem_cache_alloc                           7.7500
  4535 fib_validate_source                        8.0982
   598 __fib_res_prefsrc                          9.3438
  8896 rt_garbage_collect                         9.4237
  3582 inet_select_addr                           9.7337
  1747 kfree                                      9.9261
   717 ipt_hook                                  11.2031
   938 kmalloc                                   11.7250
  1747 jhash_3words                              12.1319
  6879 nf_hook_slow                              12.6452
  2439 eth_type_trans                            12.7031
  1695 kfree_skbmem                              13.2422
  2358 nf_iterate                                13.3977
   872 rt_hash_code                              13.6250
  2933 fib_semantic_match                        14.1010
 16553 ipt_do_table                              14.9937
 15339 tg3_rx                                    16.2489
  2482 tg3_recycle_rx                            17.2361
  5967 __kmem_cache_alloc                        18.6469
  1237 ipt_route_hook                            19.3281
  3120 do_gettimeofday                           21.6667
  8299 ip_packet_match                           24.6994
  8031 fib_lookup                                25.0969
  1877 fib_rule_put                              29.3281
  6088 dst_destroy                               34.5909
 26833 rt_intern_hash                            34.9388
 10666 kmem_cache_free                           66.6625
 20193 fn_hash_lookup                            70.1146
 10516 dst_alloc                                 73.0278
 64803 ip_route_input                           150.0069

Full profile output available as:

	readprofile.full_route_table_hash_fixed_napi.*

Hmm.. I see there is some redundant hashing going on in
ip_route_input_slow() (called only from ip_route_input() which already
calculates the hash), but my patch to fix that adds yet another argument
to ip_route_slow() which isn't that pretty.  It looks like that function
isn't using much CPU anyway.

Why is ip_route_input() so heavy still?  This kernel is compiled
CONFIG_SMP which makes the read_lock() calls actually do something, but
it looks like they should be fairly light.  Should I add an iteration
counter to the for loop, perhaps?

Simon-

  reply	other threads:[~2003-05-29 20:51 UTC|newest]

Thread overview: 217+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87d6iit4g7.fsf@deneb.enyo.de>
     [not found] ` <20030517.150933.74723581.davem@redhat.com>
     [not found]   ` <87iss87gqd.fsf@deneb.enyo.de>
2003-05-18  9:31     ` Route cache performance under stress David S. Miller
2003-05-19 17:36       ` Jamal Hadi
2003-05-19 19:18         ` Ralph Doncaster
2003-05-19 22:37           ` Jamal Hadi
2003-05-20  1:10             ` Simon Kirby
2003-05-20  1:14               ` David S. Miller
2003-05-20  1:23                 ` Jamal Hadi
2003-05-20  1:24                   ` David S. Miller
2003-05-20  2:13                     ` Jamal Hadi
2003-05-20  5:01                       ` Pekka Savola
2003-05-20 11:47                         ` Jamal Hadi
2003-05-20 11:55                           ` Pekka Savola
2003-05-20  6:46                       ` David S. Miller
2003-05-20 12:04                         ` Jamal Hadi
2003-05-21  0:36                           ` David S. Miller
2003-05-21 13:03                             ` Jamal Hadi
2003-05-23  5:42                               ` David S. Miller
2003-05-22  8:40                             ` Simon Kirby
2003-05-22  8:58                               ` David S. Miller
2003-05-22 10:40                                 ` David S. Miller
2003-05-22 11:15                                   ` Martin Josefsson
2003-05-23  1:00                                     ` David S. Miller
2003-05-23  1:01                                     ` David S. Miller
2003-05-23  8:21                                       ` Andi Kleen
2003-05-23  8:22                                         ` David S. Miller
2003-05-23  9:03                                           ` Andi Kleen
2003-05-23  9:59                                             ` David S. Miller
2003-05-24  0:41                                     ` Andrew Morton
2003-05-26  2:29                                       ` David S. Miller
2003-05-22 11:44                                   ` Simon Kirby
2003-05-22 13:03                                     ` Martin Josefsson
2003-05-23  0:55                                       ` David S. Miller
2003-05-22 22:33                                     ` David S. Miller
2003-05-29 20:51                                       ` Simon Kirby [this message]
2003-06-02 10:58                                         ` Robert Olsson
2003-06-02 15:18                                           ` Simon Kirby
2003-06-02 16:36                                             ` Robert Olsson
2003-06-02 18:05                                               ` Simon Kirby
2003-06-09 17:21                                               ` David S. Miller
2003-06-09 17:19                                           ` David S. Miller
2003-05-23  0:59                                     ` David S. Miller
2003-05-26  7:18                   ` Florian Weimer
2003-05-26  7:29                     ` David S. Miller
2003-05-26  9:34                       ` Florian Weimer
2003-05-27  6:32                         ` David S. Miller
2003-06-08 11:39                           ` Florian Weimer
2003-06-08 12:05                             ` David S. Miller
2003-06-08 13:10                               ` Florian Weimer
2003-06-08 23:49                                 ` Simon Kirby
2003-06-08 23:55                                   ` CIT/Paul
2003-06-09  3:15                                     ` Jamal Hadi
2003-06-09  5:27                                       ` CIT/Paul
2003-06-09  5:58                                         ` David S. Miller
2003-06-09  6:28                                           ` CIT/Paul
2003-06-09  6:28                                             ` David S. Miller
2003-06-09 16:23                                               ` Stephen Hemminger
2003-06-09 16:37                                                 ` David S. Miller
2003-06-09  7:13                                             ` Simon Kirby
2003-06-09  8:10                                               ` CIT/Paul
2003-06-09  8:27                                                 ` Simon Kirby
2003-06-09 19:38                                                   ` CIT/Paul
2003-06-09 21:30                                                     ` David S. Miller
2003-06-09 22:19                                                     ` Simon Kirby
2003-06-09 22:54                                                       ` Robert Olsson
2003-06-13  6:21                                                         ` David S. Miller
2003-06-13 10:40                                                           ` Robert Olsson
2003-06-15  6:36                                                             ` David S. Miller
2003-06-17 17:03                                                             ` Robert Olsson
2003-06-09 22:56                                                       ` CIT/Paul
2003-06-09 23:05                                                         ` David S. Miller
2003-06-10 13:41                                                           ` Robert Olsson
2003-06-10  0:03                                                         ` Jamal Hadi
2003-06-10  0:32                                                           ` Ralph Doncaster
2003-06-10  1:15                                                             ` Jamal Hadi
2003-06-10  2:45                                                               ` Ralph Doncaster
2003-06-10  3:23                                                                 ` Ben Greear
2003-06-10  3:41                                                                   ` Ralph Doncaster
2003-06-10 18:10                                                                   ` Ralph Doncaster
2003-06-10 18:21                                                                     ` Ben Greear
2003-06-10  4:34                                                                 ` Simon Kirby
2003-06-10 11:01                                                                   ` Jamal Hadi
2003-06-10 11:28                                                                   ` Jamal Hadi
2003-06-10 13:18                                                                     ` Ralph Doncaster
2003-06-10 16:10                                                                   ` David S. Miller
2003-06-10 10:53                                                                 ` Jamal Hadi
2003-06-10 11:41                                                                   ` chas williams
2003-06-10 16:27                                                                     ` David S. Miller
2003-06-10 16:57                                                                       ` chas williams
2003-06-10 11:41                                                                   ` Pekka Savola
2003-06-10 11:58                                                                     ` John S. Denker
2003-06-10 12:12                                                                       ` Jamal Hadi
2003-06-10 16:33                                                                         ` David S. Miller
2003-06-10 12:07                                                                     ` Jamal Hadi
2003-06-10 15:29                                                                       ` Ralph Doncaster
2003-06-11 19:48                                                                         ` Florian Weimer
2003-06-11 19:40                                                                           ` CIT/Paul
2003-06-11 21:09                                                                           ` Florian Weimer
2003-06-10 13:10                                                                   ` Ralph Doncaster
2003-06-10 13:36                                                                     ` Jamal Hadi
2003-06-10 14:03                                                                       ` Ralph Doncaster
2003-06-10 16:38                                                                     ` David S. Miller
2003-06-10 16:39                                                                     ` David S. Miller
2003-06-10 18:41                                                                   ` Florian Weimer
2003-06-11 11:47                                                                     ` Was (Re: " Jamal Hadi
2003-06-11 18:41                                                                       ` Real World Routers 8-) Florian Weimer
2003-06-10 15:53                                                               ` Route cache performance under stress David S. Miller
2003-06-10 16:15                                                                 ` 3c59x (was Route cache performance under stress) Bogdan Costescu
2003-06-10 16:20                                                                   ` Andi Kleen
2003-06-10 16:23                                                                     ` Jeff Garzik
2003-06-10 17:02                                                                       ` 3c59x David S. Miller
2003-06-10 17:16                                                                         ` 3c59x Jeff Garzik
2003-06-10 17:14                                                                           ` 3c59x David S. Miller
2003-06-10 17:25                                                                             ` 3c59x Jeff Garzik
2003-06-10 17:30                                                                               ` 3c59x David S. Miller
2003-06-10 19:20                                                                                 ` 3c59x Jeff Garzik
2003-06-10 19:21                                                                                   ` 3c59x David S. Miller
2003-06-10 17:18                                                                           ` 3c59x Andi Kleen
2003-06-10 17:29                                                                           ` 3c59x chas williams
2003-06-10 17:31                                                                             ` 3c59x David S. Miller
2003-06-10 17:39                                                                               ` 3c59x chas williams
2003-06-10 17:43                                                                                 ` 3c59x David S. Miller
2003-06-11 17:52                                                               ` Route cache performance under stress Robert Olsson
2003-06-10  1:53                                                             ` Simon Kirby
2003-06-10  3:18                                                               ` Ralph Doncaster
2003-06-10 16:06                                                                 ` David S. Miller
2003-06-10 15:56                                                               ` David S. Miller
2003-06-10 16:45                                                                 ` 3c59x (was Route cache performance under stress) Bogdan Costescu
2003-06-10 16:49                                                                   ` Andi Kleen
2003-06-11  9:54                                                                     ` Robert Olsson
2003-06-11 10:05                                                                       ` Andi Kleen
2003-06-11 10:38                                                                         ` Robert Olsson
2003-06-11 12:08                                                                         ` Jamal Hadi
2003-06-10 17:12                                                                   ` 3c59x David S. Miller
2003-06-10 17:19                                                                 ` Route cache performance under stress Ralph Doncaster
2003-06-10 15:49                                                             ` David S. Miller
2003-06-10 17:33                                                               ` Ralph Doncaster
2003-06-10 17:32                                                                 ` David S. Miller
2003-06-10 18:34                                                                   ` Robert Olsson
2003-06-10 18:57                                                                     ` David S. Miller
2003-06-10 19:53                                                                       ` Robert Olsson
2003-06-10 21:36                                                                       ` CIT/Paul
2003-06-10 21:39                                                                       ` Ralph Doncaster
2003-06-10 22:20                                                                         ` David S. Miller
2003-06-10 23:58                                                                           ` Ralph Doncaster
2003-06-10 23:57                                                                             ` David S. Miller
2003-06-11  0:41                                                                               ` Ralph Doncaster
2003-06-11  0:58                                                                                 ` David S. Miller
2003-06-11  0:58                                                                                 ` David S. Miller
2003-06-11  0:51                                                                             ` Ben Greear
2003-06-11  1:01                                                                               ` David S. Miller
2003-06-11  1:15                                                                                 ` Ben Greear
2003-06-11  1:22                                                                                   ` David S. Miller
2003-06-11  1:51                                                                                     ` Ben Greear
2003-06-11  3:33                                                                                       ` David S. Miller
2003-06-11 11:54                                                                                         ` gettime: Was (Re: " Jamal Hadi
2003-06-11 12:08                                                                                           ` Andi Kleen
2003-06-12  3:30                                                                                             ` David S. Miller
2003-06-12  6:32                                                                                               ` Ben Greear
2003-06-12  8:46                                                                                                 ` David S. Miller
2003-06-11 15:57                                                                                           ` Ben Greear
2003-06-12  3:29                                                                                           ` David S. Miller
2003-06-11  1:17                                                                                 ` Ralph Doncaster
2003-06-11  1:23                                                                                   ` David S. Miller
2003-06-11  7:28                                                                                     ` Andi Kleen
2003-06-11  7:25                                                                                 ` Andi Kleen
2003-06-11 17:40                                                                       ` Robert Olsson
2003-06-13  5:38                                                                         ` David S. Miller
2003-06-13 10:22                                                                           ` Robert Olsson
2003-06-13 17:15                                                                           ` Robert Olsson
2003-06-12  6:45                                                                     ` David S. Miller
2003-06-12 13:56                                                                       ` Robert Olsson
2003-06-12 21:35                                                                         ` David S. Miller
2003-06-13 10:50                                                                           ` Robert Olsson
2003-06-10  0:56                                                       ` Ralph Doncaster
2003-06-09 11:38                                                 ` Jamal Hadi
2003-06-09 11:55                                                   ` David S. Miller
2003-06-09 12:18                                                     ` Jamal Hadi
2003-06-09 12:32                                                       ` David S. Miller
2003-06-09 13:22                                                         ` Jamal Hadi
2003-06-09 13:22                                                           ` David S. Miller
2003-06-09  8:56                                               ` David S. Miller
2003-06-09 22:39                                                 ` Robert Olsson
2003-06-09  6:25                                       ` David S. Miller
2003-06-09  6:59                                         ` Simon Kirby
2003-06-09  7:03                                           ` David S. Miller
2003-06-09 13:04                                       ` Ralph Doncaster
2003-06-09 13:26                                         ` Jamal Hadi
2003-06-09  5:44                                     ` David S. Miller
2003-06-09  5:51                                       ` CIT/Paul
2003-06-09  6:03                                         ` David S. Miller
2003-06-09  6:52                                           ` Simon Kirby
2003-06-09  6:56                                             ` David S. Miller
2003-06-09  7:36                                               ` Simon Kirby
2003-06-09  8:18                                               ` Simon Kirby
2003-06-09  8:22                                                 ` David S. Miller
2003-06-09  8:31                                                   ` Simon Kirby
2003-06-09  9:01                                                 ` David S. Miller
2003-06-09  9:47                                                   ` Andi Kleen
2003-06-09 10:03                                                     ` David S. Miller
2003-06-09 10:13                                                       ` Andi Kleen
2003-06-09 10:13                                                         ` David S. Miller
2003-06-09 10:40                                                           ` YOSHIFUJI Hideaki / 吉藤英明
2003-06-09 10:40                                                             ` David S. Miller
2003-06-09 14:14                                                 ` David S. Miller
2003-06-09  6:47                                     ` Simon Kirby
2003-06-09  6:49                                       ` David S. Miller
2003-06-09 13:28                                       ` Ralph Doncaster
2003-06-09 16:30                                         ` Simon Kirby
2003-06-17 20:58                                           ` Florian Weimer
2003-06-09  5:38                                   ` David S. Miller
2003-06-10  3:05                                 ` Steven Blake
2003-06-12  6:31                                   ` David S. Miller
2003-06-08 17:58                             ` Pekka Savola
2003-05-21  0:09                 ` Simon Kirby
2003-05-21  0:13                   ` David S. Miller
2003-05-26  9:29                     ` Florian Weimer
     [not found] <8765pshpd4.fsf@deneb.enyo.de>
2003-04-05 18:17 ` Martin Josefsson

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=20030529205125.GA30058@netnation.com \
    --to=sim@netnation.com \
    --cc=davem@redhat.com \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=linux-net@vger.kernel.org \
    --cc=netdev@oss.sgi.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).