)]}'
{
  "commit": "e4a9ea5ee7c8812a7bf0c3fb725ceeaa3d4c2fcc",
  "tree": "1b25668508fa302a6ada053c895cd55727f798f1",
  "parents": [
    "9ffdc6c37df131f89d52001e0ef03091b158826f"
  ],
  "author": {
    "name": "Steven Rostedt",
    "email": "srostedt@redhat.com",
    "time": "Thu Jan 27 09:15:30 2011 -0500"
  },
  "committer": {
    "name": "Steven Rostedt",
    "email": "rostedt@goodmis.org",
    "time": "Wed Feb 02 21:37:13 2011 -0500"
  },
  "message": "tracing: Replace trace_event struct array with pointer array\n\nCurrently the trace_event structures are placed in the _ftrace_events\nsection, and at link time, the linker makes one large array of all\nthe trace_event structures. On boot up, this array is read (much like\nthe initcall sections) and the events are processed.\n\nThe problem is that there is no guarantee that gcc will place complex\nstructures nicely together in an array format. Two structures in the\nsame file may be placed awkwardly, because gcc has no clue that they\nare suppose to be in an array.\n\nA hack was used previous to force the alignment to 4, to pack the\nstructures together. But this caused alignment issues with other\narchitectures (sparc).\n\nInstead of packing the structures into an array, the structures\u0027 addresses\nare now put into the _ftrace_event section. As pointers are always the\nnatural alignment, gcc should always pack them tightly together\n(otherwise initcall, extable, etc would also fail).\n\nBy having the pointers to the structures in the section, we can still\niterate the trace_events without causing unnecessary alignment problems\nwith other architectures, or depending on the current behaviour of\ngcc that will likely change in the future just to tick us kernel developers\noff a little more.\n\nThe _ftrace_event section is also moved into the .init.data section\nas it is now only needed at boot up.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6ebb81030d2d109ce9f99069b130c29a39ccfa11",
      "old_mode": 33188,
      "old_path": "include/asm-generic/vmlinux.lds.h",
      "new_id": "f53708be95eb30fa3f2a9096c26273228ac159ac",
      "new_mode": 33188,
      "new_path": "include/asm-generic/vmlinux.lds.h"
    },
    {
      "type": "modify",
      "old_id": "e7c6385c668394240e237f16a92286d2f32aed5e",
      "old_mode": 33188,
      "old_path": "include/linux/module.h",
      "new_id": "7695a303bb554e0840c8bf05563cb01beeb601a7",
      "new_mode": 33188,
      "new_path": "include/linux/module.h"
    },
    {
      "type": "modify",
      "old_id": "18cd0684fc4ec4bb2e6fb52ed6a7838737688c17",
      "old_mode": 33188,
      "old_path": "include/linux/syscalls.h",
      "new_id": "45508fec366da79e243ecd59abbcbc6ec6ad2661",
      "new_mode": 33188,
      "new_path": "include/linux/syscalls.h"
    },
    {
      "type": "modify",
      "old_id": "e16610c208c954541587684c8af64584b01dbfda",
      "old_mode": 33188,
      "old_path": "include/trace/ftrace.h",
      "new_id": "3e68366d485af387a1f894bec7e15f491484d3a3",
      "new_mode": 33188,
      "new_path": "include/trace/ftrace.h"
    },
    {
      "type": "modify",
      "old_id": "35fde09b81dee7f386c111766b1fdbefac2d7414",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace_events.c",
      "new_id": "5f499e0438a4f9137b66055331cb8c3b048138ed",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace_events.c"
    },
    {
      "type": "modify",
      "old_id": "4b74d71705c0d2be2a9adf67246823584bd34fcd",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace_export.c",
      "new_id": "bbeec31e0ae3f03144684cfd5039a138497328e0",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace_export.c"
    }
  ]
}
