)]}'
{
  "commit": "ea4e2bc4d9f7370e57a343ccb5e7c0ad3222ec3c",
  "tree": "64a4a1d9d7d3de0695cb2e8c7161886ab660e311",
  "parents": [
    "b29144c317fb748dae6d72c0f88eda9d43165b8d"
  ],
  "author": {
    "name": "Steven Rostedt",
    "email": "srostedt@redhat.com",
    "time": "Wed Dec 03 15:36:57 2008 -0500"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Thu Dec 04 09:09:34 2008 +0100"
  },
  "message": "ftrace: graph of a single function\n\nThis patch adds the file:\n\n   /debugfs/tracing/set_graph_function\n\nwhich can be used along with the function graph tracer.\n\nWhen this file is empty, the function graph tracer will act as\nusual. When the file has a function in it, the function graph\ntracer will only trace that function.\n\nFor example:\n\n # echo blk_unplug \u003e /debugfs/tracing/set_graph_function\n # cat /debugfs/tracing/trace\n [...]\n ------------------------------------------\n | 2)  make-19003  \u003d\u003e  kjournald-2219\n ------------------------------------------\n\n 2)               |  blk_unplug() {\n 2)               |    dm_unplug_all() {\n 2)               |      dm_get_table() {\n 2)      1.381 us |        _read_lock();\n 2)      0.911 us |        dm_table_get();\n 2)      1. 76 us |        _read_unlock();\n 2) +   12.912 us |      }\n 2)               |      dm_table_unplug_all() {\n 2)               |        blk_unplug() {\n 2)      0.778 us |          generic_unplug_device();\n 2)      2.409 us |        }\n 2)      5.992 us |      }\n 2)      0.813 us |      dm_table_put();\n 2) +   29. 90 us |    }\n 2) +   34.532 us |  }\n\nYou can add up to 32 functions into this file. Currently we limit it\nto 32, but this may change with later improvements.\n\nTo add another function, use the append \u0027\u003e\u003e\u0027:\n\n  # echo sys_read \u003e\u003e /debugfs/tracing/set_graph_function\n  # cat /debugfs/tracing/set_graph_function\n  blk_unplug\n  sys_read\n\nUsing the \u0027\u003e\u0027 will clear out the function and write anew:\n\n  # echo sys_write \u003e /debug/tracing/set_graph_function\n  # cat /debug/tracing/set_graph_function\n  sys_write\n\nNote, if you have function graph running while doing this, the small\ntime between clearing it and updating it will cause the graph to\nrecord all functions. This should not be an issue because after\nit sets the filter, only those functions will be recorded from then on.\nIf you need to only record a particular function then set this\nfile first before starting the function graph tracer. In the future\nthis side effect may be corrected.\n\nThe set_graph_function file is similar to the set_ftrace_filter but\nit does not take wild cards nor does it allow for more than one\nfunction to be set with a single write. There is no technical reason why\nthis is the case, I just do not have the time yet to implement that.\n\nNote, dynamic ftrace must be enabled for this to appear because it\nuses the dynamic ftrace records to match the name to the mcount\ncall sites.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "469ceb3e85ba4e8cdda03299f718a7430785e59a",
      "old_mode": 33188,
      "old_path": "include/linux/ftrace.h",
      "new_id": "b295d3106bfe3540aab66d0c50e54355a0c8a425",
      "new_mode": 33188,
      "new_path": "include/linux/ftrace.h"
    },
    {
      "type": "modify",
      "old_id": "2d0a93c3122837ea55d8a51dd4113313a0181629",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "4c152e0acc9e7890cf65bb7851b946b4411e9ccc",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "65b9e863056b4fc7f7fa6ba8c228045d18fb0a31",
      "old_mode": 33188,
      "old_path": "kernel/trace/ftrace.c",
      "new_id": "b17a30350f06072fb307b03c7ba2d586e5d7f0bd",
      "new_mode": 33188,
      "new_path": "kernel/trace/ftrace.c"
    },
    {
      "type": "modify",
      "old_id": "8b6409a62b54b7c53ebeba915dbcf95826b97ad3",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace.c",
      "new_id": "710b39acd81b94d7040dbbfde75814510ac85f28",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace.c"
    },
    {
      "type": "modify",
      "old_id": "0565ae9a2210a05c898d1ca4b2384fca1be72b7c",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace.h",
      "new_id": "41f026bfc9ed6e622a901fc2b794dd70efa6981f",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace.h"
    }
  ]
}
