)]}'
{
  "log": [
    {
      "commit": "7c12d81134b130ccd4c286b434ca48c4cda71a2f",
      "tree": "32f1451ef52d568d57c75da28313069dc675a206",
      "parents": [
        "01408c4939479ec46c15aa7ef6e2406be50eeeca"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jun 25 05:48:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:09 2006 -0700"
      },
      "message": "[PATCH] Make copy_from_user_inatomic NOT zero the tail on i386\n\nAs described in a previous patch and documented in mm/filemap.h,\ncopy_from_user_inatomic* shouldn\u0027t zero out the tail of the buffer after an\nincomplete copy.\n\nThis patch implements that change for i386.\n\nFor the _nocache version, a new __copy_user_intel_nocache is defined similar\nto copy_user_zeroio_intel_nocache, and this is ultimately used for the copy.\n\nFor the regular version, __copy_from_user_ll_nozero is defined which uses\n__copy_user and __copy_user_intel - the later needs casts to reposition the\n__user annotations.\n\nIf copy_from_user_atomic is given a constant length of 1, 2, or 4, then we do\nstill zero the destintion on failure.  This didn\u0027t seem worth the effort of\nfixing as the places where it is used really don\u0027t care.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01408c4939479ec46c15aa7ef6e2406be50eeeca",
      "tree": "106ee144cc7214cc5cb78bc35a49fc654ef16fe9",
      "parents": [
        "5f507d9e05b4dbfee34f3d967623ad3fbf0f28b3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jun 25 05:47:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:09 2006 -0700"
      },
      "message": "[PATCH] Prepare for __copy_from_user_inatomic to not zero missed bytes\n\nThe problem is that when we write to a file, the copy from userspace to\npagecache is first done with preemption disabled, so if the source address is\nnot immediately available the copy fails *and* *zeros* *the* *destination*.\n\nThis is a problem because a concurrent read (which admittedly is an odd thing\nto do) might see zeros rather that was there before the write, or what was\nthere after, or some mixture of the two (any of these being a reasonable thing\nto see).\n\nIf the copy did fail, it will immediately be retried with preemption\nre-enabled so any transient problem with accessing the source won\u0027t cause an\nerror.\n\nThe first copying does not need to zero any uncopied bytes, and doing so\ncauses the problem.  It uses copy_from_user_atomic rather than copy_from_user\nso the simple expedient is to change copy_from_user_atomic to *not* zero out\nbytes on failure.\n\nThe first of these two patches prepares for the change by fixing two places\nwhich assume copy_from_user_atomic does zero the tail.  The two usages are\nvery similar pieces of code which copy from a userspace iovec into one or more\npage-cache pages.  These are changed to remove the assumption.\n\nThe second patch changes __copy_from_user_inatomic* to not zero the tail.\nOnce these are accepted, I will look at similar patches of other architectures\nwhere this is important (ppc, mips and sparc being the ones I can find).\n\nThis patch:\n\nThere is a problem with __copy_from_user_inatomic zeroing the tail of the\nbuffer in the case of an error.  As it is called in atomic context, the error\nmay be transient, so it results in zeros being written where maybe they\nshouldn\u0027t be.\n\nIn the usage in filemap, this opens a window for a well timed read to see data\n(zeros) which is not consistent with any ordering of reads and writes.\n\nMost cases where __copy_from_user_inatomic is called, a failure results in\n__copy_from_user being called immediately.  As long as the latter zeros the\ntail, the former doesn\u0027t need to.  However in *copy_from_user_iovec\nimplementations (in both filemap and ntfs/file), it is assumed that\ncopy_from_user_inatomic will zero the tail.\n\nThis patch removes that assumption, so that after this patch it will\nbe safe for copy_from_user_inatomic to not zero the tail.\n\nThis patch also adds some commentary to filemap.h and asm-i386/uaccess.h.\n\nAfter this patch, all architectures that might disable preempt when\nkmap_atomic is called need to have their __copy_from_user_inatomic* \"fixed\".\nThis includes\n - powerpc\n - i386\n - mips\n - sparc\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "722f4f5b2600b8930b63a096e48b878cd6e0e15a",
      "tree": "434c3af4a09ae3c0aa5a29f7bc25f1477ea67832",
      "parents": [
        "6444541671bd821b950dbaafee70d65188198aa6"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Fri Jun 23 02:04:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:58 2006 -0700"
      },
      "message": "[PATCH] x86: fix __range_ok constraint\n\nAn immediate operand can\u0027t be the destination of the cmpl instruction,\nso exclude it.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Mattia Dongili \u003cmalattia@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c22ce143d15eb288543fe9873e1c5ac1c01b69a1",
      "tree": "dc7d457b8952fc50dfc90df659b35de4117c61fc",
      "parents": [
        "7dbdf43cfa635ddc3701cc8d1eab07597cd731c0"
      ],
      "author": {
        "name": "Hiro Yoshioka",
        "email": "hyoshiok@miraclelinux.com",
        "time": "Fri Jun 23 02:04:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:56 2006 -0700"
      },
      "message": "[PATCH] x86: cache pollution aware __copy_from_user_ll()\n\nUse the x86 cache-bypassing copy instructions for copy_from_user().\n\nSome performance data are\n\nTotal of GLOBAL_POWER_EVENTS (CPU cycle samples)\n\n2.6.12.4.orig    1921587\n2.6.12.4.nt      1599424\n1599424/1921587\u003d83.23% (16.77% reduction)\n\nBSQ_CACHE_REFERENCE (L3 cache miss)\n2.6.12.4.orig      57427\n2.6.12.4.nt        20858\n20858/57427\u003d36.32% (63.7% reduction)\n\nL3 cache miss reduction of __copy_from_user_ll\nsamples  %\n37408    65.1412  vmlinux                  __copy_from_user_ll\n23        0.1103  vmlinux                  __copy_user_zeroing_intel_nocache\n23/37408\u003d0.061% (99.94% reduction)\n\nTop 5 of 2.6.12.4.nt\nCounted GLOBAL_POWER_EVENTS events (time during which processor is not stopped) with a unit mask of 0x01 (mandatory) count 100000\nsamples  %        app name                 symbol name\n128392    8.0274  vmlinux                  __copy_user_zeroing_intel_nocache\n64206     4.0143  vmlinux                  journal_add_journal_head\n59746     3.7355  vmlinux                  do_get_write_access\n47674     2.9807  vmlinux                  journal_put_journal_head\n46021     2.8774  vmlinux                  journal_dirty_metadata\npattern9-0-cpu4-0-09011728/summary.out\n\nCounted BSQ_CACHE_REFERENCE events (cache references seen by the bus unit) with a unit mask of 0x3f (multiple flags) count 3000\nsamples  %        app name                 symbol name\n69755     4.2861  vmlinux                  __copy_user_zeroing_intel_nocache\n55685     3.4215  vmlinux                  journal_add_journal_head\n52371     3.2179  vmlinux                  __find_get_block\n45504     2.7960  vmlinux                  journal_put_journal_head\n36005     2.2123  vmlinux                  journal_stop\npattern9-0-cpu4-0-09011744/summary.out\n\nCounted BSQ_CACHE_REFERENCE events (cache references seen by the bus unit) with a unit mask of 0x200 (read 3rd level cache miss) count 3000\nsamples  %        app name                 symbol name\n1147      5.4994  vmlinux                  journal_add_journal_head\n881       4.2240  vmlinux                  journal_dirty_data\n872       4.1809  vmlinux                  blk_rq_map_sg\n734       3.5192  vmlinux                  journal_commit_transaction\n617       2.9582  vmlinux                  radix_tree_delete\npattern9-0-cpu4-0-09011731/summary.out\n\niozone results are\n\noriginal 2.6.12.4 CPU time \u003d 207.768 sec\ncache aware       CPU time \u003d 184.783 sec\n(three times run)\n184.783/207.768\u003d88.94% (11.06% reduction)\n\noriginal:\npattern9-0-cpu4-0-08191720/iozone.out:  CPU Utilization: Wall time   45.997    CPU time   64.527    CPU utilization 140.28 %\npattern9-0-cpu4-0-08191741/iozone.out:  CPU Utilization: Wall time   46.878    CPU time   71.933    CPU utilization 153.45 %\npattern9-0-cpu4-0-08191743/iozone.out:  CPU Utilization: Wall time   45.152    CPU time   71.308    CPU utilization 157.93 %\n\ncache awre:\npattern9-0-cpu4-0-09011728/iozone.out:  CPU Utilization: Wall time   44.842    CPU time   62.465    CPU utilization 139.30 %\npattern9-0-cpu4-0-09011731/iozone.out:  CPU Utilization: Wall time   44.718    CPU time   59.273    CPU utilization 132.55 %\npattern9-0-cpu4-0-09011744/iozone.out:  CPU Utilization: Wall time   44.367    CPU time   63.045    CPU utilization 142.10 %\n\nSigned-off-by: Hiro Yoshioka \u003chyoshiok@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "30e931d4092713cecd6b8c2fd70f268efaa6e428",
      "tree": "e7425d6e23720399d4f1a3078e63e03d62ca1d63",
      "parents": [
        "4f88651125e2ca8b106b6f65b65ea45776517bf3"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Mar 23 02:59:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:04 2006 -0800"
      },
      "message": "[PATCH] i386: Add a temporary to make put_user more type safe\n\nIn some code I am developing I had occasion to change the type of a\nvariable.  This made the value put_user was putting to user space wrong.\nBut the code continued to build cleanly without errors.\n\nIntroducing a temporary fixes this problem and at least with gcc-3.3.5 does\nnot cause gcc any problems with optimizing out the temporary.  gcc-4.x\nusing SSA internally ought to be even better at optimizing out temporaries,\nso I don\u0027t expect a temporary to become a problem.  Especially because in\nall correct cases the types on both sides of the assignment to the\ntemporary are the same.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "652050aec936fdd70ed9cbce1cd1ef30a7c9d117",
      "tree": "a2859991fd1c71d918c85c5a8b4bc63bb2c64808",
      "parents": [
        "9ab34fe76114b9538bfcaf3a9d112dee0feb5f17"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 14 13:21:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:15 2006 -0800"
      },
      "message": "[PATCH] mark several functions __always_inline\n\n      Arjan van de Ven \u003carjan@infradead.org\u003e\n\nMark a number of functions as \u0027must inline\u0027.  The functions affected by this\npatch need to be inlined because they use knowledge that their arguments are\nconstant so that most of the function optimizes away.  At this point this\npatch does not change behavior, it\u0027s for documentation only (and for future\npatches in the inline series)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97de50c0add1e8f3b4e764c66a13c07235fee631",
      "tree": "161be1faee50800677bd01e1ca907cd135ffe0a0",
      "parents": [
        "5e5d7a22292613e55da8e91d75bcc062fd861f41"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Sep 06 15:17:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:35 2005 -0700"
      },
      "message": "[PATCH] remove verify_area(): remove verify_area() from various uaccess.h headers\n\nRemove the deprecated (and unused) verify_area() from various uaccess.h\nheaders.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\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"
    }
  ]
}
