CPU underload

Eugene Grosbein eugen at grosbein.net
Sat Oct 31 08:48:56 UTC 2015


Hi!

I'm trying to get familiar with PMC and uncover reason of MIPS32
CPU being underloaded - about 50% - while performing traffic forwarding.

It seems, kernel code abuses DELAY function as "pmcstat -S instructions -T" shows:

%SAMP IMAGE      FUNCTION             CALLERS
  6.3 kernel     spinlock_exit
  5.3 kernel     ip_fastforward
  4.4 kernel     memcpy
  4.2 kernel     _libmd_SHA256_Transf
  3.3 kernel     _bus_dmamap_load_buf
  3.3 kernel     DELAY
  3.3 kernel     arge_start_locked
  3.1 kernel     bzero
  3.0 kernel     arge_intr
  2.8 kernel     _bus_dmamap_sync
  2.8 kernel     ether_nh_input
  2.6 kernel     ether_output
  2.5 kernel     if_inc_counter
  2.3 kernel     critical_enter
  2.2 kernel     bus_dmamap_sync_buf
  2.0 kernel     critical_exit
  1.8 kernel     _rw_runlock_cookie
  1.7 kernel     __rw_rlock
  1.6 kernel     rn_match
  1.5 kernel     mipsNN_pdcache_inv_r
  1.5 kernel     _rm_rlock
  1.4 kernel     _bus_dmamap_load_mbu
  1.4 kernel     m_adj
  1.3 kernel     arge_newbuf
  1.3 kernel     mipsNN_pdcache_wb_ra
  1.3 kernel     bcmp
  1.2 kernel     _bus_dmamap_unload
  1.2 kernel     uma_zfree_arg
  1.2 libpmc.so. pmclog_read
  1.2 kernel     if_transmit
  1.1 kernel     arpresolve
  1.1 kernel     arge_start
  1.0 kernel     netisr_dispatch_src
  1.0 kernel     ether_demux
  0.9 kernel     _rm_runlock
  0.9 kernel     uma_zalloc_arg
  0.9 kernel     generic_bs_barrier
CONVERSION STATISTICS:input
 #samples/total                           75152
 #samples/unknown-function                2180

And why so heavy usage of _libmd_SHA256_Transf ?


More information about the freebsd-mips mailing list