On Wed, Jun 08, 2016 at 02:39:19PM +0800, Ganesh Mahendran wrote: <snip> > zsmalloc is not only used by zram, but also zswap. Maybe > others in the future. > > I tried to use function_graph. It seems there are too much log > printed: > ------ > root@leo-test:/sys/kernel/debug/tracing# cat trace > # tracer: function_graph > # > # CPU DURATION FUNCTION CALLS > # | | | | | | | > 2) | zs_compact [zsmalloc]() { > 2) | /* zsmalloc_compact_start: pool zram0 */ > 2) 0.889 us | _raw_spin_lock(); > 2) 0.896 us | isolate_zspage [zsmalloc](); > 2) 0.938 us | _raw_spin_lock(); > 2) 0.875 us | isolate_zspage [zsmalloc](); > 2) 0.942 us | _raw_spin_lock(); > 2) 0.962 us | isolate_zspage [zsmalloc](); > ... > 2) 0.879 us | insert_zspage [zsmalloc](); > 2) 4.520 us | } > 2) 0.975 us | _raw_spin_lock(); > 2) 0.890 us | isolate_zspage [zsmalloc](); > 2) 0.882 us | _raw_spin_lock(); > 2) 0.894 us | isolate_zspage [zsmalloc](); > 2) | /* zsmalloc_compact_end: pool zram0: 0 pages > compacted(total 0) */ > 2) # 1351.241 us | } > ------ > => 1351.241 us used > > And it seems the overhead of function_graph is bigger than trace event. > > bash-3682 [002] .... 1439.180646: zsmalloc_compact_start: pool zram0 > bash-3682 [002] .... 1439.180659: zsmalloc_compact_end: pool zram0: > 0 pages compacted(total 0) > => 13 us > 1351.241 us You could use set_ftrace_filter to cut out. To introduce new event trace to get a elasped time, it's pointless, I think. It should have more like pool name you mentioned. Like saying other thread, It would be better to show [pool name, compact size_class, the number of object moved, the number of freed page], IMO. Thanks. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>