Messages in this thread | | | Date | Mon, 14 Jan 2008 20:33:24 +0100 | From | Eric Dumazet <> | Subject | Re: questions on NAPI processing latency and dropped network packets |
| |
Chris Friesen a écrit : > Eric Dumazet wrote: >> Chris Friesen a écrit : > >>> Based on profiling and instrumentation it seems like the cost of >>> sctp_endpoint_lookup_assoc() more than triples, which means that the >>> amount of time that bottom halves are disabled in that function also >>> triples. >> >> Any idea of the size of sctp hash size you have ? >> (your dmesg probably includes a message starting with SCTP: Hash >> tables configured... >> How many concurrent sctp sockets are handled ? > > Our lab is currently rebooting, but I'll try and get this once it's > back up. > >> Maybe sctp_assoc_hashfn() is too weak for your use, and some chains >> are *really* long. > > Based on the profiling information we're spending time in > sctp_endpoint_lookup_assoc() which doesn't actually use hashes, so I > can't see how the hash would be related. I'm pretty new to SCTP > though, so I may be missing something. Well, it does use hashes :)
hash = sctp_assoc_hashfn(ep->base.bind_addr.port, rport); head = &sctp_assoc_hashtable[hash]; read_lock(&head->lock); sctp_for_each_hentry(epb, node, &head->chain) { /* maybe your machine is traversing here a *really* long chain */ }
> > Here's the top results from readprofile, unfortunately these are > aggregated across both cpus so they don't really show what's going on. > The key thing is that sctp_endpoint_lookup_assoc() is the most > expensive kernel routine on this entire system. > > 3147 .power4_idle 22.4786 > 1712 .native_idle 20.3810 > 1234 .sctp_endpoint_lookup_assoc 2.1725
> 1212 ._spin_unlock_irqrestore 6.4468 > 778 .do_futex 0.3791 > 447 ._spin_unlock_irq 4.2981 > 313 .fget 1.7784 > 277 .fput 3.8472 > 275 .kfree 0.7473 > 234 .__kmalloc 0.5571 > 131 SystemCall_common 0.3411 > 130 .sctp_assoc_is_match 0.6373 > 123 .lock_sock 0.4155 > 119 .find_vma 0.6919 > 116 .kmem_cache_alloc 0.3580 > 111 .kmem_cache_free 0.3343 > 106 .skb_release_data 0.4907 > 102 .__copy_tofrom_user 0.0724 > 100 .exit_elf_binfmt 1.9231 > 100 .do_select 0.0820 > > > Chris > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > >
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |