All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <dada1@cosmosbay.com>
To: Christoph Lameter <cl@linux.com>
Cc: "Brandeburg, Jesse" <jesse.brandeburg@intel.com>,
	"David S. Miller" <davem@davemloft.net>,
	Linux Netdev List <netdev@vger.kernel.org>,
	Michael Chan <mchan@broadcom.com>,
	Ben Hutchings <bhutchings@solarflare.com>
Subject: Re: about latencies
Date: Fri, 24 Apr 2009 16:18:20 +0200	[thread overview]
Message-ID: <49F1CA2C.4080905@cosmosbay.com> (raw)
In-Reply-To: <alpine.DEB.1.10.0904240958070.20479@qirst.com>

Christoph Lameter a écrit :
> On Fri, 24 Apr 2009, Eric Dumazet wrote:
> 
>>> you're running a latency sensitive test on a NOHZ kernel below, isn't that
>>> a bad idea?
>> I tried worst case to match (eventually) Christoph data.
>> I usually am not using NOHZ, but what about linux distros ?
> 
> Why does NOHZ have an impact here? Timed wakeups can happen using
> high res timers after all and a timer interrupt should be generated if the
> network layer needs it.

I am not able to answer why it has an impact, but it is not cheap.

Compare function trace I sent yesterday, compared to this one without NOHZ
This one is far less noisy...

          <idle>-0     [000] 27907.377687: finish_task_switch <-__schedule
          <idle>-0     [000] 27907.377688: mwait_idle <-cpu_idle
          <idle>-0     [000] 27907.377735: do_IRQ <-common_interrupt
          <idle>-0     [000] 27907.377736: irq_enter <-do_IRQ
          <idle>-0     [000] 27907.377736: idle_cpu <-irq_enter
          <idle>-0     [000] 27907.377736: tick_check_idle <-irq_enter
          <idle>-0     [000] 27907.377736: tick_check_oneshot_broadcast <-tick_check_idle
          <idle>-0     [000] 27907.377736: handle_irq <-do_IRQ
          <idle>-0     [000] 27907.377737: irq_to_desc <-handle_irq
          <idle>-0     [000] 27907.377737: handle_edge_irq <-handle_irq
          <idle>-0     [000] 27907.377737: _spin_lock <-handle_edge_irq
          <idle>-0     [000] 27907.377737: ack_apic_edge <-handle_edge_irq
          <idle>-0     [000] 27907.377737: irq_to_desc <-ack_apic_edge
          <idle>-0     [000] 27907.377738: irq_complete_move <-ack_apic_edge
          <idle>-0     [000] 27907.377738: move_native_irq <-ack_apic_edge
          <idle>-0     [000] 27907.377738: irq_to_desc <-move_native_irq
          <idle>-0     [000] 27907.377738: native_apic_mem_write <-ack_apic_edge
          <idle>-0     [000] 27907.377738: handle_IRQ_event <-handle_edge_irq
          <idle>-0     [000] 27907.377739: bnx2_msi <-handle_IRQ_event
          <idle>-0     [000] 27907.377739: __napi_schedule <-bnx2_msi
          <idle>-0     [000] 27907.377739: note_interrupt <-handle_edge_irq
          <idle>-0     [000] 27907.377739: _spin_lock <-handle_edge_irq
          <idle>-0     [000] 27907.377740: irq_exit <-do_IRQ
          <idle>-0     [000] 27907.377740: do_softirq <-irq_exit
          <idle>-0     [000] 27907.377740: __do_softirq <-do_softirq
          <idle>-0     [000] 27907.377740: net_rx_action <-__do_softirq
          <idle>-0     [000] 27907.377740: bnx2_poll <-net_rx_action
          <idle>-0     [000] 27907.377741: bnx2_poll_work <-bnx2_poll
          <idle>-0     [000] 27907.377741: __netdev_alloc_skb <-bnx2_poll_work
          <idle>-0     [000] 27907.377741: __alloc_skb <-__netdev_alloc_skb
          <idle>-0     [000] 27907.377741: kmem_cache_alloc <-__alloc_skb
          <idle>-0     [000] 27907.377742: __kmalloc_track_caller <-__alloc_skb
          <idle>-0     [000] 27907.377742: get_slab <-__kmalloc_track_caller
          <idle>-0     [000] 27907.377742: skb_put <-bnx2_poll_work
          <idle>-0     [000] 27907.377742: eth_type_trans <-bnx2_poll_work
          <idle>-0     [000] 27907.377743: skb_pull <-eth_type_trans
          <idle>-0     [000] 27907.377743: __vlan_hwaccel_rx <-bnx2_poll_work
          <idle>-0     [000] 27907.377743: netif_receive_skb <-__vlan_hwaccel_rx
          <idle>-0     [000] 27907.377743: vlan_hwaccel_do_receive <-netif_receive_skb
          <idle>-0     [000] 27907.377743: netif_nit_deliver <-vlan_hwaccel_do_receive
          <idle>-0     [000] 27907.377744: ip_rcv <-netif_receive_skb
          <idle>-0     [000] 27907.377744: nf_hook_slow <-ip_rcv
          <idle>-0     [000] 27907.377744: nf_iterate <-nf_hook_slow
          <idle>-0     [000] 27907.377744: ip_rcv_finish <-ip_rcv
          <idle>-0     [000] 27907.377745: ip_route_input <-ip_rcv_finish
          <idle>-0     [000] 27907.377745: ip_local_deliver <-ip_rcv_finish
          <idle>-0     [000] 27907.377745: nf_hook_slow <-ip_local_deliver
          <idle>-0     [000] 27907.377745: nf_iterate <-nf_hook_slow
          <idle>-0     [000] 27907.377745: ipt_local_in_hook <-nf_iterate
          <idle>-0     [000] 27907.377746: ipt_do_table <-ipt_local_in_hook
          <idle>-0     [000] 27907.377746: local_bh_disable <-ipt_do_table
          <idle>-0     [000] 27907.377746: _read_lock <-ipt_do_table
          <idle>-0     [000] 27907.377746: _read_unlock_bh <-ipt_do_table
          <idle>-0     [000] 27907.377747: local_bh_enable_ip <-_read_unlock_bh
          <idle>-0     [000] 27907.377747: ip_local_deliver_finish <-ip_local_deliver
          <idle>-0     [000] 27907.377747: raw_local_deliver <-ip_local_deliver_finish
          <idle>-0     [000] 27907.377747: udp_rcv <-ip_local_deliver_finish
          <idle>-0     [000] 27907.377748: __udp4_lib_rcv <-udp_rcv
          <idle>-0     [000] 27907.377748: __udp4_lib_lookup <-__udp4_lib_rcv
          <idle>-0     [000] 27907.377748: udp_queue_rcv_skb <-__udp4_lib_rcv
          <idle>-0     [000] 27907.377748: _spin_lock <-udp_queue_rcv_skb
          <idle>-0     [000] 27907.377748: __udp_queue_rcv_skb <-udp_queue_rcv_skb
          <idle>-0     [000] 27907.377749: sock_queue_rcv_skb <-__udp_queue_rcv_skb
          <idle>-0     [000] 27907.377749: sk_filter <-sock_queue_rcv_skb
          <idle>-0     [000] 27907.377749: local_bh_disable <-sk_filter
          <idle>-0     [000] 27907.377749: local_bh_enable <-sk_filter
          <idle>-0     [000] 27907.377749: skb_queue_tail <-sock_queue_rcv_skb
          <idle>-0     [000] 27907.377750: _spin_lock_irqsave <-skb_queue_tail
          <idle>-0     [000] 27907.377750: _spin_unlock_irqrestore <-skb_queue_tail
          <idle>-0     [000] 27907.377750: sock_def_readable <-sock_queue_rcv_skb
          <idle>-0     [000] 27907.377750: _read_lock <-sock_def_readable
          <idle>-0     [000] 27907.377750: __wake_up_sync_key <-sock_def_readable
          <idle>-0     [000] 27907.377751: _spin_lock_irqsave <-__wake_up_sync_key
          <idle>-0     [000] 27907.377751: __wake_up_common <-__wake_up_sync_key
          <idle>-0     [000] 27907.377751: autoremove_wake_function <-__wake_up_common
          <idle>-0     [000] 27907.377751: default_wake_function <-autoremove_wake_function
          <idle>-0     [000] 27907.377751: try_to_wake_up <-default_wake_function
          <idle>-0     [000] 27907.377752: task_rq_lock <-try_to_wake_up
          <idle>-0     [000] 27907.377752: _spin_lock <-task_rq_lock
          <idle>-0     [000] 27907.377752: select_task_rq_fair <-try_to_wake_up
          <idle>-0     [000] 27907.377752: activate_task <-try_to_wake_up
          <idle>-0     [000] 27907.377753: enqueue_task <-activate_task
          <idle>-0     [000] 27907.377753: enqueue_task_fair <-enqueue_task
          <idle>-0     [000] 27907.377753: update_curr <-enqueue_task_fair
          <idle>-0     [000] 27907.377753: place_entity <-enqueue_task_fair
          <idle>-0     [000] 27907.377753: __enqueue_entity <-enqueue_task_fair
          <idle>-0     [000] 27907.377754: hrtick_update <-enqueue_task_fair
          <idle>-0     [000] 27907.377754: check_preempt_curr_idle <-try_to_wake_up
          <idle>-0     [000] 27907.377754: resched_task <-check_preempt_curr_idle
          <idle>-0     [000] 27907.377754: _spin_unlock_irqrestore <-try_to_wake_up
          <idle>-0     [000] 27907.377755: _spin_unlock_irqrestore <-__wake_up_sync_key
          <idle>-0     [000] 27907.377756: napi_complete <-bnx2_poll
          <idle>-0     [000] 27907.377756: napi_gro_flush <-napi_complete
          <idle>-0     [000] 27907.377756: __napi_complete <-napi_complete
          <idle>-0     [000] 27907.377756: rcu_bh_qsctr_inc <-__do_softirq
          <idle>-0     [000] 27907.377757: _local_bh_enable <-__do_softirq
          <idle>-0     [000] 27907.377757: schedule <-cpu_idle
          <idle>-0     [000] 27907.377757: __schedule <-schedule
          <idle>-0     [000] 27907.377757: rcu_qsctr_inc <-__schedule
          <idle>-0     [000] 27907.377758: _spin_lock_irq <-__schedule
          <idle>-0     [000] 27907.377758: put_prev_task_idle <-__schedule
          <idle>-0     [000] 27907.377758: pick_next_task_fair <-__schedule
          <idle>-0     [000] 27907.377758: __dequeue_entity <-pick_next_task_fair
         udpping-12642 [000] 27907.377759: finish_task_switch <-__schedule
         udpping-12642 [000] 27907.377759: finish_wait <-__skb_recv_datagram
         udpping-12642 [000] 27907.377759: _spin_lock_irqsave <-__skb_recv_datagram
         udpping-12642 [000] 27907.377760: _spin_unlock_irqrestore <-__skb_recv_datagram
         udpping-12642 [000] 27907.377760: skb_copy_datagram_iovec <-udp_recvmsg
         udpping-12642 [000] 27907.377760: memcpy_toiovec <-skb_copy_datagram_iovec
         udpping-12642 [000] 27907.377760: copy_to_user <-memcpy_toiovec
         udpping-12642 [000] 27907.377761: lock_sock_nested <-udp_recvmsg
         udpping-12642 [000] 27907.377761: _spin_lock_bh <-lock_sock_nested
         udpping-12642 [000] 27907.377761: local_bh_disable <-_spin_lock_bh
         udpping-12642 [000] 27907.377761: local_bh_enable <-lock_sock_nested
         udpping-12642 [000] 27907.377761: skb_free_datagram <-udp_recvmsg
         udpping-12642 [000] 27907.377762: consume_skb <-skb_free_datagram
         udpping-12642 [000] 27907.377762: __kfree_skb <-consume_skb
         udpping-12642 [000] 27907.377762: skb_release_head_state <-__kfree_skb
         udpping-12642 [000] 27907.377762: dst_release <-skb_release_head_state
         udpping-12642 [000] 27907.377762: sock_rfree <-skb_release_head_state
         udpping-12642 [000] 27907.377763: skb_release_data <-__kfree_skb
         udpping-12642 [000] 27907.377763: kfree <-skb_release_data
         udpping-12642 [000] 27907.377763: kmem_cache_free <-__kfree_skb
         udpping-12642 [000] 27907.377763: release_sock <-udp_recvmsg
         udpping-12642 [000] 27907.377764: _spin_lock_bh <-release_sock
         udpping-12642 [000] 27907.377764: local_bh_disable <-_spin_lock_bh
         udpping-12642 [000] 27907.377764: _spin_unlock_bh <-release_sock
         udpping-12642 [000] 27907.377764: local_bh_enable_ip <-_spin_unlock_bh
         udpping-12642 [000] 27907.377764: move_addr_to_user <-sys_recvfrom
         udpping-12642 [000] 27907.377765: copy_to_user <-move_addr_to_user
         udpping-12642 [000] 27907.377765: sys_socketcall <-sysenter_do_call
         udpping-12642 [000] 27907.377765: copy_from_user <-sys_socketcall
         udpping-12642 [000] 27907.377766: sys_sendto <-sys_socketcall
         udpping-12642 [000] 27907.377766: sockfd_lookup_light <-sys_sendto
         udpping-12642 [000] 27907.377766: fget_light <-sockfd_lookup_light
         udpping-12642 [000] 27907.377766: move_addr_to_kernel <-sys_sendto
         udpping-12642 [000] 27907.377766: copy_from_user <-move_addr_to_kernel
         udpping-12642 [000] 27907.377767: sock_sendmsg <-sys_sendto
         udpping-12642 [000] 27907.377767: inet_sendmsg <-sock_sendmsg
         udpping-12642 [000] 27907.377767: udp_sendmsg <-inet_sendmsg
         udpping-12642 [000] 27907.377767: sock_tx_timestamp <-udp_sendmsg
         udpping-12642 [000] 27907.377768: ip_route_output_flow <-udp_sendmsg
         udpping-12642 [000] 27907.377768: __ip_route_output_key <-ip_route_output_flow
         udpping-12642 [000] 27907.377768: local_bh_disable <-__ip_route_output_key
         udpping-12642 [000] 27907.377768: local_bh_enable <-__ip_route_output_key
         udpping-12642 [000] 27907.377769: __xfrm_lookup <-ip_route_output_flow
         udpping-12642 [000] 27907.377769: lock_sock_nested <-udp_sendmsg
         udpping-12642 [000] 27907.377769: _spin_lock_bh <-lock_sock_nested
         udpping-12642 [000] 27907.377769: local_bh_disable <-_spin_lock_bh
         udpping-12642 [000] 27907.377769: local_bh_enable <-lock_sock_nested
         udpping-12642 [000] 27907.377770: ip_append_data <-udp_sendmsg
         udpping-12642 [000] 27907.377770: sock_alloc_send_skb <-ip_append_data
         udpping-12642 [000] 27907.377770: sock_alloc_send_pskb <-sock_alloc_send_skb
         udpping-12642 [000] 27907.377770: __alloc_skb <-sock_alloc_send_pskb
         udpping-12642 [000] 27907.377771: kmem_cache_alloc <-__alloc_skb
         udpping-12642 [000] 27907.377771: __kmalloc_track_caller <-__alloc_skb
         udpping-12642 [000] 27907.377771: get_slab <-__kmalloc_track_caller
         udpping-12642 [000] 27907.377771: skb_put <-ip_append_data
         udpping-12642 [000] 27907.377772: ip_generic_getfrag <-ip_append_data
         udpping-12642 [000] 27907.377772: csum_partial_copy_fromiovecend <-ip_generic_getfrag
         udpping-12642 [000] 27907.377772: udp_push_pending_frames <-udp_sendmsg
         udpping-12642 [000] 27907.377772: ip_push_pending_frames <-udp_push_pending_frames
         udpping-12642 [000] 27907.377773: ip_local_out <-ip_push_pending_frames
         udpping-12642 [000] 27907.377773: __ip_local_out <-ip_local_out
         udpping-12642 [000] 27907.377773: nf_hook_slow <-__ip_local_out
         udpping-12642 [000] 27907.377773: nf_iterate <-nf_hook_slow
         udpping-12642 [000] 27907.377773: ipt_local_out_hook <-nf_iterate
         udpping-12642 [000] 27907.377774: ipt_do_table <-ipt_local_out_hook
         udpping-12642 [000] 27907.377774: local_bh_disable <-ipt_do_table
         udpping-12642 [000] 27907.377774: _read_lock <-ipt_do_table
         udpping-12642 [000] 27907.377774: _read_unlock_bh <-ipt_do_table
         udpping-12642 [000] 27907.377775: local_bh_enable_ip <-_read_unlock_bh
         udpping-12642 [000] 27907.377775: ip_output <-ip_local_out
         udpping-12642 [000] 27907.377775: nf_hook_slow <-ip_output
         udpping-12642 [000] 27907.377775: nf_iterate <-nf_hook_slow
         udpping-12642 [000] 27907.377775: ip_finish_output <-ip_output
         udpping-12642 [000] 27907.377776: skb_push <-ip_finish_output
         udpping-12642 [000] 27907.377776: dev_queue_xmit <-ip_finish_output
         udpping-12642 [000] 27907.377776: local_bh_disable <-dev_queue_xmit
         udpping-12642 [000] 27907.377776: _spin_lock <-dev_queue_xmit
         udpping-12642 [000] 27907.377777: pfifo_fast_enqueue <-dev_queue_xmit
         udpping-12642 [000] 27907.377777: __qdisc_run <-dev_queue_xmit
         udpping-12642 [000] 27907.377777: pfifo_fast_dequeue <-__qdisc_run
         udpping-12642 [000] 27907.377777: _spin_lock <-__qdisc_run
         udpping-12642 [000] 27907.377777: dev_hard_start_xmit <-__qdisc_run
         udpping-12642 [000] 27907.377778: vlan_dev_hwaccel_hard_start_xmit <-dev_hard_start_xmit
         udpping-12642 [000] 27907.377778: dev_queue_xmit <-vlan_dev_hwaccel_hard_start_xmit
         udpping-12642 [000] 27907.377778: local_bh_disable <-dev_queue_xmit
         udpping-12642 [000] 27907.377778: dev_hard_start_xmit <-dev_queue_xmit
         udpping-12642 [000] 27907.377778: bond_start_xmit <-dev_hard_start_xmit
         udpping-12642 [000] 27907.377779: _read_lock <-bond_start_xmit
         udpping-12642 [000] 27907.377779: _read_lock <-bond_start_xmit
         udpping-12642 [000] 27907.377779: bond_dev_queue_xmit <-bond_start_xmit
         udpping-12642 [000] 27907.377779: dev_queue_xmit <-bond_dev_queue_xmit
         udpping-12642 [000] 27907.377780: local_bh_disable <-dev_queue_xmit
         udpping-12642 [000] 27907.377780: _spin_lock <-dev_queue_xmit
         udpping-12642 [000] 27907.377780: pfifo_fast_enqueue <-dev_queue_xmit
         udpping-12642 [000] 27907.377780: __qdisc_run <-dev_queue_xmit
         udpping-12642 [000] 27907.377781: pfifo_fast_dequeue <-__qdisc_run
         udpping-12642 [000] 27907.377781: _spin_lock <-__qdisc_run
         udpping-12642 [000] 27907.377781: dev_hard_start_xmit <-__qdisc_run
         udpping-12642 [000] 27907.377782: bnx2_start_xmit <-dev_hard_start_xmit
         udpping-12642 [000] 27907.377782: skb_dma_map <-bnx2_start_xmit
         udpping-12642 [000] 27907.377782: nommu_map_page <-skb_dma_map
         udpping-12642 [000] 27907.377782: dst_release <-bnx2_start_xmit
         udpping-12642 [000] 27907.377782: sock_wfree <-bnx2_start_xmit
         udpping-12642 [000] 27907.377783: sock_def_write_space <-sock_wfree
         udpping-12642 [000] 27907.377783: _read_lock <-sock_def_write_space
         udpping-12642 [000] 27907.377783: _spin_lock <-__qdisc_run
         udpping-12642 [000] 27907.377784: local_bh_enable <-dev_queue_xmit
         udpping-12642 [000] 27907.377784: local_bh_enable <-dev_queue_xmit
         udpping-12642 [000] 27907.377784: _spin_lock <-__qdisc_run
         udpping-12642 [000] 27907.377784: local_bh_enable <-dev_queue_xmit
         udpping-12642 [000] 27907.377785: ip_cork_release <-ip_push_pending_frames
         udpping-12642 [000] 27907.377785: kfree <-ip_cork_release
         udpping-12642 [000] 27907.377785: dst_release <-ip_cork_release
         udpping-12642 [000] 27907.377785: release_sock <-udp_sendmsg
         udpping-12642 [000] 27907.377786: _spin_lock_bh <-release_sock
         udpping-12642 [000] 27907.377786: local_bh_disable <-_spin_lock_bh
         udpping-12642 [000] 27907.377786: _spin_unlock_bh <-release_sock
         udpping-12642 [000] 27907.377786: local_bh_enable_ip <-_spin_unlock_bh
         udpping-12642 [000] 27907.377787: sys_socketcall <-sysenter_do_call
         udpping-12642 [000] 27907.377787: copy_from_user <-sys_socketcall
         udpping-12642 [000] 27907.377787: sys_recvfrom <-sys_socketcall
         udpping-12642 [000] 27907.377787: sockfd_lookup_light <-sys_recvfrom
         udpping-12642 [000] 27907.377788: fget_light <-sockfd_lookup_light
         udpping-12642 [000] 27907.377788: sock_recvmsg <-sys_recvfrom
         udpping-12642 [000] 27907.377788: sock_common_recvmsg <-sock_recvmsg
         udpping-12642 [000] 27907.377788: udp_recvmsg <-sock_common_recvmsg
         udpping-12642 [000] 27907.377789: __skb_recv_datagram <-udp_recvmsg
         udpping-12642 [000] 27907.377789: _spin_lock_irqsave <-__skb_recv_datagram
         udpping-12642 [000] 27907.377789: _spin_unlock_irqrestore <-__skb_recv_datagram
         udpping-12642 [000] 27907.377789: prepare_to_wait_exclusive <-__skb_recv_datagram
         udpping-12642 [000] 27907.377789: _spin_lock_irqsave <-prepare_to_wait_exclusive
         udpping-12642 [000] 27907.377790: _spin_unlock_irqrestore <-prepare_to_wait_exclusive
         udpping-12642 [000] 27907.377790: do_IRQ <-common_interrupt
         udpping-12642 [000] 27907.377790: irq_enter <-do_IRQ
         udpping-12642 [000] 27907.377790: idle_cpu <-irq_enter
         udpping-12642 [000] 27907.377791: handle_irq <-do_IRQ
         udpping-12642 [000] 27907.377791: irq_to_desc <-handle_irq
         udpping-12642 [000] 27907.377791: handle_edge_irq <-handle_irq
         udpping-12642 [000] 27907.377791: _spin_lock <-handle_edge_irq
         udpping-12642 [000] 27907.377792: ack_apic_edge <-handle_edge_irq
         udpping-12642 [000] 27907.377792: irq_to_desc <-ack_apic_edge
         udpping-12642 [000] 27907.377792: irq_complete_move <-ack_apic_edge
         udpping-12642 [000] 27907.377792: move_native_irq <-ack_apic_edge
         udpping-12642 [000] 27907.377792: irq_to_desc <-move_native_irq
         udpping-12642 [000] 27907.377792: native_apic_mem_write <-ack_apic_edge
         udpping-12642 [000] 27907.377793: handle_IRQ_event <-handle_edge_irq
         udpping-12642 [000] 27907.377793: bnx2_msi <-handle_IRQ_event
         udpping-12642 [000] 27907.377793: __napi_schedule <-bnx2_msi
         udpping-12642 [000] 27907.377793: note_interrupt <-handle_edge_irq
         udpping-12642 [000] 27907.377794: _spin_lock <-handle_edge_irq
         udpping-12642 [000] 27907.377794: irq_exit <-do_IRQ
         udpping-12642 [000] 27907.377794: do_softirq <-irq_exit
         udpping-12642 [000] 27907.377794: __do_softirq <-do_softirq
         udpping-12642 [000] 27907.377795: net_rx_action <-__do_softirq
         udpping-12642 [000] 27907.377795: bnx2_poll <-net_rx_action
         udpping-12642 [000] 27907.377795: bnx2_poll_work <-bnx2_poll
         udpping-12642 [000] 27907.377795: skb_dma_unmap <-bnx2_poll_work
         udpping-12642 [000] 27907.377795: consume_skb <-bnx2_poll_work
         udpping-12642 [000] 27907.377796: __kfree_skb <-consume_skb
         udpping-12642 [000] 27907.377796: skb_release_head_state <-__kfree_skb
         udpping-12642 [000] 27907.377796: dst_release <-skb_release_head_state
         udpping-12642 [000] 27907.377796: skb_release_data <-__kfree_skb
         udpping-12642 [000] 27907.377797: kfree <-skb_release_data
         udpping-12642 [000] 27907.377797: kmem_cache_free <-__kfree_skb
         udpping-12642 [000] 27907.377797: napi_complete <-bnx2_poll
         udpping-12642 [000] 27907.377797: napi_gro_flush <-napi_complete
         udpping-12642 [000] 27907.377798: __napi_complete <-napi_complete
         udpping-12642 [000] 27907.377798: rcu_bh_qsctr_inc <-__do_softirq
         udpping-12642 [000] 27907.377798: _local_bh_enable <-__do_softirq
         udpping-12642 [000] 27907.377799: schedule_timeout <-__skb_recv_datagram
         udpping-12642 [000] 27907.377799: schedule <-schedule_timeout
         udpping-12642 [000] 27907.377799: __schedule <-schedule
         udpping-12642 [000] 27907.377799: rcu_qsctr_inc <-__schedule
         udpping-12642 [000] 27907.377799: _spin_lock_irq <-__schedule
         udpping-12642 [000] 27907.377800: deactivate_task <-__schedule
         udpping-12642 [000] 27907.377800: dequeue_task <-deactivate_task
         udpping-12642 [000] 27907.377800: dequeue_task_fair <-dequeue_task
         udpping-12642 [000] 27907.377800: update_curr <-dequeue_task_fair
         udpping-12642 [000] 27907.377801: hrtick_update <-dequeue_task_fair
         udpping-12642 [000] 27907.377801: msecs_to_jiffies <-__schedule
         udpping-12642 [000] 27907.377801: msecs_to_jiffies <-__schedule
         udpping-12642 [000] 27907.377801: put_prev_task_fair <-__schedule
         udpping-12642 [000] 27907.377801: pick_next_task_fair <-__schedule
         udpping-12642 [000] 27907.377802: pick_next_task_rt <-__schedule
         udpping-12642 [000] 27907.377802: pick_next_task_fair <-__schedule
         udpping-12642 [000] 27907.377802: pick_next_task_idle <-__schedule
          <idle>-0     [000] 27907.377802: finish_task_switch <-__schedule
          <idle>-0     [000] 27907.377803: mwait_idle <-cpu_idle
          <idle>-0     [000] 27907.377851: do_IRQ <-common_interrupt
          <idle>-0     [000] 27907.377851: irq_enter <-do_IRQ
          <idle>-0     [000] 27907.377851: idle_cpu <-irq_enter
          <idle>-0     [000] 27907.377851: tick_check_idle <-irq_enter
          <idle>-0     [000] 27907.377851: tick_check_oneshot_broadcast <-tick_check_idle
          <idle>-0     [000] 27907.377852: handle_irq <-do_IRQ
          <idle>-0     [000] 27907.377852: irq_to_desc <-handle_irq
          <idle>-0     [000] 27907.377852: handle_edge_irq <-handle_irq
          <idle>-0     [000] 27907.377852: _spin_lock <-handle_edge_irq
          <idle>-0     [000] 27907.377852: ack_apic_edge <-handle_edge_irq
          <idle>-0     [000] 27907.377853: irq_to_desc <-ack_apic_edge
          <idle>-0     [000] 27907.377853: irq_complete_move <-ack_apic_edge
          <idle>-0     [000] 27907.377853: move_native_irq <-ack_apic_edge
          <idle>-0     [000] 27907.377853: irq_to_desc <-move_native_irq
          <idle>-0     [000] 27907.377853: native_apic_mem_write <-ack_apic_edge
          <idle>-0     [000] 27907.377854: handle_IRQ_event <-handle_edge_irq
          <idle>-0     [000] 27907.377854: bnx2_msi <-handle_IRQ_event
          <idle>-0     [000] 27907.377854: __napi_schedule <-bnx2_msi
          <idle>-0     [000] 27907.377854: note_interrupt <-handle_edge_irq
          <idle>-0     [000] 27907.377855: _spin_lock <-handle_edge_irq
          <idle>-0     [000] 27907.377855: irq_exit <-do_IRQ
          <idle>-0     [000] 27907.377855: do_softirq <-irq_exit
          <idle>-0     [000] 27907.377855: __do_softirq <-do_softirq
          <idle>-0     [000] 27907.377856: net_rx_action <-__do_softirq
          <idle>-0     [000] 27907.377856: bnx2_poll <-net_rx_action
          <idle>-0     [000] 27907.377856: bnx2_poll_work <-bnx2_poll
          <idle>-0     [000] 27907.377856: __netdev_alloc_skb <-bnx2_poll_work
          <idle>-0     [000] 27907.377856: __alloc_skb <-__netdev_alloc_skb
          <idle>-0     [000] 27907.377857: kmem_cache_alloc <-__alloc_skb
          <idle>-0     [000] 27907.377857: __kmalloc_track_caller <-__alloc_skb
          <idle>-0     [000] 27907.377857: get_slab <-__kmalloc_track_caller
          <idle>-0     [000] 27907.377857: skb_put <-bnx2_poll_work
          <idle>-0     [000] 27907.377858: eth_type_trans <-bnx2_poll_work
          <idle>-0     [000] 27907.377858: skb_pull <-eth_type_trans
          <idle>-0     [000] 27907.377858: __vlan_hwaccel_rx <-bnx2_poll_work
          <idle>-0     [000] 27907.377858: netif_receive_skb <-__vlan_hwaccel_rx
          <idle>-0     [000] 27907.377859: vlan_hwaccel_do_receive <-netif_receive_skb
          <idle>-0     [000] 27907.377859: netif_nit_deliver <-vlan_hwaccel_do_receive
          <idle>-0     [000] 27907.377859: ip_rcv <-netif_receive_skb
          <idle>-0     [000] 27907.377859: nf_hook_slow <-ip_rcv
          <idle>-0     [000] 27907.377859: nf_iterate <-nf_hook_slow
          <idle>-0     [000] 27907.377860: ip_rcv_finish <-ip_rcv
          <idle>-0     [000] 27907.377860: ip_route_input <-ip_rcv_finish
          <idle>-0     [000] 27907.377860: ip_local_deliver <-ip_rcv_finish
          <idle>-0     [000] 27907.377861: nf_hook_slow <-ip_local_deliver
          <idle>-0     [000] 27907.377861: nf_iterate <-nf_hook_slow
          <idle>-0     [000] 27907.377861: ipt_local_in_hook <-nf_iterate
          <idle>-0     [000] 27907.377861: ipt_do_table <-ipt_local_in_hook
          <idle>-0     [000] 27907.377861: local_bh_disable <-ipt_do_table
          <idle>-0     [000] 27907.377862: _read_lock <-ipt_do_table
          <idle>-0     [000] 27907.377862: _read_unlock_bh <-ipt_do_table
          <idle>-0     [000] 27907.377862: local_bh_enable_ip <-_read_unlock_bh
          <idle>-0     [000] 27907.377862: ip_local_deliver_finish <-ip_local_deliver
          <idle>-0     [000] 27907.377863: raw_local_deliver <-ip_local_deliver_finish
          <idle>-0     [000] 27907.377863: udp_rcv <-ip_local_deliver_finish
          <idle>-0     [000] 27907.377863: __udp4_lib_rcv <-udp_rcv
          <idle>-0     [000] 27907.377863: __udp4_lib_lookup <-__udp4_lib_rcv
          <idle>-0     [000] 27907.377863: udp_queue_rcv_skb <-__udp4_lib_rcv
          <idle>-0     [000] 27907.377864: _spin_lock <-udp_queue_rcv_skb
          <idle>-0     [000] 27907.377864: __udp_queue_rcv_skb <-udp_queue_rcv_skb
          <idle>-0     [000] 27907.377864: sock_queue_rcv_skb <-__udp_queue_rcv_skb
          <idle>-0     [000] 27907.377864: sk_filter <-sock_queue_rcv_skb
          <idle>-0     [000] 27907.377864: local_bh_disable <-sk_filter
          <idle>-0     [000] 27907.377865: local_bh_enable <-sk_filter
          <idle>-0     [000] 27907.377865: skb_queue_tail <-sock_queue_rcv_skb
          <idle>-0     [000] 27907.377865: smp_apic_timer_interrupt <-apic_timer_interrupt
          <idle>-0     [000] 27907.377865: native_apic_mem_write <-smp_apic_timer_interrupt
          <idle>-0     [000] 27907.377866: irq_enter <-smp_apic_timer_interrupt
          <idle>-0     [000] 27907.377866: idle_cpu <-irq_enter
          <idle>-0     [000] 27907.377866: hrtimer_interrupt <-smp_apic_timer_interrupt
          <idle>-0     [000] 27907.377866: ktime_get <-hrtimer_interrupt
          <idle>-0     [000] 27907.377867: ktime_get_ts <-ktime_get
          <idle>-0     [000] 27907.377867: getnstimeofday <-ktime_get_ts
          <idle>-0     [000] 27907.377867: set_normalized_timespec <-ktime_get_ts
          <idle>-0     [000] 27907.377867: _spin_lock <-hrtimer_interrupt
          <idle>-0     [000] 27907.377867: _spin_lock <-hrtimer_interrupt
          <idle>-0     [000] 27907.377868: __run_hrtimer <-hrtimer_interrupt
          <idle>-0     [000] 27907.377868: __remove_hrtimer <-__run_hrtimer
          <idle>-0     [000] 27907.377868: timer_stats_update_stats <-__run_hrtimer
          <idle>-0     [000] 27907.377868: tick_sched_timer <-__run_hrtimer
          <idle>-0     [000] 27907.377869: ktime_get <-tick_sched_timer
          <idle>-0     [000] 27907.377869: ktime_get_ts <-ktime_get
          <idle>-0     [000] 27907.377869: getnstimeofday <-ktime_get_ts
          <idle>-0     [000] 27907.377869: set_normalized_timespec <-ktime_get_ts
          <idle>-0     [000] 27907.377869: _spin_lock <-tick_sched_timer
          <idle>-0     [000] 27907.377870: do_timer <-tick_sched_timer
          <idle>-0     [000] 27907.377870: update_wall_time <-do_timer
          <idle>-0     [000] 27907.377871: clocksource_get_next <-update_wall_time
          <idle>-0     [000] 27907.377871: _spin_lock_irqsave <-clocksource_get_next
          <idle>-0     [000] 27907.377871: _spin_unlock_irqrestore <-clocksource_get_next
          <idle>-0     [000] 27907.377872: update_process_times <-tick_sched_timer
          <idle>-0     [000] 27907.377872: account_process_tick <-update_process_times
          <idle>-0     [000] 27907.377872: account_idle_time <-account_process_tick
          <idle>-0     [000] 27907.377872: run_local_timers <-update_process_times
          <idle>-0     [000] 27907.377872: hrtimer_run_queues <-run_local_timers
          <idle>-0     [000] 27907.377873: raise_softirq <-run_local_timers
          <idle>-0     [000] 27907.377873: softlockup_tick <-run_local_timers
          <idle>-0     [000] 27907.377873: rcu_pending <-update_process_times
          <idle>-0     [000] 27907.377873: rcu_check_callbacks <-update_process_times
          <idle>-0     [000] 27907.377874: idle_cpu <-rcu_check_callbacks
          <idle>-0     [000] 27907.377874: raise_softirq <-rcu_check_callbacks
          <idle>-0     [000] 27907.377874: printk_tick <-update_process_times
          <idle>-0     [000] 27907.377874: scheduler_tick <-update_process_times
          <idle>-0     [000] 27907.377875: ktime_get <-sched_clock_tick
          <idle>-0     [000] 27907.377875: ktime_get_ts <-ktime_get
          <idle>-0     [000] 27907.377875: getnstimeofday <-ktime_get_ts
          <idle>-0     [000] 27907.377875: set_normalized_timespec <-ktime_get_ts
          <idle>-0     [000] 27907.377875: _spin_lock <-scheduler_tick
          <idle>-0     [000] 27907.377876: task_tick_idle <-scheduler_tick
          <idle>-0     [000] 27907.377876: run_posix_cpu_timers <-update_process_times
          <idle>-0     [000] 27907.377876: profile_tick <-tick_sched_timer
          <idle>-0     [000] 27907.377876: hrtimer_forward <-tick_sched_timer
          <idle>-0     [000] 27907.377877: ktime_add_safe <-hrtimer_forward
          <idle>-0     [000] 27907.377877: ktime_add_safe <-hrtimer_forward
          <idle>-0     [000] 27907.377877: _spin_lock <-__run_hrtimer
          <idle>-0     [000] 27907.377877: enqueue_hrtimer <-__run_hrtimer
          <idle>-0     [000] 27907.377878: tick_program_event <-hrtimer_interrupt
          <idle>-0     [000] 27907.377878: tick_dev_program_event <-tick_program_event
          <idle>-0     [000] 27907.377878: ktime_get <-tick_dev_program_event
          <idle>-0     [000] 27907.377878: ktime_get_ts <-ktime_get
          <idle>-0     [000] 27907.377878: getnstimeofday <-ktime_get_ts
          <idle>-0     [000] 27907.377879: set_normalized_timespec <-ktime_get_ts
          <idle>-0     [000] 27907.377879: clockevents_program_event <-tick_dev_program_event
          <idle>-0     [000] 27907.377879: lapic_next_event <-clockevents_program_event
          <idle>-0     [000] 27907.377879: native_apic_mem_write <-lapic_next_event
          <idle>-0     [000] 27907.377880: irq_exit <-smp_apic_timer_interrupt
          <idle>-0     [000] 27907.377880: _spin_lock_irqsave <-skb_queue_tail
          <idle>-0     [000] 27907.377880: _spin_unlock_irqrestore <-skb_queue_tail
          <idle>-0     [000] 27907.377880: sock_def_readable <-sock_queue_rcv_skb
          <idle>-0     [000] 27907.377881: _read_lock <-sock_def_readable
          <idle>-0     [000] 27907.377881: __wake_up_sync_key <-sock_def_readable
          <idle>-0     [000] 27907.377881: _spin_lock_irqsave <-__wake_up_sync_key
          <idle>-0     [000] 27907.377881: __wake_up_common <-__wake_up_sync_key
          <idle>-0     [000] 27907.377881: autoremove_wake_function <-__wake_up_common
          <idle>-0     [000] 27907.377882: default_wake_function <-autoremove_wake_function
          <idle>-0     [000] 27907.377882: try_to_wake_up <-default_wake_function
          <idle>-0     [000] 27907.377882: task_rq_lock <-try_to_wake_up
          <idle>-0     [000] 27907.377882: _spin_lock <-task_rq_lock
          <idle>-0     [000] 27907.377883: select_task_rq_fair <-try_to_wake_up
          <idle>-0     [000] 27907.377883: activate_task <-try_to_wake_up
          <idle>-0     [000] 27907.377883: enqueue_task <-activate_task
          <idle>-0     [000] 27907.377884: enqueue_task_fair <-enqueue_task
          <idle>-0     [000] 27907.377884: update_curr <-enqueue_task_fair
          <idle>-0     [000] 27907.377884: place_entity <-enqueue_task_fair
          <idle>-0     [000] 27907.377884: __enqueue_entity <-enqueue_task_fair
          <idle>-0     [000] 27907.377885: hrtick_update <-enqueue_task_fair
          <idle>-0     [000] 27907.377885: check_preempt_curr_idle <-try_to_wake_up
          <idle>-0     [000] 27907.377885: resched_task <-check_preempt_curr_idle
          <idle>-0     [000] 27907.377885: _spin_unlock_irqrestore <-try_to_wake_up
          <idle>-0     [000] 27907.377886: _spin_unlock_irqrestore <-__wake_up_sync_key
          <idle>-0     [000] 27907.377886: napi_complete <-bnx2_poll
          <idle>-0     [000] 27907.377886: napi_gro_flush <-napi_complete
          <idle>-0     [000] 27907.377887: __napi_complete <-napi_complete
          <idle>-0     [000] 27907.377887: rcu_bh_qsctr_inc <-__do_softirq
          <idle>-0     [000] 27907.377887: run_timer_softirq <-__do_softirq
          <idle>-0     [000] 27907.377887: hrtimer_run_pending <-run_timer_softirq
          <idle>-0     [000] 27907.377888: _spin_lock_irq <-run_timer_softirq
          <idle>-0     [000] 27907.377888: rcu_bh_qsctr_inc <-__do_softirq
          <idle>-0     [000] 27907.377888: rcu_process_callbacks <-__do_softirq
          <idle>-0     [000] 27907.377888: __rcu_process_callbacks <-rcu_process_callbacks
          <idle>-0     [000] 27907.377889: cpu_quiet <-__rcu_process_callbacks
          <idle>-0     [000] 27907.377889: _spin_lock_irqsave <-cpu_quiet
          <idle>-0     [000] 27907.377889: cpu_quiet_msk <-cpu_quiet
          <idle>-0     [000] 27907.377889: _spin_unlock_irqrestore <-cpu_quiet_msk
          <idle>-0     [000] 27907.377890: __rcu_process_callbacks <-rcu_process_callbacks
          <idle>-0     [000] 27907.377890: force_quiescent_state <-__rcu_process_callbacks
          <idle>-0     [000] 27907.377890: rcu_bh_qsctr_inc <-__do_softirq
          <idle>-0     [000] 27907.377890: _local_bh_enable <-__do_softirq
          <idle>-0     [000] 27907.377891: schedule <-cpu_idle
          <idle>-0     [000] 27907.377891: __schedule <-schedule
          <idle>-0     [000] 27907.377891: rcu_qsctr_inc <-__schedule
          <idle>-0     [000] 27907.377891: _spin_lock_irq <-__schedule
          <idle>-0     [000] 27907.377892: put_prev_task_idle <-__schedule
          <idle>-0     [000] 27907.377892: pick_next_task_fair <-__schedule
          <idle>-0     [000] 27907.377892: __dequeue_entity <-pick_next_task_fair


      reply	other threads:[~2009-04-24 14:19 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-23 22:02 about latencies Eric Dumazet
2009-04-23 22:06 ` Christoph Lameter
2009-04-23 22:34 ` Brandeburg, Jesse
2009-04-23 23:01   ` Michael Chan
2009-04-23 23:07   ` Eric Dumazet
2009-04-24  0:04     ` David Miller
2009-04-24  5:11       ` Eric Dumazet
2009-04-24 14:00     ` Christoph Lameter
2009-04-24 14:18       ` Eric Dumazet [this message]

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=49F1CA2C.4080905@cosmosbay.com \
    --to=dada1@cosmosbay.com \
    --cc=bhutchings@solarflare.com \
    --cc=cl@linux.com \
    --cc=davem@davemloft.net \
    --cc=jesse.brandeburg@intel.com \
    --cc=mchan@broadcom.com \
    --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.