• Vineet Gupta's avatar
    ARC: dw2 unwind: enable cfi pseudo ops in string lib · 86effd0d
    Vineet Gupta authored
    This uses a new set of annoations viz. ENTRY_CFI/END_CFI to enabel cfi
    ops generation.
    
    Note that we didn't change the normal ENTRY/EXIT as we don't actually
    want unwind info in the trap/exception/interrutp handlers which use
    these, as unwinder then gets confused (it keeps recursing vs. stopping).
    Semantically these are leaf routines and unwinding should stop when it
    hits those routines.
    
    Before
    ------
    
        28.52%     1.19%          9929  hackbench  libuClibc-1.0.17.so   [.] __write_nocancel
                |
                ---__write_nocancel
                   |--8.95%--EV_Trap
                   |           --8.25%--sys_write
                   |                     |--3.93%--sock_write_iter
         ...
                   |--2.62%--memset   <==== [LEAF entry as no unwind info]
                             ^^^^^^
    
    After
    -----
    
        29.46%     1.24%         13622  hackbench  libuClibc-1.0.17.so   [.] __write_nocancel
                |
                ---__write_nocancel
                   |--9.31%--EV_Trap
                   |           --8.62%--sys_write
                   |                     |--4.17%--sock_write_iter
         ...
                   |--6.19%--sys_write
                   |           --6.19%--sock_write_iter
                   |                     unix_stream_sendmsg
                   |                     |--1.62%--sock_alloc_send_pskb
                   |                     |--0.89%--sock_def_readable
                   |                     |--0.88%--_raw_spin_unlock_irqrestore
                   |                     |--0.69%--memset
                   |                     |         ^^^^^^     <==== [now in proper callframe]
                   |                     |
                   |                      --0.52%--skb_copy_datagram_from_iter
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    86effd0d
strlen.S 1.44 KB