)]}'
{
  "commit": "2271048d1b3b0aabf83d25b29c20646dcabedc05",
  "tree": "4d20fa61a1d6fc2542b283b45c2a7a374fb2c3f5",
  "parents": [
    "a3d3203e4bb40f253b1541e310dc0f9305be7c84"
  ],
  "author": {
    "name": "Steven Rostedt",
    "email": "srostedt@redhat.com",
    "time": "Thu Mar 18 17:54:19 2010 -0400"
  },
  "committer": {
    "name": "Steven Rostedt",
    "email": "rostedt@goodmis.org",
    "time": "Thu Mar 18 23:11:35 2010 -0400"
  },
  "message": "ring-buffer: Do 8 byte alignment for 64 bit that can not handle 4 byte align\n\nThe ring buffer uses 4 byte alignment while recording events into the\nbuffer, even on 64bit machines. This saves space when there are lots\nof events being recorded at 4 byte boundaries.\n\nThe ring buffer has a zero copy method to write into the buffer, with\nthe reserving of space and then committing it. This may cause problems\nwhen writing an 8 byte word into a 4 byte alignment (not 8). For x86 and\nPPC this is not an issue, but on some architectures this would cause an\nout-of-alignment exception.\n\nThis patch uses CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to determine\nif it is OK to use 4 byte alignments on 64 bit machines. If it is not,\nit forces the ring buffer event header to be 8 bytes and not 4,\nand will align the length of the data to be 8 byte aligned.\nThis keeps the data payload at 8 byte alignments and will allow these\nmachines to run without issue.\n\nThe trick to this is that the header can be either 4 bytes or 8 bytes\ndepending on the length of the data payload. The 4 byte header\nhas a length field that supports up to 112 bytes. If the length of\nthe data is more than 112, the length field is set to zero, and the actual\nlength is stored in the next 4 bytes after the header.\n\nWhen CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set, the code forces\nzero in the 4 byte header forcing the length to be stored in the 4 byte\narray, even with a small data load. It also forces the length of the\ndata load to be 8 byte aligned. The combination of these two guarantee\nthat the data is always at 8 byte alignment.\n\nTested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n           (on sparc64)\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.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": "05a9f83b8819c39dcc03c76f737eaaf5ae7bbfe7",
      "old_mode": 33188,
      "old_path": "kernel/trace/ring_buffer.c",
      "new_id": "d1187ef20caf914048fb897dc5c63f1b302edbf6",
      "new_mode": 33188,
      "new_path": "kernel/trace/ring_buffer.c"
    }
  ]
}
