Re: [PATCH v3] drivers: net: prevent tun_get_user() to exceed xdp size limits

From: Andrew Kanner
Date: Thu Jul 27 2023 - 19:48:38 EST


On Thu, Jul 27, 2023 at 01:13:10PM +0200, Jesper Dangaard Brouer wrote:
>
>
> On 27/07/2023 11.30, Paolo Abeni wrote:
> > On Thu, 2023-07-27 at 14:07 +0800, Jason Wang wrote:
> > > On Thu, Jul 27, 2023 at 8:27 AM David Ahern <dsahern@xxxxxxxxx> wrote:
> > > >
> > > > On 7/26/23 1:37 PM, David Ahern wrote:
> > > > > On 7/26/23 3:02 AM, Jesper Dangaard Brouer wrote:
> > > > > > Cc. John and Ahern
> > > > > >
> > > > > > On 26/07/2023 04.09, Jason Wang wrote:
> > > > > > > On Tue, Jul 25, 2023 at 11:54 PM Andrew Kanner
> > > > > > > <andrew.kanner@xxxxxxxxx> wrote:
> > > > > > > >
> > > > > > > > Syzkaller reported the following issue:
> > > > > > > > =======================================
> > > > > > > > Too BIG xdp->frame_sz = 131072
> > > > > >
> > > > > > Is this a contiguous physical memory allocation?
> > > > > >
> > > > > > 131072 bytes equal order 5 page.
> > > > > >
> > > > > > Looking at tun.c code I cannot find a code path that could create
> > > > > > order-5 skb->data, but only SKB with order-0 fragments. But I guess it
> > > > > > is the netif_receive_generic_xdp() what will realloc to make this linear
> > > > > > (via skb_linearize())
> > > > >
> > > > >
> > > > > get_tun_user is passed an iov_iter with a single segment of 65007
> > > > > total_len. The alloc_skb path is hit with an align size of only 64. That
> > > > > is insufficient for XDP so the netif_receive_generic_xdp hits the
> > > > > pskb_expand_head path. Something is off in the math in
> > > > > netif_receive_generic_xdp resulting in the skb markers being off. That
> > > > > causes bpf_prog_run_generic_xdp to compute the wrong frame_sz.
> > > >
> > > >
> > > > BTW, it is pskb_expand_head that turns it from a 64kB to a 128 kB
> > > > allocation. But the 128kB part is not relevant to the "bug" here really.
> > > >
>
> True, it is another "bug"/unexpected-behavior that SKB gets reallocated
> to be 128KiB. We should likely solve this in another patch.
>
> > > > The warn on getting tripped in bpf_xdp_adjust_tail is because xdp
> > > > generic path is skb based and can have a frame_sz > 4kB. That's what the
> > > > splat is about.
>
> Agree, that the warn condition should be changed, even removed.
> It is interesting that this warn caught this unexpected-behavior of
> expanding to 128KiB.
>
> > >
> > > Other possibility:
> > >
> > > tun_can_build_skb() doesn't count XDP_PACKET_HEADROOM this may end up
> > > with producing a frame_sz which is greater than PAGE_SIZE as well in
> > > tun_build_skb().
>
> True, and the way I read the tun_build_skb() code, via
> skb_page_frag_refill(),
> it can produce an SKB with data size (buflen) upto order-3 = 32KiB
> (SKB_FRAG_PAGE_ORDER).
>
> Thus, the existing check in tun_can_build_skb() for PAGE_SIZE can/should be
> relaxed?
> (Please correct me as I don't fully understand tun_get_user() code)
>
> > >
> > > And rethink this patch, it looks wrong since it basically drops all
> > > packets whose buflen is greater than PAGE_SIZE since it can't fall
> > > back to tun_alloc_skb().
> > >
>
> I agree, this is why I reacted, as this version of the patch could
> potentially cause issues and packet drops.
>
> > > >
> > > > Perhaps the solution is to remove the WARN_ON.
> > >
> > > Yes, that is what I'm asking if this warning still makes sense in V1.
> >
> > I understand the consensus is solving the issue by changing/removing
> > the WARN_ON() in XDP. I think it makes sense, I guess the same warn can
> > be reached via packet socket xmit on veth or similar topology.
> >
>
> Yes, we can completely remove this check. The original intend was to
> catch cases where XDP drivers have not been updated to use xdp.frame_sz,
> but that is not longer a concern (since xdp_init_buff).
>
> It was added (by me) in commit:
> - c8741e2bfe87 ("xdp: Allow bpf_xdp_adjust_tail() to grow packet size")
> - v5.8-rc1
> - as part of merge 5cc5924d8315
>
> I'm sure it is safe to remove since commit:
> - 43b5169d8355 ("net, xdp: Introduce xdp_init_buff utility routine")
> - v5.12-rc1
>
> where we introduced xdp_init_buff() helper, which all XDP driver use today.
> Question is what "Fixes:" tag should the patch have?
>
> To Andrew, will you
> (1) send a new patch that removes this check instead?
> (2) have cycles to investigate why the unexpected-behavior of
> expanding to 128KiB happens?
>
> --Jesper
>

Thanks, everyone.

If we summarize the discussion - there are 3 issues here:
1. tun_can_build_skb() doesn't count XDP_PACKET_HEADROOM (minor and
most trivial)
2. WARN_ON_ONCE from net/core/filter.c, which may be too strict / not
needed at all.
3. strange behaviour with reallocationg SKB (65007 -> 131072)

I can check these issues. I have to dive a little deeper with 2-3,
most likely with kgdb and syzkaller repro. But seems this is not
somewhat urgent and lives quite a long time without being noticed.

BTW: Attached the ftrace logs using the original syzkaller repro
(starting with tun_get_user()). They answer Jesper's question about
contiguous physical memory allocation (kmem_cache_alloc_node() /
kmalloc_reserve()). But I'll check it one more time before submitting
a new PATCH V4 or another patch / patch series.

--
Andrew Kanner
a.out-4609 [003] 50.323886: funcgraph_entry: | tun_get_user() {
a.out-4609 [003] 50.323889: funcgraph_entry: | sock_alloc_send_pskb() {
a.out-4609 [003] 50.323890: funcgraph_entry: | alloc_skb_with_frags() {
a.out-4609 [003] 50.323890: funcgraph_entry: | __alloc_skb() {
a.out-4609 [003] 50.323891: funcgraph_entry: | kmem_cache_alloc_node() {
...
a.out-4609 [003] 50.324133: funcgraph_entry: | kmalloc_reserve() {
...
a.out-4609 [003] 50.324155: funcgraph_entry: 0.730 us | __build_skb_around();
...
a.out-4609 [003] 50.324160: funcgraph_entry: 0.630 us | skb_put();
a.out-4609 [003] 50.324161: funcgraph_entry: | skb_copy_datagram_from_iter() {
...
a.out-4609 [003] 50.324785: funcgraph_entry: 0.720 us | eth_type_trans();
a.out-4609 [003] 50.324786: funcgraph_entry: | __skb_flow_dissect() {
a.out-4609 [003] 50.324787: funcgraph_entry: 0.620 us | __rcu_read_lock();
a.out-4609 [003] 50.324788: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324790: funcgraph_exit: 4.340 us | }
a.out-4609 [003] 50.324791: funcgraph_entry: 0.640 us | __local_bh_disable_ip();
a.out-4609 [003] 50.324793: funcgraph_entry: 0.660 us | __rcu_read_lock();
a.out-4609 [003] 50.324794: funcgraph_entry: | do_xdp_generic() {
a.out-4609 [003] 50.324795: funcgraph_entry: | pskb_expand_head() {
a.out-4609 [003] 50.324796: funcgraph_entry: | kmalloc_reserve() {
a.out-4609 [003] 50.324796: funcgraph_entry: 0.610 us | kmalloc_size_roundup();
a.out-4609 [003] 50.324797: funcgraph_entry: | __kmalloc_node_track_caller() {
a.out-4609 [003] 50.324798: funcgraph_entry: | __kmalloc_large_node() {
a.out-4609 [003] 50.324799: funcgraph_entry: | __alloc_pages() {
a.out-4609 [003] 50.324799: funcgraph_entry: 0.600 us | should_fail_alloc_page();
a.out-4609 [003] 50.324800: funcgraph_entry: | get_page_from_freelist() {
a.out-4609 [003] 50.324801: funcgraph_entry: 0.640 us | __zone_watermark_ok();
a.out-4609 [003] 50.324802: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.324803: funcgraph_entry: 0.600 us | preempt_count_add();
a.out-4609 [003] 50.324804: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324805: funcgraph_entry: 0.620 us | __mod_zone_page_state();
a.out-4609 [003] 50.324806: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324807: funcgraph_entry: 0.610 us | preempt_count_sub();
a.out-4609 [003] 50.324808: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324809: funcgraph_entry: | prep_new_page() {
a.out-4609 [003] 50.324811: funcgraph_entry: 1.040 us | prep_compound_page();
a.out-4609 [003] 50.324812: funcgraph_exit: 3.560 us | }
a.out-4609 [003] 50.324813: funcgraph_exit: + 12.300 us | }
a.out-4609 [003] 50.324813: funcgraph_exit: + 14.700 us | }
a.out-4609 [003] 50.324814: funcgraph_entry: 0.640 us | mod_node_page_state();
a.out-4609 [003] 50.324815: funcgraph_exit: + 17.120 us | }
a.out-4609 [003] 50.324816: funcgraph_exit: + 18.310 us | }
a.out-4609 [003] 50.324816: funcgraph_exit: + 20.700 us | }
...
a.out-4609 [003] 50.324857: funcgraph_entry: | bpf_prog_run_generic_xdp() {
a.out-4609 [003] 50.324858: funcgraph_entry: | __bpf_prog_run32() {
a.out-4609 [003] 50.324858: funcgraph_entry: | ___bpf_prog_run() {
a.out-4609 [003] 50.324859: funcgraph_entry: | bpf_xdp_adjust_tail() {
a.out-4609 [003] 50.324860: funcgraph_entry: | __warn_printk() {
a.out-4609 [003] 50.324861: funcgraph_entry: | _printk() {CPU 0 is empty
CPU 1 is empty
CPU 2 is empty
CPU 4 is empty
CPU 5 is empty
CPU 6 is empty
CPU 7 is empty
cpus=8
a.out-4609 [003] 50.323886: funcgraph_entry: | tun_get_user() {
a.out-4609 [003] 50.323889: funcgraph_entry: | sock_alloc_send_pskb() {
a.out-4609 [003] 50.323890: funcgraph_entry: | alloc_skb_with_frags() {
a.out-4609 [003] 50.323890: funcgraph_entry: | __alloc_skb() {
a.out-4609 [003] 50.323891: funcgraph_entry: | kmem_cache_alloc_node() {
a.out-4609 [003] 50.323891: funcgraph_entry: 0.670 us | __cond_resched();
a.out-4609 [003] 50.323893: funcgraph_entry: 0.610 us | should_failslab();
a.out-4609 [003] 50.323894: funcgraph_entry: | stack_trace_save() {
a.out-4609 [003] 50.323895: funcgraph_entry: | arch_stack_walk() {
a.out-4609 [003] 50.323895: funcgraph_entry: | __unwind_start() {
a.out-4609 [003] 50.323896: funcgraph_entry: 0.630 us | get_stack_info();
a.out-4609 [003] 50.323897: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323898: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323899: funcgraph_exit: 1.930 us | }
a.out-4609 [003] 50.323900: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323900: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323901: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323902: funcgraph_exit: 1.890 us | }
a.out-4609 [003] 50.323903: funcgraph_exit: 3.100 us | }
a.out-4609 [003] 50.323903: funcgraph_exit: 8.070 us | }
a.out-4609 [003] 50.323904: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.323905: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.323905: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.323906: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.323907: funcgraph_exit: 2.990 us | }
a.out-4609 [003] 50.323908: funcgraph_entry: 0.640 us | stack_trace_consume_entry();
a.out-4609 [003] 50.323909: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323909: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323910: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323911: funcgraph_exit: 1.890 us | }
a.out-4609 [003] 50.323912: funcgraph_exit: 3.090 us | }
a.out-4609 [003] 50.323913: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.323913: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.323914: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.323915: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.323915: funcgraph_exit: 2.980 us | }
a.out-4609 [003] 50.323916: funcgraph_entry: 0.640 us | stack_trace_consume_entry();
a.out-4609 [003] 50.323917: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323918: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323919: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323920: funcgraph_exit: 1.860 us | }
a.out-4609 [003] 50.323920: funcgraph_exit: 3.050 us | }
a.out-4609 [003] 50.323921: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.323922: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.323922: funcgraph_entry: 0.600 us | kernel_text_address();
a.out-4609 [003] 50.323923: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.323924: funcgraph_exit: 2.980 us | }
a.out-4609 [003] 50.323924: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.323926: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323926: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323927: funcgraph_entry: 0.610 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323928: funcgraph_exit: 1.850 us | }
a.out-4609 [003] 50.323929: funcgraph_exit: 3.050 us | }
a.out-4609 [003] 50.323929: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.323930: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.323931: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.323932: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.323932: funcgraph_exit: 2.980 us | }
a.out-4609 [003] 50.323933: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.323934: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323935: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323935: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323936: funcgraph_exit: 1.840 us | }
a.out-4609 [003] 50.323937: funcgraph_exit: 3.040 us | }
a.out-4609 [003] 50.323938: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.323938: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.323939: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.323940: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.323941: funcgraph_exit: 2.970 us | }
a.out-4609 [003] 50.323941: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.323942: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323943: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323944: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323945: funcgraph_exit: 1.840 us | }
a.out-4609 [003] 50.323945: funcgraph_exit: 3.050 us | }
a.out-4609 [003] 50.323946: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.323947: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.323947: funcgraph_entry: 0.600 us | kernel_text_address();
a.out-4609 [003] 50.323948: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.323949: funcgraph_exit: 2.970 us | }
a.out-4609 [003] 50.323950: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.323951: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323951: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323952: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323953: funcgraph_exit: 1.880 us | }
a.out-4609 [003] 50.323954: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.323954: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.323955: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.323956: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.323957: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.323957: funcgraph_exit: 2.980 us | }
a.out-4609 [003] 50.323958: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.323959: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.323960: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.323960: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.323962: funcgraph_exit: 1.880 us | }
a.out-4609 [003] 50.323963: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.323969: funcgraph_entry: | irq_enter_rcu() {
a.out-4609 [003] 50.323969: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.323971: funcgraph_exit: 1.900 us | }
a.out-4609 [003] 50.323971: funcgraph_entry: | __sysvec_irq_work() {
a.out-4609 [003] 50.323972: funcgraph_entry: | __wake_up() {
a.out-4609 [003] 50.323973: funcgraph_entry: | __wake_up_common_lock() {
a.out-4609 [003] 50.323973: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.323974: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.323975: funcgraph_exit: 1.760 us | }
a.out-4609 [003] 50.323975: funcgraph_entry: 0.610 us | __wake_up_common();
a.out-4609 [003] 50.323977: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.323977: funcgraph_entry: 0.650 us | preempt_count_sub();
a.out-4609 [003] 50.323978: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.323979: funcgraph_exit: 6.430 us | }
a.out-4609 [003] 50.323979: funcgraph_exit: 7.570 us | }
a.out-4609 [003] 50.323980: funcgraph_entry: | __wake_up() {
a.out-4609 [003] 50.323981: funcgraph_entry: | __wake_up_common_lock() {
a.out-4609 [003] 50.323981: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.323982: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.323983: funcgraph_exit: 1.750 us | }
a.out-4609 [003] 50.323984: funcgraph_entry: | __wake_up_common() {
a.out-4609 [003] 50.323984: funcgraph_entry: | autoremove_wake_function() {
a.out-4609 [003] 50.323985: funcgraph_entry: | default_wake_function() {
a.out-4609 [003] 50.323986: funcgraph_entry: | try_to_wake_up() {
a.out-4609 [003] 50.323986: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.323987: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.323988: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.323989: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.323990: funcgraph_entry: | __traceiter_sched_waking() {
a.out-4609 [003] 50.323990: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.323991: funcgraph_entry: 0.580 us | preempt_count_add();
a.out-4609 [003] 50.323992: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.323993: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.323993: funcgraph_entry: 0.590 us | preempt_count_sub();
a.out-4609 [003] 50.323994: funcgraph_exit: 1.740 us | }
a.out-4609 [003] 50.323995: funcgraph_exit: 5.380 us | }
a.out-4609 [003] 50.323996: funcgraph_entry: | select_task_rq_fair() {
a.out-4609 [003] 50.323996: funcgraph_entry: 0.590 us | __rcu_read_lock();
a.out-4609 [003] 50.323998: funcgraph_entry: | available_idle_cpu() {
a.out-4609 [003] 50.323998: funcgraph_entry: 0.690 us | idle_cpu();
a.out-4609 [003] 50.323999: funcgraph_exit: 1.840 us | }
a.out-4609 [003] 50.324000: funcgraph_entry: 0.600 us | __rcu_read_unlock();
a.out-4609 [003] 50.324001: funcgraph_exit: 5.410 us | }
a.out-4609 [003] 50.324002: funcgraph_entry: | ttwu_queue_wakelist() {
a.out-4609 [003] 50.324002: funcgraph_entry: 0.620 us | cpus_share_cache();
a.out-4609 [003] 50.324004: funcgraph_entry: | __smp_call_single_queue() {
a.out-4609 [003] 50.324004: funcgraph_entry: 0.610 us | call_function_single_prep_ipi();
a.out-4609 [003] 50.324005: funcgraph_entry: | native_send_call_func_single_ipi() {
a.out-4609 [003] 50.324006: funcgraph_entry: | x2apic_send_IPI() {
a.out-4609 [003] 50.324007: funcgraph_entry: 2.610 us | __x2apic_send_IPI_dest();
a.out-4609 [003] 50.324010: funcgraph_exit: 3.850 us | }
a.out-4609 [003] 50.324010: funcgraph_exit: 5.010 us | }
a.out-4609 [003] 50.324011: funcgraph_exit: 7.360 us | }
a.out-4609 [003] 50.324011: funcgraph_exit: 9.840 us | }
a.out-4609 [003] 50.324012: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324013: funcgraph_entry: 0.580 us | preempt_count_sub();
a.out-4609 [003] 50.324014: funcgraph_exit: 1.750 us | }
a.out-4609 [003] 50.324014: funcgraph_entry: 0.590 us | preempt_count_sub();
a.out-4609 [003] 50.324015: funcgraph_exit: + 30.030 us | }
a.out-4609 [003] 50.324016: funcgraph_exit: + 31.180 us | }
a.out-4609 [003] 50.324017: funcgraph_exit: + 32.350 us | }
a.out-4609 [003] 50.324017: funcgraph_exit: + 33.610 us | }
a.out-4609 [003] 50.324018: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324018: funcgraph_entry: 0.590 us | preempt_count_sub();
a.out-4609 [003] 50.324019: funcgraph_exit: 1.740 us | }
a.out-4609 [003] 50.324020: funcgraph_exit: + 39.330 us | }
a.out-4609 [003] 50.324021: funcgraph_exit: + 40.480 us | }
a.out-4609 [003] 50.324021: funcgraph_exit: + 50.120 us | }
a.out-4609 [003] 50.324022: funcgraph_entry: | irq_exit_rcu() {
a.out-4609 [003] 50.324022: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324024: funcgraph_entry: 0.610 us | idle_cpu();
a.out-4609 [003] 50.324025: funcgraph_exit: 2.940 us | }
a.out-4609 [003] 50.324025: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324026: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324027: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.324028: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324028: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324029: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324030: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324031: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324031: funcgraph_entry: 0.620 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324033: funcgraph_exit: 1.910 us | }
a.out-4609 [003] 50.324033: funcgraph_exit: 3.110 us | }
a.out-4609 [003] 50.324034: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324034: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324035: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.324036: funcgraph_exit: 1.770 us | }
a.out-4609 [003] 50.324037: funcgraph_exit: 2.960 us | }
a.out-4609 [003] 50.324037: funcgraph_entry: 0.620 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324039: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324039: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324040: funcgraph_entry: 0.610 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324041: funcgraph_exit: 1.850 us | }
a.out-4609 [003] 50.324042: funcgraph_exit: 3.050 us | }
a.out-4609 [003] 50.324043: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324044: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324044: funcgraph_entry: 0.600 us | kernel_text_address();
a.out-4609 [003] 50.324046: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.324046: funcgraph_exit: 2.970 us | }
a.out-4609 [003] 50.324047: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324048: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324049: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324049: funcgraph_entry: 0.610 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324050: funcgraph_exit: 1.900 us | }
a.out-4609 [003] 50.324051: funcgraph_exit: 3.090 us | }
a.out-4609 [003] 50.324052: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324052: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324053: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.324054: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.324055: funcgraph_exit: 2.950 us | }
a.out-4609 [003] 50.324055: funcgraph_entry: 0.620 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324056: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324057: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324058: funcgraph_entry: 0.610 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324059: funcgraph_exit: 1.840 us | }
a.out-4609 [003] 50.324059: funcgraph_exit: 3.030 us | }
a.out-4609 [003] 50.324060: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324061: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324061: funcgraph_entry: 0.600 us | kernel_text_address();
a.out-4609 [003] 50.324062: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.324063: funcgraph_exit: 2.960 us | }
a.out-4609 [003] 50.324063: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324065: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324065: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324066: funcgraph_entry: 0.610 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324067: funcgraph_exit: 1.830 us | }
a.out-4609 [003] 50.324068: funcgraph_exit: 3.030 us | }
a.out-4609 [003] 50.324068: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324069: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324069: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.324071: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.324071: funcgraph_exit: 2.950 us | }
a.out-4609 [003] 50.324072: funcgraph_entry: 0.620 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324073: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324074: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324074: funcgraph_entry: 0.610 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324075: funcgraph_exit: 1.830 us | }
a.out-4609 [003] 50.324076: funcgraph_exit: 3.030 us | }
a.out-4609 [003] 50.324077: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324077: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324078: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.324079: funcgraph_exit: 1.770 us | }
a.out-4609 [003] 50.324080: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324080: funcgraph_entry: 0.780 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324082: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324083: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324083: funcgraph_entry: 0.770 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324085: funcgraph_exit: 2.290 us | }
a.out-4609 [003] 50.324086: funcgraph_exit: 3.800 us | }
a.out-4609 [003] 50.324086: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324087: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324088: funcgraph_entry: 0.760 us | kernel_text_address();
a.out-4609 [003] 50.324089: funcgraph_exit: 2.230 us | }
a.out-4609 [003] 50.324090: funcgraph_exit: 3.710 us | }
a.out-4609 [003] 50.324091: funcgraph_entry: 0.790 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324092: funcgraph_entry: | unwind_next_frame() {
a.out-4609 [003] 50.324093: funcgraph_entry: | update_stack_state() {
a.out-4609 [003] 50.324093: funcgraph_entry: 0.660 us | unwind_get_return_address_ptr();
a.out-4609 [003] 50.324095: funcgraph_exit: 2.040 us | }
a.out-4609 [003] 50.324095: funcgraph_exit: 3.360 us | }
a.out-4609 [003] 50.324096: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324097: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324097: funcgraph_entry: 0.610 us | kernel_text_address();
a.out-4609 [003] 50.324098: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.324099: funcgraph_exit: 2.970 us | }
a.out-4609 [003] 50.324100: funcgraph_entry: 0.630 us | stack_trace_consume_entry();
a.out-4609 [003] 50.324101: funcgraph_entry: 0.800 us | unwind_next_frame();
a.out-4609 [003] 50.324102: funcgraph_entry: | unwind_get_return_address() {
a.out-4609 [003] 50.324103: funcgraph_entry: | __kernel_text_address() {
a.out-4609 [003] 50.324104: funcgraph_entry: | kernel_text_address() {
a.out-4609 [003] 50.324105: funcgraph_entry: 0.750 us | in_gate_area_no_mm();
a.out-4609 [003] 50.324106: funcgraph_entry: | is_module_text_address() {
a.out-4609 [003] 50.324107: funcgraph_entry: 0.790 us | preempt_count_add();
a.out-4609 [003] 50.324108: funcgraph_entry: | __module_text_address() {
a.out-4609 [003] 50.324109: funcgraph_entry: 0.760 us | __module_address();
a.out-4609 [003] 50.324111: funcgraph_exit: 2.250 us | }
a.out-4609 [003] 50.324111: funcgraph_entry: 0.780 us | preempt_count_sub();
a.out-4609 [003] 50.324113: funcgraph_exit: 6.730 us | }
a.out-4609 [003] 50.324113: funcgraph_entry: | __is_insn_slot_addr() {
a.out-4609 [003] 50.324114: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324115: funcgraph_entry: 0.630 us | __rcu_read_unlock();
a.out-4609 [003] 50.324116: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324117: funcgraph_entry: | __is_insn_slot_addr() {
a.out-4609 [003] 50.324118: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324119: funcgraph_entry: 0.650 us | __rcu_read_unlock();
a.out-4609 [003] 50.324121: funcgraph_exit: 3.890 us | }
a.out-4609 [003] 50.324122: funcgraph_exit: + 17.810 us | }
a.out-4609 [003] 50.324122: funcgraph_exit: + 19.290 us | }
a.out-4609 [003] 50.324123: funcgraph_exit: + 20.760 us | }
a.out-4609 [003] 50.324124: funcgraph_exit: ! 228.940 us | }
a.out-4609 [003] 50.324124: funcgraph_exit: ! 230.260 us | }
a.out-4609 [003] 50.324125: funcgraph_entry: 0.850 us | filter_irq_stacks();
a.out-4609 [003] 50.324127: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.324128: funcgraph_entry: 0.770 us | preempt_count_add();
a.out-4609 [003] 50.324129: funcgraph_exit: 2.300 us | }
a.out-4609 [003] 50.324130: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324131: funcgraph_entry: 0.760 us | preempt_count_sub();
a.out-4609 [003] 50.324132: funcgraph_exit: 2.120 us | }
a.out-4609 [003] 50.324133: funcgraph_exit: ! 241.980 us | }
a.out-4609 [003] 50.324133: funcgraph_entry: | kmalloc_reserve() {
a.out-4609 [003] 50.324134: funcgraph_entry: 0.610 us | kmalloc_size_roundup();
a.out-4609 [003] 50.324135: funcgraph_entry: | __kmalloc_node_track_caller() {
a.out-4609 [003] 50.324136: funcgraph_entry: | __kmalloc_large_node() {
a.out-4609 [003] 50.324136: funcgraph_entry: | __alloc_pages() {
a.out-4609 [003] 50.324137: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324138: funcgraph_entry: 0.610 us | should_fail_alloc_page();
a.out-4609 [003] 50.324139: funcgraph_entry: | get_page_from_freelist() {
a.out-4609 [003] 50.324140: funcgraph_entry: 0.620 us | __zone_watermark_ok();
a.out-4609 [003] 50.324141: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.324142: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324143: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324144: funcgraph_entry: 0.620 us | __mod_zone_page_state();
a.out-4609 [003] 50.324145: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324146: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324147: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324148: funcgraph_entry: | prep_new_page() {
a.out-4609 [003] 50.324149: funcgraph_entry: 0.870 us | prep_compound_page();
a.out-4609 [003] 50.324150: funcgraph_exit: 2.790 us | }
a.out-4609 [003] 50.324151: funcgraph_exit: + 11.640 us | }
a.out-4609 [003] 50.324152: funcgraph_exit: + 15.240 us | }
a.out-4609 [003] 50.324152: funcgraph_entry: 0.620 us | mod_node_page_state();
a.out-4609 [003] 50.324153: funcgraph_exit: + 17.690 us | }
a.out-4609 [003] 50.324154: funcgraph_exit: + 18.890 us | }
a.out-4609 [003] 50.324155: funcgraph_exit: + 21.300 us | }
a.out-4609 [003] 50.324155: funcgraph_entry: 0.730 us | __build_skb_around();
a.out-4609 [003] 50.324157: funcgraph_exit: ! 266.560 us | }
a.out-4609 [003] 50.324157: funcgraph_exit: ! 267.770 us | }
a.out-4609 [003] 50.324158: funcgraph_entry: 0.690 us | skb_set_owner_w();
a.out-4609 [003] 50.324159: funcgraph_exit: ! 270.390 us | }
a.out-4609 [003] 50.324160: funcgraph_entry: 0.630 us | skb_put();
a.out-4609 [003] 50.324161: funcgraph_entry: | skb_copy_datagram_from_iter() {
a.out-4609 [003] 50.324163: funcgraph_entry: 0.620 us | fault_in_kernel_space();
a.out-4609 [003] 50.324164: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324165: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324166: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324167: funcgraph_entry: 0.630 us | preempt_count_sub();
a.out-4609 [003] 50.324168: funcgraph_exit: 3.060 us | }
a.out-4609 [003] 50.324169: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324170: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324170: funcgraph_entry: 0.620 us | __rcu_read_lock();
a.out-4609 [003] 50.324172: funcgraph_entry: 0.630 us | __rcu_read_unlock();
a.out-4609 [003] 50.324173: funcgraph_exit: 3.170 us | }
a.out-4609 [003] 50.324174: funcgraph_exit: 9.230 us | }
a.out-4609 [003] 50.324174: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324175: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324176: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324176: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324177: funcgraph_exit: 1.830 us | }
a.out-4609 [003] 50.324178: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324179: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324180: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324181: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324182: funcgraph_exit: 1.830 us | }
a.out-4609 [003] 50.324182: funcgraph_exit: 4.200 us | }
a.out-4609 [003] 50.324183: funcgraph_entry: 0.650 us | vmf_pte_changed();
a.out-4609 [003] 50.324184: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324185: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324186: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324186: funcgraph_exit: + 11.620 us | }
a.out-4609 [003] 50.324187: funcgraph_exit: + 12.890 us | }
a.out-4609 [003] 50.324188: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324188: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324189: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324191: funcgraph_exit: 2.990 us | }
a.out-4609 [003] 50.324192: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324193: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324194: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324194: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324196: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324197: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324198: funcgraph_entry: 1.190 us | __cond_resched();
a.out-4609 [003] 50.324199: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324200: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324201: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324202: funcgraph_exit: 3.090 us | }
a.out-4609 [003] 50.324203: funcgraph_exit: 9.630 us | }
a.out-4609 [003] 50.324203: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324204: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324205: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324205: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324206: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324207: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324208: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324209: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324209: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324211: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324211: funcgraph_exit: 4.180 us | }
a.out-4609 [003] 50.324212: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324213: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324214: funcgraph_entry: 0.610 us | preempt_count_sub();
a.out-4609 [003] 50.324215: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324215: funcgraph_exit: + 11.360 us | }
a.out-4609 [003] 50.324216: funcgraph_exit: + 12.570 us | }
a.out-4609 [003] 50.324217: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324217: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324218: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324219: funcgraph_exit: 2.990 us | }
a.out-4609 [003] 50.324221: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324222: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324222: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324223: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324224: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324225: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324226: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324227: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324228: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324229: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324230: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324231: funcgraph_exit: 9.020 us | }
a.out-4609 [003] 50.324231: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324232: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324233: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324233: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324234: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324235: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324236: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324237: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324237: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324239: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324239: funcgraph_exit: 4.190 us | }
a.out-4609 [003] 50.324240: funcgraph_entry: 0.630 us | vmf_pte_changed();
a.out-4609 [003] 50.324241: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324242: funcgraph_entry: 0.610 us | preempt_count_sub();
a.out-4609 [003] 50.324243: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324243: funcgraph_exit: + 11.380 us | }
a.out-4609 [003] 50.324244: funcgraph_exit: + 12.580 us | }
a.out-4609 [003] 50.324244: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324245: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324246: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324247: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324248: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324250: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324250: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324251: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324252: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324253: funcgraph_exit: 3.010 us | }
a.out-4609 [003] 50.324254: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324255: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324256: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324260: funcgraph_entry: | irq_enter_rcu() {
a.out-4609 [003] 50.324261: funcgraph_entry: 0.630 us | preempt_count_add();
a.out-4609 [003] 50.324262: funcgraph_exit: 1.880 us | }
a.out-4609 [003] 50.324263: funcgraph_entry: | __sysvec_apic_timer_interrupt() {
a.out-4609 [003] 50.324263: funcgraph_entry: | hrtimer_interrupt() {
a.out-4609 [003] 50.324264: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.324265: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.324266: funcgraph_exit: 1.780 us | }
a.out-4609 [003] 50.324266: funcgraph_entry: 0.750 us | ktime_get_update_offsets_now();
a.out-4609 [003] 50.324268: funcgraph_entry: | __hrtimer_run_queues() {
a.out-4609 [003] 50.324268: funcgraph_entry: 0.610 us | __next_base();
a.out-4609 [003] 50.324270: funcgraph_entry: 0.780 us | __remove_hrtimer();
a.out-4609 [003] 50.324271: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324272: funcgraph_entry: 0.600 us | preempt_count_sub();
a.out-4609 [003] 50.324273: funcgraph_exit: 1.740 us | }
a.out-4609 [003] 50.324273: funcgraph_entry: | tick_sched_timer() {
a.out-4609 [003] 50.324274: funcgraph_entry: 0.630 us | ktime_get();
a.out-4609 [003] 50.324276: funcgraph_entry: 1.410 us | tick_sched_do_timer();
a.out-4609 [003] 50.324277: funcgraph_entry: | tick_sched_handle() {
a.out-4609 [003] 50.324278: funcgraph_entry: | update_process_times() {
a.out-4609 [003] 50.324278: funcgraph_entry: | account_process_tick() {
a.out-4609 [003] 50.324279: funcgraph_entry: 0.600 us | kvm_steal_clock();
a.out-4609 [003] 50.324280: funcgraph_entry: 0.600 us | account_steal_time();
a.out-4609 [003] 50.324281: funcgraph_entry: | account_system_time() {
a.out-4609 [003] 50.324282: funcgraph_entry: | account_system_index_time() {
a.out-4609 [003] 50.324283: funcgraph_entry: 0.620 us | cpuacct_account_field();
a.out-4609 [003] 50.324284: funcgraph_entry: | __cgroup_account_cputime_field() {
a.out-4609 [003] 50.324284: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.324286: funcgraph_entry: | cgroup_base_stat_cputime_account_end() {
a.out-4609 [003] 50.324286: funcgraph_entry: 0.610 us | cgroup_rstat_updated();
a.out-4609 [003] 50.324287: funcgraph_entry: 0.600 us | preempt_count_sub();
a.out-4609 [003] 50.324288: funcgraph_exit: 2.930 us | }
a.out-4609 [003] 50.324289: funcgraph_exit: 5.240 us | }
a.out-4609 [003] 50.324290: funcgraph_entry: | acct_account_cputime() {
a.out-4609 [003] 50.324290: funcgraph_entry: 0.640 us | __acct_update_integrals();
a.out-4609 [003] 50.324291: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324292: funcgraph_exit: + 10.020 us | }
a.out-4609 [003] 50.324293: funcgraph_exit: + 11.170 us | }
a.out-4609 [003] 50.324293: funcgraph_exit: + 14.800 us | }
a.out-4609 [003] 50.324294: funcgraph_entry: 0.610 us | hrtimer_run_queues();
a.out-4609 [003] 50.324295: funcgraph_entry: | rcu_sched_clock_irq() {
a.out-4609 [003] 50.324296: funcgraph_entry: 0.610 us | rcu_stall_kick_kthreads();
a.out-4609 [003] 50.324297: funcgraph_entry: 0.600 us | rcu_is_cpu_rrupt_from_idle();
a.out-4609 [003] 50.324298: funcgraph_entry: 0.610 us | rcu_segcblist_ready_cbs();
a.out-4609 [003] 50.324299: funcgraph_entry: | invoke_rcu_core() {
a.out-4609 [003] 50.324300: funcgraph_entry: | raise_softirq() {
a.out-4609 [003] 50.324300: funcgraph_entry: 0.590 us | __raise_softirq_irqoff();
a.out-4609 [003] 50.324301: funcgraph_exit: 1.750 us | }
a.out-4609 [003] 50.324302: funcgraph_exit: 2.910 us | }
a.out-4609 [003] 50.324303: funcgraph_entry: 0.600 us | rcu_is_cpu_rrupt_from_idle();
a.out-4609 [003] 50.324304: funcgraph_exit: 8.900 us | }
a.out-4609 [003] 50.324304: funcgraph_entry: | scheduler_tick() {
a.out-4609 [003] 50.324305: funcgraph_entry: 0.590 us | arch_scale_freq_tick();
a.out-4609 [003] 50.324306: funcgraph_entry: | raw_spin_rq_lock_nested() {
a.out-4609 [003] 50.324307: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.324308: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324309: funcgraph_entry: 0.600 us | preempt_count_add();
a.out-4609 [003] 50.324310: funcgraph_exit: 1.870 us | }
a.out-4609 [003] 50.324310: funcgraph_entry: 0.600 us | preempt_count_sub();
a.out-4609 [003] 50.324311: funcgraph_exit: 5.320 us | }
a.out-4609 [003] 50.324312: funcgraph_entry: 0.710 us | update_rq_clock();
a.out-4609 [003] 50.324313: funcgraph_entry: | task_tick_fair() {
a.out-4609 [003] 50.324314: funcgraph_entry: | update_curr() {
a.out-4609 [003] 50.324315: funcgraph_entry: 0.690 us | update_min_vruntime();
a.out-4609 [003] 50.324316: funcgraph_entry: 0.640 us | cpuacct_charge();
a.out-4609 [003] 50.324317: funcgraph_entry: | __cgroup_account_cputime() {
a.out-4609 [003] 50.324318: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.324319: funcgraph_entry: | cgroup_base_stat_cputime_account_end() {
a.out-4609 [003] 50.324319: funcgraph_entry: 0.600 us | cgroup_rstat_updated();
a.out-4609 [003] 50.324321: funcgraph_entry: 0.590 us | preempt_count_sub();
a.out-4609 [003] 50.324322: funcgraph_exit: 2.900 us | }
a.out-4609 [003] 50.324322: funcgraph_exit: 5.200 us | }
a.out-4609 [003] 50.324323: funcgraph_exit: 8.890 us | }
a.out-4609 [003] 50.324323: funcgraph_entry: | __update_load_avg_se() {
a.out-4609 [003] 50.324324: funcgraph_entry: 0.600 us | decay_load();
a.out-4609 [003] 50.324325: funcgraph_entry: 0.600 us | decay_load();
a.out-4609 [003] 50.324326: funcgraph_entry: 0.600 us | decay_load();
a.out-4609 [003] 50.324328: funcgraph_entry: | __accumulate_pelt_segments() {
a.out-4609 [003] 50.324328: funcgraph_entry: 0.590 us | decay_load();
a.out-4609 [003] 50.324329: funcgraph_entry: 0.600 us | decay_load();
a.out-4609 [003] 50.324330: funcgraph_exit: 2.890 us | }
a.out-4609 [003] 50.324331: funcgraph_exit: 7.630 us | }
a.out-4609 [003] 50.324332: funcgraph_entry: | __update_load_avg_cfs_rq() {
a.out-4609 [003] 50.324332: funcgraph_entry: 0.600 us | decay_load();
a.out-4609 [003] 50.324334: funcgraph_entry: 0.600 us | decay_load();
a.out-4609 [003] 50.324335: funcgraph_entry: 0.600 us | decay_load();
a.out-4609 [003] 50.324336: funcgraph_entry: | __accumulate_pelt_segments() {
a.out-4609 [003] 50.324336: funcgraph_entry: 0.590 us | decay_load();
a.out-4609 [003] 50.324338: funcgraph_entry: 0.590 us | decay_load();
a.out-4609 [003] 50.324339: funcgraph_exit: 2.890 us | }
a.out-4609 [003] 50.324339: funcgraph_exit: 7.650 us | }
a.out-4609 [003] 50.324340: funcgraph_entry: 0.610 us | update_cfs_group();
a.out-4609 [003] 50.324341: funcgraph_entry: 0.640 us | hrtimer_active();
a.out-4609 [003] 50.324342: funcgraph_entry: | cpu_util_cfs() {
a.out-4609 [003] 50.324343: funcgraph_entry: 0.680 us | cpu_util();
a.out-4609 [003] 50.324344: funcgraph_exit: 1.830 us | }
a.out-4609 [003] 50.324345: funcgraph_entry: 0.610 us | capacity_of();
a.out-4609 [003] 50.324346: funcgraph_exit: + 32.650 us | }
a.out-4609 [003] 50.324347: funcgraph_entry: 0.610 us | calc_global_load_tick();
a.out-4609 [003] 50.324348: funcgraph_entry: 0.700 us | task_tick_mm_cid();
a.out-4609 [003] 50.324350: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324350: funcgraph_entry: 0.590 us | preempt_count_sub();
a.out-4609 [003] 50.324351: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324352: funcgraph_entry: | perf_event_task_tick() {
a.out-4609 [003] 50.324353: funcgraph_entry: 0.590 us | perf_adjust_freq_unthr_context();
a.out-4609 [003] 50.324354: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324355: funcgraph_entry: 0.610 us | __rcu_read_unlock();
a.out-4609 [003] 50.324356: funcgraph_exit: 4.110 us | }
a.out-4609 [003] 50.324357: funcgraph_entry: 0.610 us | idle_cpu();
a.out-4609 [003] 50.324358: funcgraph_entry: | trigger_load_balance() {
a.out-4609 [003] 50.324359: funcgraph_entry: 0.600 us | nohz_balance_exit_idle();
a.out-4609 [003] 50.324360: funcgraph_entry: 0.600 us | __rcu_read_lock();
a.out-4609 [003] 50.324361: funcgraph_entry: 0.600 us | __rcu_read_unlock();
a.out-4609 [003] 50.324362: funcgraph_exit: 4.260 us | }
a.out-4609 [003] 50.324363: funcgraph_exit: + 58.300 us | }
a.out-4609 [003] 50.324363: funcgraph_entry: 0.660 us | run_posix_cpu_timers();
a.out-4609 [003] 50.324364: funcgraph_exit: + 86.760 us | }
a.out-4609 [003] 50.324365: funcgraph_entry: 0.650 us | profile_tick();
a.out-4609 [003] 50.324366: funcgraph_exit: + 89.160 us | }
a.out-4609 [003] 50.324367: funcgraph_entry: | hrtimer_forward() {
a.out-4609 [003] 50.324367: funcgraph_entry: 0.590 us | ktime_add_safe();
a.out-4609 [003] 50.324369: funcgraph_entry: 0.600 us | ktime_add_safe();
a.out-4609 [003] 50.324370: funcgraph_exit: 2.910 us | }
a.out-4609 [003] 50.324370: funcgraph_exit: + 96.960 us | }
a.out-4609 [003] 50.324371: funcgraph_entry: | _raw_spin_lock_irq() {
a.out-4609 [003] 50.324371: funcgraph_entry: 0.590 us | preempt_count_add();
a.out-4609 [003] 50.324373: funcgraph_exit: 1.770 us | }
a.out-4609 [003] 50.324373: funcgraph_entry: 0.730 us | enqueue_hrtimer();
a.out-4609 [003] 50.324374: funcgraph_entry: 0.610 us | __next_base();
a.out-4609 [003] 50.324376: funcgraph_entry: 0.610 us | __next_base();
a.out-4609 [003] 50.324377: funcgraph_exit: ! 109.040 us | }
a.out-4609 [003] 50.324377: funcgraph_entry: | hrtimer_update_next_event() {
a.out-4609 [003] 50.324378: funcgraph_entry: | __hrtimer_get_next_event() {
a.out-4609 [003] 50.324379: funcgraph_entry: | __hrtimer_next_event_base() {
a.out-4609 [003] 50.324379: funcgraph_entry: 0.600 us | __next_base();
a.out-4609 [003] 50.324380: funcgraph_exit: 1.740 us | }
a.out-4609 [003] 50.324381: funcgraph_exit: 2.910 us | }
a.out-4609 [003] 50.324381: funcgraph_entry: | __hrtimer_get_next_event() {
a.out-4609 [003] 50.324382: funcgraph_entry: | __hrtimer_next_event_base() {
a.out-4609 [003] 50.324383: funcgraph_entry: 0.600 us | __next_base();
a.out-4609 [003] 50.324384: funcgraph_entry: 0.610 us | __next_base();
a.out-4609 [003] 50.324385: funcgraph_entry: 0.600 us | __next_base();
a.out-4609 [003] 50.324386: funcgraph_exit: 4.120 us | }
a.out-4609 [003] 50.324387: funcgraph_exit: 5.280 us | }
a.out-4609 [003] 50.324387: funcgraph_exit: 9.910 us | }
a.out-4609 [003] 50.324388: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324388: funcgraph_entry: 0.590 us | preempt_count_sub();
a.out-4609 [003] 50.324390: funcgraph_exit: 1.740 us | }
a.out-4609 [003] 50.324390: funcgraph_entry: | tick_program_event() {
a.out-4609 [003] 50.324391: funcgraph_entry: | clockevents_program_event() {
a.out-4609 [003] 50.324391: funcgraph_entry: 0.620 us | ktime_get();
a.out-4609 [003] 50.324393: funcgraph_entry: 2.450 us | lapic_next_deadline();
a.out-4609 [003] 50.324396: funcgraph_exit: 4.890 us | }
a.out-4609 [003] 50.324396: funcgraph_exit: 6.050 us | }
a.out-4609 [003] 50.324397: funcgraph_exit: ! 133.360 us | }
a.out-4609 [003] 50.324397: funcgraph_exit: ! 134.620 us | }
a.out-4609 [003] 50.324398: funcgraph_entry: | irq_exit_rcu() {
a.out-4609 [003] 50.324398: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324400: funcgraph_entry: | __do_softirq() {
a.out-4609 [003] 50.324400: funcgraph_entry: 0.620 us | __local_bh_disable_ip();
a.out-4609 [003] 50.324402: funcgraph_entry: | rcu_core_si() {
a.out-4609 [003] 50.324402: funcgraph_entry: | rcu_core() {
a.out-4609 [003] 50.324403: funcgraph_entry: | note_gp_changes() {
a.out-4609 [003] 50.324404: funcgraph_entry: | _raw_spin_trylock() {
a.out-4609 [003] 50.324407: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324408: funcgraph_exit: 4.750 us | }
a.out-4609 [003] 50.324409: funcgraph_entry: | __note_gp_changes() {
a.out-4609 [003] 50.324409: funcgraph_entry: | rcu_advance_cbs() {
a.out-4609 [003] 50.324410: funcgraph_entry: 0.610 us | rcu_segcblist_pend_cbs();
a.out-4609 [003] 50.324411: funcgraph_exit: 1.770 us | }
a.out-4609 [003] 50.324412: funcgraph_entry: 0.620 us | rcu_gpnum_ovf();
a.out-4609 [003] 50.324413: funcgraph_exit: 4.270 us | }
a.out-4609 [003] 50.324414: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324414: funcgraph_entry: 0.630 us | preempt_count_sub();
a.out-4609 [003] 50.324416: funcgraph_exit: 1.830 us | }
a.out-4609 [003] 50.324416: funcgraph_exit: + 13.240 us | }
a.out-4609 [003] 50.324417: funcgraph_entry: 0.640 us | rcu_jiffies_till_stall_check();
a.out-4609 [003] 50.324418: funcgraph_entry: 0.630 us | rcu_segcblist_ready_cbs();
a.out-4609 [003] 50.324419: funcgraph_exit: + 16.960 us | }
a.out-4609 [003] 50.324420: funcgraph_exit: + 18.210 us | }
a.out-4609 [003] 50.324420: funcgraph_entry: 0.630 us | __local_bh_enable();
a.out-4609 [003] 50.324422: funcgraph_exit: + 21.910 us | }
a.out-4609 [003] 50.324422: funcgraph_entry: 0.610 us | idle_cpu();
a.out-4609 [003] 50.324424: funcgraph_exit: + 26.220 us | }
a.out-4609 [003] 50.324425: funcgraph_entry: 0.650 us | __rcu_read_unlock();
a.out-4609 [003] 50.324426: funcgraph_exit: ! 171.100 us | }
a.out-4609 [003] 50.324427: funcgraph_exit: ! 177.050 us | }
a.out-4609 [003] 50.324427: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324428: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324429: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324429: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324430: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324431: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324432: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324433: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324434: funcgraph_entry: 0.630 us | preempt_count_add();
a.out-4609 [003] 50.324435: funcgraph_exit: 1.840 us | }
a.out-4609 [003] 50.324435: funcgraph_exit: 4.200 us | }
a.out-4609 [003] 50.324436: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324437: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324438: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324439: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324439: funcgraph_exit: + 11.460 us | }
a.out-4609 [003] 50.324440: funcgraph_exit: + 12.680 us | }
a.out-4609 [003] 50.324441: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324441: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324442: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324444: funcgraph_exit: 3.060 us | }
a.out-4609 [003] 50.324445: funcgraph_entry: 0.620 us | fault_in_kernel_space();
a.out-4609 [003] 50.324446: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324447: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324447: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324448: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324450: funcgraph_exit: 3.030 us | }
a.out-4609 [003] 50.324450: funcgraph_entry: 0.620 us | __cond_resched();
a.out-4609 [003] 50.324451: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324452: funcgraph_entry: 0.620 us | __rcu_read_lock();
a.out-4609 [003] 50.324453: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324454: funcgraph_exit: 3.090 us | }
a.out-4609 [003] 50.324455: funcgraph_exit: 9.060 us | }
a.out-4609 [003] 50.324456: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324456: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324457: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324458: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324459: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324459: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324460: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324461: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324462: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324463: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324463: funcgraph_exit: 4.190 us | }
a.out-4609 [003] 50.324464: funcgraph_entry: 0.630 us | vmf_pte_changed();
a.out-4609 [003] 50.324465: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324466: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324467: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324468: funcgraph_exit: + 11.390 us | }
a.out-4609 [003] 50.324468: funcgraph_exit: + 12.580 us | }
a.out-4609 [003] 50.324469: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324469: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324471: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324472: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324473: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324474: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324475: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324475: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324476: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324478: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324478: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324479: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324480: funcgraph_entry: 0.620 us | __rcu_read_lock();
a.out-4609 [003] 50.324481: funcgraph_entry: 0.630 us | __rcu_read_unlock();
a.out-4609 [003] 50.324482: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324483: funcgraph_exit: 9.030 us | }
a.out-4609 [003] 50.324484: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324484: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324485: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324486: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324487: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324487: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324488: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324489: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324490: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324491: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324491: funcgraph_exit: 4.180 us | }
a.out-4609 [003] 50.324492: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324493: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324494: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324495: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324496: funcgraph_exit: + 11.380 us | }
a.out-4609 [003] 50.324497: funcgraph_exit: + 12.590 us | }
a.out-4609 [003] 50.324497: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324498: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324499: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324500: funcgraph_exit: 3.070 us | }
a.out-4609 [003] 50.324501: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324503: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324503: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324504: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324505: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324506: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324507: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324508: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324509: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324510: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324511: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324512: funcgraph_exit: 9.030 us | }
a.out-4609 [003] 50.324512: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324513: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324514: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324514: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324515: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324516: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324517: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324518: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324518: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324520: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324520: funcgraph_exit: 4.180 us | }
a.out-4609 [003] 50.324521: funcgraph_entry: 0.630 us | vmf_pte_changed();
a.out-4609 [003] 50.324522: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324523: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324524: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324524: funcgraph_exit: + 11.370 us | }
a.out-4609 [003] 50.324525: funcgraph_exit: + 12.580 us | }
a.out-4609 [003] 50.324525: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324526: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324527: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324528: funcgraph_exit: 2.990 us | }
a.out-4609 [003] 50.324529: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324531: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324531: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324532: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324533: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324534: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324535: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324536: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324537: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324538: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324539: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324540: funcgraph_exit: 9.090 us | }
a.out-4609 [003] 50.324540: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324541: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324542: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324542: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324543: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324544: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324545: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324546: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324546: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324548: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324548: funcgraph_exit: 4.200 us | }
a.out-4609 [003] 50.324549: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324550: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324551: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324552: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324552: funcgraph_exit: + 11.380 us | }
a.out-4609 [003] 50.324553: funcgraph_exit: + 12.580 us | }
a.out-4609 [003] 50.324553: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324554: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324555: funcgraph_entry: 0.630 us | preempt_count_sub();
a.out-4609 [003] 50.324556: funcgraph_exit: 3.010 us | }
a.out-4609 [003] 50.324557: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324559: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324559: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324560: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324561: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324562: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324563: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324564: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324565: funcgraph_entry: 0.620 us | __rcu_read_lock();
a.out-4609 [003] 50.324566: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324567: funcgraph_exit: 3.070 us | }
a.out-4609 [003] 50.324568: funcgraph_exit: 9.020 us | }
a.out-4609 [003] 50.324568: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324569: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324570: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324571: funcgraph_entry: 1.360 us | __pte_offset_map();
a.out-4609 [003] 50.324572: funcgraph_exit: 2.550 us | }
a.out-4609 [003] 50.324573: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324573: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324575: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324575: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324576: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324577: funcgraph_exit: 4.190 us | }
a.out-4609 [003] 50.324578: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324579: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324579: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324580: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324581: funcgraph_exit: + 12.130 us | }
a.out-4609 [003] 50.324582: funcgraph_exit: + 13.320 us | }
a.out-4609 [003] 50.324582: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324583: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324584: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324585: funcgraph_exit: 2.990 us | }
a.out-4609 [003] 50.324586: funcgraph_entry: 0.620 us | fault_in_kernel_space();
a.out-4609 [003] 50.324587: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324588: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324589: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324590: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324591: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324592: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324593: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324593: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324595: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324596: funcgraph_exit: 3.070 us | }
a.out-4609 [003] 50.324596: funcgraph_exit: 9.020 us | }
a.out-4609 [003] 50.324597: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324598: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324598: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324599: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324600: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324601: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324601: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324603: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324603: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324604: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324605: funcgraph_exit: 4.180 us | }
a.out-4609 [003] 50.324606: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324607: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324607: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324608: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324609: funcgraph_exit: + 11.380 us | }
a.out-4609 [003] 50.324610: funcgraph_exit: + 12.580 us | }
a.out-4609 [003] 50.324610: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324611: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324612: funcgraph_entry: 0.630 us | preempt_count_sub();
a.out-4609 [003] 50.324613: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324614: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324615: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324616: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324617: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324618: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324619: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324620: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324621: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324621: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324623: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324624: funcgraph_exit: 3.070 us | }
a.out-4609 [003] 50.324624: funcgraph_exit: 9.020 us | }
a.out-4609 [003] 50.324625: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324626: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324626: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324627: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324628: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324629: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324629: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324631: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324631: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324632: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324633: funcgraph_exit: 4.190 us | }
a.out-4609 [003] 50.324634: funcgraph_entry: 0.630 us | vmf_pte_changed();
a.out-4609 [003] 50.324635: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324635: funcgraph_entry: 0.610 us | preempt_count_sub();
a.out-4609 [003] 50.324636: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324637: funcgraph_exit: + 11.380 us | }
a.out-4609 [003] 50.324638: funcgraph_exit: + 12.570 us | }
a.out-4609 [003] 50.324638: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324639: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324640: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324641: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324642: funcgraph_entry: 0.620 us | fault_in_kernel_space();
a.out-4609 [003] 50.324644: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324645: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324645: funcgraph_entry: 0.690 us | preempt_count_add();
a.out-4609 [003] 50.324647: funcgraph_entry: 0.630 us | preempt_count_sub();
a.out-4609 [003] 50.324648: funcgraph_exit: 3.120 us | }
a.out-4609 [003] 50.324648: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324650: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324650: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324651: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324653: funcgraph_exit: 3.090 us | }
a.out-4609 [003] 50.324653: funcgraph_exit: 9.700 us | }
a.out-4609 [003] 50.324654: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324654: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324655: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324656: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324657: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324657: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324658: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324659: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324660: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324661: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324662: funcgraph_exit: 4.190 us | }
a.out-4609 [003] 50.324662: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324663: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324664: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324665: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324666: funcgraph_exit: + 11.410 us | }
a.out-4609 [003] 50.324666: funcgraph_exit: + 12.620 us | }
a.out-4609 [003] 50.324667: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324668: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324669: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324670: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324671: funcgraph_entry: 0.620 us | fault_in_kernel_space();
a.out-4609 [003] 50.324672: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324673: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324673: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324675: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324676: funcgraph_exit: 3.030 us | }
a.out-4609 [003] 50.324676: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324678: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324678: funcgraph_entry: 0.620 us | __rcu_read_lock();
a.out-4609 [003] 50.324679: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324681: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324681: funcgraph_exit: 9.040 us | }
a.out-4609 [003] 50.324682: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324682: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324683: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324684: funcgraph_entry: 0.620 us | __pte_offset_map();
a.out-4609 [003] 50.324685: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324686: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324686: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324687: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324688: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324689: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324690: funcgraph_exit: 4.190 us | }
a.out-4609 [003] 50.324690: funcgraph_entry: 0.630 us | vmf_pte_changed();
a.out-4609 [003] 50.324692: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324692: funcgraph_entry: 0.610 us | preempt_count_sub();
a.out-4609 [003] 50.324693: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324694: funcgraph_exit: + 11.430 us | }
a.out-4609 [003] 50.324694: funcgraph_exit: + 12.630 us | }
a.out-4609 [003] 50.324695: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324696: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324697: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324698: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324699: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324700: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324701: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324702: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324703: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324704: funcgraph_exit: 3.020 us | }
a.out-4609 [003] 50.324705: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324706: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324706: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324708: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324709: funcgraph_exit: 3.070 us | }
a.out-4609 [003] 50.324709: funcgraph_exit: 9.020 us | }
a.out-4609 [003] 50.324710: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324711: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324711: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324712: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324713: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324714: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324714: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324715: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324716: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324718: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324718: funcgraph_exit: 4.710 us | }
a.out-4609 [003] 50.324719: funcgraph_entry: 0.630 us | vmf_pte_changed();
a.out-4609 [003] 50.324720: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324721: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324722: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324722: funcgraph_exit: + 11.960 us | }
a.out-4609 [003] 50.324723: funcgraph_exit: + 13.170 us | }
a.out-4609 [003] 50.324724: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324724: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324725: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324727: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324728: funcgraph_entry: 0.610 us | fault_in_kernel_space();
a.out-4609 [003] 50.324729: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324730: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324730: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324732: funcgraph_entry: 0.630 us | preempt_count_sub();
a.out-4609 [003] 50.324733: funcgraph_exit: 3.030 us | }
a.out-4609 [003] 50.324733: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324735: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324735: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324736: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324738: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324738: funcgraph_exit: 9.040 us | }
a.out-4609 [003] 50.324739: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324739: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324740: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324741: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324742: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324742: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324743: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324744: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324745: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324746: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324747: funcgraph_exit: 4.190 us | }
a.out-4609 [003] 50.324747: funcgraph_entry: 0.630 us | vmf_pte_changed();
a.out-4609 [003] 50.324748: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324749: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324750: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324751: funcgraph_exit: + 11.410 us | }
a.out-4609 [003] 50.324751: funcgraph_exit: + 12.610 us | }
a.out-4609 [003] 50.324752: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324753: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324754: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324755: funcgraph_exit: 2.990 us | }
a.out-4609 [003] 50.324756: funcgraph_entry: 0.620 us | fault_in_kernel_space();
a.out-4609 [003] 50.324757: funcgraph_entry: | lock_mm_and_find_vma() {
a.out-4609 [003] 50.324758: funcgraph_entry: | down_read_trylock() {
a.out-4609 [003] 50.324758: funcgraph_entry: 0.620 us | preempt_count_add();
a.out-4609 [003] 50.324760: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324761: funcgraph_exit: 3.010 us | }
a.out-4609 [003] 50.324761: funcgraph_entry: 0.610 us | __cond_resched();
a.out-4609 [003] 50.324763: funcgraph_entry: | find_vma() {
a.out-4609 [003] 50.324763: funcgraph_entry: 0.610 us | __rcu_read_lock();
a.out-4609 [003] 50.324764: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324766: funcgraph_exit: 3.080 us | }
a.out-4609 [003] 50.324766: funcgraph_exit: 9.020 us | }
a.out-4609 [003] 50.324767: funcgraph_entry: | handle_mm_fault() {
a.out-4609 [003] 50.324767: funcgraph_entry: | __handle_mm_fault() {
a.out-4609 [003] 50.324768: funcgraph_entry: | pte_offset_map_nolock() {
a.out-4609 [003] 50.324769: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324770: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324770: funcgraph_entry: | __pte_offset_map_lock() {
a.out-4609 [003] 50.324771: funcgraph_entry: 0.610 us | __pte_offset_map();
a.out-4609 [003] 50.324772: funcgraph_entry: | _raw_spin_lock() {
a.out-4609 [003] 50.324773: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324774: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324775: funcgraph_exit: 4.180 us | }
a.out-4609 [003] 50.324775: funcgraph_entry: 0.620 us | vmf_pte_changed();
a.out-4609 [003] 50.324776: funcgraph_entry: | _raw_spin_unlock() {
a.out-4609 [003] 50.324777: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324778: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324779: funcgraph_exit: + 11.370 us | }
a.out-4609 [003] 50.324779: funcgraph_exit: + 12.560 us | }
a.out-4609 [003] 50.324780: funcgraph_entry: | up_read() {
a.out-4609 [003] 50.324780: funcgraph_entry: 0.610 us | preempt_count_add();
a.out-4609 [003] 50.324782: funcgraph_entry: 0.620 us | preempt_count_sub();
a.out-4609 [003] 50.324783: funcgraph_exit: 3.000 us | }
a.out-4609 [003] 50.324784: funcgraph_exit: ! 622.580 us | }
a.out-4609 [003] 50.324785: funcgraph_entry: 0.720 us | eth_type_trans();
a.out-4609 [003] 50.324786: funcgraph_entry: | __skb_flow_dissect() {
a.out-4609 [003] 50.324787: funcgraph_entry: 0.620 us | __rcu_read_lock();
a.out-4609 [003] 50.324788: funcgraph_entry: 0.620 us | __rcu_read_unlock();
a.out-4609 [003] 50.324790: funcgraph_exit: 4.340 us | }
a.out-4609 [003] 50.324791: funcgraph_entry: 0.640 us | __local_bh_disable_ip();
a.out-4609 [003] 50.324793: funcgraph_entry: 0.660 us | __rcu_read_lock();
a.out-4609 [003] 50.324794: funcgraph_entry: | do_xdp_generic() {
a.out-4609 [003] 50.324795: funcgraph_entry: | pskb_expand_head() {
a.out-4609 [003] 50.324796: funcgraph_entry: | kmalloc_reserve() {
a.out-4609 [003] 50.324796: funcgraph_entry: 0.610 us | kmalloc_size_roundup();
a.out-4609 [003] 50.324797: funcgraph_entry: | __kmalloc_node_track_caller() {
a.out-4609 [003] 50.324798: funcgraph_entry: | __kmalloc_large_node() {
a.out-4609 [003] 50.324799: funcgraph_entry: | __alloc_pages() {
a.out-4609 [003] 50.324799: funcgraph_entry: 0.600 us | should_fail_alloc_page();
a.out-4609 [003] 50.324800: funcgraph_entry: | get_page_from_freelist() {
a.out-4609 [003] 50.324801: funcgraph_entry: 0.640 us | __zone_watermark_ok();
a.out-4609 [003] 50.324802: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.324803: funcgraph_entry: 0.600 us | preempt_count_add();
a.out-4609 [003] 50.324804: funcgraph_exit: 1.810 us | }
a.out-4609 [003] 50.324805: funcgraph_entry: 0.620 us | __mod_zone_page_state();
a.out-4609 [003] 50.324806: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324807: funcgraph_entry: 0.610 us | preempt_count_sub();
a.out-4609 [003] 50.324808: funcgraph_exit: 1.800 us | }
a.out-4609 [003] 50.324809: funcgraph_entry: | prep_new_page() {
a.out-4609 [003] 50.324811: funcgraph_entry: 1.040 us | prep_compound_page();
a.out-4609 [003] 50.324812: funcgraph_exit: 3.560 us | }
a.out-4609 [003] 50.324813: funcgraph_exit: + 12.300 us | }
a.out-4609 [003] 50.324813: funcgraph_exit: + 14.700 us | }
a.out-4609 [003] 50.324814: funcgraph_entry: 0.640 us | mod_node_page_state();
a.out-4609 [003] 50.324815: funcgraph_exit: + 17.120 us | }
a.out-4609 [003] 50.324816: funcgraph_exit: + 18.310 us | }
a.out-4609 [003] 50.324816: funcgraph_exit: + 20.700 us | }
a.out-4609 [003] 50.324822: funcgraph_entry: | skb_free_head() {
a.out-4609 [003] 50.324822: funcgraph_entry: | skb_kfree_head() {
a.out-4609 [003] 50.324823: funcgraph_entry: | kfree() {
a.out-4609 [003] 50.324824: funcgraph_entry: | free_large_kmalloc() {
a.out-4609 [003] 50.324824: funcgraph_entry: 0.620 us | mod_node_page_state();
a.out-4609 [003] 50.324825: funcgraph_entry: | __free_pages() {
a.out-4609 [003] 50.324826: funcgraph_entry: | __free_pages_ok() {
a.out-4609 [003] 50.324827: funcgraph_entry: 0.620 us | free_tail_page_prepare();
a.out-4609 [003] 50.324828: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324829: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324830: funcgraph_entry: 0.620 us | free_tail_page_prepare();
a.out-4609 [003] 50.324832: funcgraph_entry: 0.620 us | free_tail_page_prepare();
a.out-4609 [003] 50.324833: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324834: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324835: funcgraph_entry: 0.620 us | free_tail_page_prepare();
a.out-4609 [003] 50.324836: funcgraph_entry: 0.620 us | free_tail_page_prepare();
a.out-4609 [003] 50.324838: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324839: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324840: funcgraph_entry: 0.620 us | free_tail_page_prepare();
a.out-4609 [003] 50.324841: funcgraph_entry: 0.620 us | free_tail_page_prepare();
a.out-4609 [003] 50.324842: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324844: funcgraph_entry: 0.610 us | free_tail_page_prepare();
a.out-4609 [003] 50.324845: funcgraph_entry: | _raw_spin_lock_irqsave() {
a.out-4609 [003] 50.324846: funcgraph_entry: 0.600 us | preempt_count_add();
a.out-4609 [003] 50.324847: funcgraph_exit: 1.820 us | }
a.out-4609 [003] 50.324847: funcgraph_entry: 0.610 us | __mod_zone_page_state();
a.out-4609 [003] 50.324849: funcgraph_entry: | _raw_spin_unlock_irqrestore() {
a.out-4609 [003] 50.324850: funcgraph_entry: 0.610 us | preempt_count_sub();
a.out-4609 [003] 50.324851: funcgraph_exit: 1.790 us | }
a.out-4609 [003] 50.324851: funcgraph_exit: + 25.120 us | }
a.out-4609 [003] 50.324852: funcgraph_exit: + 26.370 us | }
a.out-4609 [003] 50.324852: funcgraph_exit: + 28.790 us | }
a.out-4609 [003] 50.324853: funcgraph_exit: + 29.990 us | }
a.out-4609 [003] 50.324853: funcgraph_exit: + 31.180 us | }
a.out-4609 [003] 50.324854: funcgraph_exit: + 32.460 us | }
a.out-4609 [003] 50.324855: funcgraph_entry: 0.660 us | skb_headers_offset_update();
a.out-4609 [003] 50.324856: funcgraph_exit: + 61.220 us | }
a.out-4609 [003] 50.324857: funcgraph_entry: | bpf_prog_run_generic_xdp() {
a.out-4609 [003] 50.324858: funcgraph_entry: | __bpf_prog_run32() {
a.out-4609 [003] 50.324858: funcgraph_entry: | ___bpf_prog_run() {
a.out-4609 [003] 50.324859: funcgraph_entry: | bpf_xdp_adjust_tail() {
a.out-4609 [003] 50.324860: funcgraph_entry: | __warn_printk() {
a.out-4609 [003] 50.324861: funcgraph_entry: | _printk() {
[truncated some long traces for printk]