arge1 on TL WDR3600
Adrian Chadd
adrian.chadd at gmail.com
Wed Oct 28 04:47:57 UTC 2015
So, I fired up hwpmc.
uncomment hwpmc/hwpmc_mips74k/HWPMC_HOOKS in the relevant kernel file
(AR934X_BASE, QCA955X_BASE).
pmc just works(tm).
Here's the output from doing iperf across the interfaces; it's doing ~
220mbit of IP routing:
PMC: [CYCLES] Samples: 45578 (100.0%) , 0 unresolved
%SAMP IMAGE FUNCTION CALLERS
5.1 kernel arge_intr
4.8 kernel ip_forward
4.3 kernel memcpy
4.0 kernel _bus_dmamap_sync
3.8 libpmc.so. pmclog_read
3.6 kernel ip_input
3.4 kernel _bus_dmamap_load_buf
3.3 kernel ip_output
2.9 kernel ether_nh_input
2.7 kernel uma_zfree_arg
2.7 kernel mb_ctor_pack
2.3 kernel qca955x_chip_ddr_flu
2.2 kernel if_transmit
2.2 kernel __rw_rlock
2.2 kernel mipsNN_pdcache_inv_r
2.2 kernel _bus_dmamap_unload
2.2 kernel netisr_dispatch_src
2.2 kernel ether_output
1.8 kernel bridge_input
1.6 kernel arge_start_locked
.. I dunno why arge_intr() is triggering so much but yeah, that should
be fixed. that memcpy() shows up in bridging as well, so it's either
an artefact from sampling or it's actually some copy in the packet
processing or busdma path that needs to be addressed.
-adrian
More information about the freebsd-mips
mailing list