On Wed, Apr 24, 2013 at 8:26 AM, J. Bruce Fields <bfie...@fieldses.org> wrote: > On Wed, Apr 24, 2013 at 11:05:40AM -0400, J. Bruce Fields wrote: >> On Wed, Apr 24, 2013 at 12:35:03PM +0000, Yan Burman wrote: >> > >> > >> > >> > Perf top for the CPU with high tasklet count gives: >> > >> > samples pcnt RIP function >> > DSO >> > _______ _____ ________________ ___________________________ >> > ___________________________________________________________________ >> > >> > 2787.00 24.1% ffffffff81062a00 mutex_spin_on_owner >> > /root/vmlinux >> >> I guess that means lots of contention on some mutex? If only we knew >> which one.... perf should also be able to collect stack statistics, I >> forget how. > > Googling around.... I think we want: > > perf record -a --call-graph > (give it a chance to collect some samples, then ^C) > perf report --call-graph --stdio >
I have not looked at NFS RDMA (and 3.x kernel) source yet. But see that "rb_prev" up in the #7 spot ? Do we have Red Black tree somewhere in the paths ? Trees like that requires extensive lockings. -- Wendy . >> >> > 978.00 8.4% ffffffff810297f0 clflush_cache_range >> > /root/vmlinux >> > 445.00 3.8% ffffffff812ea440 __domain_mapping >> > /root/vmlinux >> > 441.00 3.8% 0000000000018c30 svc_recv >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/sunrpc.ko >> > 344.00 3.0% ffffffff813a1bc0 _raw_spin_lock_bh >> > /root/vmlinux >> > 333.00 2.9% ffffffff813a19e0 _raw_spin_lock_irqsave >> > /root/vmlinux >> > 288.00 2.5% ffffffff813a07d0 __schedule >> > /root/vmlinux >> > 249.00 2.1% ffffffff811a87e0 rb_prev >> > /root/vmlinux >> > 242.00 2.1% ffffffff813a19b0 _raw_spin_lock >> > /root/vmlinux >> > 184.00 1.6% 0000000000002e90 svc_rdma_sendto >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/xprtrdma/svcrdma.ko >> > 177.00 1.5% ffffffff810ac820 get_page_from_freelist >> > /root/vmlinux >> > 174.00 1.5% ffffffff812e6da0 alloc_iova >> > /root/vmlinux >> > 165.00 1.4% ffffffff810b1390 put_page >> > /root/vmlinux >> > 148.00 1.3% 0000000000014760 sunrpc_cache_lookup >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/sunrpc.ko >> > 128.00 1.1% 0000000000017f20 svc_xprt_enqueue >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/sunrpc.ko >> > 126.00 1.1% ffffffff8139f820 __mutex_lock_slowpath >> > /root/vmlinux >> > 108.00 0.9% ffffffff811a81d0 rb_insert_color >> > /root/vmlinux >> > 107.00 0.9% 0000000000004690 svc_rdma_recvfrom >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/xprtrdma/svcrdma.ko >> > 102.00 0.9% 0000000000002640 send_reply >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/xprtrdma/svcrdma.ko >> > 99.00 0.9% ffffffff810e6490 kmem_cache_alloc >> > /root/vmlinux >> > 96.00 0.8% ffffffff810e5840 __slab_alloc >> > /root/vmlinux >> > 91.00 0.8% 0000000000006d30 mlx4_ib_post_send >> > /lib/modules/3.5.7-dbg/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko >> > 88.00 0.8% 0000000000000dd0 svc_rdma_get_context >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/xprtrdma/svcrdma.ko >> > 86.00 0.7% ffffffff813a1a10 _raw_spin_lock_irq >> > /root/vmlinux >> > 86.00 0.7% 0000000000001530 svc_rdma_send >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/xprtrdma/svcrdma.ko >> > 85.00 0.7% ffffffff81060a80 prepare_creds >> > /root/vmlinux >> > 83.00 0.7% ffffffff810a5790 find_get_pages_contig >> > /root/vmlinux >> > 79.00 0.7% ffffffff810e4620 __slab_free >> > /root/vmlinux >> > 79.00 0.7% ffffffff813a1a40 _raw_spin_unlock_irqrestore >> > /root/vmlinux >> > 77.00 0.7% ffffffff81065610 finish_task_switch >> > /root/vmlinux >> > 76.00 0.7% ffffffff812e9270 pfn_to_dma_pte >> > /root/vmlinux >> > 75.00 0.6% ffffffff810976d0 __call_rcu >> > /root/vmlinux >> > 73.00 0.6% ffffffff811a2fa0 _atomic_dec_and_lock >> > /root/vmlinux >> > 73.00 0.6% 00000000000002e0 svc_rdma_has_wspace >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/xprtrdma/svcrdma.ko >> > 67.00 0.6% ffffffff813a1a70 _raw_read_lock >> > /root/vmlinux >> > 65.00 0.6% 000000000000f590 svcauth_unix_set_client >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/sunrpc.ko >> > 63.00 0.5% 00000000000180e0 svc_reserve >> > /lib/modules/3.5.7-dbg/kernel/net/sunrpc/sunrpc.ko >> > 60.00 0.5% 00000000000064d0 stamp_send_wqe >> > /lib/modules/3.5.7-dbg/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko >> > 57.00 0.5% ffffffff810ac110 free_hot_cold_page >> > /root/vmlinux >> > 57.00 0.5% ffffffff811ae540 memcpy >> > /root/vmlinux >> > 56.00 0.5% ffffffff810ad1a0 __alloc_pages_nodemask >> > /root/vmlinux >> > 55.00 0.5% ffffffff81118200 splice_to_pipe >> > /root/vmlinux >> > 53.00 0.5% ffffffff810e3bc0 get_partial_node >> > /root/vmlinux >> > 49.00 0.4% ffffffff812eb840 __intel_map_single >> > /root/vmlinux >> > >> > >> > > --b. >> > > >> > > > CPU0 CPU1 CPU2 CPU3 CPU4 >> > > > CPU5 CPU6 >> > > CPU7 CPU8 CPU9 CPU10 CPU11 CPU12 CPU13 >> > > CPU14 >> > > CPU15 >> > > > HI: 0 0 0 0 0 >> > > > 0 0 0 0 >> > > 0 0 0 0 0 0 0 >> > > > TIMER: 418767 46596 43515 44547 50099 >> > > > 34815 >> > > 40634 40337 39551 93442 73733 42631 42509 >> > > 41592 >> > > 40351 61793 >> > > > NET_TX: 28719 309 1421 1294 1730 >> > > > 1243 832 >> > > 937 11 44 41 20 26 19 >> > > 15 29 >> > > > NET_RX: 612070 19 22 21 6 >> > > > 235 3 2 >> > > 9 6 17 16 20 13 16 >> > > 10 >> > > > BLOCK: 5941 0 0 0 0 >> > > > 0 0 0 >> > > 519 259 1238 272 253 174 215 >> > > 2618 >> > > > BLOCK_IOPOLL: 0 0 0 0 0 >> > > > 0 0 0 >> > > 0 0 0 0 0 0 0 >> > > 0 >> > > > TASKLET: 28 1 1 1 1 >> > > > 1540653 1 1 >> > > 29 1 1 1 1 1 1 >> > > 2 >> > > > SCHED: 364965 26547 16807 18403 22919 >> > > > 8678 >> > > 14358 14091 16981 64903 47141 18517 19179 >> > > 18036 >> > > 17037 38261 >> > > > HRTIMER: 13 0 1 1 0 >> > > > 0 0 0 >> > > 0 0 0 0 1 1 0 >> > > 1 >> > > > RCU: 945823 841546 715281 892762 823564 >> > > > 42663 >> > > 863063 841622 333577 389013 393501 239103 221524 >> > > 258159 >> > > 313426 234030 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html