)]}'
{
  "log": [
    {
      "commit": "d8468472e4206a6b3e777d29ee64eb91d2671415",
      "tree": "43202c86826d5840add0d5e2f31f87ec1ce300ee",
      "parents": [
        "34a8e501fe83f3b572eee56a6fca5111ab8cdf65"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Thu Jan 17 16:01:45 2008 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:29 2008 +0100"
      },
      "message": "CRIS v10: Cleanup rtc.h\n\n- Change RTC_VLOW_RD -\u003e RTC_VL_READ, RTC_VLOW_SET -\u003e RTC_VL_CLR\n- Whitespace and formatting.\n"
    },
    {
      "commit": "0dfb8c35703709ca5e8f58e019d72383110999a7",
      "tree": "825532e0771ed49704f7649029be392e72559b53",
      "parents": [
        "fbdb5f865b570e34d6e0d17f327f8d9bc2c4ccc6"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Thu Jan 17 10:42:58 2008 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:28 2008 +0100"
      },
      "message": "CRIS: Add architecture dependent bug.h for CRIS v10 and CRIS v32\n"
    },
    {
      "commit": "d8ca6b1593382e51f4c245de9040c795be3a0281",
      "tree": "542930dde1e907165b753295286638dd7d9767eb",
      "parents": [
        "9ce1ea751f7256b2248321c2427612a295f15137"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Mon Dec 03 11:16:25 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:28 2008 +0100"
      },
      "message": "CRIS v32: Minor fixes for io.h\n\n- Shorten include paths for machine dependent header files.\n- Add volatile to hardeware register pointers.\n- Add spinlocks around critical region.\n- Expand macros for handling of leds.\n"
    },
    {
      "commit": "e867cefbaaac23644414cfe562b4fee7dc604f2e",
      "tree": "4586693251d5dc756554e12ccf12d1dd75ee28ff",
      "parents": [
        "822641026238421a70ad20af513758ef927527e5"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Nov 30 17:28:05 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:27 2008 +0100"
      },
      "message": "CRIS v32: Include path fix for timex.h\n\n- Shorten include path for machine dependent header files.\n- Correct some formatting issues.\n"
    },
    {
      "commit": "e8a8abf20e217465c00fa14fd27321401898654c",
      "tree": "5c3991b2704de2f3473b4bfec5de91ba9e3064d3",
      "parents": [
        "54ab4d7208a9e67920a499cfc3cce8554b7a2c11"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Nov 30 15:40:21 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:24 2008 +0100"
      },
      "message": "CRIS: Remove define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY\n"
    },
    {
      "commit": "75e52b279cf018453687a2c7bc99328462438525",
      "tree": "12fa4d2cbb436dcc9f917662169e745b11dd32b5",
      "parents": [
        "738af38bbc8bb4a5b081935c47744fdb7bf0f70b"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Nov 30 10:12:31 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:24 2008 +0100"
      },
      "message": "CRIS v32: Add headers for EtraxFS and Artpec-3 chips.\n"
    },
    {
      "commit": "738af38bbc8bb4a5b081935c47744fdb7bf0f70b",
      "tree": "6ab7708dee8bb01bc10e1c22b3b28c154dddc12d",
      "parents": [
        "642d4ea0656f30257a1dcab65133a2f6aabffca5"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Nov 30 10:11:43 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:24 2008 +0100"
      },
      "message": "CRIS v32: Add prototypes for cache flushing\n\nWe need these to work around some cache bugs in CRISv32 chips.\n"
    },
    {
      "commit": "1e5915b173c4a729a818dbef020e166ceeaa321b",
      "tree": "2c6aa14aceb389eac9a902d3f6bcc1ca5f679807",
      "parents": [
        "0c2efc4848984ed38753d48990f0f0c72af56ba9"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Tue Jan 15 11:59:12 2008 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:24 2008 +0100"
      },
      "message": "CRIS v32: Update asm-cris/arch-v32/irq.h for ETRAX FS and ARTPEC-3\n\n- Correct include to use \u003c\u003e\n- Rework calculation of number of IRQs and exceptions we have.\n- Remove useless \"mask\" argument to BUILD_IRQ macro\n"
    },
    {
      "commit": "0c2efc4848984ed38753d48990f0f0c72af56ba9",
      "tree": "44616bd1241c33cb4d32e43c92a6ebb2205cd596",
      "parents": [
        "e908dfc3c08d684b115f6fbd3740c6b77e0ddaf8"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Thu Nov 29 17:58:06 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:24 2008 +0100"
      },
      "message": "CRIS: Merge axisflashmap.h with Axis internal changes.\n\n- Add partition table struct to be used to parse partition table in flash.\n- Add JFFS2 as a type, and add readoly flag.\n- Improve some comments.\n- Lindent has been run, fixing whitespace and formatting issues.\n"
    },
    {
      "commit": "ca91d5b098700570f308dea0b228829fd4c37f14",
      "tree": "f17d1f13df62c77bf7b4479bd216612f952d44c5",
      "parents": [
        "f74c31d50c3c568abf315f9b8b206a4ec7b9c9f6"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jespern@stork.se.axis.com",
        "time": "Thu Nov 29 17:26:24 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:23 2008 +0100"
      },
      "message": "CRIS v32: Add SECOND_WORD_SYNC, used in sync_serial.\n"
    },
    {
      "commit": "58d083192825c5fbd46fa0b1ff4d1ecc9118b692",
      "tree": "3bd39bf385afe376272d4769c0af321d6e8ed992",
      "parents": [
        "035e111f9a9b29843bc899f03d56f19d94bebb53"
      ],
      "author": {
        "name": "Jesper Nilsson",
        "email": "jespern@stork.se.axis.com",
        "time": "Thu Nov 29 17:21:59 2007 +0100"
      },
      "committer": {
        "name": "Jesper Nilsson",
        "email": "jesper.nilsson@axis.com",
        "time": "Fri Feb 08 11:06:23 2008 +0100"
      },
      "message": "CRIS v32: Add hardware dependent include files and defconfigs for ETRAX FS and ARTPEC-3 chips.\n\nThe header files describe the hardware registers available in both\nthese chips, note that most of this documentation is automatically\ngenerated from the hardware implementation.\n"
    },
    {
      "commit": "a4ffc0a0b240a29cbe489f6db9dae112a49ef1c1",
      "tree": "9719c706444f4b720aff2bb4bdf23a4be3f4b1e3",
      "parents": [
        "d7511ec8115487ccea2ce93bf58d5e5cd2c1c0a3",
        "af195ac82e38ba802fd86b5a014ed05ef6dd88bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:30:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:30:50 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (44 commits)\n  dm raid1: report fault status\n  dm raid1: handle read failures\n  dm raid1: fix EIO after log failure\n  dm raid1: handle recovery failures\n  dm raid1: handle write failures\n  dm snapshot: combine consecutive exceptions in memory\n  dm: stripe enhanced status return\n  dm: stripe trigger event on failure\n  dm log: auto load modules\n  dm: move deferred bio flushing to workqueue\n  dm crypt: use async crypto\n  dm crypt: prepare async callback fn\n  dm crypt: add completion for async\n  dm crypt: add async request mempool\n  dm crypt: extract scatterlist processing\n  dm crypt: tidy io ref counting\n  dm crypt: introduce crypt_write_io_loop\n  dm crypt: abstract crypt_write_done\n  dm crypt: store sector mapping in dm_crypt_io\n  dm crypt: move queue functions\n  ...\n"
    },
    {
      "commit": "d7511ec8115487ccea2ce93bf58d5e5cd2c1c0a3",
      "tree": "e428f9438a563f1fa77479e9c9c4ef8b2e451a8b",
      "parents": [
        "0b61a2ba5dfd1620731e717d686e6ade657fd975",
        "e84542f5db655d1ce7b4890832f0e5d19aae965d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:15:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:15:38 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6\n\n* \u0027release\u0027 of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6: (59 commits)\n  hwmon: (lm80) Add individual alarm files\n  hwmon: (lm80) De-macro the sysfs callbacks\n  hwmon: (lm80) Various cleanups\n  hwmon: (w83627hf) Refactor beep enable handling\n  hwmon: (w83627hf) Add individual alarm and beep files\n  hwmon: (w83627hf) Enable VBAT monitoring\n  hwmon: (w83627ehf) The W83627DHG has 8 VID pins\n  hwmon: (asb100) Add individual alarm files\n  hwmon: (asb100) De-macro the sysfs callbacks\n  hwmon: (asb100) Various cleanups\n  hwmon: VRM is not written to registers\n  hwmon: (dme1737) fix Super-IO device ID override\n  hwmon: (dme1737) fix divide-by-0\n  hwmon: (abituguru3) Add AUX4 fan input for Abit IP35 Pro\n  hwmon: Add support for Texas Instruments/Burr-Brown ADS7828\n  hwmon: (adm9240) Add individual alarm files\n  hwmon: (lm77) Add individual alarm files\n  hwmon: Discard useless I2C driver IDs\n  hwmon: (lm85) Make the pwmN_enable files writable\n  hwmon: (lm85) Return standard values in pwmN_enable\n  ...\n"
    },
    {
      "commit": "c00f08d705e149fbfaf7a252b4d4fbb7affdcc96",
      "tree": "8c916856376d0d400ddda239d5be386f9b9516d7",
      "parents": [
        "c8b6de16d9434405e5832b8772e4f986ddd5118e",
        "3adbefee6fd58a061b2bf1df4f3769701860fc62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 18:22:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 18:22:29 2008 -0800"
      },
      "message": "Merge branch \u0027slub-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm\n\n* \u0027slub-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm:\n  SLUB: fix checkpatch warnings\n  Use non atomic unlock\n  SLUB: Support for performance statistics\n  SLUB: Alternate fast paths using cmpxchg_local\n  SLUB: Use unique end pointer for each slab page.\n  SLUB: Deal with annoying gcc warning on kfree()\n"
    },
    {
      "commit": "4f41b09f86e0e3b48194b2ad0356391bf6d47e40",
      "tree": "49e28b85c4fabcd464ebf3e0f7431ca92406a8a2",
      "parents": [
        "afb24528f9012e5c6361ca9a9128c7c089c1cc7c"
      ],
      "author": {
        "name": "Vasily Averin",
        "email": "vvs@sw.ru",
        "time": "Fri Feb 08 02:10:01 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:01 2008 +0000"
      },
      "message": "dm: table remove unused variable\n\nSave some bytes.\n\nSigned-off-by: Vasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "76c072b48e39e9291fbf02d6c912cf27d65e093d",
      "tree": "5f5c523a48c014448b28a1a875ed8432fe79807a",
      "parents": [
        "27238b2bea89b1808b570bece6777ab2abc52fe2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:09:56 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:09:56 2008 +0000"
      },
      "message": "dm ioctl: move compat code\n\nMove compat_ioctl handling into dm-ioctl.c.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8ff12cfc009a2a38d87fa7058226fe197bb2696f",
      "tree": "1358ed247d3c897d8790342a978dd5078354a207",
      "parents": [
        "1f84260c8ce3b1ce26d4c1d6dedc2f33a3a29c0c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Support for performance statistics\n\nThe statistics provided here allow the monitoring of allocator behavior but\nat the cost of some (minimal) loss of performance. Counters are placed in\nSLUB\u0027s per cpu data structure. The per cpu structure may be extended by the\nstatistics to grow larger than one cacheline which will increase the cache\nfootprint of SLUB.\n\nThere is a compile option to enable/disable the inclusion of the runtime\nstatistics and its off by default.\n\nThe slabinfo tool is enhanced to support these statistics via two options:\n\n-D \tSwitches the line of information displayed for a slab from size\n\tmode to activity mode.\n\n-A\tSorts the slabs displayed by activity. This allows the display of\n\tthe slabs most important to the performance of a certain load.\n\n-r\tReport option will report detailed statistics on\n\nExample (tbench load):\n\nslabinfo -AD\t\t-\u003eShows the most active slabs\n\nName                   Objects    Alloc     Free   %Fast\nskbuff_fclone_cache         33 111953835 111953835  99  99\n:0000192                  2666  5283688  5281047  99  99\n:0001024                   849  5247230  5246389  83  83\nvm_area_struct            1349   119642   118355  91  22\n:0004096                    15    66753    66751  98  98\n:0000064                  2067    25297    23383  98  78\ndentry                   10259    28635    18464  91  45\n:0000080                 11004    18950     8089  98  98\n:0000096                  1703    12358    10784  99  98\n:0000128                   762    10582     9875  94  18\n:0000512                   184     9807     9647  95  81\n:0002048                   479     9669     9195  83  65\nanon_vma                   777     9461     9002  99  71\nkmalloc-8                 6492     9981     5624  99  97\n:0000768                   258     7174     6931  58  15\n\nSo the skbuff_fclone_cache is of highest importance for the tbench load.\nPretty high load on the 192 sized slab. Look for the aliases\n\nslabinfo -a | grep 000192\n:0000192     \u003c- xfs_btree_cur filp kmalloc-192 uid_cache tw_sock_TCP\n\trequest_sock_TCPv6 tw_sock_TCPv6 skbuff_head_cache xfs_ili\n\nLikely skbuff_head_cache.\n\n\nLooking into the statistics of the skbuff_fclone_cache is possible through\n\nslabinfo skbuff_fclone_cache\t-\u003e-r option implied if cache name is mentioned\n\n\n.... Usual output ...\n\nSlab Perf Counter       Alloc     Free %Al %Fr\n--------------------------------------------------\nFastpath             111953360 111946981  99  99\nSlowpath                 1044     7423   0   0\nPage Alloc                272      264   0   0\nAdd partial                25      325   0   0\nRemove partial             86      264   0   0\nRemoteObj/SlabFrozen      350     4832   0   0\nTotal                111954404 111954404\n\nFlushes       49 Refill        0\nDeactivate Full\u003d325(92%) Empty\u003d0(0%) ToHead\u003d24(6%) ToTail\u003d1(0%)\n\nLooks good because the fastpath is overwhelmingly taken.\n\n\nskbuff_head_cache:\n\nSlab Perf Counter       Alloc     Free %Al %Fr\n--------------------------------------------------\nFastpath              5297262  5259882  99  99\nSlowpath                 4477    39586   0   0\nPage Alloc                937      824   0   0\nAdd partial                 0     2515   0   0\nRemove partial           1691      824   0   0\nRemoteObj/SlabFrozen     2621     9684   0   0\nTotal                 5301739  5299468\n\nDeactivate Full\u003d2620(100%) Empty\u003d0(0%) ToHead\u003d0(0%) ToTail\u003d0(0%)\n\n\nDescriptions of the output:\n\nTotal:\t\tThe total number of allocation and frees that occurred for a\n\t\tslab\n\nFastpath:\tThe number of allocations/frees that used the fastpath.\n\nSlowpath:\tOther allocations\n\nPage Alloc:\tNumber of calls to the page allocator as a result of slowpath\n\t\tprocessing\n\nAdd Partial:\tNumber of slabs added to the partial list through free or\n\t\talloc (occurs during cpuslab flushes)\n\nRemove Partial:\tNumber of slabs removed from the partial list as a result of\n\t\tallocations retrieving a partial slab or by a free freeing\n\t\tthe last object of a slab.\n\nRemoteObj/Froz:\tHow many times were remotely freed object encountered when a\n\t\tslab was about to be deactivated. Frozen: How many times was\n\t\tfree able to skip list processing because the slab was in use\n\t\tas the cpuslab of another processor.\n\nFlushes:\tNumber of times the cpuslab was flushed on request\n\t\t(kmem_cache_shrink, may result from races in __slab_alloc)\n\nRefill:\t\tNumber of times we were able to refill the cpuslab from\n\t\tremotely freed objects for the same slab.\n\nDeactivate:\tStatistics how slabs were deactivated. Shows how they were\n\t\tput onto the partial list.\n\nIn general fastpath is very good. Slowpath without partial list processing is\nalso desirable. Any touching of partial list uses node specific locks which\nmay potentially cause list lock contention.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n\n"
    },
    {
      "commit": "683d0baad3d6e18134927f8c28ee804dbe10fe71",
      "tree": "a1ef69f9cde406492b5deedc6874312cbeb3b357",
      "parents": [
        "5bb983b0cce9b7b281af15730f7019116dd42568"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Jan 07 23:20:29 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Use unique end pointer for each slab page.\n\nWe use a NULL pointer on freelists to signal that there are no more objects.\nHowever the NULL pointers of all slabs match in contrast to the pointers to\nthe real objects which are in different ranges for different slab pages.\n\nChange the end pointer to be a pointer to the first object and set bit 0.\nEvery slab will then have a different end pointer. This is necessary to ensure\nthat end markers can be matched to the source slab during cmpxchg_local.\n\nBring back the use of the mapping field by SLUB since we would otherwise have\nto call a relatively expensive function page_address() in __slab_alloc().  Use\nof the mapping field allows avoiding a call to page_address() in various other\nfunctions as well.\n\nThere is no need to change the page_mapping() function since bit 0 is set on\nthe mapping as also for anonymous pages.  page_mapping(slab_page) will\ntherefore still return NULL although the mapping field is overloaded.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b501b1f53605bec17454dd8bbdbbf3f57a7cf32",
      "tree": "3ad4ffe685ebf6a4eca96591012005cf4fa9ed26",
      "parents": [
        "455f791ea3e33a274c098b4a8c2e35d4d1a6d518"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Jan 03 19:44:09 2008 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:44 2008 -0500"
      },
      "message": "hwmon: Discard useless I2C driver IDs\n\nMany I2C hwmon drivers define a driver ID but no other code references\nthese, meaning that they are useless. Discard them, along with a few\nIDs which are defined but never used at all.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "293c09971631d22f8e91402f58955ccaada9dbde",
      "tree": "c5cdf121b455df519cc18f4daeefdaf112df3c91",
      "parents": [
        "05663368d2138c14fa1b9aa8eeca4ca9a33d7c77"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Fri Nov 30 23:52:44 2007 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:43 2008 -0500"
      },
      "message": "hwmon: (w83781d) Misc cleanups\n\n* Drop unused defines\n* Drop unused driver ID\n* Remove trailing whitespace\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "f28dc2f78bbcbf07b8a084fcd89cf6b4256f0664",
      "tree": "ac051fe9264ff967cea12f96ac7dd58e52bca409",
      "parents": [
        "e0ae87a49cf3e721313bf8942299f3f140c6963c"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sun Nov 04 23:44:23 2007 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:41 2008 -0500"
      },
      "message": "hwmon: (gl520sm) Various cleanups\n\n* Drop trailing spaces\n* Drop unused driver ID\n* Drop stray backslashes in macros\n* Rename new_client to client\n* Drop redundant initializations to 0\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "a5955ed27497385cc491ecbe40af45951e830881",
      "tree": "7538f45fcf8cd98a1b12172c858f4067a7968b24",
      "parents": [
        "7dcf9a31ef50367e474e5e320e8ec5e0a8b9d2f0"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Oct 22 17:45:08 2007 +0200"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:41 2008 -0500"
      },
      "message": "hwmon: (gl518sm) Various cleanups\n\n* Drop history, it doesn\u0027t belong there\n* Drop unused struct member\n* Drop bogus struct member comment\n* Drop unused driver ID\n* Rename new_client to client\n* Drop redundant initializations to 0\n* Drop useless cast\n* Drop trailing space\n* Fix comment\n* Drop duplicate comment\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "7fce084a0b3e2bb8caef919f8f36065953655bb5",
      "tree": "a5bf95b6321ec488dc8a0667b652bb50479a32da",
      "parents": [
        "df922075f2a55b1ae71a6fe589c1cc1b91381f4f"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sat Nov 03 17:29:20 2007 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:40 2008 -0500"
      },
      "message": "dmi: Let drivers walk the DMI table\n\nLet drivers walk the DMI table for their own needs. Some drivers need\ndata stored in OEM-specific DMI records for proper operation.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "c8b6de16d9434405e5832b8772e4f986ddd5118e",
      "tree": "03d5d92be22e83778e3cf1367f8b6847eb953eb6",
      "parents": [
        "a6a852e93705121e2b90bd41ad50e85a508699aa",
        "8e31e607ea050c0df1483d8b6cdd5b1395c03cbe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 17:30:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 17:30:44 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (48 commits)\n  [SCSI] aacraid: do not set valid bit in sense information\n  [SCSI] ses: add new Enclosure ULD\n  [SCSI] enclosure: add support for enclosure services\n  [SCSI] sr: fix test unit ready responses\n  [SCSI] u14-34f: fix data direction bug\n  [SCSI] aacraid: pci_set_dma_max_seg_size opened up for late model controllers\n  [SCSI] fix BUG when sum(scatterlist) \u003e bufflen\n  [SCSI] arcmsr: updates (1.20.00.15)\n  [SCSI] advansys: make 3 functions static\n  [SCSI] Small cleanups for scsi_host.h\n  [SCSI] dc395x: fix uninitialized var warning\n  [SCSI] NCR53C9x: remove driver\n  [SCSI] remove m68k NCR53C9x based drivers\n  [SCSI] dec_esp: Remove driver\n  [SCSI] kernel-doc: fix scsi docbook\n  [SCSI] update my email address\n  [SCSI] add protocol definitions\n  [SCSI] sd: handle bad lba in sense information\n  [SCSI] qla2xxx: Update version number to 8.02.00-k8.\n  [SCSI] qla2xxx: Correct issue where incorrect init-fw mailbox command was used on non-NPIV capable ISPs.\n  ...\n"
    },
    {
      "commit": "d569d5bb3fd96d2907acaddd7c4ea5cb07d02ab8",
      "tree": "2ad7fb8bf4ea59cdcc4ab7b98a14cc0eca451d05",
      "parents": [
        "38582a62ecd337de4212004c7d4844899dc57890"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Feb 03 15:40:56 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:04:10 2008 -0600"
      },
      "message": "[SCSI] enclosure: add support for enclosure services\n\nThe enclosure misc device is really just a library providing sysfs\nsupport for physical enclosure devices and their components.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d850bd34f5b2a52ccec90188ad86165f940693e9",
      "tree": "7f22410bf8383d91055e4fa53166d7a283ec7267",
      "parents": [
        "8144f2137b7c69055597bb644a3cb6d08ee0de77"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Mon Feb 04 23:53:24 2008 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:43 2008 -0600"
      },
      "message": "[SCSI] Small cleanups for scsi_host.h\n\nSmall cleanups in scsi_host.h. Few #defines make me wonder if their\ndescription is still up to date..?\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "89dddbce9c6ec7663af81a74be6a6aa720301994",
      "tree": "e960055eb2357355517a057a599de16ac922c366",
      "parents": [
        "366c246de9cec909c5eba4f784c92d1e75b4dc38"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Feb 03 15:32:59 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:41 2008 -0600"
      },
      "message": "[SCSI] add protocol definitions\n\nA lot of SCSI command replies have a protocol ID field.  Add\ndefinitions for the interpretation of that from SPC-3.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8b1d03434ee44b08c57f50403eaeab099facebf5",
      "tree": "48d7c5aeb3b765284dcc3d8685ed6ea6aed350cb",
      "parents": [
        "322d739da83bbff0309c202181f79c08d9534880"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:53 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:37 2008 -0600"
      },
      "message": "[SCSI] libiscsi: fix session age rollover and remove cid encoding\n\nThe session age mask is only 4 bits, but session-\u003eage is 32. When\nit gets larger then 15 and we try to or the bits some bits get\ndropped and the check for session age in iscsi_verify_itt is useless.\n\nThe ISCSI_CID_MASK related bits are also useless since cid is always\none.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "322d739da83bbff0309c202181f79c08d9534880",
      "tree": "4bbe485dc4f942ac6d5c8ad1c4508599a1eb2c66",
      "parents": [
        "c238c3bba9b422a9b453c75e157b416204f22a71"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:52 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:37 2008 -0600"
      },
      "message": "[SCSI] iscsi: fix up iscsi printk prefix\n\nSome iscsi class messages have the dev_printk prefix and some libiscsi\nand iscsi_tcp messages have \"iscsi\" or the module name as a prefix which\nis normally pretty useless when trying to figure out which session\nor connection the message is attached to. This patch adds iscsi lib\nand class dev_printks so all messages have a common prefix that\ncan be used to figure out which object printed it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8aae18adb240a9eb1999b8245c56522cbefc9047",
      "tree": "a859a89c4385fc3639733db4b56735e26797feba",
      "parents": [
        "568d303b5b3f0f6432ae8f56ecdb0beb2341288e"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:48 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:35 2008 -0600"
      },
      "message": "[SCSI] iscsi class: add async scan helper\n\nIn qla4xxx\u0027s probe it will call the iscsi session setup functions\nfor session that got setup on the initial start. This then makes\nit easy for the iscsi class to export a helper which indicates\nwhen those scans are done.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bd976f62cd6c6dda1ce57bf3e84447e94844868a",
      "tree": "560e9fd29f0af7d6cb1a89b49e6f2091832c987b",
      "parents": [
        "7fb1921b07a83f71a77f806a2a7d2dd721ea641b"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:46 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:35 2008 -0600"
      },
      "message": "[SCSI] iscsi class: add session scanning\n\nThis just adds iscsi session scanning which works like fc rport scanning.\nThe future patches will hook the drivers into Mathew Wilcox\u0027s async\nscanning infrastructure, so userspace does not have to special case\niscsi and so userspace does not have to make a extra special case for\nhardware iscsi root scanning.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6eabafbe6616266e8de61980a7dac5ecc1ba1113",
      "tree": "f5533027fac576acf4db08210ea5815db3a15e50",
      "parents": [
        "84ac86ca8c6787f9efff28bc04b1b65fe0a5c310"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:43 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:34 2008 -0600"
      },
      "message": "[SCSI] iscsi class, libiscsi: add iscsi sysfs session state file\n\nThis adds a iscsi session state file which exports the session\nstate for both software and hardware iscsi. It also hooks libiscsi\nin.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f8d9d654fcc7dd87f5d0b222e233eaab15d650c4",
      "tree": "22514d77f4904b4cf9dabb4321cf763e2afa91fc",
      "parents": [
        "5234e25c35a708708559727b1e3e04de3a538828"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jan 29 00:11:27 2008 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:33 2008 -0600"
      },
      "message": "[SCSI] libiscsi: make __iscsi_complete_pdu() static\n\n__iscsi_complete_pdu() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "151db1fc23800875c7ac353b106b7dab77061275",
      "tree": "b14f06bec7e45c9cd909df1dfb66b099d273b35c",
      "parents": [
        "145e9230760e4db27cf5f00fd04b005c79ca1c12"
      ],
      "author": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Fri Feb 08 09:24:52 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 14:54:45 2008 -0800"
      },
      "message": "Fix compilation of powerpc asm-offsets.c with old gcc\n\nCommit ad7f71674ad7c3c4467e48f6ab9e85516dae2720 (\"[POWERPC] Use a\nsensible default for clock_getres() in the VDSO\") corrected the clock\nresolution reported by the VDSO clock_getres() but introduced another\nproblem in that older versions of gcc (gcc-4.0 and earlier) fail to\ncompile the new code in arch/powerpc/kernel/asm-offsets.c.\n\nThis fixes it by introducing a new MONOTONIC_RES_NSEC define in the\ngeneric code which is equivalent to KTIME_MONOTONIC_RES but is just an\ninteger constant, not a ktime union.\n\nSigned-off-by: Tony Breeds \u003ctony@bakeyournoodle.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e5565f949af1322f8f3d3f43d044645ae448499",
      "tree": "92868f6d3dcc6c105a0d35f9412f75c07139402e",
      "parents": [
        "e5a9e8e6890d9b9c7a0f25b03ffdaf28614a9a4c",
        "03366e7b9bf1544cb0b98f1a5cd6d340654f486a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 12:57:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 12:57:44 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (34 commits)\n  Input: i8042 - non-x86 build fix\n  Input: pxa27x_keypad - also enable on PXA3xx\n  Input: pxa27x_keypad - add debounce_interval to the keypad platform data\n  Input: pxa27x_keypad - use device resources for I/O memory mapping and IRQ\n  Input: pxa27x_keypad - enable rotary encoders and direct keys\n  Input: pxa27x_keypad - introduce pxa27x_keypad_config()\n  Input: pxa27x_keypad - introduce driver structure and use KEY() to define matrix keys\n  Input: pxa27x_keypad - remove pin configuration from the driver\n  Input: pxa27x_keypad - rename the driver (was pxa27x_keyboard)\n  Input: constify function pointer tables (seq_operations)\n  Input: i8042 - add Fujitsu-Siemens Amilo Pro 2010 to nomux list\n  Input: i8042 - enable DMI quirks on x86-64\n  Input: i8042 - add Dritek quirk for Acer Aspire 9110\n  Input: add input event to APM event bridge\n  Input: mousedev - use BIT_MASK instead of BIT\n  Input: remove duplicate includes\n  Input: remove cdev from input_dev structure\n  Input: remove duplicated headers in drivers/char/keyboard.c\n  Input: i8042 - add Dritek keyboard extension quirk\n  Input: add Tosa keyboard driver\n  ...\n"
    },
    {
      "commit": "0afc2edfada50980bec999f94dcea26ebad3dda6",
      "tree": "8963dd8fd78ee5c3481acad5903bc459bd3d055c",
      "parents": [
        "a8e98d6d51a3eb7bb061b1625193a129c8bd094f",
        "d256eb8db60e36fc5dd0a27ce8a64f65df31f7b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:21:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:21:26 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:\n  [SPARC32]: Use regsets in arch_ptrace().\n  [SPARC64]: Use regsets in arch_ptrace().\n  [SPARC32]: Use regsets for ELF core dumping.\n  [SPARC64]: Use regsets for ELF core dumping.\n  [SPARC64]: Remove unintentional ptrace debugging messages.\n  [SPARC]: Move over to arch_ptrace().\n  [SPARC]: Remove PTRACE_SUN* handling.\n  [SPARC]: Kill DEBUG_PTRACE code.\n  [SPARC32]: Add user regset support.\n  [SPARC64]: Add user regsets.\n  [SPARC64]: Fix booting on non-zero cpu.\n"
    },
    {
      "commit": "a8e98d6d51a3eb7bb061b1625193a129c8bd094f",
      "tree": "0fa58b6e11e37023b024e55b8f0e7e01438706d4",
      "parents": [
        "f0f1b3364ae7f48084bdf2837fb979ff59622523",
        "f9f7dd222364a6428d2ad99a515935dd1dd89d18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:20:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:20:31 2008 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (120 commits)\n  [MTD] Fix mtdoops.c compilation\n  [MTD] [NOR] fix startup lock when using multiple nor flash chips\n  [MTD] [DOC200x] eccbuf is statically defined and always evaluate to true\n  [MTD] Fix maps/physmap.c compilation with CONFIG_PM\n  [MTD] onenand: Add panic_write function to the onenand driver\n  [MTD] mtdoops: Use the panic_write function when present\n  [MTD] Add mtd panic_write function pointer\n  [MTD] [NAND] Freescale enhanced Local Bus Controller FCM NAND support.\n  [MTD] physmap.c: Add support for multiple resources\n  [MTD] [NAND] Fix misparenthesization introduced by commit 78b65179...\n  [MTD] [NAND] Fix Blackfin NFC ECC calculating bug with page size 512 bytes\n  [MTD] [NAND] Remove wrong operation in PM function of the BF54x NFC driver\n  [MTD] [NAND] Remove unused variable in plat_nand_remove\n  [MTD] Unlocking all Intel flash that is locked on power up.\n  [MTD] [NAND] at91_nand: Make mtdparts option can override board info\n  [MTD] mtdoops: Various minor cleanups\n  [MTD] mtdoops: Ensure sequential write to the buffer\n  [MTD] mtdoops: Perform write operations in a workqueue\n  [MTD] mtdoops: Add further error return code checking\n  [MTD] [NOR] Test devtype, not definition in flash_probe(), drivers/mtd/devices/lart.c\n  ...\n"
    },
    {
      "commit": "f0f1b3364ae7f48084bdf2837fb979ff59622523",
      "tree": "e5ef68c0071f44178cc8d1948b64e216d57422aa",
      "parents": [
        "4383f18b7f94a4d668c5eec68645c75d44556235",
        "b7143156c9ceee1a072c57aac8729d2dec5b3bf1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:58 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (112 commits)\n  ACPI: fix build warning\n  Revert \"cpuidle: build fix for non-x86\"\n  ACPI: update intrd DSDT override console messages\n  ACPI: update DSDT override documentation\n  ACPI: Add \"acpi_no_initrd_override\" kernel parameter\n  ACPI: its a directory not a folder....\n  ACPI: misc cleanups\n  ACPI: add missing prink prefix strings\n  ACPI: cleanup acpi.h\n  ACPICA: fix CONFIG_ACPI_DEBUG_FUNC_TRACE build\n  ACPI: video: Ignore ACPI video devices that aren\u0027t present in hardware\n  ACPI: video: reset brightness on resume\n  ACPI: video: call ACPI notifier chain for ACPI video notifications\n  ACPI: create notifier chain to get hotkey events to graphics driver\n  ACPI: video: delete unused display switch on hotkey event code\n  ACPI: video: create \"brightness_switch_enabled\" modparam\n  cpuidle: Add a poll_idle method\n  ACPI: cpuidle: Support C1 idle time accounting\n  ACPI: enable MWAIT for C1 idle\n  ACPI: idle: Fix acpi_safe_halt usages and interrupt enabling/disabling\n  ...\n"
    },
    {
      "commit": "3d50337f62a61027f40ad4ceddefa3c91e5d479e",
      "tree": "c89bed784ab0fc402e9f4155f500170c9a335949",
      "parents": [
        "5b808a593588b2e6235c59fcd278791c53667787",
        "d39a7a63eb3971b1b3cc5c181ed526bf437b1c72"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:14 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-leds\n\n* \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-leds:\n  leds: Add HP Jornada 6xx driver\n  leds: Remove the now uneeded ixp4xx driver\n  leds: Add power LED to the wrap driver\n  leds: Fix led-gpio active_low default brightness\n  leds: hw acceleration for Clevo mail LED driver\n  leds: Add support for hardware accelerated LED flashing\n  leds: Standardise LED naming scheme\n  leds: Add clevo notebook LED driver\n"
    },
    {
      "commit": "5b808a593588b2e6235c59fcd278791c53667787",
      "tree": "6f163b052b8d9d3e8448dd8caf3459a0372dffc4",
      "parents": [
        "d31d29540915f21d3f2bcfdd6d135fde328038a0"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Thu Feb 07 09:10:37 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:10:06 2008 -0800"
      },
      "message": "m68k: kill page walker compile warning\n\nThe recently introduced page walker (walk_page_range()) calls pgd_offset with a\nconst struct mm_struct pointer, causing the following compile warning on m68k:\n\n    mm/pagewalk.c:111: warning: passing argument 1 of \u0027pgd_offset\u0027 discards qualifiers from pointer target type\n\nMake the `mm\u0027 parameter of the inline function pgd_offset() const to shut it\nup.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a8c6ad918e9c598bf3b799f1a0d5ee4dee59ca3",
      "tree": "ce1ed4557f44560ba0db2713046edcb9a2a39094",
      "parents": [
        "37969581301e50872a1ae84dc73962b5f7ee6b76",
        "e19717fe2bb3624d8242f66d3825881d11a847dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:03:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:03:00 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Add missing printk levels to e_powersaver\n  [CPUFREQ] Fix sparse warning in powernow-k8\n  [CPUFREQ] Support Model D parts and newer in e_powersaver\n  [CPUFREQ] Powernow-k8: Update to support the latest Turion processors\n  [CPUFREQ] fix configuration help message\n  [CPUFREQ] powernow-k8 print pstate instead of fid/did for family 10h\n  [CPUFREQ] Eliminate cpufreq_userspace scaling_setspeed deadlock\n  [CPUFREQ] gx-suspmod.c: use boot_cpu_data instead of current_cpu_data\n  [CPUFREQ] fix incorrect comment on show_available_freqs() in freq_table.c\n  [CPUFREQ] drivers/cpufreq: Add missing \"space\"\n  [CPUFREQ] arch/x86: Add missing \"space\"\n  [CPUFREQ] Remove pointless Kconfig dependancy\n"
    },
    {
      "commit": "37969581301e50872a1ae84dc73962b5f7ee6b76",
      "tree": "35bbd6a07f903f248f4bd209b8d194a922415fe0",
      "parents": [
        "80ff8a805113850a3ffafcc8e6eaa1fdd51b02f3",
        "24f1a849614ba1805e26a05da7cc8c6bd67490ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:02:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:02:26 2008 -0800"
      },
      "message": "Merge branch \u0027for-2.6.25\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc\n\n* \u0027for-2.6.25\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (69 commits)\n  [POWERPC] Add SPE registers to core dumps\n  [POWERPC] Use regset code for compat PTRACE_*REGS* calls\n  [POWERPC] Use generic compat_sys_ptrace\n  [POWERPC] Use generic compat_ptrace_request\n  [POWERPC] Use generic ptrace peekdata/pokedata\n  [POWERPC] Use regset code for PTRACE_*REGS* requests\n  [POWERPC] Switch to generic compat_binfmt_elf code\n  [POWERPC] Switch to using user_regset-based core dumps\n  [POWERPC] Add user_regset compat support\n  [POWERPC] Add user_regset_view definitions\n  [POWERPC] Use user_regset accessors for GPRs\n  [POWERPC] ptrace accessors for special regs MSR and TRAP\n  [POWERPC] Use user_regset accessors for SPE regs\n  [POWERPC] Use user_regset accessors for altivec regs\n  [POWERPC] Use user_regset accessors for FP regs\n  [POWERPC] mpc52xx: fix compile error introduce when rebasing patch\n  [POWERPC] 4xx: PCIe indirect DCR spinlock fix.\n  [POWERPC] Add missing native dcr dcr_ind_lock spinlock\n  [POWERPC] 4xx: Fix offset value on Warp board\n  [POWERPC] 4xx: Add 440EPx Sequoia ehci dts entry\n  ...\n"
    },
    {
      "commit": "3099bbc59435928fbd1f4ebd835f825bca755bbb",
      "tree": "5468ed4ca5b1a9f6bba66b1e0eadf379e0b909e0",
      "parents": [
        "ccfea3c98a10b9d4d49b899616a06594ec976d7d"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: serial167, remove bottomhalf\n\n- Cy_EVENT_OPEN_WAKEUP is simple wake_up\n- Cy_EVENT_HANGUP is wake_up + tty_hangup, which schedules its own work\n- Cy_EVENT_WRITE_WAKEUP is tty_wakeup which may be called directly too\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ccfea3c98a10b9d4d49b899616a06594ec976d7d",
      "tree": "cea834a683e572015a51dbf122603c20d040c1f7",
      "parents": [
        "d0d4e1c098754bfbb2aeb94333756d63d255688e"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: stallion, remove bottomhalf\n\n- tty_hangup schedules a bottomhalf itself, tty_wakeup doesn\u0027t need it\n- call the CD code (part of work handler previously) directly from the code\n  (it wakes somebody up or calls tty_hangup at worse)\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfccaeea62f020242e59a992e1f1a60fe7e5694e",
      "tree": "d6cc42c199836ec94221f05008766ad81c5bacdc",
      "parents": [
        "d2e7a4b66d762cad383c5469c1e8b6076792ab6a"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: istallion, remove hangup bottomhalf\n\ntty_hangup schedules a work for hangup itself, no need to do it in the driver.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2e7a4b66d762cad383c5469c1e8b6076792ab6a",
      "tree": "8516adc2f15b67cfc5b802912b379357928eb48f",
      "parents": [
        "1386a820b32285583414a8db3a99305e7ebe8377"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: esp, remove hangup and wakeup bottomhalves\n\nThere is no need to schedule a bottomhalf for either of them. One is fast\nand the another schedules a bottomhalf itself.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1237a2ef31cf60e01bbecbe198d8c002bbb710db",
      "tree": "1d71f11a023c4ab0262000e90d311223b5ecc28e",
      "parents": [
        "f6de0c9864c10d17f2473940c5f81718a5064bd8"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Char: char/serial, remove SERIAL_TYPE_NORMAL redefines\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a7744f9823b9ddf14c47c475e81c1326b1a2787",
      "tree": "a5969eab412bb34aa0f38c6a12a5fffe5553b2ce",
      "parents": [
        "b62f13439147210d5ad4bc40acee32b94c59f06d"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Add cmpxchg_local to xtensa\n\nUse the architecture specific __cmpxchg_u32 for 32 bits cmpxchg)_local. Else,\nuse the new generic cmpxchg_local (disables interrupt).\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b62f13439147210d5ad4bc40acee32b94c59f06d",
      "tree": "f5948b96ce938b4cd28b30dfd02731a1ec7dbc73",
      "parents": [
        "80af4eeb726f038eddc32826e4238feba5b1dfb4"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Add cmpxchg_local to v850\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Miles Bader \u003cmiles.bader@necel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80af4eeb726f038eddc32826e4238feba5b1dfb4",
      "tree": "004867c90a5294a8902fc01f1181beacab587300",
      "parents": [
        "405321d3ab2b41960e2874f2f74609daffbc7a4c"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Add cmpxchg_local to sparc64\n\nUse cmpxchg_u32 and cmpxchg_u64 for cmpxchg_local and cmpxchg64_local. For other\ntype sizes, use the new generic cmpxchg_local (disables interrupt).\n\nChange:\nSince the header depends on local_irqsave/local_irqrestore, it must be\nincluded after their declaration.\n\nActually, being below the\n#include \u003clinux/irqflags.h\u003e should be enough, and on sparc64 it is\nincluded at the beginning of system.h.\n\nSo it makes sense to move it up for sparc64.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "405321d3ab2b41960e2874f2f74609daffbc7a4c",
      "tree": "af0d51539011d57b2df0df6c69171433f9d60ff8",
      "parents": [
        "fe4130131ef9e55763fd634a02b1db9290dbbe5a"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to sparc, move __cmpxchg to system.h\n\nMove cmpxchg and add cmpxchg_local to system.h.\nUse the new generic cmpxchg_local (disables interrupt).\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe4130131ef9e55763fd634a02b1db9290dbbe5a",
      "tree": "523a97bd9f3b9302edfb80c5175ec9a528c1b807",
      "parents": [
        "85fdbe1b4b33b797321bfadf706b355e7cca6165"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to s390\n\nUse the standard __cmpxchg for every type that can be updated atomically.\nUse the new generic cmpxchg_local (disables interrupt) for other types.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@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": "85fdbe1b4b33b797321bfadf706b355e7cca6165",
      "tree": "bb24d49bb9cc2167742af843718587b408ad71e2",
      "parents": [
        "df80c8c5679c4e6c72e694525d76a9f26d5f33dc"
      ],
      "author": {
        "name": "Gunnar Larisch",
        "email": "gl@denx.de",
        "time": "Thu Feb 07 00:16:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to ppc\n\nAdd a local processor version of cmpxchg for ppc.\n\nImplements __cmpxchg_u32_local and uses it for 32 bits cmpxchg_local.\nIt uses the non NMI safe cmpxchg_local_generic for 1, 2 and 8 bytes\ncmpxchg_local.\n\nSigned-off-by: Gunnar Larisch \u003cgl@denx.de\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df80c8c5679c4e6c72e694525d76a9f26d5f33dc",
      "tree": "84144c163426e6d4ecfaa7c50dd9cd67fa91bc64",
      "parents": [
        "027bcc27d3d1a218dbf4477964a18fed78983357"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to parisc\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "027bcc27d3d1a218dbf4477964a18fed78983357",
      "tree": "a76ba273a2cdbd1866e79b3840c3293b13b50251",
      "parents": [
        "5da751035c5c8f5b30978e97fd4b3c75f453b04e"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to m68knommu\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5da751035c5c8f5b30978e97fd4b3c75f453b04e",
      "tree": "9d50b1187702079ba6fb5d61a84db4dbdd646937",
      "parents": [
        "7fa2ac3728ce828070fa3d5846c08157fe5ef431"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to m86k\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fa2ac3728ce828070fa3d5846c08157fe5ef431",
      "tree": "46d8af0c873bac8d03fd7c166420c9ee5fca7fca",
      "parents": [
        "df0f65f02a55888feae52a7e7d59d29f5edd400d"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "local_t m32r use architecture specific cmpxchg_local\n\nOn m32r, use the new cmpxchg_local as primitive for the local_cmpxchg\noperation.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f94d1d3a1df125461a16b2888eca46d64f113e3a",
      "tree": "35991d4f2f00dd9f3df1fe5d0ca53b5e01545f67",
      "parents": [
        "7b631c2de63b4475351258197409983c8189ed04"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Fix m32r __xchg\n\nthe #endif  /* CONFIG_SMP */ should cover the default condition, or it may cause\nbad parameter to be silently missed.\n\nTo make it work correctly, we have to remove the ifdef CONFIG SMP surrounding\n__xchg_called_with_bad_pointer declaration. Thanks to Adrian Bunk for detecting\nthis.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b631c2de63b4475351258197409983c8189ed04",
      "tree": "915d5b3d1b7ba8f47e0f5abfba70aec94c106d9e",
      "parents": [
        "4b78fff6e736cae55dc3fb5570c7ef4037eca9b7"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "New cmpxchg_local (optimized for UP case) for m32r\n\nAdd __xchg_local, xchg_local (define), __cmpxchg_local_u32, __cmpxchg_local,\ncmpxchg_local(macro).\n\ncmpxchg_local and cmpxchg64_local will use the architecture specific\n__cmpxchg_local_u32 for 32 bits arguments, and use the generic\n__cmpxchg_local_generic for 8, 16 and 64 bits arguments.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b78fff6e736cae55dc3fb5570c7ef4037eca9b7",
      "tree": "1ef5848902fd8222fb2280e48d19575a19aa8809",
      "parents": [
        "aebb77aef4b50a157bf0185de31d1aede3ca2312"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local, cmpxchg64 and cmpxchg64_local to ia64\n\nAdd the primitives cmpxchg_local, cmpxchg64 and cmpxchg64_local to ia64. They\nuse cmpxchg_acq as underlying macro, just like the already existing ia64\ncmpxchg().\n\nChangelog:\n\nia64 cmpxchg_local coding style fix\nQuoting Keith Owens:\n\nAs a matter of coding style, I prefer\n\n#define cmpxchg_local   cmpxchg\n#define cmpxchg64_local cmpxchg64\n\nWhich makes it absolutely clear that they are the same code.  With your\npatch, humans have to do a string compare of two defines to see if they\nare the same.\n\nNote cmpxchg is *not* a performance win vs interrupt disable / enable on IA64.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Keith Owens \u003ckaos@ocs.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aebb77aef4b50a157bf0185de31d1aede3ca2312",
      "tree": "0f4b5f17120b93193d06dcf9f6ca270f2c06c5fc",
      "parents": [
        "14e0cb3c60b89c4a2512852ffc18601c72314a0f"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to h8300\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14e0cb3c60b89c4a2512852ffc18601c72314a0f",
      "tree": "59267c487c31f18036ac8c1a28a2250c3bd97f60",
      "parents": [
        "7732ba3abc5a53e7e1d93afd5a5a6ccf74f2ce53"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to frv\n\nUse the new generic cmpxchg_local (disables interrupt) for 8, 16 and 64 bits\narguments. Use the 32 bits cmpxchg available on the architecture for 32 bits\narguments.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7732ba3abc5a53e7e1d93afd5a5a6ccf74f2ce53",
      "tree": "0dec1b2b4457d0db2ccd04eab6999c3b84c711f7",
      "parents": [
        "10b8827068377a11ed0e396248f7d02751fe5f17"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to cris\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10b8827068377a11ed0e396248f7d02751fe5f17",
      "tree": "2ca6e89cc47354ac2cec717e186ede7f24e0b8fd",
      "parents": [
        "5e86c11d3eb4662000f3ced7344352b2ca319d03"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to blackfin, replace __cmpxchg by generic cmpxchg\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set since nobody seems to know why __cmpxchg\nhas been implemented in assembly in the first place thather than in plain C.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Michael Frysinger \u003cmichael.frysinger@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e86c11d3eb4662000f3ced7344352b2ca319d03",
      "tree": "30332e5df3105622e2b5443aa346c739a89f37f6",
      "parents": [
        "176393d4232a89aaf8745b0726f4d212a20103f1"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to avr32\n\nUse the new generic cmpxchg_local (disables interrupt) for 8, 16 and 64 bits\ncmpxchg_local. Use the __cmpxchg_u32 primitive for 32 bits cmpxchg_local.\n\nNote that cmpxchg only uses the __cmpxchg_u32 or __cmpxchg_u64 and will cause\na linker error if called with 8 or 16 bits argument.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "176393d4232a89aaf8745b0726f4d212a20103f1",
      "tree": "f5d64f19a7db6da5d694c209fa8ac2d6ce43dd29",
      "parents": [
        "32f49eab5e893007c0064f465c857ac7c4d40b77"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to arm\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32f49eab5e893007c0064f465c857ac7c4d40b77",
      "tree": "dd3a69e196fee7311d61dda8c17dd62a451070b2",
      "parents": [
        "f9c4650bcfb4b21126525f73f10d635284e16056"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to x86_64\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9c4650bcfb4b21126525f73f10d635284e16056",
      "tree": "11927048b5ae34472043b894e9646d1e4635ae99",
      "parents": [
        "3b96a56d395a4dcf4c05c48d8f4e74b1f8bd073d"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to powerpc\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b96a56d395a4dcf4c05c48d8f4e74b1f8bd073d",
      "tree": "1c4e8cb7c5ea7e7af7dd8e4c07b429dffa4b9cc5",
      "parents": [
        "a259b2428b10c19b94e346bc69d5b3bf9bff488e"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to mips\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a259b2428b10c19b94e346bc69d5b3bf9bff488e",
      "tree": "ceb0536890fc85e46b905239ffe44077be695b03",
      "parents": [
        "068fbad288a2c18b75b0425fb56d241f018a1cb5"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to alpha\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "068fbad288a2c18b75b0425fb56d241f018a1cb5",
      "tree": "441674bb0658208fbc5f6eab96b8641ab7345caf",
      "parents": [
        "6e16d89bcd668a95eb22add24c02d80890232b66"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg_local to asm-generic for per cpu atomic operations\n\nEmulates the cmpxchg_local by disabling interrupts around variable modification.\nThis is not reentrant wrt NMIs and MCEs. It is only protected against normal\ninterrupts, but this is enough for architectures without such interrupt sources\nor if used in a context where the data is not shared with such handlers.\n\nIt can be used as a fallback for architectures lacking a real cmpxchg\ninstruction.\n\nFor architectures that have a real cmpxchg but does not have NMIs or MCE,\ntesting which of the generic vs architecture specific cmpxchg is the fastest\nshould be done.\n\nasm-generic/cmpxchg.h defines a cmpxchg that uses cmpxchg_local. It is meant to\nbe used as a cmpxchg fallback for architectures that do not support SMP.\n\n* Patch series comments\n\nUsing cmpxchg_local shows a performance improvements of the fast path goes from\na 66% speedup on a Pentium 4 to a 14% speedup on AMD64.\n\nIn detail:\n\nTested-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nMeasurements on a Pentium4, 3GHz, Hyperthread.\nSLUB Performance testing\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n1. Kmalloc: Repeatedly allocate then free test\n\n* slub HEAD, test 1\nkmalloc(8) \u003d 201 cycles         kfree \u003d 351 cycles\nkmalloc(16) \u003d 198 cycles        kfree \u003d 359 cycles\nkmalloc(32) \u003d 200 cycles        kfree \u003d 381 cycles\nkmalloc(64) \u003d 224 cycles        kfree \u003d 394 cycles\nkmalloc(128) \u003d 285 cycles       kfree \u003d 424 cycles\nkmalloc(256) \u003d 411 cycles       kfree \u003d 546 cycles\nkmalloc(512) \u003d 480 cycles       kfree \u003d 619 cycles\nkmalloc(1024) \u003d 623 cycles      kfree \u003d 750 cycles\nkmalloc(2048) \u003d 686 cycles      kfree \u003d 811 cycles\nkmalloc(4096) \u003d 482 cycles      kfree \u003d 538 cycles\nkmalloc(8192) \u003d 680 cycles      kfree \u003d 734 cycles\nkmalloc(16384) \u003d 713 cycles     kfree \u003d 843 cycles\n\n* Slub HEAD, test 2\nkmalloc(8) \u003d 190 cycles         kfree \u003d 351 cycles\nkmalloc(16) \u003d 195 cycles        kfree \u003d 360 cycles\nkmalloc(32) \u003d 201 cycles        kfree \u003d 370 cycles\nkmalloc(64) \u003d 245 cycles        kfree \u003d 389 cycles\nkmalloc(128) \u003d 283 cycles       kfree \u003d 413 cycles\nkmalloc(256) \u003d 409 cycles       kfree \u003d 547 cycles\nkmalloc(512) \u003d 476 cycles       kfree \u003d 616 cycles\nkmalloc(1024) \u003d 628 cycles      kfree \u003d 753 cycles\nkmalloc(2048) \u003d 684 cycles      kfree \u003d 811 cycles\nkmalloc(4096) \u003d 480 cycles      kfree \u003d 539 cycles\nkmalloc(8192) \u003d 661 cycles      kfree \u003d 746 cycles\nkmalloc(16384) \u003d 741 cycles     kfree \u003d 856 cycles\n\n* cmpxchg_local Slub test\nkmalloc(8) \u003d 83 cycles          kfree \u003d 363 cycles\nkmalloc(16) \u003d 85 cycles         kfree \u003d 372 cycles\nkmalloc(32) \u003d 92 cycles         kfree \u003d 377 cycles\nkmalloc(64) \u003d 115 cycles        kfree \u003d 397 cycles\nkmalloc(128) \u003d 179 cycles       kfree \u003d 438 cycles\nkmalloc(256) \u003d 314 cycles       kfree \u003d 564 cycles\nkmalloc(512) \u003d 398 cycles       kfree \u003d 615 cycles\nkmalloc(1024) \u003d 573 cycles      kfree \u003d 745 cycles\nkmalloc(2048) \u003d 629 cycles      kfree \u003d 816 cycles\nkmalloc(4096) \u003d 473 cycles      kfree \u003d 548 cycles\nkmalloc(8192) \u003d 659 cycles      kfree \u003d 745 cycles\nkmalloc(16384) \u003d 724 cycles     kfree \u003d 843 cycles\n\n2. Kmalloc: alloc/free test\n\n* slub HEAD, test 1\nkmalloc(8)/kfree \u003d 322 cycles\nkmalloc(16)/kfree \u003d 318 cycles\nkmalloc(32)/kfree \u003d 318 cycles\nkmalloc(64)/kfree \u003d 325 cycles\nkmalloc(128)/kfree \u003d 318 cycles\nkmalloc(256)/kfree \u003d 328 cycles\nkmalloc(512)/kfree \u003d 328 cycles\nkmalloc(1024)/kfree \u003d 328 cycles\nkmalloc(2048)/kfree \u003d 328 cycles\nkmalloc(4096)/kfree \u003d 678 cycles\nkmalloc(8192)/kfree \u003d 1013 cycles\nkmalloc(16384)/kfree \u003d 1157 cycles\n\n* Slub HEAD, test 2\nkmalloc(8)/kfree \u003d 323 cycles\nkmalloc(16)/kfree \u003d 318 cycles\nkmalloc(32)/kfree \u003d 318 cycles\nkmalloc(64)/kfree \u003d 318 cycles\nkmalloc(128)/kfree \u003d 318 cycles\nkmalloc(256)/kfree \u003d 328 cycles\nkmalloc(512)/kfree \u003d 328 cycles\nkmalloc(1024)/kfree \u003d 328 cycles\nkmalloc(2048)/kfree \u003d 328 cycles\nkmalloc(4096)/kfree \u003d 648 cycles\nkmalloc(8192)/kfree \u003d 1009 cycles\nkmalloc(16384)/kfree \u003d 1105 cycles\n\n* cmpxchg_local Slub test\nkmalloc(8)/kfree \u003d 112 cycles\nkmalloc(16)/kfree \u003d 103 cycles\nkmalloc(32)/kfree \u003d 103 cycles\nkmalloc(64)/kfree \u003d 103 cycles\nkmalloc(128)/kfree \u003d 112 cycles\nkmalloc(256)/kfree \u003d 111 cycles\nkmalloc(512)/kfree \u003d 111 cycles\nkmalloc(1024)/kfree \u003d 111 cycles\nkmalloc(2048)/kfree \u003d 121 cycles\nkmalloc(4096)/kfree \u003d 650 cycles\nkmalloc(8192)/kfree \u003d 1042 cycles\nkmalloc(16384)/kfree \u003d 1149 cycles\n\nTested-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nMeasurements on a AMD64 2.0 GHz dual-core\n\nIn this test, we seem to remove 10 cycles from the kmalloc fast path.\nOn small allocations, it gives a 14% performance increase. kfree fast\npath also seems to have a 10 cycles improvement.\n\n1. Kmalloc: Repeatedly allocate then free test\n\n* cmpxchg_local slub\nkmalloc(8) \u003d 63 cycles      kfree \u003d 126 cycles\nkmalloc(16) \u003d 66 cycles     kfree \u003d 129 cycles\nkmalloc(32) \u003d 76 cycles     kfree \u003d 138 cycles\nkmalloc(64) \u003d 100 cycles    kfree \u003d 288 cycles\nkmalloc(128) \u003d 128 cycles   kfree \u003d 309 cycles\nkmalloc(256) \u003d 170 cycles   kfree \u003d 315 cycles\nkmalloc(512) \u003d 221 cycles   kfree \u003d 357 cycles\nkmalloc(1024) \u003d 324 cycles  kfree \u003d 393 cycles\nkmalloc(2048) \u003d 354 cycles  kfree \u003d 440 cycles\nkmalloc(4096) \u003d 394 cycles  kfree \u003d 330 cycles\nkmalloc(8192) \u003d 523 cycles  kfree \u003d 481 cycles\nkmalloc(16384) \u003d 643 cycles kfree \u003d 649 cycles\n\n* Base\nkmalloc(8) \u003d 74 cycles      kfree \u003d 113 cycles\nkmalloc(16) \u003d 76 cycles     kfree \u003d 116 cycles\nkmalloc(32) \u003d 85 cycles     kfree \u003d 133 cycles\nkmalloc(64) \u003d 111 cycles    kfree \u003d 279 cycles\nkmalloc(128) \u003d 138 cycles   kfree \u003d 294 cycles\nkmalloc(256) \u003d 181 cycles   kfree \u003d 304 cycles\nkmalloc(512) \u003d 237 cycles   kfree \u003d 327 cycles\nkmalloc(1024) \u003d 340 cycles  kfree \u003d 379 cycles\nkmalloc(2048) \u003d 378 cycles  kfree \u003d 433 cycles\nkmalloc(4096) \u003d 399 cycles  kfree \u003d 329 cycles\nkmalloc(8192) \u003d 528 cycles  kfree \u003d 624 cycles\nkmalloc(16384) \u003d 651 cycles kfree \u003d 737 cycles\n\n2. Kmalloc: alloc/free test\n\n* cmpxchg_local slub\nkmalloc(8)/kfree \u003d 96 cycles\nkmalloc(16)/kfree \u003d 97 cycles\nkmalloc(32)/kfree \u003d 97 cycles\nkmalloc(64)/kfree \u003d 97 cycles\nkmalloc(128)/kfree \u003d 97 cycles\nkmalloc(256)/kfree \u003d 105 cycles\nkmalloc(512)/kfree \u003d 108 cycles\nkmalloc(1024)/kfree \u003d 105 cycles\nkmalloc(2048)/kfree \u003d 107 cycles\nkmalloc(4096)/kfree \u003d 390 cycles\nkmalloc(8192)/kfree \u003d 626 cycles\nkmalloc(16384)/kfree \u003d 662 cycles\n\n* Base\nkmalloc(8)/kfree \u003d 116 cycles\nkmalloc(16)/kfree \u003d 116 cycles\nkmalloc(32)/kfree \u003d 116 cycles\nkmalloc(64)/kfree \u003d 116 cycles\nkmalloc(128)/kfree \u003d 116 cycles\nkmalloc(256)/kfree \u003d 126 cycles\nkmalloc(512)/kfree \u003d 126 cycles\nkmalloc(1024)/kfree \u003d 126 cycles\nkmalloc(2048)/kfree \u003d 126 cycles\nkmalloc(4096)/kfree \u003d 384 cycles\nkmalloc(8192)/kfree \u003d 749 cycles\nkmalloc(16384)/kfree \u003d 786 cycles\n\nTested-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nI can confirm Mathieus\u0027 measurement now:\n\nAthlon64:\n\nregular NUMA/discontig\n\n1. Kmalloc: Repeatedly allocate then free test\n10000 times kmalloc(8) -\u003e 79 cycles kfree -\u003e 92 cycles\n10000 times kmalloc(16) -\u003e 79 cycles kfree -\u003e 93 cycles\n10000 times kmalloc(32) -\u003e 88 cycles kfree -\u003e 95 cycles\n10000 times kmalloc(64) -\u003e 124 cycles kfree -\u003e 132 cycles\n10000 times kmalloc(128) -\u003e 157 cycles kfree -\u003e 247 cycles\n10000 times kmalloc(256) -\u003e 200 cycles kfree -\u003e 257 cycles\n10000 times kmalloc(512) -\u003e 250 cycles kfree -\u003e 277 cycles\n10000 times kmalloc(1024) -\u003e 337 cycles kfree -\u003e 314 cycles\n10000 times kmalloc(2048) -\u003e 365 cycles kfree -\u003e 330 cycles\n10000 times kmalloc(4096) -\u003e 352 cycles kfree -\u003e 240 cycles\n10000 times kmalloc(8192) -\u003e 456 cycles kfree -\u003e 340 cycles\n10000 times kmalloc(16384) -\u003e 646 cycles kfree -\u003e 471 cycles\n2. Kmalloc: alloc/free test\n10000 times kmalloc(8)/kfree -\u003e 124 cycles\n10000 times kmalloc(16)/kfree -\u003e 124 cycles\n10000 times kmalloc(32)/kfree -\u003e 124 cycles\n10000 times kmalloc(64)/kfree -\u003e 124 cycles\n10000 times kmalloc(128)/kfree -\u003e 124 cycles\n10000 times kmalloc(256)/kfree -\u003e 132 cycles\n10000 times kmalloc(512)/kfree -\u003e 132 cycles\n10000 times kmalloc(1024)/kfree -\u003e 132 cycles\n10000 times kmalloc(2048)/kfree -\u003e 132 cycles\n10000 times kmalloc(4096)/kfree -\u003e 319 cycles\n10000 times kmalloc(8192)/kfree -\u003e 486 cycles\n10000 times kmalloc(16384)/kfree -\u003e 539 cycles\n\ncmpxchg_local NUMA/discontig\n\n1. Kmalloc: Repeatedly allocate then free test\n10000 times kmalloc(8) -\u003e 55 cycles kfree -\u003e 90 cycles\n10000 times kmalloc(16) -\u003e 55 cycles kfree -\u003e 92 cycles\n10000 times kmalloc(32) -\u003e 70 cycles kfree -\u003e 91 cycles\n10000 times kmalloc(64) -\u003e 100 cycles kfree -\u003e 141 cycles\n10000 times kmalloc(128) -\u003e 128 cycles kfree -\u003e 233 cycles\n10000 times kmalloc(256) -\u003e 172 cycles kfree -\u003e 251 cycles\n10000 times kmalloc(512) -\u003e 225 cycles kfree -\u003e 275 cycles\n10000 times kmalloc(1024) -\u003e 325 cycles kfree -\u003e 311 cycles\n10000 times kmalloc(2048) -\u003e 346 cycles kfree -\u003e 330 cycles\n10000 times kmalloc(4096) -\u003e 351 cycles kfree -\u003e 238 cycles\n10000 times kmalloc(8192) -\u003e 450 cycles kfree -\u003e 342 cycles\n10000 times kmalloc(16384) -\u003e 630 cycles kfree -\u003e 546 cycles\n2. Kmalloc: alloc/free test\n10000 times kmalloc(8)/kfree -\u003e 81 cycles\n10000 times kmalloc(16)/kfree -\u003e 81 cycles\n10000 times kmalloc(32)/kfree -\u003e 81 cycles\n10000 times kmalloc(64)/kfree -\u003e 81 cycles\n10000 times kmalloc(128)/kfree -\u003e 81 cycles\n10000 times kmalloc(256)/kfree -\u003e 91 cycles\n10000 times kmalloc(512)/kfree -\u003e 90 cycles\n10000 times kmalloc(1024)/kfree -\u003e 91 cycles\n10000 times kmalloc(2048)/kfree -\u003e 90 cycles\n10000 times kmalloc(4096)/kfree -\u003e 318 cycles\n10000 times kmalloc(8192)/kfree -\u003e 483 cycles\n10000 times kmalloc(16384)/kfree -\u003e 536 cycles\n\nChangelog:\n- Ran though checkpatch.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e16d89bcd668a95eb22add24c02d80890232b66",
      "tree": "8d5fcab14edac7d36c67e8a57abb5025cfaa2c2d",
      "parents": [
        "ed7b1889da256977574663689b598d88950bbd23"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Feb 07 00:15:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Sanitize the type of struct user.u_ar0\n\nstruct user.u_ar0 is defined to contain a pointer offset on all\narchitectures in which it is defined (all architectures which define an\na.out format except SPARC.) However, it has a pointer type in the headers,\nwhich is pointless -- \u003casm/user.h\u003e is not exported to userspace, and it\njust makes the code messy.\n\nRedefine the field as \"unsigned long\" (which is the same size as a pointer\non all Linux architectures) and change the setting code to user offsetof()\ninstead of hand-coded arithmetic.\n\nCc: Linux Arch Mailing List \u003clinux-arch@vger.kernel.org\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Lennert Buytenhek \u003ckernel@wantstofly.org\u003e\nCc: Håvard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed7b1889da256977574663689b598d88950bbd23",
      "tree": "bdbf8d12826dece7ec4ccb4edcb18cd66dc842a0",
      "parents": [
        "6cc931b9b5ec652c90b928f3ec2163f261552c91"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "k.shutemov@gmail.com",
        "time": "Thu Feb 07 00:15:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Unexport asm/page.h\n\nDo not export asm/page.h during make headers_install.  This removes PAGE_SIZE\nfrom userspace headers.\n\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nReviewed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cc931b9b5ec652c90b928f3ec2163f261552c91",
      "tree": "0f01557ada755c56baffe102614149ad190ebb02",
      "parents": [
        "516c25a86f6bdad77ded01a43c52c5569c8d690c"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "k.shutemov@gmail.com",
        "time": "Thu Feb 07 00:15:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Unexport asm/elf.h\n\nDo not export asm/elf.h during make headers_install.\n\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nReviewed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "516c25a86f6bdad77ded01a43c52c5569c8d690c",
      "tree": "e7404e73fd103f70958ccb1bc1c74ff1c7ff48bf",
      "parents": [
        "c1445db9f72db0537c43a2eab6e1b0f6741162f5"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "k.shutemov@gmail.com",
        "time": "Thu Feb 07 00:15:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed\n\nasm/elf.h, asm/page.h and asm/user.h don\u0027t export to userspace now, so we can\ndrop #ifdef __KERNEL__ for them.\n\n[k.shutemov@gmail.com: remove #ifdef __KERNEL_]\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nReviewed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1445db9f72db0537c43a2eab6e1b0f6741162f5",
      "tree": "3ea99c656c8d3699631c29d003ffe2f81752eb79",
      "parents": [
        "12debc4248a4a7f1873e47cda2cdd7faca80b099"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "k.shutemov@gmail.com",
        "time": "Thu Feb 07 00:15:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:29 2008 -0800"
      },
      "message": "Unexport asm/user.h and linux/user.h\n\nDo not export asm/user.h and linux/user.h during make headers_install.\n\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nReviewed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12debc4248a4a7f1873e47cda2cdd7faca80b099",
      "tree": "1ad80b77d213ea09cb746d6e4d50c4316462a452",
      "parents": [
        "755aedc15900ff7d83dd046f632af9a680b0c28f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:29 2008 -0800"
      },
      "message": "iget: remove iget() and the read_inode() super op as being obsolete\n\nRemove the old iget() call and the read_inode() superblock operation it uses\nas these are really obsolete, and the use of read_inode() does not produce\nproper error handling (no distinction between ENOMEM and EIO when marking an\ninode bad).\n\nFurthermore, this removes the temptation to use iget() to find an inode by\nnumber in a filesystem from code outside that filesystem.\n\niget_locked() should be used instead.  A new function is added in an earlier\npatch (iget_failed) that is to be called to mark an inode as bad, unlock it\nand release it should the get routine fail.  Mark iget() and read_inode() as\nbeing obsolete and remove references to them from the documentation.\n\nTypically a filesystem will be modified such that the read_inode function\nbecomes an internal iget function, for example the following:\n\n\tvoid thingyfs_read_inode(struct inode *inode)\n\t{\n\t\t...\n\t}\n\nwould be changed into something like:\n\n\tstruct inode *thingyfs_iget(struct super_block *sp, unsigned long ino)\n\t{\n\t\tstruct inode *inode;\n\t\tint ret;\n\n\t\tinode \u003d iget_locked(sb, ino);\n\t\tif (!inode)\n\t\t\treturn ERR_PTR(-ENOMEM);\n\t\tif (!(inode-\u003ei_state \u0026 I_NEW))\n\t\t\treturn inode;\n\n\t\t...\n\t\tunlock_new_inode(inode);\n\t\treturn inode;\n\terror:\n\t\tiget_failed(inode);\n\t\treturn ERR_PTR(ret);\n\t}\n\nand then thingyfs_iget() would be called rather than iget(), for example:\n\n\tret \u003d -EINVAL;\n\tinode \u003d iget(sb, ino);\n\tif (!inode || is_bad_inode(inode))\n\t\tgoto error;\n\nbecomes:\n\n\tinode \u003d thingyfs_iget(sb, ino);\n\tif (IS_ERR(inode)) {\n\t\tret \u003d PTR_ERR(inode);\n\t\tgoto error;\n\t}\n\nNote that is_bad_inode() does not need to be called.  The error returned by\nthingyfs_iget() should render it unnecessary.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b7e5bcbd9e03f7236d2869f4261059074ea50a2",
      "tree": "fcc75f21bf6a3a65ee28909919bf36f58d667720",
      "parents": [
        "a1d4aebbfa91c55a6b0c629a9ccf6369be0c6e95"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:28 2008 -0800"
      },
      "message": "iget: stop QNX4 from using iget() and read_inode()\n\nStop the QNX4 filesystem from using iget() and read_inode().  Replace\nqnx4_read_inode() with qnx4_iget(), and call that instead of iget().\nqnx4_iget() then uses iget_locked() directly and returns a proper error code\ninstead of an inode in the event of an error.\n\nqnx4_fill_super() returns any error incurred when getting the root inode\ninstead of EINVAL.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Anders Larsen \u003cal@alarsen.net\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d1fe1ee02b9ac2660995b10e35dd41448fef011",
      "tree": "8961bbe5a36a07dc8ad8c6cd3e973ce0fcde5850",
      "parents": [
        "473043dcee1874aab99f66b0362b344618eb3790"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: stop EXT4 from using iget() and read_inode()\n\nStop the EXT4 filesystem from using iget() and read_inode().  Replace\next4_read_inode() with ext4_iget(), and call that instead of iget().\next4_iget() then uses iget_locked() directly and returns a proper error code\ninstead of an inode in the event of an error.\n\next4_fill_super() returns any error incurred when getting the root inode\ninstead of EINVAL.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "473043dcee1874aab99f66b0362b344618eb3790",
      "tree": "bc329501ec6cd0d31dfe11d4587347093dca4ccf",
      "parents": [
        "52fcf7032935b33158e3998ed399cac97447ab8d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: stop EXT3 from using iget() and read_inode()\n\nStop the EXT3 filesystem from using iget() and read_inode().  Replace\next3_read_inode() with ext3_iget(), and call that instead of iget().\next3_iget() then uses iget_locked() directly and returns a proper error code\ninstead of an inode in the event of an error.\n\next3_fill_super() returns any error incurred when getting the root inode\ninstead of EINVAL.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "298384cd7929a3a14d7b116095973f0d02f5d09e",
      "tree": "651ef96b214831a77e12b120d8eb5262a9d49d74",
      "parents": [
        "ce634ab28e7dbcc13ebe6e7bc5bc7de4f8def4c8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: stop EFS from using iget() and read_inode()\n\nStop the EFS filesystem from using iget() and read_inode().  Replace\nefs_read_inode() with efs_iget(), and call that instead of iget().  efs_iget()\nthen uses iget_locked() directly and returns a proper error code instead of an\ninode in the event of an error.\n\nefs_fill_super() returns any error incurred when getting the root inode\ninstead of EACCES.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b46980feed937868d3333514028bfbe9a651e4ca",
      "tree": "97e610932986223932887af3c0ea00234856e540",
      "parents": [
        "e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:26 2008 -0800"
      },
      "message": "iget: introduce a function to register iget failure\n\nIntroduce a function to register failure in an inode construction path.  This\nincludes marking the inode under construction as bad, unlocking it and\nreleasing it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1bc8e95445224276d7896b8b08cbb0b28a0ca80",
      "tree": "2742bf56000c4af02314d753b2416b5cabc520d5",
      "parents": [
        "ae5e29798afa2b11a01fcb4fab8b58fee47fe155"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "Add an ERR_CAST() function to complement ERR_PTR and co.\n\nAdd an ERR_CAST() function to complement ERR_PTR and co.  for the purposes\nof casting an error entyped as one pointer type to an error of another\npointer type whilst making it explicit as to what is going on.\n\nThis provides a replacement for the ERR_PTR(PTR_ERR(p)) construct.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bba1f603b88f30945ae4c5eccf2a6f5a12b877c5",
      "tree": "ae084f845fa4ede7b2926381419d725b7dd7d5d7",
      "parents": [
        "1e4f2955433231b4b02dc4a9eb5d4d403a8680e1"
      ],
      "author": {
        "name": "Ken\u0027ichi Ohmichi",
        "email": "oomichi@mxs.nes.nec.co.jp",
        "time": "Thu Feb 07 00:15:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "vmcoreinfo: add \"VMCOREINFO_\" to all the call for vmcoreinfo_append_str()\n\nFor readability, all the calls to vmcoreinfo_append_str() are changed to macros\nhaving a prefix \"VMCOREINFO_\".\n\nThis discussion is the following:\nhttp://www.ussg.iu.edu/hypermail/linux/kernel/0709.3/0584.html\n\nSigned-off-by: Ken\u0027ichi Ohmichi \u003coomichi@mxs.nes.nec.co.jp\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e4f2955433231b4b02dc4a9eb5d4d403a8680e1",
      "tree": "8414e9b4b5b22f201cbd993630d8ac13a98cd24c",
      "parents": [
        "c76f860c44357f560a763d2894e95464cab7b159"
      ],
      "author": {
        "name": "Ken\u0027ichi Ohmichi",
        "email": "oomichi@mxs.nes.nec.co.jp",
        "time": "Thu Feb 07 00:15:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "vmcoreinfo: use the existing offsetof() for VMCOREINFO_OFFSET()\n\nIt is better that the existing offsetof() is used for VMCOREINFO_OFFSET().\n\nThis discussion is the following:\nhttp://www.ussg.iu.edu/hypermail/linux/kernel/0709.3/0584.html\n\nSigned-off-by: Ken\u0027ichi Ohmichi \u003coomichi@mxs.nes.nec.co.jp\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c76f860c44357f560a763d2894e95464cab7b159",
      "tree": "49cc50570ae34b02222cf5a7f1023e5828ae246b",
      "parents": [
        "18a01a3beb9f25a70a51e12e3c1c3d273da10eca"
      ],
      "author": {
        "name": "Ken\u0027ichi Ohmichi",
        "email": "oomichi@mxs.nes.nec.co.jp",
        "time": "Thu Feb 07 00:15:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "vmcoreinfo: rename vmcoreinfo\u0027s macros returning the size\n\nThis patchset is for the vmcoreinfo data.\n\nThe vmcoreinfo data has the minimum debugging information only for dump\nfiltering.  makedumpfile (dump filtering command) gets it to distinguish\nunnecessary pages, and makedumpfile creates a small dumpfile.\n\nThis patch:\n\nVMCOREINFO_SIZE() should be renamed VMCOREINFO_STRUCT_SIZE() since it\u0027s always\nreturning the size of the struct with a given name. This change would allow\nVMCOREINFO_TYPEDEF_SIZE() to simply become VMCOREINFO_SIZE() since it need not\nbe used exclusively for typedefs.\n\nThis discussion is the following:\nhttp://www.ussg.iu.edu/hypermail/linux/kernel/0709.3/0582.html\n\nSigned-off-by: Ken\u0027ichi Ohmichi \u003coomichi@mxs.nes.nec.co.jp\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72a7fe3967dbf86cb34e24fbf1d957fe24d2f246",
      "tree": "c19f7d0b530577359840e959cce204939caf0649",
      "parents": [
        "25fad945a7f7ff2cf06e437381c6a1121784dbd9"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "bwalle@suse.de",
        "time": "Thu Feb 07 00:15:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "Introduce flags for reserve_bootmem()\n\nThis patchset adds a flags variable to reserve_bootmem() and uses the\nBOOTMEM_EXCLUSIVE flag in crashkernel reservation code to detect collisions\nbetween crashkernel area and already used memory.\n\nThis patch:\n\nChange the reserve_bootmem() function to accept a new flag BOOTMEM_EXCLUSIVE.\nIf that flag is set, the function returns with -EBUSY if the memory already\nhas been reserved in the past.  This is to avoid conflicts.\n\nBecause that code runs before SMP initialisation, there\u0027s no race condition\ninside reserve_bootmem_core().\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix powerpc build]\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.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": "fa9ff4b185b8f7f124c1c6686f02e690f0625287",
      "tree": "f25c1f4f9b27f19070d8a79ea245137a5e10d04f",
      "parents": [
        "8f5aa26c75b7722e80c0c5c5bb833d41865d7019"
      ],
      "author": {
        "name": "Samuel Ortiz",
        "email": "sameo@openedhand.com",
        "time": "Thu Feb 07 00:14:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:23 2008 -0800"
      },
      "message": "ASIC3 driver\n\nThis is a patch for the Compaq ASIC3 multi function chip, found in many\nPDAs (iPAQs, HTCs...).\n\nIt is a simplified version of Paul Sokolovsky\u0027s first proposal [1].  With\nthis code, it is basically a GPIO and IRQ expander.  My plan is to add more\nfeatures once this patch gets reviewed and accepted.\n\n[1] http://lkml.org/lkml/2007/5/1/46\n\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\nCc: Paul Sokolovsky \u003cpmiscml@gmail.com\u003e\nCc: Ben Dooks \u003cben@trinity.fluff.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "956db3ca0606e78456786ef19fd4dc7a5151a6e1",
      "tree": "0bef3d107df1115ecf76e342f30ecee67a7f3705",
      "parents": [
        "31a7df01fd0cd786f60873a921aecafac148c290"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu: move tasks in empty cpusets to parent\n\nThis patch corrects a situation that occurs when one disables all the cpus in\na cpuset.\n\nCurrently, the disabled (cpu-less) cpuset inherits the cpus of its parent,\nwhich is incorrect because it may then overlap its cpu-exclusive sibling.\n\nTasks of an empty cpuset should be moved to the cpuset which is the parent of\ntheir current cpuset.  Or if the parent cpuset has no cpus, to its parent,\netc.\n\nAnd the empty cpuset should be released (if it is flagged notify_on_release).\n\nDepends on the cgroup_scan_tasks() function (proposed by David Rientjes) to\niterate through all tasks in the cpu-less cpuset.  We are deliberately\navoiding a walk of the tasklist.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31a7df01fd0cd786f60873a921aecafac148c290",
      "tree": "221f00c864c50e7dc4719cb4de09292040567c55",
      "parents": [
        "dfc05c259e424e4160c66eab728f55cc4b53fd75"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cgroups: mechanism to process each task in a cgroup\n\nProvide cgroup_scan_tasks(), which iterates through every task in a cgroup,\ncalling a test function and a process function for each.  And call the process\nfunction without holding the css_set_lock lock.\n\nThe idea is David Rientjes\u0027, predicting that such a function will make it much\neasier in the future to extend things that require access to each task in a\ncgroup without holding the lock,\n\n[akpm@linux-foundation.org: cleanup]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c541e14bfa553133c3473a6ed3e4c0583ea2285",
      "tree": "4e8ca5d7272803d3fe1bb06963b132248d0b4240",
      "parents": [
        "072c56c13e1302fcdc39961dc64e76485731ad67"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "Memory controller remove control_type feature\n\nBased on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt\nthat control_type might not be a good thing to implement right away.  We\ncan add this flexibility at a later point when required.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc38108e1ba7f3b9e12b82d0236fa3730c2e0439",
      "tree": "6e51d191006b5db840c1eee659c372a2de7f85a8",
      "parents": [
        "6c48a1d040a9a9eaa4acdd7d4cb3885e04bf8413"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate the number of pages to be scanned per cgroup\n\nDefine function for calculating the number of scan target on each Zone/LRU.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c48a1d040a9a9eaa4acdd7d4cb3885e04bf8413",
      "tree": "2fcfb405b5664028d337a8a185c696c9c1f23e64",
      "parents": [
        "5932f3671bb2dd873c5ac443cbf5dc2cd167ae94"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: remember reclaim priority in memory cgroup\n\nFunctions to remember reclaim priority per cgroup (as zone-\u003eprev_priority)\n\n[akpm@linux-foundation.org: build fixes]\n[akpm@linux-foundation.org: more build fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5932f3671bb2dd873c5ac443cbf5dc2cd167ae94",
      "tree": "31e2a8fc80487b5ec80d7730c61b62127aebc15d",
      "parents": [
        "58ae83db2a40dea15d4277d499a11dadc823c388"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate active/inactive imbalance per cgroup\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58ae83db2a40dea15d4277d499a11dadc823c388",
      "tree": "18e43609ab67a9577c01188d39714999d5ed03d0",
      "parents": [
        "6d12e2d8ddbe653d80ea4f71578481c1bc933025"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate mapper_ratio per cgroup\n\nDefine function for calculating mapped_ratio in memory cgroup.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fca88c87b7969c698912e2de9b1b31088c777cb",
      "tree": "6a086aaffb4ec17eadd2f2427c5816a02be6606f",
      "parents": [
        "d2ceb9b7ddedbb2e8e590bc6ce33c854043016f9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add- pre_destroy() handler\n\nAdd a handler \"pre_destroy\" to cgroup_subsys.  It is called before\ncgroup_rmdir() checks all subsys\u0027s refcnt.\n\nI think this is useful for subsys which have some extra refs even if there\nare no tasks in cgroup.  By adding pre_destroy(), the kernel keeps the rule\n\"destroy() against subsystem is called only when refcnt\u003d0.\" and allows css\nref to be used by other objects than tasks.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.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": "ae41be374293e70e1ed441d986afcc6e744ef9d9",
      "tree": "d8e2143820bbf3ed2f1f79ed99ee430284567b93",
      "parents": [
        "9175e0311ec9e6d1bf1f6dfecf9268baf08765e6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "bugfix for memory cgroup controller: migration under memory controller fix\n\nWhile using memory control cgroup, page-migration under it works as following.\n\u003d\u003d\n 1. uncharge all refs at try to unmap.\n 2. charge regs again remove_migration_ptes()\n\u003d\u003d\nThis is simple but has following problems.\n\u003d\u003d\n The page is uncharged and charged back again if *mapped*.\n    - This means that cgroup before migration can be different from one after\n      migration\n    - If page is not mapped but charged as page cache, charge is just ignored\n      (because not mapped, it will not be uncharged before migration)\n      This is memory leak.\n\u003d\u003d\nThis patch tries to keep memory cgroup at page migration by increasing\none refcnt during it. 3 functions are added.\n\n mem_cgroup_prepare_migration() --- increase refcnt of page-\u003epage_cgroup\n mem_cgroup_end_migration()     --- decrease refcnt of page-\u003epage_cgroup\n mem_cgroup_page_migration() --- copy page-\u003epage_cgroup from old page to\n                                 new page.\n\nDuring migration\n  - old page is under PG_locked.\n  - new page is under PG_locked, too.\n  - both old page and new page is not on LRU.\n\nThese 3 facts guarantee that page_cgroup() migration has no race.\n\nTested and worked well in x86_64/fake-NUMA box.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.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": "4c4a22148909e4c003562ea7ffe0a06e26919e3c",
      "tree": "fa8b7d00e89f0eb4cdb4394dbc74d898810519aa",
      "parents": [
        "4c6bc8dd5a0932f2c0b30a5f0a124464b7f614d0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcontrol: move oom task exclusion to tasklist scan\n\nCreates a helper function to return non-zero if a task is a member of a\nmemory controller:\n\n\tint task_in_mem_cgroup(const struct task_struct *task,\n\t\t\t       const struct mem_cgroup *mem);\n\nWhen the OOM killer is constrained by the memory controller, the exclusion\nof tasks that are not a member of that controller was previously misplaced\nand appeared in the badness scoring function.  It should be excluded\nduring the tasklist scan in select_bad_process() instead.\n\n[akpm@linux-foundation.org: build fix]\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3062fc67dad01b1d2a15d58c709eff946389eca4",
      "tree": "521b26bda2f6b106c8b3747a88214eec5f24b998",
      "parents": [
        "e1a1cd590e3fcb0d2e230128daf2337ea55387dc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcontrol: move mm_cgroup to header file\n\nInline functions must preceed their use, so mm_cgroup() should be defined\nin linux/memcontrol.h.\n\ninclude/linux/memcontrol.h:48: warning: \u0027mm_cgroup\u0027 declared inline after\n\tbeing called\ninclude/linux/memcontrol.h:48: warning: previous declaration of\n\t\u0027mm_cgroup\u0027 was here\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1a1cd590e3fcb0d2e230128daf2337ea55387dc",
      "tree": "eb660ab340c657a1eb595b2d4d8e8b62783bf6fb",
      "parents": [
        "bed7161a519a2faef53e1bce1b47595e297c1d14"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: make charging gfp mask aware\n\nNick Piggin pointed out that swap cache and page cache addition routines\ncould be called from non GFP_KERNEL contexts.  This patch makes the\ncharging routine aware of the gfp context.  Charging might fail if the\ncgroup is over it\u0027s limit, in which case a suitable error is returned.\n\nThis patch was tested on a Powerpc box.  I am still looking at being able\nto test the path, through which allocations happen in non GFP_KERNEL\ncontexts.\n\n[kamezawa.hiroyu@jp.fujitsu.com: problem with ZONE_MOVABLE]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "bed7161a519a2faef53e1bce1b47595e297c1d14"
}
