On 07/29/2016 06:00 AM, Mel Gorman wrote: > On Fri, Jul 29, 2016 at 10:13:40AM +1000, Dave Chinner wrote: >> On Thu, Jul 28, 2016 at 11:25:13AM +0100, Mel Gorman wrote: >>> On Thu, Jul 28, 2016 at 03:49:47PM +1000, Dave Chinner wrote: >>>> Seems you're all missing the obvious. >>>> >>>> Add a tracepoint for a shrinker callback that includes a "name" >>>> field, have the shrinker callback fill it out appropriately. e.g >>>> in the superblock shrinker: >>>> >>>> trace_shrinker_callback(shrinker, shrink_control, sb->s_type->name); >>>> >>> >>> That misses capturing the latency of the call unless there is a begin/end >>> tracepoint. >> >> Sure, but I didn't see that in the email talking about how to add a >> name. Even if it is a requirement, it's not necessary as we've >> already got shrinker runtime measurements from the >> trace_mm_shrink_slab_start and trace_mm_shrink_slab_end trace >> points. With the above callback event, shrinker call runtime is >> simply the time between the calls to the same shrinker within >> mm_shrink_slab start/end trace points. >> > > Fair point. It's not that hard to correlate them. True but the scan_objects callback is only called if we have >batch_size objects. It's possible to accumulate quite some time without calling the callback and being able to obtain the s_type->name. So this time all gets associated with just super_cache_scan. -- 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>