)]}'
{
  "commit": "a14a07b8018b714e03a39ff2180c66e307ef4238",
  "tree": "7c4b9249f862969b80b74e5e11e56480b0e3d15c",
  "parents": [
    "d3e75ff14bc1453c4762428395aac9953a023efc"
  ],
  "author": {
    "name": "Shaohua Li",
    "email": "shaohua.li@intel.com",
    "time": "Fri Jan 09 11:29:49 2009 +0800"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Wed Jan 14 12:11:31 2009 +0100"
  },
  "message": "ftrace, ia64: IA64 dynamic ftrace support\n\nIA64 dynamic ftrace support.\nThe original _mcount stub for each function is like:\n\talloc r40\u003dar.pfs,12,8,0\n\tmov r43\u003dr0;;\n\tmov r42\u003db0\n\tmov r41\u003dr1\n\tnop.i 0x0\n\tbr.call.sptk.many b0 \u003d _mcount;;\n\nThe patch convert it to below for nop:\n\t[MII] nop.m 0x0\n\tmov r3\u003dip\n\tnop.i 0x0\n\t[MLX] nop.m 0x0\n\tnop.x 0x0;;\nThis isn\u0027t completely nop, as there is one instuction \u0027mov r3\u003dip\u0027, but\nit should be light and harmless for code follow it.\n\nAnd below is for call\n\t[MII] nop.m 0x0\n\tmov r3\u003dip\n\tnop.i 0x0\n\t[MLX] nop.m 0x0\n\tbrl.many .;;\nIn this way, only one instruction is changed to convert code between nop\nand call. This should meet dyn-ftrace\u0027s requirement.\nBut this requires CPU support brl instruction, so dyn-ftrace isn\u0027t\nsupported for old Itanium system. Assume there are quite few such old\nsystem running.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\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": "b992ba447c41d2d3e8321af08daad72e42bb18b4",
      "old_mode": 33188,
      "old_path": "arch/ia64/Kconfig",
      "new_id": "e20c1d45930a0e4e37c3eea7b888d2d5c6d8eec4",
      "new_mode": 33188,
      "new_path": "arch/ia64/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "48694b3ba5a837a7c7edc6754a9777ac48323c94",
      "old_mode": 33188,
      "old_path": "arch/ia64/include/asm/ftrace.h",
      "new_id": "d20db3c2a656719cc44a3ee3a9559737234c7a4b",
      "new_mode": 33188,
      "new_path": "arch/ia64/include/asm/ftrace.h"
    },
    {
      "type": "modify",
      "old_id": "c381ea9548924149835ba223f758729dea3ebc03",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/Makefile",
      "new_id": "ab6e7ec0bba39714011fec0b54cb9052bacda8bc",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/Makefile"
    },
    {
      "type": "modify",
      "old_id": "c2f7d798e2a5bccce3a4f464ff61759c03945966",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/entry.S",
      "new_id": "e0be92a6abb01ad1e5bc12a467e5b379c3047662",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/entry.S"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7fc8c961b1f7f2291b5cc25d1e2a4f7250cc41a3",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/ftrace.c"
    }
  ]
}
