)]}'
{
  "log": [
    {
      "commit": "96e3e18eed3b48f6d4377dee0326a106e8a04569",
      "tree": "d6e4d66ec415ffc934930f32ed62cebe403e9a29",
      "parents": [
        "9965a5d5a5aab575f995ba58dc80285aa0f6ecbf"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Jul 31 00:38:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:39 2007 -0700"
      },
      "message": "lib: move kasprintf to a separate file\n\nkasprintf pulls in kmalloc which proved to be fatal for at least\nbootimage target on alpha.\nMove it to a separate file so only users of kasprintf are exposed\nto the dependency on kmalloc.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Meelis Roos \u003cmroos@linux.ee\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Jay Estabrook \u003cjay.estabrook@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4277eedd7908a0ca8b66fad46ee76b0ad96e6ef2",
      "tree": "88780b40c23883af5e9958a7f397f23ff5619ff7",
      "parents": [
        "b39a734097d5095d63eb9c709a6aaf965633bb01"
      ],
      "author": {
        "name": "Denis Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Jul 15 23:41:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:52 2007 -0700"
      },
      "message": "vsprintf.c: optimizing, part 2: base 10 conversion speedup, v2\n\nOptimize integer-to-string conversion in vsprintf.c for base 10.  This is\nby far the most used conversion, and in some use cases it impacts\nperformance.  For example, top reads /proc/$PID/stat for every process, and\nwith 4000 processes decimal conversion alone takes noticeable time.\n\nUsing code from\n\nhttp://www.cs.uiowa.edu/~jones/bcd/decimal.html\n(with permission from the author, Douglas W. Jones)\n\nbinary-to-decimal-string conversion is done in groups of five digits at\nonce, using only additions/subtractions/shifts (with -O2; -Os throws in\nsome multiply instructions).\n\nOn i386 arch gcc 4.1.2 -O2 generates ~500 bytes of code.\n\nThis patch is run tested. Userspace benchmark/test is also attached.\nI tested it on PIII and AMD64 and new code is generally ~2.5 times\nfaster. On AMD64:\n\n# ./vsprintf_verify-O2\nOriginal decimal conv: .......... 151 ns per iteration\nPatched decimal conv:  .......... 62 ns per iteration\nTesting correctness\n12895992590592 ok...        [Ctrl-C]\n# ./vsprintf_verify-O2\nOriginal decimal conv: .......... 151 ns per iteration\nPatched decimal conv:  .......... 62 ns per iteration\nTesting correctness\n26025406464 ok...        [Ctrl-C]\n\nMore realistic test: top from busybox project was modified to\nreport how many us it took to scan /proc (this does not account\nany processing done after that, like sorting process list),\nand then I test it with 4000 processes:\n\n#!/bin/sh\ni\u003d4000\nwhile test $i !\u003d 0; do\n    sleep 30 \u0026\n    let i--\ndone\nbusybox top -b -n3 \u003e/dev/null\n\non unpatched kernel:\n\ntop: 4120 processes took 102864 microseconds to scan\ntop: 4120 processes took 91757 microseconds to scan\ntop: 4120 processes took 92517 microseconds to scan\ntop: 4120 processes took 92581 microseconds to scan\n\non patched kernel:\n\ntop: 4120 processes took 75460 microseconds to scan\ntop: 4120 processes took 66451 microseconds to scan\ntop: 4120 processes took 67267 microseconds to scan\ntop: 4120 processes took 67618 microseconds to scan\n\nThe speedup comes from much faster generation of /proc/PID/stat\nby sprintf() calls inside the kernel.\n\nSigned-off-by: Douglas W Jones \u003cjones@cs.uiowa.edu\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b39a734097d5095d63eb9c709a6aaf965633bb01",
      "tree": "78afaae4c1229163279b902bacf99445dc16e767",
      "parents": [
        "4b4e5a1411c8b970983fb6022db1da31c4f5c301"
      ],
      "author": {
        "name": "Denis Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Jul 15 23:41:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:52 2007 -0700"
      },
      "message": "vsprintf.c: optimizing, part 1 (easy and obvious stuff)\n\n* There is no point in having full \"0...9a...z\" constant vector,\n  if we use only \"0...9a...f\" (and \"x\" for \"0x\").\n\n* Post-decrement usually needs a few more instructions, so use\n  pre decrement instead where makes sense:\n-       while (i \u003c precision--) {\n+       while (i \u003c\u003d --precision) {\n\n* if base !\u003d 10 (\u003d\u003e base 8 or 16), we can avoid using division\n  in a loop and use mask/shift, obtaining much faster conversion.\n  (More complex optimization for base 10 case is in the second patch).\n\nOverall, size vsprintf.o shows ~80 bytes smaller text section\nwith this patch applied.\n\nSigned-off-by: Douglas W Jones \u003cjones@cs.uiowa.edu\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6b40d16d1cfa1a01158049bb887a9bbe48ef7ba",
      "tree": "72eac6e26f928780fe722ad45ff6eeb6807d2356",
      "parents": [
        "757dea93e136b219af09d3cd56a81063fdbdef1a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Tue May 08 00:27:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "fix sscanf %n match at end of input string\n\nI was playing with some code that sometimes got a string where a %n\nmatch should have been done where the input string ended, for example\nlike this:\n\n  sscanf(\"abc123\", \"abc%d%n\", \u0026a, \u0026n);  /* doesn\u0027t work */\n  sscanf(\"abc123a\", \"abc%d%n\", \u0026a, \u0026n); /* works */\n\nHowever, the scanf function in the kernel doesn\u0027t convert the %n in that\ncase because it has already matched the complete input after %d and just\ncompletely stops matching then. This patch fixes that.\n\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11443ec7d9286dd25663516436a14edfb5f43857",
      "tree": "121137dbd7b323cd5dce71cbb8da8119a642b731",
      "parents": [
        "9684e51cd157607f0727c1550e7df6e31de40808"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon Apr 30 15:09:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 16:40:40 2007 -0700"
      },
      "message": "Add kvasprintf()\n\nAdd a kvasprintf() function to complement kasprintf().\n\nNo in-tree users yet, but I have some coming up.\n\n[akpm@linux-foundation.org: EXPORT it]\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Keir Fraser \u003ckeir@xensource.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea6f3281a145d16ed53e88b0627f78d5cde6068f",
      "tree": "75aa9f225b73cb7bdcca87e42462f03c0d8f612e",
      "parents": [
        "91dd26ad2c04a1bbf179df4dca98f34db2f70716"
      ],
      "author": {
        "name": "Martin Peschke",
        "email": "mp3@de.ibm.com",
        "time": "Mon Feb 12 00:51:56 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:28 2007 -0800"
      },
      "message": "[PATCH] scnprintf(): fix a comment\n\nThe return value of scnprintf() never exceeds @size.\n\nSigned-off-by: Martin Peschke \u003cmp3@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72fd4a35a824331d7a0f4168d7576502d95d34b3",
      "tree": "be27880bc36b7f62e8044a88b8744a35c5317714",
      "parents": [
        "262086cf5b5343c2b81c97b1c606058e921859df"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 10 01:45:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Numerous fixes to kernel-doc info in source files.\n\nA variety of (mostly) innocuous fixes to the embedded kernel-doc content in\nsource files, including:\n\n  * make multi-line initial descriptions single line\n  * denote some function names, constants and structs as such\n  * change erroneous opening \u0027/*\u0027 to \u0027/**\u0027 in a few places\n  * reword some text for clarity\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a6047eef1c465c38aacfbdab193161b3f0cd144",
      "tree": "3347213ad162a9570d6f4c5cffa1f8db7abb7cba",
      "parents": [
        "27d68a36c4f1ca2fc6be82620843493462c08c51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 17:09:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 17:09:34 2006 -0700"
      },
      "message": "Fix vsnprintf off-by-one bug\n\nThe recent vsnprintf() fix introduced an off-by-one, and it\u0027s now\npossible to overrun the target buffer by one byte.\n\nThe \"end\" pointer points to past the end of the buffer, so if we\nhave to truncate the result, it needs to be done though \"end[-1]\".\n\n[ This is just an alternate and simpler patch to one proposed by Andrew\n  and Jeremy, who actually noticed the problem ]\n\nAcked-by: Andrew Morton \u003cakpm@osdl.org\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e905914f96e11862b130dd229f73045dad9a34e8",
      "tree": "0e7cff381970e2439de521c3d42ded8c49f69354",
      "parents": [
        "f796937a062c7aeb44cd0e75e1586c8543634a7d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Sun Jun 25 05:49:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:23 2006 -0700"
      },
      "message": "[PATCH] Implement kasprintf\n\nImplement kasprintf, a kernel version of asprintf.  This allocates the\nmemory required for the formatted string, including the trailing \u0027\\0\u0027.\nReturns NULL on allocation failure.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f796937a062c7aeb44cd0e75e1586c8543634a7d",
      "tree": "c3cfcbb27e291621e31cff71288f3e82d8b149a8",
      "parents": [
        "891c668b90ded38cec36f0852c4983573597170d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Sun Jun 25 05:49:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:23 2006 -0700"
      },
      "message": "[PATCH] Fix bounds check in vsnprintf, to allow for a 0 size and NULL buffer\n\nThis change allows callers to use a 0-byte buffer and a NULL buffer pointer\nwith vsnprintf, so it can be used to determine how large the resulting\nformatted string will be.\n\nPreviously the code effectively treated a size of 0 as a size of 4G (on\n32-bit systems), with other checks preventing it from actually trying to\nemit the string - but the terminal \\0 would still be written, which would\ncrash if the buffer is NULL.\n\nThis change changes the boundary check so that \u0027end\u0027 points to the putative\nlocation of the terminal \u0027\\0\u0027, which is only written if size \u003e 0.\n\nvsnprintf still allows the buffer size to be set very large, to allow\nunbounded buffer sizes (to implement sprintf, etc).\n\n[akpm@osdl.org: fix long-vs-longlong confusion]\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4e57b6817880946a3a78d5d8cad1ace363f7e449",
      "tree": "b6b5f3f9e8e52cc55d98239a4992e72e983c8fa4",
      "parents": [
        "b0423a0d9cc836b2c3d796623cd19236bfedfe63"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Sun Oct 30 15:03:48 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] fix missing includes\n\nI recently picked up my older work to remove unnecessary #includes of\nsched.h, starting from a patch by Dave Jones to not include sched.h\nfrom module.h. This reduces the number of indirect includes of sched.h\nby ~300. Another ~400 pointless direct includes can be removed after\nthis disentangling (patch to follow later).\nHowever, quite a few indirect includes need to be fixed up for this.\n\nIn order to feed the patches through -mm with as little disturbance as\npossible, I\u0027ve split out the fixes I accumulated up to now (complete for\ni386 and x86_64, more archs to follow later) and post them before the real\npatch.  This way this large part of the patch is kept simple with only\nadding #includes, and all hunks are independent of each other.  So if any\nhunk rejects or gets in the way of other patches, just drop it.  My scripts\nwill pick it up again in the next round.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8032230694ec56c168a1404c67a54d281536cbed",
      "tree": "b3079a0781ab60de50cf4a0cc69e073985c165b4",
      "parents": [
        "acd3bd82c08d1a399760605706a86821148243d9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@www.linux.org.uk",
        "time": "Tue Aug 23 22:48:17 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Aug 23 18:43:46 2005 -0700"
      },
      "message": "[PATCH] %t... in vsnprintf\n\nhandling of %t... (ptrdiff_t) in vsnprintf\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
