)]}'
{
  "commit": "48d68b20d00865035b8b65e69af343d0f53fac9d",
  "tree": "eca27c0cf9486ae83c7e3193709abae099d1f019",
  "parents": [
    "222658e08f72cd539d01f3aabdc258c596f487e2"
  ],
  "author": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Tue Dec 02 00:20:39 2008 +0100"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Tue Dec 02 09:47:48 2008 +0100"
  },
  "message": "tracing/function-graph-tracer: support for x86-64\n\nImpact: extend and enable the function graph tracer to 64-bit x86\n\nThis patch implements the support for function graph tracer under x86-64.\nBoth static and dynamic tracing are supported.\n\nThis causes some small CPP conditional asm on arch/x86/kernel/ftrace.c I\nwanted to use probe_kernel_read/write to make the return address\nsaving/patching code more generic but it causes tracing recursion.\n\nThat would be perhaps useful to implement a notrace version of these\nfunction for other archs ports.\n\nNote that arch/x86/process_64.c is not traced, as in X86-32. I first\nthought __switch_to() was responsible of crashes during tracing because I\nbelieved current task were changed inside but that\u0027s actually not the\ncase (actually yes, but not the \"current\" pointer).\n\nSo I will have to investigate to find the functions that harm here, to\nenable tracing of the other functions inside (but there is no issue at\nthis time, while process_64.c stays out of -pg flags).\n\nA little possible race condition is fixed inside this patch too. When the\ntracer allocate a return stack dynamically, the current depth is not\ninitialized before but after. An interrupt could occur at this time and,\nafter seeing that the return stack is allocated, the tracer could try to\ntrace it with a random uninitialized depth. It\u0027s a prevention, even if I\nhadn\u0027t problems with it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0842b1127684aecb42c73491329619e6d335abb2",
      "old_mode": 33188,
      "old_path": "arch/x86/Kconfig",
      "new_id": "45c86fb941326584f167ca081d4f12ba30c1cd21",
      "new_mode": 33188,
      "new_path": "arch/x86/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "64939a0c39865ee166eec464d2af065a56bf8c5a",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/Makefile",
      "new_id": "d274425fb0766d1edfbf0fa8db95b2c1fd21195e",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/Makefile"
    },
    {
      "type": "modify",
      "old_id": "08aa6b10933cd74232a3f406f8e6f706a294c245",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/entry_64.S",
      "new_id": "2aa0526ac30e9f8c7936c31f62959aedc39b01ff",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/entry_64.S"
    },
    {
      "type": "modify",
      "old_id": "7ef914e6a2f645e81c78d650403ea4a310e4c3e6",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/ftrace.c",
      "new_id": "58832478b94e53af0437ef527f4f22ea9d54ea40",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/ftrace.c"
    },
    {
      "type": "modify",
      "old_id": "08b536a2614ed62faa562be542f1b3bb67232a00",
      "old_mode": 33188,
      "old_path": "kernel/trace/ftrace.c",
      "new_id": "f724996275251faf76e9551032ac6a0bc19dbaf2",
      "new_mode": 33188,
      "new_path": "kernel/trace/ftrace.c"
    }
  ]
}
