On Thu, 03 Dec 2015 10:36:18 -0800
"Shi, Yang" <yang.shi@xxxxxxxxxx> wrote:
called directly that calls these functions internally and the tracepoint
can trap the return value.
This will incur more changes in other subsystems (futex, kvm, etc), I'm
not sure if it is worth making such changes to get return value.
No, it wouldn't require any changes outside of this.
-long __get_user_pages(..)
+static long __get_user_pages_internal(..)
{
[..]
}
+
+long __get_user_pages(..)
+{
+ long ret;
+ ret = __get_user_pages_internal(..);
+ trace_get_user_pages(.., ret)
+}
I can probably make function_graph tracer give return values, although
it will give a return value for void functions as well. And it may give
long long returns for int returns that may have bogus data in the
higher bits.
If the return value requirement is not limited to gup, the approach
sounds more reasonable.
Others have asked about it. Maybe I should do it.
-- Steve