On Thu, Feb 08, 2024 at 08:37:29AM +1100, Dave Chinner wrote: > ftrace using the function_graph tracer will emit the return values > of the functions if you use it with the 'funcgraph-retval' option. OK, but that may not be fine grained enough. Why is mmap() returning -ENOMEM? unsigned long do_mmap(struct file *file, unsigned long addr, ... /* Careful about overflows.. */ len = PAGE_ALIGN(len); if (!len) return -ENOMEM; ... /* Too many mappings? */ if (mm->map_count > sysctl_max_map_count) return -ENOMEM; So it can distinguish between mmap() returning ENOMEM because get_unmapped_area() returned ENOMEM and do_mmap() returning ENOMEM of its own accord (right?), but it can't tell you which of the above two cases you hit. Or can it?