)]}'
{
  "log": [
    {
      "commit": "cd619e21ea468b02af9eeed75eae2307ec7de1cb",
      "tree": "7d9febcbea96480d9b9f9ef291ad45ada3eac978",
      "parents": [
        "0375ec5899a37e80af7be8e813548df3292325ff",
        "5c07eae979dfb596141c6885e5f5ecf1cd22cad3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 17:42:59 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 17:42:59 2013 -0400"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://cavan.codon.org.uk/platform-drivers-x86\n\nPull x86 platform updates from Matthew Garrett:\n \"Nothing amazing here, almost entirely cleanups and minor bugfixes and\n  one bit of hardware enablement in the amilo-rfkill driver\"\n\n* \u0027for_linus\u0027 of git://cavan.codon.org.uk/platform-drivers-x86:\n  platform/x86: panasonic-laptop: reuse module_acpi_driver\n  samsung-laptop: fix config build error\n  platform: x86: remove unnecessary platform_set_drvdata()\n  amilo-rfkill: Enable using amilo-rfkill with the FSC Amilo L1310.\n  wmi: parse_wdg() should return kernel error codes\n  hp_wmi: Fix unregister order in hp_wmi_rfkill_setup()\n  platform: replace strict_strto*() with kstrto*()\n  x86: irst: use module_acpi_driver to simplify the code\n  x86: smartconnect: use module_acpi_driver to simplify the code\n  platform samsung-q10: use ACPI instead of direct EC calls\n  thinkpad_acpi: add the ability setting TPACPI_LED_NONE by quirk\n  thinkpad_acpi: return -NODEV while operating uninitialized LEDs\n"
    },
    {
      "commit": "0375ec5899a37e80af7be8e813548df3292325ff",
      "tree": "6f3e60e0430988255ea6507d2c018b06227f8349",
      "parents": [
        "bff157b3ad4b9f6be0af6987fcd62deaf0f2b799",
        "fc85799ee362e3ef13b8f2f5c687101490aaaa7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 17:41:30 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 17:41:30 2013 -0400"
      },
      "message": "Merge tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull misc SCSI driver updates from James Bottomley:\n \"This patch set is a set of driver updates (megaraid_sas, fnic, lpfc,\n  ufs, hpsa) we also have a couple of bug fixes (sd out of bounds and\n  ibmvfc error handling) and the first round of esas2r checker fixes and\n  finally the much anticipated big endian additions for megaraid_sas\"\n\n* tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (47 commits)\n  [SCSI] fnic: fnic Driver Tuneables Exposed through CLI\n  [SCSI] fnic: Kernel panic while running sh/nosh with max lun cfg\n  [SCSI] fnic: Hitting BUG_ON(io_req-\u003eabts_done) in fnic_rport_exch_reset\n  [SCSI] fnic: Remove QUEUE_FULL handling code\n  [SCSI] fnic: On system with \u003e1.1TB RAM, VIC fails multipath after boot up\n  [SCSI] fnic: FC stat param seconds_since_last_reset not getting updated\n  [SCSI] sd: Fix potential out-of-bounds access\n  [SCSI] lpfc 8.3.42: Update lpfc version to driver version 8.3.42\n  [SCSI] lpfc 8.3.42: Fixed issue of task management commands having a fixed timeout\n  [SCSI] lpfc 8.3.42: Fixed inconsistent spin lock usage.\n  [SCSI] lpfc 8.3.42: Fix driver\u0027s abort loop functionality to skip IOs already getting aborted\n  [SCSI] lpfc 8.3.42: Fixed failure to allocate SCSI buffer on PPC64 platform for SLI4 devices\n  [SCSI] lpfc 8.3.42: Fix WARN_ON when driver unloads\n  [SCSI] lpfc 8.3.42: Avoided making pci bar ioremap call during dual-chute WQ/RQ pci bar selection\n  [SCSI] lpfc 8.3.42: Fixed driver iocbq structure\u0027s iocb_flag field running out of space\n  [SCSI] lpfc 8.3.42: Fix crash on driver load due to cpu affinity logic\n  [SCSI] lpfc 8.3.42: Fixed logging format of setting driver sysfs attributes hard to interpret\n  [SCSI] lpfc 8.3.42: Fixed back to back RSCNs discovery failure.\n  [SCSI] lpfc 8.3.42: Fixed race condition between BSG I/O dispatch and timeout handling\n  [SCSI] lpfc 8.3.42: Fixed function mode field defined too small for not recognizing dual-chute mode\n  ...\n"
    },
    {
      "commit": "bff157b3ad4b9f6be0af6987fcd62deaf0f2b799",
      "tree": "02ae68620a40fefd9ffc2de739a8bb362baa3f08",
      "parents": [
        "8bf5e36d0429e9b8fc2c84966577f10386bd7195",
        "23774a2f6fee0848503bfb8004eeeb5adef94f5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:15:06 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:15:06 2013 -0400"
      },
      "message": "Merge branch \u0027slab/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux\n\nPull SLAB update from Pekka Enberg:\n \"Nothing terribly exciting here apart from Christoph\u0027s kmalloc\n  unification patches that brings sl[aou]b implementations closer to\n  each other\"\n\n* \u0027slab/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:\n  slab: Use correct GFP_DMA constant\n  slub: remove verify_mem_not_deleted()\n  mm/sl[aou]b: Move kmallocXXX functions to common code\n  mm, slab_common: add \u0027unlikely\u0027 to size check of kmalloc_slab()\n  mm/slub.c: beautify code for removing redundancy \u0027break\u0027 statement.\n  slub: Remove unnecessary page NULL check\n  slub: don\u0027t use cpu partial pages on UP\n  mm/slub: beautify code for 80 column limitation and tab alignment\n  mm/slub: remove \u0027per_cpu\u0027 which is useless variable\n"
    },
    {
      "commit": "8bf5e36d0429e9b8fc2c84966577f10386bd7195",
      "tree": "d060b4ddc3cbc8bddd35a2aa182ed9bed9efb0de",
      "parents": [
        "05a8252bdefe9f2a8931c720afe6200671d631a6",
        "c7dc65737c9a607d3e6f8478659876074ad129b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:13:39 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:13:39 2013 -0400"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull input update from Dmitry Torokhov:\n \"The only change is David Hermann\u0027s new EVIOCREVOKE evdev ioctl that\n  allows safely passing file descriptors to input devices to session\n  processes and later being able to stop delivery of events through\n  these fds so that inactive sessions will no longer receive user input\n  that does not belong to them\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: evdev - add EVIOCREVOKE ioctl\n"
    },
    {
      "commit": "05a8252bdefe9f2a8931c720afe6200671d631a6",
      "tree": "89156319f026e7023bc0a711a754d408ddbf9bec",
      "parents": [
        "6b02fa59a7cf34c548eedee657b07ea6c54d3894"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:11:01 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:11:01 2013 -0400"
      },
      "message": "vfs: fix typo in comment in recent dentry work\n\nSedat points out that I transposed some letters in \"LRU\" and wrote \"RLU\"\ninstead in one of the new comments explaining the flow.  Let\u0027s just fix\nit.\n\nReported-by: Sedat Dilek \u003csedat.dilek@jpberlin.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b02fa59a7cf34c548eedee657b07ea6c54d3894",
      "tree": "01279f3f74cbf1e1a2feadceb9ee37d4023fe82e",
      "parents": [
        "3711d86a2de17e967b576af8b8a1e9351a7d1466"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr@hp.com",
        "time": "Fri Sep 13 15:02:22 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:10:16 2013 -0400"
      },
      "message": "partitions/efi: loosen check fot pmbr size in lba\n\nMatt found that commit 27a7c642174e (\"partitions/efi: account for pmbr\nsize in lba\") caused his GPT formatted eMMC device not to boot.  The\nreason is that this commit enforced Linux to always check the lesser of\nthe whole disk or 2Tib for the pMBR size in LBA.  While most disk\npartitioning tools out there create a pMBR with these characteristics,\nMicrosoft does not, as it always sets the entry to the maximum 32-bit\nlimitation - even though a drive may be smaller than that[1].\n\nLoosen this check and only verify that the size is either the whole disk\nor 0xFFFFFFFF.  No tool in its right mind would set it to any value\nother than these.\n\n[1] http://thestarman.pcministry.com/asm/mbr/GPT.htm#GPTPT\n\nReported-and-tested-by: Matt Porter \u003cmatt.porter@linaro.org\u003e\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr@hp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3711d86a2de17e967b576af8b8a1e9351a7d1466",
      "tree": "f7d6028b81a475a83a6c2471645e0202b2b5f427",
      "parents": [
        "89dc77bcdabf42ec99553f5837aa4bb8255a088c",
        "a8855990e382fc81c04187c5fdb48743307baf32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 23:06:40 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 23:06:40 2013 -0400"
      },
      "message": "Merge tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback fix from Wu Fengguang:\n \"A trivial writeback fix\"\n\n* tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Do not sort b_io list only because of block device inode\n"
    },
    {
      "commit": "89dc77bcdabf42ec99553f5837aa4bb8255a088c",
      "tree": "5648f91439538e2a4fd892a4ab525dd99bb2a44d",
      "parents": [
        "bdbdfdef5766c2a60185e946df242f1bc0d37c09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 22:55:10 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 22:55:10 2013 -0400"
      },
      "message": "vfs: fix dentry LRU list handling and nr_dentry_unused accounting\n\nThe LRU list changes interacted badly with our nr_dentry_unused\naccounting, and even worse with the new DCACHE_LRU_LIST bit logic.\n\nThis introduces helper functions to make sure everything follows the\nproper dcache d_lru list rules: the dentry cache is complicated by the\nfact that some of the hotpaths don\u0027t even want to look at the LRU list\nat all, and the fact that we use the same list entry in the dentry for\nboth the LRU list and for our temporary shrinking lists when removing\nthings from the LRU.\n\nThe helper functions temporarily have some extra sanity checking for the\nflag bits that have to match the current LRU state of the dentry.  We\u0027ll\nremove that before the final 3.12 release, but considering how easy it\nis to get wrong, this first cleanup version has some very particular\nsanity checking.\n\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdbdfdef5766c2a60185e946df242f1bc0d37c09",
      "tree": "1dea71a3d6a176f481f14cf85c2c834a70435184",
      "parents": [
        "67002151403350b497c1efc8d36450974dfca023",
        "0b77f766f3ef9875e2bb0035c9b89b4f9469b78d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:58:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:58:41 2013 -0700"
      },
      "message": "Merge tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging\n\nPull hwmon fixes from Guenter Roeck:\n \"Some more low risk cleanup patches:\n\n   - Remove unnecessary pci_set_drvdata in k10temp driver from Jingoo Han\n   - Fix return values in several drivers from Sachin Kamat\n   - Remove redundant break in amc6821 driver from Sachin Kamat\"\n\n* tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:\n  hwmon: (k10temp) remove unnecessary pci_set_drvdata()\n  hwmon: (tmp421) Fix return value\n  hwmon: (amc6821) Remove redundant break\n  hwmon: (amc6821) Fix return value\n  hwmon: (ibmaem) Fix return value\n  hwmon: (emc2103) Fix return value\n"
    },
    {
      "commit": "67002151403350b497c1efc8d36450974dfca023",
      "tree": "187e98f0c588c38b54baeee04b491e288e9470be",
      "parents": [
        "9bf12df31f282e845b3dfaac1e5d5376a041da22",
        "8872366df396444d7655287c79ed182d8f47cba6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:57:48 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:57:48 2013 -0700"
      },
      "message": "Merge tag \u0027xtensa-next-20130912\u0027 of git://github.com/czankel/xtensa-linux\n\nPull Xtensa updates from Chris Zankel.\n\n* tag \u0027xtensa-next-20130912\u0027 of git://github.com/czankel/xtensa-linux:\n  xtensa: Fix broken allmodconfig build\n  xtensa: remove CCOUNT_PER_JIFFY\n  xtensa: fix !CONFIG_XTENSA_CALIBRATE_CCOUNT build failure\n  xtensa: don\u0027t use echo -e needlessly\n  xtensa: new fast_alloca handler\n  xtensa: keep a3 and excsave1 on entry to exception handlers\n  xtensa: enable kernel preemption\n  xtensa: check thread flags atomically on return from user exception\n"
    },
    {
      "commit": "9bf12df31f282e845b3dfaac1e5d5376a041da22",
      "tree": "10d7a21d34c7f2c47eff3e807f5efef46228d507",
      "parents": [
        "399a946edbbe90bd03aec2e93ce58c9b3f18e70b",
        "d9b2c8714aef102dea95544a8cd9372b21af463f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "message": "Merge git://git.kvack.org/~bcrl/aio-next\n\nPull aio changes from Ben LaHaise:\n \"First off, sorry for this pull request being late in the merge window.\n  Al had raised a couple of concerns about 2 items in the series below.\n  I addressed the first issue (the race introduced by Gu\u0027s use of\n  mm_populate()), but he has not provided any further details on how he\n  wants to rework the anon_inode.c changes (which were sent out months\n  ago but have yet to be commented on).\n\n  The bulk of the changes have been sitting in the -next tree for a few\n  months, with all the issues raised being addressed\"\n\n* git://git.kvack.org/~bcrl/aio-next: (22 commits)\n  aio: rcu_read_lock protection for new rcu_dereference calls\n  aio: fix race in ring buffer page lookup introduced by page migration support\n  aio: fix rcu sparse warnings introduced by ioctx table lookup patch\n  aio: remove unnecessary debugging from aio_free_ring()\n  aio: table lookup: verify ctx pointer\n  staging/lustre: kiocb-\u003eki_left is removed\n  aio: fix error handling and rcu usage in \"convert the ioctx list to table lookup v3\"\n  aio: be defensive to ensure request batching is non-zero instead of BUG_ON()\n  aio: convert the ioctx list to table lookup v3\n  aio: double aio_max_nr in calculations\n  aio: Kill ki_dtor\n  aio: Kill ki_users\n  aio: Kill unneeded kiocb members\n  aio: Kill aio_rw_vect_retry()\n  aio: Don\u0027t use ctx-\u003etail unnecessarily\n  aio: io_cancel() no longer returns the io_event\n  aio: percpu ioctx refcount\n  aio: percpu reqs_available\n  aio: reqs_active -\u003e reqs_available\n  aio: fix build when migration is disabled\n  ...\n"
    },
    {
      "commit": "399a946edbbe90bd03aec2e93ce58c9b3f18e70b",
      "tree": "b467f7225be817a6ee7cf7e3c64518825dfec4f1",
      "parents": [
        "183c420323a9e45af0d995d7cbf416221698cbe4",
        "0244ad004a54e39308d495fee0a2e637f8b5c317"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:31:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:31:38 2013 -0700"
      },
      "message": "Merge branch \u0027genirq\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux\n\nPull generic hardirq option removal from Martin Schwidefsky:\n \"All architectures now use generic hardirqs, s390 has been last to\n  switch.\n\n  With that the code under !CONFIG_GENERIC_HARDIRQS and the related\n  HAVE_GENERIC_HARDIRQS and GENERIC_HARDIRQS config options can be\n  removed.  Yay!\"\n\n* \u0027genirq\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:\n  Remove GENERIC_HARDIRQ config option\n"
    },
    {
      "commit": "183c420323a9e45af0d995d7cbf416221698cbe4",
      "tree": "ffb834a92fa4d2cc446872cc784888a6b6d2885c",
      "parents": [
        "951a730af4053f4d95214c492df25e2b4592ce93",
        "86eb781889ec31f6421b86ab252ea609d456322d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:30:17 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:30:17 2013 -0700"
      },
      "message": "Merge branch \u0027kconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild\n\nPull kconfig fix from Michal Marek:\n \"This is a fix for a regression caused by my previous pull request.\n\n  A sed command in scripts/config that used colons as separator was\n  accidentally changed to use slashes, which fails when you use slashes\n  in a value.  Changing it back to colons is of course not a proper fix,\n  but at least it will be broken in the same way it had been for four\n  years.  A proper fix is pending\"\n\n* \u0027kconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:\n  scripts/config: fix variable substitution command\n"
    },
    {
      "commit": "951a730af4053f4d95214c492df25e2b4592ce93",
      "tree": "bf07377c0eddaaa6b1ea1d43e04b9f4bbb1c2ee8",
      "parents": [
        "0898d2aa9db8b7770c83590d0326d0e6b62cef2b",
        "08b67faa23fdd4df3f3f7bb06f0ad67b7366d11c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:23:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:23:49 2013 -0700"
      },
      "message": "Merge tag \u0027blackfin-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux\n\nPull blackfin updates from Steven Miao.\n\n* tag \u0027blackfin-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux:\n  blackfin: Ignore generated uImages\n  blackfin: Add STMMAC platform data to enable dwmac1000 driver on BF60x.\n  bf609: adv7343: add S-Video and Component output support\n  bf609: add adv7343 video encoder support\n  clock: add stmmac clock for ethernet driver\n  blackfin: scb: Add SCB1 to SCB9 config options and data.\n  blackfin: scb: Add system crossbar init code.\n"
    },
    {
      "commit": "0898d2aa9db8b7770c83590d0326d0e6b62cef2b",
      "tree": "2383c0909c94b389ec75412748aced1678cf5967",
      "parents": [
        "5a7d8a28080caed7fd4cb1b81d092adac4445e8e",
        "26052f9b9bb8de4f6a57165b0a803de9c26138bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:11:14 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 07:11:14 2013 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\nPull crypto fixes from Herbert Xu:\n \"This fixes a 7+ year race condition in the crypto API that causes\n  sporadic crashes when multiple threads load the same algorithm.\n\n  It also fixes the crct10dif algorithm again to prevent boot failures\n  on systems where the initramfs tool ignores module softdeps\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:\n  crypto: crct10dif - Add fallback for broken initrds\n  crypto: api - Fix race condition in larval lookup\n"
    },
    {
      "commit": "0244ad004a54e39308d495fee0a2e637f8b5c317",
      "tree": "b59152dc7cf57e7ffb9c8388ae9095e665406633",
      "parents": [
        "5a7d8a28080caed7fd4cb1b81d092adac4445e8e"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Aug 30 09:39:53 2013 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Sep 13 15:09:52 2013 +0200"
      },
      "message": "Remove GENERIC_HARDIRQ config option\n\nAfter the last architecture switched to generic hard irqs the config\noptions HAVE_GENERIC_HARDIRQS \u0026 GENERIC_HARDIRQS and the related code\nfor !CONFIG_GENERIC_HARDIRQS can be removed.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "86eb781889ec31f6421b86ab252ea609d456322d",
      "tree": "43d3db377285240996dc91ca12469b1c304bb2d9",
      "parents": [
        "e062781397e5bebc6c1b8dd4bf466136e13ae4c5"
      ],
      "author": {
        "name": "Clement Chauplannaz",
        "email": "chauplac@gmail.com",
        "time": "Fri Sep 13 10:45:13 2013 +0200"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Fri Sep 13 13:06:59 2013 +0200"
      },
      "message": "scripts/config: fix variable substitution command\n\nCommit 229455bc02b87f7128f190c4491b4ceffff38648 accidentally changed the\nseparator between sed `s\u0027 command and its parameters from \u0027:\u0027 to \u0027/\u0027.\n\nRevert this change.\n\nReported-and-tested-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Clement Chauplannaz \u003cchauplac@gmail.com\u003e\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "08b67faa23fdd4df3f3f7bb06f0ad67b7366d11c",
      "tree": "6495199c6973d912d08de18a3f74e666a11ef94c",
      "parents": [
        "1d899fd652fac98bcbad1f1573f5a6a0224ea2dd"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@linaro.org",
        "time": "Thu Aug 29 11:23:08 2013 +0100"
      },
      "committer": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Sep 13 10:42:39 2013 +0800"
      },
      "message": "blackfin: Ignore generated uImages\n\nWe have the build infrastructure to generate uImages so we should ignore\nthe resulting generated files.\n\nSigned-off-by: Mark Brown \u003cbroonie@linaro.org\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "1d899fd652fac98bcbad1f1573f5a6a0224ea2dd",
      "tree": "76ebbde8f4759df5db210a0ecc086b29d5de6bad",
      "parents": [
        "e57860929c7d9833275597e5f02810c262a8b6e0"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Thu Aug 15 14:08:05 2013 +0800"
      },
      "committer": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Sep 13 10:42:38 2013 +0800"
      },
      "message": "blackfin: Add STMMAC platform data to enable dwmac1000 driver on BF60x.\n\n- Enable GMAC\n- Set propler DMA PBL\n- Disable DMA store and forward mode\n- Select PTP input clock from MII\nclock.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Steven Miao \u003crealmz6@gmail.com\u003e\n"
    },
    {
      "commit": "e57860929c7d9833275597e5f02810c262a8b6e0",
      "tree": "143eb407c04ac69fe3ecf1e4e9600b859348438d",
      "parents": [
        "4940c53d264c749c3b2a288e9e015584328fbb77"
      ],
      "author": {
        "name": "Scott Jiang",
        "email": "scott.jiang.linux@gmail.com",
        "time": "Thu Aug 08 18:48:22 2013 -0400"
      },
      "committer": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Sep 13 10:42:36 2013 +0800"
      },
      "message": "bf609: adv7343: add S-Video and Component output support\n\nSigned-off-by: Scott Jiang \u003cscott.jiang.linux@gmail.com\u003e\n"
    },
    {
      "commit": "4940c53d264c749c3b2a288e9e015584328fbb77",
      "tree": "09bb3959c0e041cf35f39a909e57cc76422db0ba",
      "parents": [
        "3036dccf2c2a5186bb50939f412c54c6c74a0fb0"
      ],
      "author": {
        "name": "Scott Jiang",
        "email": "scott.jiang.linux@gmail.com",
        "time": "Wed Aug 07 02:30:43 2013 -0400"
      },
      "committer": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Sep 13 10:42:34 2013 +0800"
      },
      "message": "bf609: add adv7343 video encoder support\n\nSigned-off-by: Scott Jiang \u003cscott.jiang.linux@gmail.com\u003e\n"
    },
    {
      "commit": "3036dccf2c2a5186bb50939f412c54c6c74a0fb0",
      "tree": "8c45d555bcacd1bd7ecb63c37e5781107692f970",
      "parents": [
        "206f060c21503f33f9716710715cabba602355d5"
      ],
      "author": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Jul 05 14:36:09 2013 +0800"
      },
      "committer": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Sep 13 10:42:32 2013 +0800"
      },
      "message": "clock: add stmmac clock for ethernet driver\n\nSigned-off-by: Steven Miao \u003crealmz6@gmail.com\u003e\n"
    },
    {
      "commit": "206f060c21503f33f9716710715cabba602355d5",
      "tree": "cfd6cc484c2d3d0b1ec1b3ab30f522ca448d29a8",
      "parents": [
        "24a70cf2b28e24aa31c4f9bc310cc274c0a90183"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Thu Nov 15 12:32:26 2012 +0800"
      },
      "committer": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Sep 13 10:42:31 2013 +0800"
      },
      "message": "blackfin: scb: Add SCB1 to SCB9 config options and data.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\n"
    },
    {
      "commit": "24a70cf2b28e24aa31c4f9bc310cc274c0a90183",
      "tree": "83329a8bfaf013146ba394e1285e283df1056f19",
      "parents": [
        "6e4664525b1db28f8c4e1130957f70a94c19213e"
      ],
      "author": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Thu Sep 12 16:36:16 2013 +0800"
      },
      "committer": {
        "name": "Steven Miao",
        "email": "realmz6@gmail.com",
        "time": "Fri Sep 13 10:42:27 2013 +0800"
      },
      "message": "blackfin: scb: Add system crossbar init code.\n\nIf SCB exists in select blackfin cpu, developer can change the SCB\npriority in kernel configuration.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Steven Miao \u003crealmz6@gmail.com\u003e\n"
    },
    {
      "commit": "5a7d8a28080caed7fd4cb1b81d092adac4445e8e",
      "tree": "7d410cdd62dfebb24c22ccb8895efd9acf74ddb9",
      "parents": [
        "e0ea4045bce3cee84e35746fb98946ca36781248",
        "eb37e6ddf75a3d4c59e38193a7c8d409f5bd7d57"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:14:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:14:49 2013 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/ralf/upstream-linus\n\nPull MIPS updates from Ralf Baechle:\n \"This has been sitting in -next for a while with no objections and all\n  MIPS defconfigs except one are building fine; that one platform got\n  broken by another patch in your tree and I\u0027m going to submit a patch\n  separately.\n\n   - a handful of fixes that didn\u0027t make 3.11\n   - a few bits of Octeon 3 support with more to come for a later\n     release\n   - platform enhancements for Octeon, ath79, Lantiq, Netlogic and\n     Ralink SOCs\n   - a GPIO driver for the Octeon\n   - some dusting off of the DECstation code\n   - the usual dose of cleanups\"\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (65 commits)\n  MIPS: DMA: Fix BUG due to smp_processor_id() in preemptible code\n  MIPS: kexec: Fix random crashes while loading crashkernel\n  MIPS: kdump: Skip walking indirection page for crashkernels\n  MIPS: DECstation HRT calibration bug fixes\n  MIPS: Export copy_from_user_page() (needed by lustre)\n  MIPS: Add driver for the built-in PCI controller of the RT3883 SoC\n  MIPS: DMA: For BMIPS5000 cores flush region just like non-coherent R10000\n  MIPS: ralink: Add support for reset-controller API\n  MIPS: ralink: mt7620: Add cpu-feature-override header\n  MIPS: ralink: mt7620: Add spi clock definition\n  MIPS: ralink: mt7620: Add wdt clock definition\n  MIPS: ralink: mt7620: Improve clock frequency detection\n  MIPS: ralink: mt7620: This SoC has EHCI and OHCI hosts\n  MIPS: ralink: mt7620: Add verbose ram info\n  MIPS: ralink: Probe clocksources from OF\n  MIPS: ralink: Add support for systick timer found on newer ralink SoC\n  MIPS: ralink: Add support for periodic timer irq\n  MIPS: Netlogic: Built-in DTB for XLP2xx SoC boards\n  MIPS: Netlogic: Add support for USB on XLP2xx\n  MIPS: Netlogic: XLP2xx update for I2C controller\n  ...\n"
    },
    {
      "commit": "e0ea4045bce3cee84e35746fb98946ca36781248",
      "tree": "71409476f4b9acb0b441de1bdb51bf035f1fc5ad",
      "parents": [
        "48efe453e6b29561f78a1df55c7f58375259cb8c",
        "08474ed639e971e9d5a877cf7aba7ef91d847ae9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:13:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:13:41 2013 -0700"
      },
      "message": "Merge tag \u0027xfs-for-linus-v3.12-rc1-2\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs update #2 from Ben Myers:\n \"Here we have defrag support for v5 superblock, a number of bugfixes\n  and a cleanup or two.\n\n   - defrag support for CRC filesystems\n   - fix endian worning in xlog_recover_get_buf_lsn\n   - fixes for sparse warnings\n   - fix for assert in xfs_dir3_leaf_hdr_from_disk\n   - fix for log recovery of remote symlinks\n   - fix for log recovery of btree root splits\n   - fixes formemory allocation failures with ACLs\n   - fix for assert in xfs_buf_item_relse\n   - fix for assert in xfs_inode_buf_verify\n   - fix an assignment in an assert that should be a test in\n     xfs_bmbt_change_owner\n   - remove dead code in xlog_recover_inode_pass2\"\n\n* tag \u0027xfs-for-linus-v3.12-rc1-2\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: remove dead code from xlog_recover_inode_pass2\n  xfs: \u003d vs \u003d\u003d typo in ASSERT()\n  xfs: don\u0027t assert fail on bad inode numbers\n  xfs: aborted buf items can be in the AIL.\n  xfs: factor all the kmalloc-or-vmalloc fallback allocations\n  xfs: fix memory allocation failures with ACLs\n  xfs: ensure we copy buffer type in da btree root splits\n  xfs: set remote symlink buffer type for recovery\n  xfs: recovery of swap extents operations for CRC filesystems\n  xfs: swap extents operations for CRC filesystems\n  xfs: check magic numbers in dir3 leaf verifier first\n  xfs: fix some minor sparse warnings\n  xfs: fix endian warning in xlog_recover_get_buf_lsn()\n"
    },
    {
      "commit": "48efe453e6b29561f78a1df55c7f58375259cb8c",
      "tree": "53d6ac1f2010b102c15b264b13fc4c98ba634d48",
      "parents": [
        "ac4de9543aca59f2b763746647577302fbedd57e",
        "2999ee7fda3f670effbfa746164c525f9d1be4b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:11:45 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:11:45 2013 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\nPull SCSI target updates from Nicholas Bellinger:\n \"Lots of activity again this round for I/O performance optimizations\n  (per-cpu IDA pre-allocation for vhost + iscsi/target), and the\n  addition of new fabric independent features to target-core\n  (COMPARE_AND_WRITE + EXTENDED_COPY).\n\n  The main highlights include:\n\n   - Support for iscsi-target login multiplexing across individual\n     network portals\n   - Generic Per-cpu IDA logic (kent + akpm + clameter)\n   - Conversion of vhost to use per-cpu IDA pre-allocation for\n     descriptors, SGLs and userspace page pointer list\n   - Conversion of iscsi-target + iser-target to use per-cpu IDA\n     pre-allocation for descriptors\n   - Add support for generic COMPARE_AND_WRITE (AtomicTestandSet)\n     emulation for virtual backend drivers\n   - Add support for generic EXTENDED_COPY (CopyOffload) emulation for\n     virtual backend drivers.\n   - Add support for fast memory registration mode to iser-target (Vu)\n\n  The patches to add COMPARE_AND_WRITE and EXTENDED_COPY support are of\n  particular significance, which make us the first and only open source\n  target to support the full set of VAAI primitives.\n\n  Currently Linux clients are lacking upstream support to actually\n  utilize these primitives.  However, with server side support now in\n  place for folks like MKP + ZAB working on the client, this logic once\n  reserved for the highest end of storage arrays, can now be run in VMs\n  on their laptops\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (50 commits)\n  target/iscsi: Bump versions to v4.1.0\n  target: Update copyright ownership/year information to 2013\n  iscsi-target: Bump default TCP listen backlog to 256\n  target: Fix \u003e\u003d v3.9+ regression in PR APTPL + ALUA metadata write-out\n  iscsi-target; Bump default CmdSN Depth to 64\n  iscsi-target: Remove unnecessary wait_for_completion in iscsi_get_thread_set\n  iscsi-target: Add thread_set-\u003ets_activate_sem + use common deallocate\n  iscsi-target: Fix race with thread_pre_handler flush_signals + ISCSI_THREAD_SET_DIE\n  target: remove unused including \u003clinux/version.h\u003e\n  iser-target: introduce fast memory registration mode (FRWR)\n  iser-target: generalize rdma memory registration and cleanup\n  iser-target: move rdma wr processing to a shared function\n  target: Enable global EXTENDED_COPY setup/release\n  target: Add Third Party Copy (3PC) bit in INQUIRY response\n  target: Enable EXTENDED_COPY setup in spc_parse_cdb\n  target: Add support for EXTENDED_COPY copy offload emulation\n  target: Avoid non-existent tg_pt_gp_mem in target_alua_state_check\n  target: Add global device list for EXTENDED_COPY\n  target: Make helpers non static for EXTENDED_COPY command setup\n  target: Make spc_parse_naa_6h_vendor_specific non static\n  ...\n"
    },
    {
      "commit": "ac4de9543aca59f2b763746647577302fbedd57e",
      "tree": "40407750569ee030de56233c41c9a97f7e89cf67",
      "parents": [
        "26935fb06ee88f1188789807687c03041f3c70d9",
        "de32a8177f64bc62e1b19c685dd391af664ab13f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:44:27 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:44:27 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew Morton)\n\nMerge more patches from Andrew Morton:\n \"The rest of MM.  Plus one misc cleanup\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  mm/Kconfig: add MMU dependency for MIGRATION.\n  kernel: replace strict_strto*() with kstrto*()\n  mm, thp: count thp_fault_fallback anytime thp fault fails\n  thp: consolidate code between handle_mm_fault() and do_huge_pmd_anonymous_page()\n  thp: do_huge_pmd_anonymous_page() cleanup\n  thp: move maybe_pmd_mkwrite() out of mk_huge_pmd()\n  mm: cleanup add_to_page_cache_locked()\n  thp: account anon transparent huge pages into NR_ANON_PAGES\n  truncate: drop \u0027oldsize\u0027 truncate_pagecache() parameter\n  mm: make lru_add_drain_all() selective\n  memcg: document cgroup dirty/writeback memory statistics\n  memcg: add per cgroup writeback pages accounting\n  memcg: check for proper lock held in mem_cgroup_update_page_stat\n  memcg: remove MEMCG_NR_FILE_MAPPED\n  memcg: reduce function dereference\n  memcg: avoid overflow caused by PAGE_ALIGN\n  memcg: rename RESOURCE_MAX to RES_COUNTER_MAX\n  memcg: correct RESOURCE_MAX to ULLONG_MAX\n  mm: memcg: do not trap chargers with full callstack on OOM\n  mm: memcg: rework and document OOM waiting and wakeup\n  ...\n"
    },
    {
      "commit": "de32a8177f64bc62e1b19c685dd391af664ab13f",
      "tree": "590cc9705947f1da9c9eb625122b03cc5e80f332",
      "parents": [
        "6072ddc8520b86adfac6939ca32fb6e6c4de017a"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen@asianux.com",
        "time": "Thu Sep 12 15:14:08 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "mm/Kconfig: add MMU dependency for MIGRATION.\n\nMIGRATION must depend on MMU, or allmodconfig for the nommu sh\narchitecture fails to build:\n\n    CC      mm/migrate.o\n  mm/migrate.c: In function \u0027remove_migration_pte\u0027:\n  mm/migrate.c:134:3: error: implicit declaration of function \u0027pmd_trans_huge\u0027 [-Werror\u003dimplicit-function-declaration]\n     if (pmd_trans_huge(*pmd))\n     ^\n  mm/migrate.c:149:2: error: implicit declaration of function \u0027is_swap_pte\u0027 [-Werror\u003dimplicit-function-declaration]\n    if (!is_swap_pte(pte))\n    ^\n  ...\n\nAlso let CMA depend on MMU, or when NOMMU, if we select CMA, it will\nselect MIGRATION by force.\n\nSigned-off-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6072ddc8520b86adfac6939ca32fb6e6c4de017a",
      "tree": "63fab6e718bf9d77545c35ef7c089ce9d642d3da",
      "parents": [
        "17766dde364813568e4f876517c72bab70838646"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Thu Sep 12 15:14:07 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "kernel: replace strict_strto*() with kstrto*()\n\nThe usage of strict_strto*() is not preferred, because strict_strto*() is\nobsolete.  Thus, kstrto*() should be used.\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17766dde364813568e4f876517c72bab70838646",
      "tree": "22da9c5e44b3b55145986603ad7804fd5bacfaec",
      "parents": [
        "c02925540ca7019465a43c00f8a3c0186ddace2b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Sep 12 15:14:06 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "mm, thp: count thp_fault_fallback anytime thp fault fails\n\nCurrently, thp_fault_fallback in vmstat only gets incremented if a\nhugepage allocation fails.  If current\u0027s memcg hits its limit or the page\nfault handler returns an error, it is incorrectly accounted as a\nsuccessful thp_fault_alloc.\n\nCount thp_fault_fallback anytime the page fault handler falls back to\nusing regular pages and only count thp_fault_alloc when a hugepage has\nactually been faulted.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c02925540ca7019465a43c00f8a3c0186ddace2b",
      "tree": "3097ece86eedd0a01cf5dbc0a8f6c28fcbd1f4f7",
      "parents": [
        "128ec037bafe5905b2e6f2796f426a1d247d0066"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:14:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "thp: consolidate code between handle_mm_fault() and do_huge_pmd_anonymous_page()\n\ndo_huge_pmd_anonymous_page() has copy-pasted piece of handle_mm_fault()\nto handle fallback path.\n\nLet\u0027s consolidate code back by introducing VM_FAULT_FALLBACK return\ncode.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "128ec037bafe5905b2e6f2796f426a1d247d0066",
      "tree": "d4e04fe53d227686ed17e18b3f6016cbd5236149",
      "parents": [
        "3122359a64829afd231bad6ed899b557f46280e9"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:14:03 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "thp: do_huge_pmd_anonymous_page() cleanup\n\nMinor cleanup: unindent most code of the fucntion by inverting one\ncondition.  It\u0027s preparation for the next patch.\n\nNo functional changes.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3122359a64829afd231bad6ed899b557f46280e9",
      "tree": "988ce8e120c6bacf69c611458f4528baac1d3d66",
      "parents": [
        "66a0c8ee3dce78362d59f00a8efbd752fbeddfb1"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:14:01 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "thp: move maybe_pmd_mkwrite() out of mk_huge_pmd()\n\nIt\u0027s confusing that mk_huge_pmd() has semantics different from mk_pte() or\nmk_pmd().  I spent some time on debugging issue cased by this\ninconsistency.\n\nLet\u0027s move maybe_pmd_mkwrite() out of mk_huge_pmd() and adjust prototype\nto match mk_pte().\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "66a0c8ee3dce78362d59f00a8efbd752fbeddfb1",
      "tree": "52dda5e13fb36c0c48c1ab922563d8450e4b20dc",
      "parents": [
        "3cd14fcd3f128d5eba8575491cb4e1999ee1bad2"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:13:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "mm: cleanup add_to_page_cache_locked()\n\nMake add_to_page_cache_locked() cleaner:\n\n - unindent most code of the function by inverting one condition;\n - streamline code no-error path;\n - move insert error path outside normal code path;\n - call radix_tree_preload_end() earlier;\n\nNo functional changes.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "3cd14fcd3f128d5eba8575491cb4e1999ee1bad2",
      "tree": "5a2188a3349b339fe1365a13d85ac2a7acd4032b",
      "parents": [
        "7caef26767c1727d7abfbbbfbe8b2bb473430d48"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:13:58 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "thp: account anon transparent huge pages into NR_ANON_PAGES\n\nWe use NR_ANON_PAGES as base for reporting AnonPages to user.  There\u0027s\nnot much sense in not accounting transparent huge pages there, but add\nthem on printing to user.\n\nLet\u0027s account transparent huge pages in NR_ANON_PAGES in the first place.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Ning Qu \u003cquning@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": "7caef26767c1727d7abfbbbfbe8b2bb473430d48",
      "tree": "909e2a3c1b0a20a976fa3f84a17a00f8a21607bf",
      "parents": [
        "5fbc461636c32efdb9d5216d491d37a40d54535b"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:13:56 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "truncate: drop \u0027oldsize\u0027 truncate_pagecache() parameter\n\ntruncate_pagecache() doesn\u0027t care about old size since commit\ncedabed49b39 (\"vfs: Fix vmtruncate() regression\").  Let\u0027s drop it.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fbc461636c32efdb9d5216d491d37a40d54535b",
      "tree": "119599fe279ba3daf94422d54cfc7bd2a5ae4a80",
      "parents": [
        "9cb2dc1c950cf0624202c1ea2705705e1e51c278"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Sep 12 15:13:55 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "mm: make lru_add_drain_all() selective\n\nmake lru_add_drain_all() only selectively interrupt the cpus that have\nper-cpu free pages that can be drained.\n\nThis is important in nohz mode where calling mlockall(), for example,\notherwise will interrupt every core unnecessarily.\n\nThis is important on workloads where nohz cores are handling 10 Gb traffic\nin userspace.  Those CPUs do not enter the kernel and place pages into LRU\npagevecs and they really, really don\u0027t want to be interrupted, or they\ndrop packets on the floor.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nReviewed-by: Tejun Heo \u003ctj@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": "9cb2dc1c950cf0624202c1ea2705705e1e51c278",
      "tree": "13297650ee2f88ecea43c644ddeaad481636e6e9",
      "parents": [
        "3ea67d06e4679a16f69f66f43a8d6ee4778985fc"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: document cgroup dirty/writeback memory statistics\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ea67d06e4679a16f69f66f43a8d6ee4778985fc",
      "tree": "0ec35a312de85ce91bf0bf6e4c5b88440f3d0f1d",
      "parents": [
        "658b72c5a7a033f0dde61b15dff86bf423ce425e"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: add per cgroup writeback pages accounting\n\nAdd memcg routines to count writeback pages, later dirty pages will also\nbe accounted.\n\nAfter Kame\u0027s commit 89c06bd52fb9 (\"memcg: use new logic for page stat\naccounting\"), we can use \u0027struct page\u0027 flag to test page state instead\nof per page_cgroup flag.  But memcg has a feature to move a page from a\ncgroup to another one and may have race between \"move\" and \"page stat\naccounting\".  So in order to avoid the race we have designed a new lock:\n\n         mem_cgroup_begin_update_page_stat()\n         modify page information        --\u003e(a)\n         mem_cgroup_update_page_stat()  --\u003e(b)\n         mem_cgroup_end_update_page_stat()\n\nIt requires both (a) and (b)(writeback pages accounting) to be pretected\nin mem_cgroup_{begin/end}_update_page_stat().  It\u0027s full no-op for\n!CONFIG_MEMCG, almost no-op if memcg is disabled (but compiled in), rcu\nread lock in the most cases (no task is moving), and spin_lock_irqsave\non top in the slow path.\n\nThere\u0027re two writeback interfaces to modify: test_{clear/set}_page_writeback().\nAnd the lock order is:\n\t--\u003e memcg-\u003emove_lock\n\t  --\u003e mapping-\u003etree_lock\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "658b72c5a7a033f0dde61b15dff86bf423ce425e",
      "tree": "271352bf3a3c5ad13acca1ca425dfb8b53d1e190",
      "parents": [
        "68b4876d996e8749142b2895bc2e251448996363"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:52 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: check for proper lock held in mem_cgroup_update_page_stat\n\nWe should call mem_cgroup_begin_update_page_stat() before\nmem_cgroup_update_page_stat() to get proper locks, however the latter\ndoesn\u0027t do any checking that we use proper locking, which would be hard.\nSuggested by Michal Hock we could at least test for rcu_read_lock_held()\nbecause RCU is held if !mem_cgroup_disabled().\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68b4876d996e8749142b2895bc2e251448996363",
      "tree": "bd21b2e160d48dc38b11869c1bef5d38100ddd98",
      "parents": [
        "1a36e59d4833de19120dc7482c61ef69e228c73c"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:50 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: remove MEMCG_NR_FILE_MAPPED\n\nWhile accounting memcg page stat, it\u0027s not worth to use\nMEMCG_NR_FILE_MAPPED as an extra layer of indirection because of the\ncomplexity and presumed performance overhead.  We can use\nMEM_CGROUP_STAT_FILE_MAPPED directly.\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a36e59d4833de19120dc7482c61ef69e228c73c",
      "tree": "85b815d4b6a461d56d4a0a450e31fa069c7c1142",
      "parents": [
        "3af3351676c3deecfd632f47719fb0d13a061ba8"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: reduce function dereference\n\nThis function dereferences res far too often, so optimize it.\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3af3351676c3deecfd632f47719fb0d13a061ba8",
      "tree": "5374b3e010b49c9cec6f45e486bc7e3a3d205022",
      "parents": [
        "6de5a8bfcae6e3b427d642eff078d8305b324b52"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:48 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: avoid overflow caused by PAGE_ALIGN\n\nSince PAGE_ALIGN is aligning up(the next page boundary), so after\nPAGE_ALIGN, the value might be overflow, such as write the MAX value to\n*.limit_in_bytes.\n\n  $ cat /cgroup/memory/memory.limit_in_bytes\n  18446744073709551615\n\n  # echo 18446744073709551615 \u003e /cgroup/memory/memory.limit_in_bytes\n  bash: echo: write error: Invalid argument\n\nSome user programs might depend on such behaviours(like libcg, we read\nthe value in snapshot, then use the value to reset cgroup later), and\nthat will cause confusion.  So we need to fix it.\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6de5a8bfcae6e3b427d642eff078d8305b324b52",
      "tree": "333d73c79bdec97184c4a60e45453a167730fd7b",
      "parents": [
        "34ff8dc08956098563989d8599840b130be81252"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: rename RESOURCE_MAX to RES_COUNTER_MAX\n\nRESOURCE_MAX is far too general name, change it to RES_COUNTER_MAX.\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34ff8dc08956098563989d8599840b130be81252",
      "tree": "39c964226586a57b0b1e97d9eb1f34b1dc99519e",
      "parents": [
        "3812c8c8f3953921ef18544110dafc3505c1ac62"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: correct RESOURCE_MAX to ULLONG_MAX\n\nCurrent RESOURCE_MAX is ULONG_MAX, but the value we used to set resource\nlimit is unsigned long long, so we can set bigger value than that which is\nstrange.  The XXX_MAX should be reasonable max value, bigger than that\nshould be overflow.\n\nNotice that this change will affect user output of default *.limit_in_bytes:\nbefore change:\n\n  $ cat /cgroup/memory/memory.limit_in_bytes\n  9223372036854775807\n\nafter change:\n\n  $ cat /cgroup/memory/memory.limit_in_bytes\n  18446744073709551615\n\nBut it doesn\u0027t alter the API in term of input - we can still use \"echo -1\n\u003e *.limit_in_bytes\" to reset the numbers to \"unlimited\".\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3812c8c8f3953921ef18544110dafc3505c1ac62",
      "tree": "8e5efc15fec4700644774df5fb5302f5c82f4a31",
      "parents": [
        "fb2a6fc56be66c169f8b80e07ed999ba453a2db2"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:44 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "mm: memcg: do not trap chargers with full callstack on OOM\n\nThe memcg OOM handling is incredibly fragile and can deadlock.  When a\ntask fails to charge memory, it invokes the OOM killer and loops right\nthere in the charge code until it succeeds.  Comparably, any other task\nthat enters the charge path at this point will go to a waitqueue right\nthen and there and sleep until the OOM situation is resolved.  The problem\nis that these tasks may hold filesystem locks and the mmap_sem; locks that\nthe selected OOM victim may need to exit.\n\nFor example, in one reported case, the task invoking the OOM killer was\nabout to charge a page cache page during a write(), which holds the\ni_mutex.  The OOM killer selected a task that was just entering truncate()\nand trying to acquire the i_mutex:\n\nOOM invoking task:\n  mem_cgroup_handle_oom+0x241/0x3b0\n  mem_cgroup_cache_charge+0xbe/0xe0\n  add_to_page_cache_locked+0x4c/0x140\n  add_to_page_cache_lru+0x22/0x50\n  grab_cache_page_write_begin+0x8b/0xe0\n  ext3_write_begin+0x88/0x270\n  generic_file_buffered_write+0x116/0x290\n  __generic_file_aio_write+0x27c/0x480\n  generic_file_aio_write+0x76/0xf0           # takes -\u003ei_mutex\n  do_sync_write+0xea/0x130\n  vfs_write+0xf3/0x1f0\n  sys_write+0x51/0x90\n  system_call_fastpath+0x18/0x1d\n\nOOM kill victim:\n  do_truncate+0x58/0xa0              # takes i_mutex\n  do_last+0x250/0xa30\n  path_openat+0xd7/0x440\n  do_filp_open+0x49/0xa0\n  do_sys_open+0x106/0x240\n  sys_open+0x20/0x30\n  system_call_fastpath+0x18/0x1d\n\nThe OOM handling task will retry the charge indefinitely while the OOM\nkilled task is not releasing any resources.\n\nA similar scenario can happen when the kernel OOM killer for a memcg is\ndisabled and a userspace task is in charge of resolving OOM situations.\nIn this case, ALL tasks that enter the OOM path will be made to sleep on\nthe OOM waitqueue and wait for userspace to free resources or increase\nthe group\u0027s limit.  But a userspace OOM handler is prone to deadlock\nitself on the locks held by the waiting tasks.  For example one of the\nsleeping tasks may be stuck in a brk() call with the mmap_sem held for\nwriting but the userspace handler, in order to pick an optimal victim,\nmay need to read files from /proc/\u003cpid\u003e, which tries to acquire the same\nmmap_sem for reading and deadlocks.\n\nThis patch changes the way tasks behave after detecting a memcg OOM and\nmakes sure nobody loops or sleeps with locks held:\n\n1. When OOMing in a user fault, invoke the OOM killer and restart the\n   fault instead of looping on the charge attempt.  This way, the OOM\n   victim can not get stuck on locks the looping task may hold.\n\n2. When OOMing in a user fault but somebody else is handling it\n   (either the kernel OOM killer or a userspace handler), don\u0027t go to\n   sleep in the charge context.  Instead, remember the OOMing memcg in\n   the task struct and then fully unwind the page fault stack with\n   -ENOMEM.  pagefault_out_of_memory() will then call back into the\n   memcg code to check if the -ENOMEM came from the memcg, and then\n   either put the task to sleep on the memcg\u0027s OOM waitqueue or just\n   restart the fault.  The OOM victim can no longer get stuck on any\n   lock a sleeping task may hold.\n\nDebugged by Michal Hocko.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: azurIt \u003cazurit@pobox.sk\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "fb2a6fc56be66c169f8b80e07ed999ba453a2db2",
      "tree": "ed5268be88df1d149802eb03e831d46c619cb8cc",
      "parents": [
        "519e52473ebe9db5cdef44670d5a97f1fd53d721"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:43 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "mm: memcg: rework and document OOM waiting and wakeup\n\nThe memcg OOM handler open-codes a sleeping lock for OOM serialization\n(trylock, wait, repeat) because the required locking is so specific to\nmemcg hierarchies.  However, it would be nice if this construct would be\nclearly recognizable and not be as obfuscated as it is right now.  Clean\nup as follows:\n\n1. Remove the return value of mem_cgroup_oom_unlock()\n\n2. Rename mem_cgroup_oom_lock() to mem_cgroup_oom_trylock().\n\n3. Pull the prepare_to_wait() out of the memcg_oom_lock scope.  This\n   makes it more obvious that the task has to be on the waitqueue\n   before attempting to OOM-trylock the hierarchy, to not miss any\n   wakeups before going to sleep.  It just didn\u0027t matter until now\n   because it was all lumped together into the global memcg_oom_lock\n   spinlock section.\n\n4. Pull the mem_cgroup_oom_notify() out of the memcg_oom_lock scope.\n   It is proctected by the hierarchical OOM-lock.\n\n5. The memcg_oom_lock spinlock is only required to propagate the OOM\n   lock in any given hierarchy atomically.  Restrict its scope to\n   mem_cgroup_oom_(trylock|unlock).\n\n6. Do not wake up the waitqueue unconditionally at the end of the\n   function.  Only the lockholder has to wake up the next in line\n   after releasing the lock.\n\n   Note that the lockholder kicks off the OOM-killer, which in turn\n   leads to wakeups from the uncharges of the exiting task.  But a\n   contender is not guaranteed to see them if it enters the OOM path\n   after the OOM kills but before the lockholder releases the lock.\n   Thus there has to be an explicit wakeup after releasing the lock.\n\n7. Put the OOM task on the waitqueue before marking the hierarchy as\n   under OOM as that is the point where we start to receive wakeups.\n   No point in listening before being on the waitqueue.\n\n8. Likewise, unmark the hierarchy before finishing the sleep, for\n   symmetry.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "519e52473ebe9db5cdef44670d5a97f1fd53d721",
      "tree": "635fce64ff3658250745b9c8dfebd47e981a5b16",
      "parents": [
        "3a13c4d761b4b979ba8767f42345fed3274991b0"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:42 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "mm: memcg: enable memcg OOM killer only for user faults\n\nSystem calls and kernel faults (uaccess, gup) can handle an out of memory\nsituation gracefully and just return -ENOMEM.\n\nEnable the memcg OOM killer only for user faults, where it\u0027s really the\nonly option available.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "3a13c4d761b4b979ba8767f42345fed3274991b0",
      "tree": "9f6f0b09875b6b510720bea2c2a0ac1fd6878f67",
      "parents": [
        "759496ba6407c6994d6a5ce3a5e74937d7816208"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "x86: finish user fault error path with fatal signal\n\nThe x86 fault handler bails in the middle of error handling when the\ntask has a fatal signal pending.  For a subsequent patch this is a\nproblem in OOM situations because it relies on pagefault_out_of_memory()\nbeing called even when the task has been killed, to perform proper\nper-task OOM state unwinding.\n\nShortcutting the fault like this is a rather minor optimization that\nsaves a few instructions in rare cases.  Just remove it for\nuser-triggered faults.\n\nUse the opportunity to split the fault retry handling from actual fault\nerrors and add locking documentation that reads suprisingly similar to\nARM\u0027s.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "759496ba6407c6994d6a5ce3a5e74937d7816208",
      "tree": "aeff8de8af36f70f2591114cef58c9ae7df25565",
      "parents": [
        "871341023c771ad233620b7a1fb3d9c7031c4e5c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "arch: mm: pass userspace fault flag to generic fault handler\n\nUnlike global OOM handling, memory cgroup code will invoke the OOM killer\nin any OOM situation because it has no way of telling faults occuring in\nkernel context - which could be handled more gracefully - from\nuser-triggered faults.\n\nPass a flag that identifies faults originating in user space from the\narchitecture-specific fault handlers to generic code so that memcg OOM\nhandling can be improved.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "871341023c771ad233620b7a1fb3d9c7031c4e5c",
      "tree": "f2b008756dffce639759f74885b23e92886600d6",
      "parents": [
        "94bce453c78996cc4373d5da6cfabe07fcc6d9f9"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "arch: mm: do not invoke OOM killer on kernel fault OOM\n\nKernel faults are expected to handle OOM conditions gracefully (gup,\nuaccess etc.), so they should never invoke the OOM killer.  Reserve this\nfor faults triggered in user context when it is the only option.\n\nMost architectures already do this, fix up the remaining few.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94bce453c78996cc4373d5da6cfabe07fcc6d9f9",
      "tree": "e434ec0b39f716f08c12d24cd68cf6d0b293377e",
      "parents": [
        "f894ffa865301d4010d68b15be29912fa4039e77"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:36 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "arch: mm: remove obsolete init OOM protection\n\nThe memcg code can trap tasks in the context of the failing allocation\nuntil an OOM situation is resolved.  They can hold all kinds of locks\n(fs, mm) at this point, which makes it prone to deadlocking.\n\nThis series converts memcg OOM handling into a two step process that is\nstarted in the charge context, but any waiting is done after the fault\nstack is fully unwound.\n\nPatches 1-4 prepare architecture handlers to support the new memcg\nrequirements, but in doing so they also remove old cruft and unify\nout-of-memory behavior across architectures.\n\nPatch 5 disables the memcg OOM handling for syscalls, readahead, kernel\nfaults, because they can gracefully unwind the stack with -ENOMEM.  OOM\nhandling is restricted to user triggered faults that have no other\noption.\n\nPatch 6 reworks memcg\u0027s hierarchical OOM locking to make it a little\nmore obvious wth is going on in there: reduce locked regions, rename\nlocking functions, reorder and document.\n\nPatch 7 implements the two-part OOM handling such that tasks are never\ntrapped with the full charge stack in an OOM situation.\n\nThis patch:\n\nBack before smart OOM killing, when faulting tasks were killed directly on\nallocation failures, the arch-specific fault handlers needed special\nprotection for the init process.\n\nNow that all fault handlers call into the generic OOM killer (see commit\n609838cfed97: \"mm: invoke oom-killer from remaining unconverted page\nfault handlers\"), which already provides init protection, the\narch-specific leftovers can be removed.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nAcked-by: Vineet Gupta \u003cvgupta@synopsys.com\u003e\t[arch/arc bits]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f894ffa865301d4010d68b15be29912fa4039e77",
      "tree": "4176801838976098817ac8520325f5384865f421",
      "parents": [
        "e975de998b9612aa97e3165f8827c09e0d36ce77"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Sep 12 15:13:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "memcg: trivial cleanups\n\nClean up some mess made by the \"Soft limit rework\" series, and a few other\nthings.\n\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e975de998b9612aa97e3165f8827c09e0d36ce77",
      "tree": "fa014ce767613fb7398a7330ca9468466a441913",
      "parents": [
        "1be171d60bddcce2602c5d009029274d67736fd7"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:34 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "memcg, vmscan: do not fall into reclaim-all pass too quickly\n\nshrink_zone starts with soft reclaim pass first and then falls back to\nregular reclaim if nothing has been scanned.  This behavior is natural\nbut there is a catch.  Memcg iterators, when used with the reclaim\ncookie, are designed to help to prevent from over reclaim by\ninterleaving reclaimers (per node-zone-priority) so the tree walk might\nmiss many (even all) nodes in the hierarchy e.g.  when there are direct\nreclaimers racing with each other or with kswapd in the global case or\nmultiple allocators reaching the limit for the target reclaim case.  To\nmake it even more complicated, targeted reclaim doesn\u0027t do the whole\ntree walk because it stops reclaiming once it reclaims sufficient pages.\nAs a result groups over the limit might be missed, thus nothing is\nscanned, and reclaim would fall back to the reclaim all mode.\n\nThis patch checks for the incomplete tree walk in shrink_zone.  If no\ngroup has been visited and the hierarchy is soft reclaimable then we\nmust have missed some groups, in which case the __shrink_zone is called\nagain.  This doesn\u0027t guarantee there will be some progress of course\nbecause the current reclaimer might be still racing with others but it\nwould at least give a chance to start the walk without a big risk of\nreclaim latencies.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ying Han \u003cyinghan@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": "1be171d60bddcce2602c5d009029274d67736fd7",
      "tree": "dc5ae61d05ea53d0c9321494a2206d42564af8a5",
      "parents": [
        "e839b6a1c8d0895803bcbd587595a54f4221a625"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:32 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "memcg: track all children over limit in the root\n\nChildren in soft limit excess are currently tracked up the hierarchy in\nmemcg-\u003echildren_in_excess.  Nevertheless there still might exist tons of\ngroups that are not in hierarchy relation to the root cgroup (e.g.  all\nfirst level groups if root_mem_cgroup-\u003euse_hierarchy \u003d\u003d false).\n\nAs the whole tree walk has to be done when the iteration starts at\nroot_mem_cgroup the iterator should be able to skip the walk if there is\nno child above the limit without iterating them.  This can be done\neasily if the root tracks all children rather than only hierarchical\nchildren.  This is done by this patch which updates root_mem_cgroup\nchildren_in_excess if root_mem_cgroup-\u003euse_hierarchy \u003d\u003d false so the\nroot knows about all children in excess.\n\nPlease note that this is not an issue for inner memcgs which have\nuse_hierarchy \u003d\u003d false because then only the single group is visited so\nno special optimization is necessary.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ying Han \u003cyinghan@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": "e839b6a1c8d0895803bcbd587595a54f4221a625",
      "tree": "0ec95c564cb6f4c0ca0858dd88a3364ee0e383e5",
      "parents": [
        "7d910c054be42515cd3e43f2e1bec8c536632de2"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:30 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "memcg, vmscan: do not attempt soft limit reclaim if it would not scan anything\n\nmem_cgroup_should_soft_reclaim controls whether soft reclaim pass is\ndone and it always says yes currently.  Memcg iterators are clever to\nskip nodes that are not soft reclaimable quite efficiently but\nmem_cgroup_should_soft_reclaim can be more clever and do not start the\nsoft reclaim pass at all if it knows that nothing would be scanned\nanyway.\n\nIn order to do that, simply reuse mem_cgroup_soft_reclaim_eligible for\nthe target group of the reclaim and allow the pass only if the whole\nsubtree wouldn\u0027t be skipped.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ying Han \u003cyinghan@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": "7d910c054be42515cd3e43f2e1bec8c536632de2",
      "tree": "956073026cd4068a1beacf6a7997a1d1d79f60d9",
      "parents": [
        "de57780dc659f95b17ccb649f003278dde0b5b86"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:28 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "memcg: track children in soft limit excess to improve soft limit\n\nSoft limit reclaim has to check the whole reclaim hierarchy while doing\nthe first pass of the reclaim.  This leads to a higher system time which\ncan be visible especially when there are many groups in the hierarchy.\n\nThis patch adds a per-memcg counter of children in excess.  It also\nrestores MEM_CGROUP_TARGET_SOFTLIMIT into mem_cgroup_event_ratelimit for a\nproper batching.\n\nIf a group crosses soft limit for the first time it increases parent\u0027s\nchildren_in_excess up the hierarchy.  The similarly if a group gets below\nthe limit it will decrease the counter.  The transition phase is recorded\nin soft_contributed flag.\n\nmem_cgroup_soft_reclaim_eligible then uses this information to better\ndecide whether to skip the node or the whole subtree.  The rule is simple.\n Skip the node with a children in excess or skip the whole subtree\notherwise.\n\nThis has been tested by a stream IO (dd if\u003d/dev/zero of\u003dfile with\n4*MemTotal size) which is quite sensitive to overhead during reclaim.  The\nload is running in a group with soft limit set to 0 and without any limit.\n Apart from that there was a hierarchy with ~500, 2k and 8k groups (two\ngroups on each level) without any pages in them.  base denotes to the\nkernel on which the whole series is based on, rework is the kernel before\nthis patch and reworkoptim is with this patch applied:\n\n* Run with soft limit set to 0\nElapsed\n0-0-limit/base: min: 88.21 max: 94.61 avg: 91.73 std: 2.65 runs: 3\n0-0-limit/rework: min: 76.05 [86.2%] max: 79.08 [83.6%] avg: 77.84 [84.9%] std: 1.30 runs: 3\n0-0-limit/reworkoptim: min: 77.98 [88.4%] max: 80.36 [84.9%] avg: 78.92 [86.0%] std: 1.03 runs: 3\nSystem\n0.5k-0-limit/base: min: 34.86 max: 36.42 avg: 35.89 std: 0.73 runs: 3\n0.5k-0-limit/rework: min: 43.26 [124.1%] max: 48.95 [134.4%] avg: 46.09 [128.4%] std: 2.32 runs: 3\n0.5k-0-limit/reworkoptim: min: 46.98 [134.8%] max: 50.98 [140.0%] avg: 48.49 [135.1%] std: 1.77 runs: 3\nElapsed\n0.5k-0-limit/base: min: 88.50 max: 97.52 avg: 93.92 std: 3.90 runs: 3\n0.5k-0-limit/rework: min: 75.92 [85.8%] max: 78.45 [80.4%] avg: 77.34 [82.3%] std: 1.06 runs: 3\n0.5k-0-limit/reworkoptim: min: 75.79 [85.6%] max: 79.37 [81.4%] avg: 77.55 [82.6%] std: 1.46 runs: 3\nSystem\n2k-0-limit/base: min: 34.57 max: 37.65 avg: 36.34 std: 1.30 runs: 3\n2k-0-limit/rework: min: 64.17 [185.6%] max: 68.20 [181.1%] avg: 66.21 [182.2%] std: 1.65 runs: 3\n2k-0-limit/reworkoptim: min: 49.78 [144.0%] max: 52.99 [140.7%] avg: 51.00 [140.3%] std: 1.42 runs: 3\nElapsed\n2k-0-limit/base: min: 92.61 max: 97.83 avg: 95.03 std: 2.15 runs: 3\n2k-0-limit/rework: min: 78.33 [84.6%] max: 84.08 [85.9%] avg: 81.09 [85.3%] std: 2.35 runs: 3\n2k-0-limit/reworkoptim: min: 75.72 [81.8%] max: 78.57 [80.3%] avg: 76.73 [80.7%] std: 1.30 runs: 3\nSystem\n8k-0-limit/base: min: 39.78 max: 42.09 avg: 41.09 std: 0.97 runs: 3\n8k-0-limit/rework: min: 200.86 [504.9%] max: 265.42 [630.6%] avg: 241.80 [588.5%] std: 29.06 runs: 3\n8k-0-limit/reworkoptim: min: 53.70 [135.0%] max: 54.89 [130.4%] avg: 54.43 [132.5%] std: 0.52 runs: 3\nElapsed\n8k-0-limit/base: min: 95.11 max: 98.61 avg: 96.81 std: 1.43 runs: 3\n8k-0-limit/rework: min: 246.96 [259.7%] max: 331.47 [336.1%] avg: 301.32 [311.2%] std: 38.52 runs: 3\n8k-0-limit/reworkoptim: min: 76.79 [80.7%] max: 81.71 [82.9%] avg: 78.97 [81.6%] std: 2.05 runs: 3\n\nSystem time is increased by 30-40% but it is reduced a lot comparing to\nkernel without this patch.  The higher time can be explained by the fact\nthat the original soft reclaim scanned at priority 0 so it was much more\neffective for this workload (which is basically touch once and writeback).\n The Elapsed time looks better though (~20%).\n\n* Run with no soft limit set\nSystem\n0-no-limit/base: min: 42.18 max: 50.38 avg: 46.44 std: 3.36 runs: 3\n0-no-limit/rework: min: 40.57 [96.2%] max: 47.04 [93.4%] avg: 43.82 [94.4%] std: 2.64 runs: 3\n0-no-limit/reworkoptim: min: 40.45 [95.9%] max: 45.28 [89.9%] avg: 42.10 [90.7%] std: 2.25 runs: 3\nElapsed\n0-no-limit/base: min: 75.97 max: 78.21 avg: 76.87 std: 0.96 runs: 3\n0-no-limit/rework: min: 75.59 [99.5%] max: 80.73 [103.2%] avg: 77.64 [101.0%] std: 2.23 runs: 3\n0-no-limit/reworkoptim: min: 77.85 [102.5%] max: 82.42 [105.4%] avg: 79.64 [103.6%] std: 1.99 runs: 3\nSystem\n0.5k-no-limit/base: min: 44.54 max: 46.93 avg: 46.12 std: 1.12 runs: 3\n0.5k-no-limit/rework: min: 42.09 [94.5%] max: 46.16 [98.4%] avg: 43.92 [95.2%] std: 1.69 runs: 3\n0.5k-no-limit/reworkoptim: min: 42.47 [95.4%] max: 45.67 [97.3%] avg: 44.06 [95.5%] std: 1.31 runs: 3\nElapsed\n0.5k-no-limit/base: min: 78.26 max: 81.49 avg: 79.65 std: 1.36 runs: 3\n0.5k-no-limit/rework: min: 77.01 [98.4%] max: 80.43 [98.7%] avg: 78.30 [98.3%] std: 1.52 runs: 3\n0.5k-no-limit/reworkoptim: min: 76.13 [97.3%] max: 77.87 [95.6%] avg: 77.18 [96.9%] std: 0.75 runs: 3\nSystem\n2k-no-limit/base: min: 62.96 max: 69.14 avg: 66.14 std: 2.53 runs: 3\n2k-no-limit/rework: min: 76.01 [120.7%] max: 81.06 [117.2%] avg: 78.17 [118.2%] std: 2.12 runs: 3\n2k-no-limit/reworkoptim: min: 62.57 [99.4%] max: 66.10 [95.6%] avg: 64.53 [97.6%] std: 1.47 runs: 3\nElapsed\n2k-no-limit/base: min: 76.47 max: 84.22 avg: 79.12 std: 3.60 runs: 3\n2k-no-limit/rework: min: 89.67 [117.3%] max: 93.26 [110.7%] avg: 91.10 [115.1%] std: 1.55 runs: 3\n2k-no-limit/reworkoptim: min: 76.94 [100.6%] max: 79.21 [94.1%] avg: 78.45 [99.2%] std: 1.07 runs: 3\nSystem\n8k-no-limit/base: min: 104.74 max: 151.34 avg: 129.21 std: 19.10 runs: 3\n8k-no-limit/rework: min: 205.23 [195.9%] max: 285.94 [188.9%] avg: 258.98 [200.4%] std: 38.01 runs: 3\n8k-no-limit/reworkoptim: min: 161.16 [153.9%] max: 184.54 [121.9%] avg: 174.52 [135.1%] std: 9.83 runs: 3\nElapsed\n8k-no-limit/base: min: 125.43 max: 181.00 avg: 154.81 std: 22.80 runs: 3\n8k-no-limit/rework: min: 254.05 [202.5%] max: 355.67 [196.5%] avg: 321.46 [207.6%] std: 47.67 runs: 3\n8k-no-limit/reworkoptim: min: 193.77 [154.5%] max: 222.72 [123.0%] avg: 210.18 [135.8%] std: 12.13 runs: 3\n\nBoth System and Elapsed are in stdev with the base kernel for all\nconfigurations except for 8k where both System and Elapsed are up by 35%.\nI do not have a good explanation for this because there is no soft reclaim\npass going on as no group is above the limit which is checked in\nmem_cgroup_should_soft_reclaim.\n\nThen I have tested kernel build with the same configuration to see the\nbehavior with a more general behavior.\n\n* Soft limit set to 0 for the build\nSystem\n0-0-limit/base: min: 242.70 max: 245.17 avg: 243.85 std: 1.02 runs: 3\n0-0-limit/rework min: 237.86 [98.0%] max: 240.22 [98.0%] avg: 239.00 [98.0%] std: 0.97 runs: 3\n0-0-limit/reworkoptim: min: 241.11 [99.3%] max: 243.53 [99.3%] avg: 242.01 [99.2%] std: 1.08 runs: 3\nElapsed\n0-0-limit/base: min: 348.48 max: 360.86 avg: 356.04 std: 5.41 runs: 3\n0-0-limit/rework min: 286.95 [82.3%] max: 290.26 [80.4%] avg: 288.27 [81.0%] std: 1.43 runs: 3\n0-0-limit/reworkoptim: min: 286.55 [82.2%] max: 289.00 [80.1%] avg: 287.69 [80.8%] std: 1.01 runs: 3\nSystem\n0.5k-0-limit/base: min: 251.77 max: 254.41 avg: 252.70 std: 1.21 runs: 3\n0.5k-0-limit/rework min: 286.44 [113.8%] max: 289.30 [113.7%] avg: 287.60 [113.8%] std: 1.23 runs: 3\n0.5k-0-limit/reworkoptim: min: 252.18 [100.2%] max: 253.16 [99.5%] avg: 252.62 [100.0%] std: 0.41 runs: 3\nElapsed\n0.5k-0-limit/base: min: 347.83 max: 353.06 avg: 350.04 std: 2.21 runs: 3\n0.5k-0-limit/rework min: 290.19 [83.4%] max: 295.62 [83.7%] avg: 293.12 [83.7%] std: 2.24 runs: 3\n0.5k-0-limit/reworkoptim: min: 293.91 [84.5%] max: 294.87 [83.5%] avg: 294.29 [84.1%] std: 0.42 runs: 3\nSystem\n2k-0-limit/base: min: 263.05 max: 271.52 avg: 267.94 std: 3.58 runs: 3\n2k-0-limit/rework min: 458.99 [174.5%] max: 468.31 [172.5%] avg: 464.45 [173.3%] std: 3.97 runs: 3\n2k-0-limit/reworkoptim: min: 267.10 [101.5%] max: 279.38 [102.9%] avg: 272.78 [101.8%] std: 5.05 runs: 3\nElapsed\n2k-0-limit/base: min: 372.33 max: 379.32 avg: 375.47 std: 2.90 runs: 3\n2k-0-limit/rework min: 334.40 [89.8%] max: 339.52 [89.5%] avg: 337.44 [89.9%] std: 2.20 runs: 3\n2k-0-limit/reworkoptim: min: 301.47 [81.0%] max: 319.19 [84.1%] avg: 307.90 [82.0%] std: 8.01 runs: 3\nSystem\n8k-0-limit/base: min: 320.50 max: 332.10 avg: 325.46 std: 4.88 runs: 3\n8k-0-limit/rework min: 1115.76 [348.1%] max: 1165.66 [351.0%] avg: 1132.65 [348.0%] std: 23.34 runs: 3\n8k-0-limit/reworkoptim: min: 403.75 [126.0%] max: 409.22 [123.2%] avg: 406.16 [124.8%] std: 2.28 runs: 3\nElapsed\n8k-0-limit/base: min: 475.48 max: 585.19 avg: 525.54 std: 45.30 runs: 3\n8k-0-limit/rework min: 616.25 [129.6%] max: 625.90 [107.0%] avg: 620.68 [118.1%] std: 3.98 runs: 3\n8k-0-limit/reworkoptim: min: 420.18 [88.4%] max: 428.28 [73.2%] avg: 423.05 [80.5%] std: 3.71 runs: 3\n\nApart from 8k the system time is comparable with the base kernel while\nElapsed is up to 20% better with all configurations.\n\n* No soft limit set\nSystem\n0-no-limit/base: min: 234.76 max: 237.42 avg: 236.25 std: 1.11 runs: 3\n0-no-limit/rework min: 233.09 [99.3%] max: 238.65 [100.5%] avg: 236.09 [99.9%] std: 2.29 runs: 3\n0-no-limit/reworkoptim: min: 236.12 [100.6%] max: 240.53 [101.3%] avg: 237.94 [100.7%] std: 1.88 runs: 3\nElapsed\n0-no-limit/base: min: 288.52 max: 295.42 avg: 291.29 std: 2.98 runs: 3\n0-no-limit/rework min: 283.17 [98.1%] max: 284.33 [96.2%] avg: 283.78 [97.4%] std: 0.48 runs: 3\n0-no-limit/reworkoptim: min: 288.50 [100.0%] max: 290.79 [98.4%] avg: 289.78 [99.5%] std: 0.95 runs: 3\nSystem\n0.5k-no-limit/base: min: 286.51 max: 293.23 avg: 290.21 std: 2.78 runs: 3\n0.5k-no-limit/rework min: 291.69 [101.8%] max: 294.38 [100.4%] avg: 292.97 [101.0%] std: 1.10 runs: 3\n0.5k-no-limit/reworkoptim: min: 277.05 [96.7%] max: 288.76 [98.5%] avg: 284.17 [97.9%] std: 5.11 runs: 3\nElapsed\n0.5k-no-limit/base: min: 294.94 max: 298.92 avg: 296.47 std: 1.75 runs: 3\n0.5k-no-limit/rework min: 292.55 [99.2%] max: 294.21 [98.4%] avg: 293.55 [99.0%] std: 0.72 runs: 3\n0.5k-no-limit/reworkoptim: min: 294.41 [99.8%] max: 301.67 [100.9%] avg: 297.78 [100.4%] std: 2.99 runs: 3\nSystem\n2k-no-limit/base: min: 443.41 max: 466.66 avg: 457.66 std: 10.19 runs: 3\n2k-no-limit/rework min: 490.11 [110.5%] max: 516.02 [110.6%] avg: 501.42 [109.6%] std: 10.83 runs: 3\n2k-no-limit/reworkoptim: min: 435.25 [98.2%] max: 458.11 [98.2%] avg: 446.73 [97.6%] std: 9.33 runs: 3\nElapsed\n2k-no-limit/base: min: 330.85 max: 333.75 avg: 332.52 std: 1.23 runs: 3\n2k-no-limit/rework min: 343.06 [103.7%] max: 349.59 [104.7%] avg: 345.95 [104.0%] std: 2.72 runs: 3\n2k-no-limit/reworkoptim: min: 330.01 [99.7%] max: 333.92 [100.1%] avg: 332.22 [99.9%] std: 1.64 runs: 3\nSystem\n8k-no-limit/base: min: 1175.64 max: 1259.38 avg: 1222.39 std: 34.88 runs: 3\n8k-no-limit/rework min: 1226.31 [104.3%] max: 1241.60 [98.6%] avg: 1233.74 [100.9%] std: 6.25 runs: 3\n8k-no-limit/reworkoptim: min: 1023.45 [87.1%] max: 1056.74 [83.9%] avg: 1038.92 [85.0%] std: 13.69 runs: 3\nElapsed\n8k-no-limit/base: min: 613.36 max: 619.60 avg: 616.47 std: 2.55 runs: 3\n8k-no-limit/rework min: 627.56 [102.3%] max: 642.33 [103.7%] avg: 633.44 [102.8%] std: 6.39 runs: 3\n8k-no-limit/reworkoptim: min: 545.89 [89.0%] max: 555.36 [89.6%] avg: 552.06 [89.6%] std: 4.37 runs: 3\n\nand these numbers look good as well.  System time is around 100%\n(suprisingly better for the 8k case) and Elapsed is copies that trend.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ying Han \u003cyinghan@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": "de57780dc659f95b17ccb649f003278dde0b5b86",
      "tree": "d2493cc412c16946f3ead9158a61b26dd1f0c45a",
      "parents": [
        "a5b7c87f92076352dbff2fe0423ec255e1c9a71b"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:26 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "memcg: enhance memcg iterator to support predicates\n\nThe caller of the iterator might know that some nodes or even subtrees\nshould be skipped but there is no way to tell iterators about that so the\nonly choice left is to let iterators to visit each node and do the\nselection outside of the iterating code.  This, however, doesn\u0027t scale\nwell with hierarchies with many groups where only few groups are\ninteresting.\n\nThis patch adds mem_cgroup_iter_cond variant of the iterator with a\ncallback which gets called for every visited node.  There are three\npossible ways how the callback can influence the walk.  Either the node is\nvisited, it is skipped but the tree walk continues down the tree or the\nwhole subtree of the current group is skipped.\n\n[hughd@google.com: fix memcg-less page reclaim]\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@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": "a5b7c87f92076352dbff2fe0423ec255e1c9a71b",
      "tree": "fbc14b98d1412a078fc570914b050cd618e359f2",
      "parents": [
        "e883110aad718b65de658db77387aaa69cce996d"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:25 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "vmscan, memcg: do softlimit reclaim also for targeted reclaim\n\nSoft reclaim has been done only for the global reclaim (both background\nand direct).  Since \"memcg: integrate soft reclaim tighter with zone\nshrinking code\" there is no reason for this limitation anymore as the soft\nlimit reclaim doesn\u0027t use any special code paths and it is a part of the\nzone shrinking code which is used by both global and targeted reclaims.\n\nFrom the semantic point of view it is natural to consider soft limit\nbefore touching all groups in the hierarchy tree which is touching the\nhard limit because soft limit tells us where to push back when there is a\nmemory pressure.  It is not important whether the pressure comes from the\nlimit or imbalanced zones.\n\nThis patch simply enables soft reclaim unconditionally in\nmem_cgroup_should_soft_reclaim so it is enabled for both global and\ntargeted reclaim paths.  mem_cgroup_soft_reclaim_eligible needs to learn\nabout the root of the reclaim to know where to stop checking soft limit\nstate of parents up the hierarchy.  Say we have\n\nA (over soft limit)\n \\\n  B (below s.l., hit the hard limit)\n / \\\nC   D (below s.l.)\n\nB is the source of the outside memory pressure now for D but we shouldn\u0027t\nsoft reclaim it because it is behaving well under B subtree and we can\nstill reclaim from C (pressumably it is over the limit).\nmem_cgroup_soft_reclaim_eligible should therefore stop climbing up the\nhierarchy at B (root of the memory pressure).\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Glauber Costa \u003cglommer@openvz.org\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Ying Han \u003cyinghan@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": "e883110aad718b65de658db77387aaa69cce996d",
      "tree": "c0086d72e42f19f2cd29a5745f34525e761436ca",
      "parents": [
        "3b38722efd9f66da63bbbd41520c2e6fa9db3d68"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:23 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "memcg: get rid of soft-limit tree infrastructure\n\nNow that the soft limit is integrated to the reclaim directly the whole\nsoft-limit tree infrastructure is not needed anymore.  Rip it out.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Glauber Costa \u003cglommer@openvz.org\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Ying Han \u003cyinghan@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": "3b38722efd9f66da63bbbd41520c2e6fa9db3d68",
      "tree": "aeec255d0358051b8ffe83f6744a2054b383c62e",
      "parents": [
        "c33bd8354f3a3bb26a98d2b6bf600b7b35657328"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "memcg, vmscan: integrate soft reclaim tighter with zone shrinking code\n\nThis patchset is sitting out of tree for quite some time without any\nobjections.  I would be really happy if it made it into 3.12.  I do not\nwant to push it too hard but I think this work is basically ready and\nwaiting more doesn\u0027t help.\n\nThe basic idea is quite simple.  Pull soft reclaim into shrink_zone in the\nfirst step and get rid of the previous soft reclaim infrastructure.\nshrink_zone is done in two passes now.  First it tries to do the soft\nlimit reclaim and it falls back to reclaim-all mode if no group is over\nthe limit or no pages have been scanned.  The second pass happens at the\nsame priority so the only time we waste is the memcg tree walk which has\nbeen updated in the third step to have only negligible overhead.\n\nAs a bonus we will get rid of a _lot_ of code by this and soft reclaim\nwill not stand out like before when it wasn\u0027t integrated into the zone\nshrinking code and it reclaimed at priority 0 (the testing results show\nthat some workloads suffers from such an aggressive reclaim).  The clean\nup is in a separate patch because I felt it would be easier to review that\nway.\n\nThe second step is soft limit reclaim integration into targeted reclaim.\nIt should be rather straight forward.  Soft limit has been used only for\nthe global reclaim so far but it makes sense for any kind of pressure\ncoming from up-the-hierarchy, including targeted reclaim.\n\nThe third step (patches 4-8) addresses the tree walk overhead by enhancing\nmemcg iterators to enable skipping whole subtrees and tracking number of\nover soft limit children at each level of the hierarchy.  This information\nis updated same way the old soft limit tree was updated (from\nmemcg_check_events) so we shouldn\u0027t see an additional overhead.  In fact\nmem_cgroup_update_soft_limit is much simpler than tree manipulation done\npreviously.\n\n__shrink_zone uses mem_cgroup_soft_reclaim_eligible as a predicate for\nmem_cgroup_iter so the decision whether a particular group should be\nvisited is done at the iterator level which allows us to decide to skip\nthe whole subtree as well (if there is no child in excess).  This reduces\nthe tree walk overhead considerably.\n\n* TEST 1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nMy primary test case was a parallel kernel build with 2 groups (make is\nrunning with -j8 with a distribution .config in a separate cgroup without\nany hard limit) on a 32 CPU machine booted with 1GB memory and both builds\nrun taskset to Node 0 cpus.\n\nI was mostly interested in 2 setups.  Default - no soft limit set and -\nand 0 soft limit set to both groups.  The first one should tell us whether\nthe rework regresses the default behavior while the second one should show\nus improvements in an extreme case where both workloads are always over\nthe soft limit.\n\n/usr/bin/time -v has been used to collect the statistics and each\nconfiguration had 3 runs after fresh boot without any other load on the\nsystem.\n\nbase is mmotm-2013-07-18-16-40\nrework all 8 patches applied on top of base\n\n* No-limit\nUser\nno-limit/base: min: 651.92 max: 672.65 avg: 664.33 std: 8.01 runs: 6\nno-limit/rework: min: 657.34 [100.8%] max: 668.39 [99.4%] avg: 663.13 [99.8%] std: 3.61 runs: 6\nSystem\nno-limit/base: min: 69.33 max: 71.39 avg: 70.32 std: 0.79 runs: 6\nno-limit/rework: min: 69.12 [99.7%] max: 71.05 [99.5%] avg: 70.04 [99.6%] std: 0.59 runs: 6\nElapsed\nno-limit/base: min: 398.27 max: 422.36 avg: 408.85 std: 7.74 runs: 6\nno-limit/rework: min: 386.36 [97.0%] max: 438.40 [103.8%] avg: 416.34 [101.8%] std: 18.85 runs: 6\n\nThe results are within noise. Elapsed time has a bigger variance but the\naverage looks good.\n\n* 0-limit\nUser\n0-limit/base: min: 573.76 max: 605.63 avg: 585.73 std: 12.21 runs: 6\n0-limit/rework: min: 645.77 [112.6%] max: 666.25 [110.0%] avg: 656.97 [112.2%] std: 7.77 runs: 6\nSystem\n0-limit/base: min: 69.57 max: 71.13 avg: 70.29 std: 0.54 runs: 6\n0-limit/rework: min: 68.68 [98.7%] max: 71.40 [100.4%] avg: 69.91 [99.5%] std: 0.87 runs: 6\nElapsed\n0-limit/base: min: 1306.14 max: 1550.17 avg: 1430.35 std: 90.86 runs: 6\n0-limit/rework: min: 404.06 [30.9%] max: 465.94 [30.1%] avg: 434.81 [30.4%] std: 22.68 runs: 6\n\nThe improvement is really huge here (even bigger than with my previous\ntesting and I suspect that this highly depends on the storage).  Page\nfault statistics tell us at least part of the story:\n\nMinor\n0-limit/base: min: 37180461.00 max: 37319986.00 avg: 37247470.00 std: 54772.71 runs: 6\n0-limit/rework: min: 36751685.00 [98.8%] max: 36805379.00 [98.6%] avg: 36774506.33 [98.7%] std: 17109.03 runs: 6\nMajor\n0-limit/base: min: 170604.00 max: 221141.00 avg: 196081.83 std: 18217.01 runs: 6\n0-limit/rework: min: 2864.00 [1.7%] max: 10029.00 [4.5%] avg: 5627.33 [2.9%] std: 2252.71 runs: 6\n\nSame as with my previous testing Minor faults are more or less within\nnoise but Major fault count is way bellow the base kernel.\n\nWhile this looks as a nice win it is fair to say that 0-limit\nconfiguration is quite artificial. So I was playing with 0-no-limit\nloads as well.\n\n* TEST 2\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe following results are from 2 groups configuration on a 16GB machine\n(single NUMA node).\n\n- A running stream IO (dd if\u003d/dev/zero of\u003dlocal.file bs\u003d1024) with\n  2*TotalMem with 0 soft limit.\n- B running a mem_eater which consumes TotalMem-1G without any limit. The\n  mem_eater consumes the memory in 100 chunks with 1s nap after each\n  mmap+poppulate so that both loads have chance to fight for the memory.\n\nThe expected result is that B shouldn\u0027t be reclaimed and A shouldn\u0027t see\na big dropdown in elapsed time.\n\nUser\nbase: min: 2.68 max: 2.89 avg: 2.76 std: 0.09 runs: 3\nrework: min: 3.27 [122.0%] max: 3.74 [129.4%] avg: 3.44 [124.6%] std: 0.21 runs: 3\nSystem\nbase: min: 86.26 max: 88.29 avg: 87.28 std: 0.83 runs: 3\nrework: min: 81.05 [94.0%] max: 84.96 [96.2%] avg: 83.14 [95.3%] std: 1.61 runs: 3\nElapsed\nbase: min: 317.28 max: 332.39 avg: 325.84 std: 6.33 runs: 3\nrework: min: 281.53 [88.7%] max: 298.16 [89.7%] avg: 290.99 [89.3%] std: 6.98 runs: 3\n\nSystem time improved slightly as well as Elapsed. My previous testing\nhas shown worse numbers but this again seem to depend on the storage\nspeed.\n\nMy theory is that the writeback doesn\u0027t catch up and prio-0 soft reclaim\nfalls into wait on writeback page too often in the base kernel. The\npatched kernel doesn\u0027t do that because the soft reclaim is done from the\nkswapd/direct reclaim context. This can be seen on the following graph\nnicely. The A\u0027s group usage_in_bytes regurarly drops really low very often.\n\nAll 3 runs\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/stream.png\nresp. a detail of the single run\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/stream-one-run.png\n\nmem_eater seems to be doing better as well. It gets to the full\nallocation size faster as can be seen on the following graph:\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/mem_eater-one-run.png\n\n/proc/meminfo collected during the test also shows that rework kernel\nhasn\u0027t swapped that much (well almost not at all):\nbase: max: 123900 K avg: 56388.29 K\nrework: max: 300 K avg: 128.68 K\n\nkswapd and direct reclaim statistics are of no use unfortunatelly because\nsoft reclaim is not accounted properly as the counters are hidden by\nglobal_reclaim() checks in the base kernel.\n\n* TEST 3\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAnother test was the same configuration as TEST2 except the stream IO was\nreplaced by a single kbuild (16 parallel jobs bound to Node0 cpus same as\nin TEST1) and mem_eater allocated TotalMem-200M so kbuild had only 200MB\nleft.\n\nKbuild did better with the rework kernel here as well:\nUser\nbase: min: 860.28 max: 872.86 avg: 868.03 std: 5.54 runs: 3\nrework: min: 880.81 [102.4%] max: 887.45 [101.7%] avg: 883.56 [101.8%] std: 2.83 runs: 3\nSystem\nbase: min: 84.35 max: 85.06 avg: 84.79 std: 0.31 runs: 3\nrework: min: 85.62 [101.5%] max: 86.09 [101.2%] avg: 85.79 [101.2%] std: 0.21 runs: 3\nElapsed\nbase: min: 135.36 max: 243.30 avg: 182.47 std: 45.12 runs: 3\nrework: min: 110.46 [81.6%] max: 116.20 [47.8%] avg: 114.15 [62.6%] std: 2.61 runs: 3\nMinor\nbase: min: 36635476.00 max: 36673365.00 avg: 36654812.00 std: 15478.03 runs: 3\nrework: min: 36639301.00 [100.0%] max: 36695541.00 [100.1%] avg: 36665511.00 [100.0%] std: 23118.23 runs: 3\nMajor\nbase: min: 14708.00 max: 53328.00 avg: 31379.00 std: 16202.24 runs: 3\nrework: min: 302.00 [2.1%] max: 414.00 [0.8%] avg: 366.33 [1.2%] std: 47.22 runs: 3\n\nAgain we can see a significant improvement in Elapsed (it also seems to\nbe more stable), there is a huge dropdown for the Major page faults and\nmuch more swapping:\nbase: max: 583736 K avg: 112547.43 K\nrework: max: 4012 K avg: 124.36 K\n\nGraphs from all three runs show the variability of the kbuild quite\nnicely.  It even seems that it took longer after every run with the base\nkernel which would be quite surprising as the source tree for the build is\nremoved and caches are dropped after each run so the build operates on a\nfreshly extracted sources everytime.\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/kbuild-mem_eater.png\n\nMy other testing shows that this is just a matter of timing and other runs\nbehave differently the std for Elapsed time is similar ~50.  Example of\nother three runs:\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/kbuild-mem_eater2.png\n\nSo to wrap this up.  The series is still doing good and improves the soft\nlimit.\n\nThe testing results for bunch of cgroups with both stream IO and kbuild\nloads can be found in \"memcg: track children in soft limit excess to\nimprove soft limit\".\n\nThis patch:\n\nMemcg soft reclaim has been traditionally triggered from the global\nreclaim paths before calling shrink_zone.  mem_cgroup_soft_limit_reclaim\nthen picked up a group which exceeds the soft limit the most and reclaimed\nit with 0 priority to reclaim at least SWAP_CLUSTER_MAX pages.\n\nThe infrastructure requires per-node-zone trees which hold over-limit\ngroups and keep them up-to-date (via memcg_check_events) which is not cost\nfree.  Although this overhead hasn\u0027t turned out to be a bottle neck the\nimplementation is suboptimal because mem_cgroup_update_tree has no idea\nwhich zones consumed memory over the limit so we could easily end up\nhaving a group on a node-zone tree having only few pages from that\nnode-zone.\n\nThis patch doesn\u0027t try to fix node-zone trees management because it seems\nthat integrating soft reclaim into zone shrinking sounds much easier and\nmore appropriate for several reasons.  First of all 0 priority reclaim was\na crude hack which might lead to big stalls if the group\u0027s LRUs are big\nand hard to reclaim (e.g.  a lot of dirty/writeback pages).  Soft reclaim\nshould be applicable also to the targeted reclaim which is awkward right\nnow without additional hacks.  Last but not least the whole infrastructure\neats quite some code.\n\nAfter this patch shrink_zone is done in 2 passes.  First it tries to do\nthe soft reclaim if appropriate (only for global reclaim for now to keep\ncompatible with the original state) and fall back to ignoring soft limit\nif no group is eligible to soft reclaim or nothing has been scanned during\nthe first pass.  Only groups which are over their soft limit or any of\ntheir parents up the hierarchy is over the limit are considered eligible\nduring the first pass.\n\nSoft limit tree which is not necessary anymore will be removed in the\nfollow up patch to make this patch smaller and easier to review.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Glauber Costa \u003cglommer@openvz.org\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@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": "c33bd8354f3a3bb26a98d2b6bf600b7b35657328",
      "tree": "3a05898992a6bf4475051d9b49ace72f304473cf",
      "parents": [
        "d5d04bb48f0eb89c14e76779bb46212494de0bec"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Thu Sep 12 15:13:19 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "memcg: remove redundant code in mem_cgroup_force_empty_write()\n\nvfs guarantees the cgroup won\u0027t be destroyed, so it\u0027s redundant to get a\ncss reference.\n\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@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": "26935fb06ee88f1188789807687c03041f3c70d9",
      "tree": "381c487716540b52348d78bee6555f8fa61d77ef",
      "parents": [
        "3cc69b638e11bfda5d013c2b75b60934aa0e88a1",
        "bf2ba3bc185269eca274b458aac46ba1ad7c1121"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:01:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:01:38 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 4 from Al Viro:\n \"list_lru pile, mostly\"\n\nThis came out of Andrew\u0027s pile, Al ended up doing the merge work so that\nAndrew didn\u0027t have to.\n\nAdditionally, a few fixes.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (42 commits)\n  super: fix for destroy lrus\n  list_lru: dynamically adjust node arrays\n  shrinker: Kill old -\u003eshrink API.\n  shrinker: convert remaining shrinkers to count/scan API\n  staging/lustre/libcfs: cleanup linux-mem.h\n  staging/lustre/ptlrpc: convert to new shrinker API\n  staging/lustre/obdclass: convert lu_object shrinker to count/scan API\n  staging/lustre/ldlm: convert to shrinkers to count/scan API\n  hugepage: convert huge zero page shrinker to new shrinker API\n  i915: bail out earlier when shrinker cannot acquire mutex\n  drivers: convert shrinkers to new count/scan API\n  fs: convert fs shrinkers to new scan/count API\n  xfs: fix dquot isolation hang\n  xfs-convert-dquot-cache-lru-to-list_lru-fix\n  xfs: convert dquot cache lru to list_lru\n  xfs: rework buffer dispose list tracking\n  xfs-convert-buftarg-lru-to-generic-code-fix\n  xfs: convert buftarg LRU to generic code\n  fs: convert inode and dentry shrinking to be node aware\n  vmscan: per-node deferred work\n  ...\n"
    },
    {
      "commit": "bf2ba3bc185269eca274b458aac46ba1ad7c1121",
      "tree": "2cdaf7568df3ab762f42e7849fc9211dcb60d1bc",
      "parents": [
        "bcceeeba9b3ca99c29523bb7af16727f8a837db4",
        "f5e1dd34561e0fb06400b378d595198918833021"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 12 17:54:48 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 12 17:54:48 2013 -0400"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n"
    },
    {
      "commit": "3cc69b638e11bfda5d013c2b75b60934aa0e88a1",
      "tree": "92b63b61e0b51572e2fe7476956ddacc720ee8fa",
      "parents": [
        "0e6a1fb1167b8d230c6edcebd31e173cd0add1e5",
        "f7ec00b3a5e6c18be350ce44dd8c03b36a8fda02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:59:31 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:59:31 2013 -0700"
      },
      "message": "Merge tag \u0027fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC fixes from Olof Johansson:\n \"A small batch of fixes that have trickled in over the last week of the\n  merge window.\n\n  Also included are few small devicetree updates for sunxi, since it\n  enables me to use one of their newer boards (cubieboard2) for\n  additional test coverage.  The support for that SoC is new for 3.12,\n  so there\u0027s no exposure to new regressions due to it\"\n\n* tag \u0027fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:\n  ARM: dts: sun7i: olinuxino-micro: Enable the EMAC\n  ARM: dts: sun7i: cubieboard2: Enable the EMAC\n  ARM: dts: sun7i: Add the muxing options for the EMAC\n  ARM: dts: sun7i: Enable the Ethernet in the A20\n  i2c: davinci: Fix bad dev_get_platdata() conversion\n  ARM: vexpress: allow dcscb and tc2_pm in a combined ARMv6+v7 build\n  ARM: shmobile: lager: Do not use register_type field of struct sh_eth_plat_data\n  ARM: pxa: ssp: Check return values from phandle lookups\n  ARM: PCI: versatile: Fix SMAP register offsets\n  ARM: PCI: versatile: Fix PCI I/O\n  ARM: PCI: versatile: Fix map_irq function to match hardware\n  ARM: ep93xx: Don\u0027t use modem interface on the second UART\n  ARM: shmobile: r8a7779: Update early timer initialisation order\n"
    },
    {
      "commit": "0e6a1fb1167b8d230c6edcebd31e173cd0add1e5",
      "tree": "a8efc4db93bb3c80f3bc0c55226787c5607f76d0",
      "parents": [
        "1d7b24ff335489dd7e864b71ba5b35eaa25b625a",
        "171b3f0da71cfe5b21b02092ef363baf848e8587"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:58:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:58:35 2013 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM fixes from Russell King:\n \"Just two fixes here - one for the recent addition of Neon stuff which\n  causes problems when this is built as a module.  The other was one\n  spotted by Olof with the fixed-HZ stuff.\n\n  Last patch (which is at the very top) is not a fix per-se, but an\n  almost-end-of-merge window sorting of the select symbols in\n  arch/arm/Kconfig to keep them as akpm would like to reduce unnecessary\n  conflicts.  I\u0027ve also taken the liberty this time to add a comment at\n  the end to discourage the endless \"add the next select to the bottom\n  of a nicely sorted list\" syndrome\"\n\n* \u0027fixes\u0027 of git://git.linaro.org/people/rmk/linux-arm:\n  ARM: sort arch/arm/Kconfig\n  ARM: fix forced-HZ values\n  ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled\n"
    },
    {
      "commit": "1d7b24ff335489dd7e864b71ba5b35eaa25b625a",
      "tree": "f27815967e44510a833cf0e017c2ecc004c14e8d",
      "parents": [
        "68f0d9d92e5430e250f2bd2a1e7a350e880d776a",
        "23c323af0375a7f63732bed0386aba5935b8de69"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:39:34 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:39:34 2013 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.12-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes (part 2) from Trond Myklebust:\n \"Bugfixes:\n   - Fix a few credential reference leaks resulting from the\n     SP4_MACH_CRED NFSv4.1 state protection code.\n   - Fix the SUNRPC bloatometer footprint: convert a 256K hashtable into\n     the intended 64 byte structure.\n   - Fix a long standing XDR issue with FREE_STATEID\n   - Fix a potential WARN_ON spamming issue\n   - Fix a missing dprintk() kuid conversion\n\n  New features:\n   - Enable the NFSv4.1 state protection support for the WRITE and\n     COMMIT operations\"\n\n* tag \u0027nfs-for-3.12-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  SUNRPC: No, I did not intend to create a 256KiB hashtable\n  sunrpc: Add missing kuids conversion for printing\n  NFSv4.1: sp4_mach_cred: WARN_ON -\u003e WARN_ON_ONCE\n  NFSv4.1: sp4_mach_cred: no need to ref count creds\n  NFSv4.1: fix SECINFO* use of put_rpccred\n  NFSv4.1: sp4_mach_cred: ask for WRITE and COMMIT\n  NFSv4.1 fix decode_free_stateid\n"
    },
    {
      "commit": "68f0d9d92e5430e250f2bd2a1e7a350e880d776a",
      "tree": "2e416905bafd3e87a6b6eda8837d5fefe143b19b",
      "parents": [
        "3272c544da48f8915a0e34189182aed029bd0f2b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:24:55 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:24:55 2013 -0700"
      },
      "message": "vfs: make d_path() get the root path under RCU\n\nThis avoids the spinlocks and refcounts in the d_path() sequence too\n(used by /proc and various other entities).  See commit 8b19e34188a3 for\nthe equivalent getcwd() system call path.\n\nAnd unlike getcwd(), d_path() doesn\u0027t copy the result to user space, so\nI don\u0027t need to fear _that_ particular bug happening again.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "171b3f0da71cfe5b21b02092ef363baf848e8587",
      "tree": "41fedb248de4af8a86cdf9a8d0c6f018ec6e69e4",
      "parents": [
        "47d846827e398af12d79e9fc4593337b9e931cab"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Sep 12 21:24:42 2013 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Sep 12 21:24:42 2013 +0100"
      },
      "message": "ARM: sort arch/arm/Kconfig\n\nKeep arch/arm/Kconfig select statements sorted alphabetically.  I\u0027ve\nadded a comment at the bottom of the main bank for CONFIG_ARM to this\neffect so hopefully this will keep things more in order.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "3272c544da48f8915a0e34189182aed029bd0f2b",
      "tree": "e2d6aacc2de8f26c14e844af6ed245b8a43d7978",
      "parents": [
        "ff812d724254b95df76b7775d1359d856927a840"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 12:40:15 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 12:40:15 2013 -0700"
      },
      "message": "vfs: use __getname/__putname for getcwd() system call\n\nIt\u0027s a pathname.  It should use the pathname allocators and\ndeallocators, and PATH_MAX instead of PAGE_SIZE.  Never mind that the\ntwo are commonly the same.\n\nWith this, the allocations scale up nicely too, and I can do getcwd()\nsystem calls at a rate of about 300M/s, with no lock contention\nanywhere.\n\nOf course, nobody sane does that, especially since getcwd() is\ntraditionally a very slow operation in Unix.  But this was also the\nsimplest way to benchmark the prepend_path() improvements by Waiman, and\nonce I saw the profiles I couldn\u0027t leave it well enough alone.\n\nBut apart from being an performance improvement (from using per-cpu slab\nallocators instead of the raw page allocator), it\u0027s actually a valid and\nreal cleanup.\n\nSigned-off-by: Linus \"OCD\" Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7ec00b3a5e6c18be350ce44dd8c03b36a8fda02",
      "tree": "0c265b535c3a9e0354c45e7772f3a162c24921d8",
      "parents": [
        "0547433761802d773a993d6280f554a2980b4df0"
      ],
      "author": {
        "name": "Maxime Ripard",
        "email": "maxime.ripard@free-electrons.com",
        "time": "Wed Sep 11 11:10:09 2013 +0200"
      },
      "committer": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Thu Sep 12 12:22:48 2013 -0700"
      },
      "message": "ARM: dts: sun7i: olinuxino-micro: Enable the EMAC\n\nThe A20-olinuxino-micro has the EMAC wired in. Enable it in the DT so\nthat we can use it.\n\nSigned-off-by: Maxime Ripard \u003cmaxime.ripard@free-electrons.com\u003e\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\n"
    },
    {
      "commit": "0547433761802d773a993d6280f554a2980b4df0",
      "tree": "07f53516f1fe86343a655dd1f010beba48a6f614",
      "parents": [
        "756084c50c5239564c6fcaf7305f18483e33c0e5"
      ],
      "author": {
        "name": "Maxime Ripard",
        "email": "maxime.ripard@free-electrons.com",
        "time": "Wed Sep 11 11:10:08 2013 +0200"
      },
      "committer": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Thu Sep 12 12:22:43 2013 -0700"
      },
      "message": "ARM: dts: sun7i: cubieboard2: Enable the EMAC\n\nThe Cubieboard2, just like its A10 counterpart, has the Ethernet wired\nin. Enable it in the DT.\n\nSigned-off-by: Maxime Ripard \u003cmaxime.ripard@free-electrons.com\u003e\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\n"
    },
    {
      "commit": "756084c50c5239564c6fcaf7305f18483e33c0e5",
      "tree": "237582891da4f386f0aed75e412d4893692222e3",
      "parents": [
        "2e804d03d235d5c83d75461669c213298d3bafc4"
      ],
      "author": {
        "name": "Maxime Ripard",
        "email": "maxime.ripard@free-electrons.com",
        "time": "Wed Sep 11 11:10:07 2013 +0200"
      },
      "committer": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Thu Sep 12 12:22:39 2013 -0700"
      },
      "message": "ARM: dts: sun7i: Add the muxing options for the EMAC\n\nThe A20 has several muxing options for the EMAC. Yet, the currently\nsupported boards only use one set of them. Add that pin set to the DTSI.\n\nSigned-off-by: Maxime Ripard \u003cmaxime.ripard@free-electrons.com\u003e\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\n"
    },
    {
      "commit": "2e804d03d235d5c83d75461669c213298d3bafc4",
      "tree": "f74aa52373c4ea94969cae62e09461bd5d288f0f",
      "parents": [
        "364e751787d5fed1f2ae0b72cbfb66b3aa1adb19"
      ],
      "author": {
        "name": "Maxime Ripard",
        "email": "maxime.ripard@free-electrons.com",
        "time": "Wed Sep 11 11:10:06 2013 +0200"
      },
      "committer": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Thu Sep 12 12:22:32 2013 -0700"
      },
      "message": "ARM: dts: sun7i: Enable the Ethernet in the A20\n\nThe Allwinner A20 SoC also have the EMAC found on the A10 and A10s.\nEnable the support for it in the DTSI.\n\nSigned-off-by: Maxime Ripard \u003cmaxime.ripard@free-electrons.com\u003e\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\n"
    },
    {
      "commit": "ff812d724254b95df76b7775d1359d856927a840",
      "tree": "fa9dcbb1cc43aa0171a9cbaf4e668d6866d3cd20",
      "parents": [
        "5223161dc0f5e44fbf3d5e42d23697b6796cdf4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:57:01 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:57:01 2013 -0700"
      },
      "message": "vfs: don\u0027t copy things to user space holding the rcu readlock\n\nOops.  That wasn\u0027t very smart.  We don\u0027t actually need the RCU lock any\nmore by the time we copy the cwd string to user space, but I had\nstupidly surrounded the whole thing with it.\n\nIntroduced by commit 8b19e34188a3 (\"vfs: make getcwd() get the root and\npwd path under rcu\")\n\nIs-a-big-hairy-idiot: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5223161dc0f5e44fbf3d5e42d23697b6796cdf4e",
      "tree": "10837ec58d96e751469d78d347f76c0d49238d72",
      "parents": [
        "e5d0c874391a500be7643d3eef9fb07171eee129",
        "61abeba5222895d6900b13115f5d8eba7988d7d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:35:33 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:35:33 2013 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds\n\nPull led updates from Bryan Wu:\n \"Sorry for the late pull request, since I\u0027m just back from vacation.\n\n  LED subsystem updates for 3.12:\n   - pca9633 driver DT supporting and pca9634 chip supporting\n   - restore legacy device attributes for lp5521\n   - other fixing and updates\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (28 commits)\n  leds: wm831x-status: Request a REG resource\n  leds: trigger: ledtrig-backlight: Fix invalid memory access in fb_event notification callback\n  leds-pca963x: Fix device tree parsing\n  leds-pca9633: Rename to leds-pca963x\n  leds-pca9633: Add mutex to the ledout register\n  leds-pca9633: Unique naming of the LEDs\n  leds-pca9633: Add support for PCA9634\n  leds: lp5562: use LP55xx common macros for device attributes\n  Documentation: leds-lp5521,lp5523: update device attribute information\n  leds: lp5523: remove unnecessary writing commands\n  leds: lp5523: restore legacy device attributes\n  leds: lp5523: LED MUX configuration on initializing\n  leds: lp5523: make separate API for loading engine\n  leds: lp5521: remove unnecessary writing commands\n  leds: lp5521: restore legacy device attributes\n  leds: lp55xx: add common macros for device attributes\n  leds: lp55xx: add common data structure for program\n  Documentation: leds: Fix a typo\n  leds: ss4200: Fix incorrect placement of __initdata\n  leds: clevo-mail: Fix incorrect placement of __initdata\n  ...\n"
    },
    {
      "commit": "e5d0c874391a500be7643d3eef9fb07171eee129",
      "tree": "e584dda865c5628fbb8e59a50096a0f4c21bf2bd",
      "parents": [
        "d5adf7e2db897f9d4a00be59262875ae5d9574f4",
        "d6a60fc1a8187004792a01643d8af1d06a465026"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:29:26 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:29:26 2013 -0700"
      },
      "message": "Merge tag \u0027iommu-updates-v3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU Updates from Joerg Roedel:\n \"This round the updates contain:\n\n   - A new driver for the Freescale PAMU IOMMU from Varun Sethi.\n\n     This driver has cooked for a while and required changes to the\n     IOMMU-API and infrastructure that were already merged before.\n\n   - Updates for the ARM-SMMU driver from Will Deacon\n\n   - Various fixes, the most important one is probably a fix from Alex\n     Williamson for a memory leak in the VT-d page-table freeing code\n\n  In summary not all that much.  The biggest part in the diffstat is the\n  new PAMU driver\"\n\n* tag \u0027iommu-updates-v3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:\n  intel-iommu: Fix leaks in pagetable freeing\n  iommu/amd: Fix resource leak in iommu_init_device()\n  iommu/amd: Clean up unnecessary MSI/MSI-X capability find\n  iommu/arm-smmu: Simplify VMID and ASID allocation\n  iommu/arm-smmu: Don\u0027t use VMIDs for stage-1 translations\n  iommu/arm-smmu: Tighten up global fault reporting\n  iommu/arm-smmu: Remove broken big-endian check\n  iommu/fsl: Remove unnecessary \u0027fsl-pamu\u0027 prefixes\n  iommu/fsl: Fix whitespace problems noticed by git-am\n  iommu/fsl: Freescale PAMU driver and iommu implementation.\n  iommu/fsl: Add additional iommu attributes required by the PAMU driver.\n  powerpc: Add iommu domain pointer to device archdata\n  iommu/exynos: Remove dead code (set_prefbuf)\n"
    },
    {
      "commit": "d5adf7e2db897f9d4a00be59262875ae5d9574f4",
      "tree": "c6417bfea552f653d5639b4696a5ac987cd7bc40",
      "parents": [
        "02b9735c12892e04d3e101b06e4c6d64a814f566",
        "6a6f6e72eca5ed999689c69d1ac411fe319844a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:28:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:28:24 2013 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.12-rc0-tag-three\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip\n\nPull Xen balloon driver bug-fixes from Stefano Stabellini:\n - fix a preemption bug in xen/balloon.c;\n - remove an harmful BUG_ON in xen/balloon.c that can trigger in\n   non-erroneous situations.\n\n* tag \u0027stable/for-linus-3.12-rc0-tag-three\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:\n  xen/balloon: remove BUG_ON in increase_reservation\n  xen/balloon: ensure preemption is disabled when using a scratch page\n"
    },
    {
      "commit": "02b9735c12892e04d3e101b06e4c6d64a814f566",
      "tree": "7907deb1cbfd1599d4f34d414873170d3266f164",
      "parents": [
        "75acebf2423ab13ff6198daa6e17ef7a2543bfe4",
        "f1728fd1599112239ed5cebc7be9810264db6792"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:22:45 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:22:45 2013 -0700"
      },
      "message": "Merge tag \u0027pm+acpi-fixes-3.12-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull ACPI and power management fixes from Rafael Wysocki:\n \"All of these commits are fixes that have emerged recently and some of\n  them fix bugs introduced during this merge window.\n\n  Specifics:\n\n   1) ACPI-based PCI hotplug (ACPIPHP) fixes related to spurious events\n\n      After the recent ACPIPHP changes we\u0027ve seen some interesting\n      breakage on a system that triggers device check notifications\n      during boot for non-existing devices.  Although those\n      notifications are really spurious, we should be able to deal with\n      them nevertheless and that shouldn\u0027t introduce too much overhead.\n      Four commits to make that work properly.\n\n   2) Memory hotplug and hibernation mutual exclusion rework\n\n      This was maent to be a cleanup, but it happens to fix a classical\n      ABBA deadlock between system suspend/hibernation and ACPI memory\n      hotplug which is possible if they are started roughly at the same\n      time.  Three commits rework memory hotplug so that it doesn\u0027t\n      acquire pm_mutex and make hibernation use device_hotplug_lock\n      which prevents it from racing with memory hotplug.\n\n   3) ACPI Intel LPSS (Low-Power Subsystem) driver crash fix\n\n      The ACPI LPSS driver crashes during boot on Apple Macbook Air with\n      Haswell that has slightly unusual BIOS configuration in which one\n      of the LPSS device\u0027s _CRS method doesn\u0027t return all of the\n      information expected by the driver.  Fix from Mika Westerberg, for\n      stable.\n\n   4) ACPICA fix related to Store-\u003eArgX operation\n\n      AML interpreter fix for obscure breakage that causes AML to be\n      executed incorrectly on some machines (observed in practice).\n      From Bob Moore.\n\n   5) ACPI core fix for PCI ACPI device objects lookup\n\n      There still are cases in which there is more than one ACPI device\n      object matching a given PCI device and we don\u0027t choose the one\n      that the BIOS expects us to choose, so this makes the lookup take\n      more criteria into account in those cases.\n\n   6) Fix to prevent cpuidle from crashing in some rare cases\n\n      If the result of cpuidle_get_driver() is NULL, which can happen on\n      some systems, cpuidle_driver_ref() will crash trying to use that\n      pointer and the Daniel Fu\u0027s fix prevents that from happening.\n\n   7) cpufreq fixes related to CPU hotplug\n\n      Stephen Boyd reported a number of concurrency problems with\n      cpufreq related to CPU hotplug which are addressed by a series of\n      fixes from Srivatsa S Bhat and Viresh Kumar.\n\n   8) cpufreq fix for time conversion in time_in_state attribute\n\n      Time conversion carried out by cpufreq when user space attempts to\n      read /sys/devices/system/cpu/cpu*/cpufreq/stats/time_in_state\n      won\u0027t work correcty if cputime_t doesn\u0027t map directly to jiffies.\n      Fix from Andreas Schwab.\n\n   9) Revert of a troublesome cpufreq commit\n\n      Commit 7c30ed5 (cpufreq: make sure frequency transitions are\n      serialized) was intended to address some known concurrency\n      problems in cpufreq related to the ordering of transitions, but\n      unfortunately it introduced several problems of its own, so I\n      decided to revert it now and address the original problems later\n      in a more robust way.\n\n  10) Intel Haswell CPU models for intel_pstate from Nell Hardcastle.\n\n  11) cpufreq fixes related to system suspend/resume\n\n      The recent cpufreq changes that made it preserve CPU sysfs\n      attributes over suspend/resume cycles introduced a possible NULL\n      pointer dereference that caused it to crash during the second\n      attempt to suspend.  Three commits from Srivatsa S Bhat fix that\n      problem and a couple of related issues.\n\n  12) cpufreq locking fix\n\n      cpufreq_policy_restore() should acquire the lock for reading, but\n      it acquires it for writing.  Fix from Lan Tianyu\"\n\n* tag \u0027pm+acpi-fixes-3.12-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (25 commits)\n  cpufreq: Acquire the lock in cpufreq_policy_restore() for reading\n  cpufreq: Prevent problems in update_policy_cpu() if last_cpu \u003d\u003d new_cpu\n  cpufreq: Restructure if/else block to avoid unintended behavior\n  cpufreq: Fix crash in cpufreq-stats during suspend/resume\n  intel_pstate: Add Haswell CPU models\n  Revert \"cpufreq: make sure frequency transitions are serialized\"\n  cpufreq: Use signed type for \u0027ret\u0027 variable, to store negative error values\n  cpufreq: Remove temporary fix for race between CPU hotplug and sysfs-writes\n  cpufreq: Synchronize the cpufreq store_*() routines with CPU hotplug\n  cpufreq: Invoke __cpufreq_remove_dev_finish() after releasing cpu_hotplug.lock\n  cpufreq: Split __cpufreq_remove_dev() into two parts\n  cpufreq: Fix wrong time unit conversion\n  cpufreq: serialize calls to __cpufreq_governor()\n  cpufreq: don\u0027t allow governor limits to be changed when it is disabled\n  ACPI / bind: Prefer device objects with _STA to those without it\n  ACPI / hotplug / PCI: Avoid parent bus rescans on spurious device checks\n  ACPI / hotplug / PCI: Use _OST to notify firmware about notify status\n  ACPI / hotplug / PCI: Avoid doing too much for spurious notifies\n  ACPICA: Fix for a Store-\u003eArgX when ArgX contains a reference to a field.\n  ACPI / hotplug / PCI: Don\u0027t trim devices before scanning the namespace\n  ...\n"
    },
    {
      "commit": "75acebf2423ab13ff6198daa6e17ef7a2543bfe4",
      "tree": "e08119290aaf68ce1b5d2b4a4cbaba29c3b2f64d",
      "parents": [
        "b55ee2816ed6d8f8a00d4badab0e3642ffbac19f",
        "dbc33f7016747bfce64f3d1e3af63f1251fcbf85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:44:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:44:54 2013 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"Various fixes.\n\n  The -g perf report lockup you reported is only partially addressed,\n  patches that fix the excessive runtime are still being worked on\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/x86: Fix uncore PCI fixed counter handling\n  uprobes: Fix utask-\u003edepth accounting in handle_trampoline()\n  perf/x86: Add constraint for IVB CYCLE_ACTIVITY:CYCLES_LDM_PENDING\n  perf: Fix up MMAP2 buffer space reservation\n  perf tools: Add attr-\u003emmap2 support\n  perf kvm: Fix sample_type manipulation\n  perf evlist: Fix id pos in perf_evlist__open()\n  perf trace: Handle perf.data files with no tracepoints\n  perf session: Separate progress bar update when processing events\n  perf trace: Check if MAP_32BIT is defined\n  perf hists: Fix formatting of long symbol names\n  perf evlist: Fix parsing with no sample_id_all bit set\n  perf tools: Add test for parsing with no sample_id_all bit\n  perf trace: Check control+C more often\n"
    },
    {
      "commit": "b55ee2816ed6d8f8a00d4badab0e3642ffbac19f",
      "tree": "8923b88f34f8e24e5b65a0f5aa8a366127fcdc6a",
      "parents": [
        "8b19e34188a32d63a7da94ea8a3f5e39b0c66050",
        "b0cff9d88ce2f3030f73138078c5b1019f17e1cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:44:13 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:44:13 2013 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fix from Ingo Molnar:\n \"Performance regression fix\"\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched: Fix load balancing performance regression in should_we_balance()\n"
    },
    {
      "commit": "8b19e34188a32d63a7da94ea8a3f5e39b0c66050",
      "tree": "b6affbe820569551bebfd39cc07965855080d2c1",
      "parents": [
        "5762482f5496cb1dd86acd2aace3ea25d1404e1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:35:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:35:47 2013 -0700"
      },
      "message": "vfs: make getcwd() get the root and pwd path under rcu\n\nThis allows us to skip all the crazy spinlocks and reference count\nupdates, and instead use the fs sequence read-lock to get an atomic\nsnapshot of the root and cwd information.\n\nWe might want to make the rule that \"prepend_path()\" is always called\nwith the RCU lock held, but the RCU lock nests fine and this is the\nminimal fix.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5762482f5496cb1dd86acd2aace3ea25d1404e1f",
      "tree": "6d74d7b501002f7516e2eb3068f5a942f63098ee",
      "parents": [
        "b7c09ad4014e3678e8cc01fdf663c9f43b272dc6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:12:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:12:47 2013 -0700"
      },
      "message": "vfs: move get_fs_root_and_pwd() to single caller\n\nLet\u0027s not pollute the include files with inline functions that are only\nused in a single place.  Especially not if we decide we might want to\nchange the semantics of said function to make it more efficient..\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7c09ad4014e3678e8cc01fdf663c9f43b272dc6",
      "tree": "1edb073b0a76ce1530cb31c113f9e741e33ece0e",
      "parents": [
        "1812997720ab90d029548778c55d7315555e1fef",
        "d7396f07358a7c6e22c238d36d1d85f9d652a414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:58:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:58:51 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs updates from Chris Mason:\n \"This is against 3.11-rc7, but was pulled and tested against your tree\n  as of yesterday.  We do have two small incrementals queued up, but I\n  wanted to get this bunch out the door before I hop on an airplane.\n\n  This is a fairly large batch of fixes, performance improvements, and\n  cleanups from the usual Btrfs suspects.\n\n  We\u0027ve included Stefan Behren\u0027s work to index subvolume UUIDs, which is\n  targeted at speeding up send/receive with many subvolumes or snapshots\n  in place.  It closes a long standing performance issue that was built\n  in to the disk format.\n\n  Mark Fasheh\u0027s offline dedup work is also here.  In this case offline\n  means the FS is mounted and active, but the dedup work is not done\n  inline during file IO.  This is a building block where utilities are\n  able to ask the FS to dedup a series of extents.  The kernel takes\n  care of verifying the data involved really is the same.  Today this\n  involves reading both extents, but we\u0027ll continue to evolve the\n  patches\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)\n  Btrfs: optimize key searches in btrfs_search_slot\n  Btrfs: don\u0027t use an async starter for most of our workers\n  Btrfs: only update disk_i_size as we remove extents\n  Btrfs: fix deadlock in uuid scan kthread\n  Btrfs: stop refusing the relocation of chunk 0\n  Btrfs: fix memory leak of uuid_root in free_fs_info\n  btrfs: reuse kbasename helper\n  btrfs: return btrfs error code for dev excl ops err\n  Btrfs: allow partial ordered extent completion\n  Btrfs: convert all bug_ons in free-space-cache.c\n  Btrfs: add support for asserts\n  Btrfs: adjust the fs_devices-\u003emissing count on unmount\n  Btrf: cleanup: don\u0027t check for root_refs \u003d\u003d 0 twice\n  Btrfs: fix for patch \"cleanup: don\u0027t check the same thing twice\"\n  Btrfs: get rid of one BUG() in write_all_supers()\n  Btrfs: allocate prelim_ref with a slab allocater\n  Btrfs: pass gfp_t to __add_prelim_ref() to avoid always using GFP_ATOMIC\n  Btrfs: fix race conditions in BTRFS_IOC_FS_INFO ioctl\n  Btrfs: fix race between removing a dev and writing sbs\n  Btrfs: remove ourselves from the cluster list under lock\n  ...\n"
    },
    {
      "commit": "1812997720ab90d029548778c55d7315555e1fef",
      "tree": "25e3bccce50977e9199df4ee0445a3af9e5da708",
      "parents": [
        "1370e97bb2eb1ef2df7355204e5a4ba13e12b861"
      ],
      "author": {
        "name": "Waiman Long",
        "email": "Waiman.Long@hp.com",
        "time": "Thu Sep 12 10:55:35 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:25:23 2013 -0700"
      },
      "message": "dcache: get/release read lock in read_seqbegin_or_lock() \u0026 friend\n\nThis patch modifies read_seqbegin_or_lock() and need_seqretry() to use\nnewly introduced read_seqlock_excl() and read_sequnlock_excl()\nprimitives so that they won\u0027t change the sequence number even if they\nfall back to take the lock.  This is OK as no change to the protected\ndata structure is being made.\n\nIt will prevent one fallback to lock taking from cascading into a series\nof lock taking reducing performance because of the sequence number\nchange.  It will also allow other sequence readers to go forward while\nan exclusive reader lock is taken.\n\nThis patch also updates some of the inaccurate comments in the code.\n\nSigned-off-by: Waiman Long \u003cWaiman.Long@hp.com\u003e\nTo: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1370e97bb2eb1ef2df7355204e5a4ba13e12b861",
      "tree": "9e3c2e9b0e0a7f67e50898e8ff5ecb462f260625",
      "parents": [
        "decf7abcc97444ecd2d3cf278f5cc8093f33f49a"
      ],
      "author": {
        "name": "Waiman Long",
        "email": "Waiman.Long@hp.com",
        "time": "Thu Sep 12 10:55:34 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:25:23 2013 -0700"
      },
      "message": "seqlock: Add a new locking reader type\n\nThe sequence lock (seqlock) was originally designed for the cases where\nthe readers do not need to block the writers by making the readers retry\nthe read operation when the data change.\n\nSince then, the use cases have been expanded to include situations where\na thread does not need to change the data (effectively a reader) at all\nbut have to take the writer lock because it can\u0027t tolerate changes to\nthe protected structure.  Some examples are the d_path() function and\nthe getcwd() syscall in fs/dcache.c where the functions take the writer\nlock on rename_lock even though they don\u0027t need to change anything in\nthe protected data structure at all.  This is inefficient as a reader is\nnow blocking other sequence number reading readers from moving forward\nby pretending to be a writer.\n\nThis patch tries to eliminate this inefficiency by introducing a new\ntype of locking reader to the seqlock locking mechanism.  This new\nlocking reader will try to take an exclusive lock preventing other\nwriters and locking readers from going forward.  However, it won\u0027t\naffect the progress of the other sequence number reading readers as the\nsequence number won\u0027t be changed.\n\nSigned-off-by: Waiman Long \u003cWaiman.Long@hp.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "decf7abcc97444ecd2d3cf278f5cc8093f33f49a",
      "tree": "735057e504a1787a741f6a15fac7dbe2f461e887",
      "parents": [
        "24ba40588fe50adce2a99e026fc0026872ebeb85",
        "3d0049e8529adaa36c38a7b400792f6c37b66c92"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 08:52:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 08:52:41 2013 -0700"
      },
      "message": "Merge tag \u0027sound-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\nPull sound fixes from Takashi Iwai:\n \"A few last-minute fixes for 3.12-rc1.  All patches are driver\n  specific.\n\n   - HD-audio fixes: MacBook 6,1/6,2 speaker fix, ASUS TX300 dock\n     speaker fix, Toshiba Satellite irq fix, Haswell HDMI audio\n     cleanups)\n\n   - ASoC fixes: atmel irq fix, fsl DT fix, mc13783 spi fix, kirkwood\n     compatible string change, etc\"\n\n* tag \u0027sound-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:\n  ASoC: mc13783: add spi errata fix\n  ASoC: rsnd: fixup flag name of rsnd_scu_platform_info\n  ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2\n  ALSA: hda - Add Toshiba Satellite C870 to MSI blacklist\n  ASoC: fsl_spdif: Select regmap-mmio\n  ALSA: hda - unmute pin amplifier in infoframe setup for Haswell\n  ALSA: hda - define is_haswell() to check if a display audio codec is Haswell\n  ALSA: hda - Add dock speaker support for ASUS TX300\n  ASoC: kirkwood: change the compatible string of the kirkwood-i2s driver\n  ASoC: atmel: disable error interrupt\n  ASoC: fsl: imx-audmux: Do not call imx_audmux_parse_dt_defaults() on non-dt kernel\n"
    },
    {
      "commit": "24ba40588fe50adce2a99e026fc0026872ebeb85",
      "tree": "20f940860987d0e84588b9681bce6a2564764fea",
      "parents": [
        "b9b42eeb88d36cc7400925302f1587aaaa348905",
        "bd5cc119ef6bbe8ad64a303542c436c7a82498b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 08:45:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 08:45:53 2013 -0700"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\nPull watchdog updates from Wim Van Sebroeck:\n - New watchdog driver for Allwinner A10/A13\n - some devm_ioremap_resource simplifications\n - a s3c2410_wdt change that removes the global variables\n\n* git://www.linux-watchdog.org/linux-watchdog:\n  watchdog: s3c2410_wdt: simplify use of devm_ioremap_resource\n  watchdog: simplify platform_get_resource_byname/devm_ioremap_resource\n  watchdog: ts72xx_wdt: simplify use of devm_ioremap_resource\n  watchdog: nuc900_wdt.c: simplify use of devm_ioremap_resource\n  watchdog: sunxi: New watchdog driver for Allwinner A10/A13\n  watchdog: s3c2410_wdt: remove the global variables\n"
    },
    {
      "commit": "0b77f766f3ef9875e2bb0035c9b89b4f9469b78d",
      "tree": "1da83e1a303b2728ed5585d4c887959bf6039dd2",
      "parents": [
        "010a166a5202f6297e196624a0671c4815032e38"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Thu Sep 12 15:46:39 2013 +0900"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Thu Sep 12 08:17:40 2013 -0700"
      },
      "message": "hwmon: (k10temp) remove unnecessary pci_set_drvdata()\n\nThe driver core clears the driver data to NULL after device_release\nor on probe failure. Thus, it is not needed to manually clear the\ndevice driver data to NULL.\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nAcked-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\n"
    },
    {
      "commit": "08474ed639e971e9d5a877cf7aba7ef91d847ae9",
      "tree": "519d3f7285658a8f03ce79583b3d33d158a2a10f",
      "parents": [
        "aa9e10409eae9dd61a336c6307d0a0b538063970"
      ],
      "author": {
        "name": "Mark Tinguely",
        "email": "tinguely@sgi.com",
        "time": "Thu Sep 12 09:01:23 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Sep 12 09:51:49 2013 -0500"
      },
      "message": "xfs: remove dead code from xlog_recover_inode_pass2\n\nAdditional code in the error handler of xlog_recover_inode_pass2()\nresults in the following error:\n\nstatic checker warning: \"fs/xfs/xfs_log_recover.c:2999\nxlog_recover_inode_pass2()\n\t info: ignoring unreachable code.\"\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "d6a60fc1a8187004792a01643d8af1d06a465026",
      "tree": "033a6976e47fc49c5f095c38008f1d1f6be5f93e",
      "parents": [
        "6e4664525b1db28f8c4e1130957f70a94c19213e",
        "ca19243e9ce81f8e8a25ee33969444f11b0590b7",
        "634544bf718dd29cd2e29efba6801a8d08daf335",
        "ecfadb6e5b49a0a56df2038bf39f1fcd652788b9",
        "e644a013fe67f2bccd54378b88556d07fa2714d6",
        "3269ee0bd6686baf86630300d528500ac5b516d7"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Thu Sep 12 16:46:34 2013 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Thu Sep 12 16:46:34 2013 +0200"
      },
      "message": "Merge branches \u0027arm/exynos\u0027, \u0027ppc/pamu\u0027, \u0027arm/smmu\u0027, \u0027x86/amd\u0027 and \u0027iommu/fixes\u0027 into next\n"
    },
    {
      "commit": "b9b42eeb88d36cc7400925302f1587aaaa348905",
      "tree": "f5260ad8013adeca9f86c85c096099844238c725",
      "parents": [
        "7b7a2f0a31c6c1ff53a3c87c0bca4f8d01471391",
        "50e66c7ed8a1cd7e933628f9f5cf2617394adf5a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:42:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:42:59 2013 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux\n\nPull thermal management updates from Zhang Rui:\n \"We have a lot of SOC changes and a few thermal core fixes this time.\n\n  The biggest change is about exynos thermal driver restructure.  The\n  patch set adds TMU (Thermal management Unit) driver support for\n  exynos5440 platform.  There are 3 instances of the TMU controllers so\n  necessary cleanup/re-structure is done to handle multiple thermal\n  zone.\n\n  The next biggest change is the introduction of the imx thermal driver.\n  It adds the imx thermal support using Temperature Monitor (TEMPMON)\n  block found on some Freescale i.MX SoCs.  The driver uses syscon\n  regmap interface to access TEMPMON control registers and calibration\n  data, and supports cpufreq as the cooling device.\n\n  Highlights:\n\n   - restructure exynos thermal driver.\n\n   - introduce new imx thermal driver.\n\n   - fix a bug in thermal core, which powers on the fans unexpectedly\n     after resume from suspend\"\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (46 commits)\n  drivers: thermal: add check when unregistering cpu cooling\n  thermal: thermal_core: allow binding with limits on bind_params\n  drivers: thermal: make usage of CONFIG_THERMAL_HWMON optional\n  drivers: thermal: parent virtual hwmon with thermal zone\n  thermal: hwmon: move hwmon support to single file\n  thermal: exynos: Clean up non-DT remnants\n  thermal: exynos: Fix potential NULL pointer dereference\n  thermal: exynos: Fix typos in Kconfig\n  thermal: ti-soc-thermal: Ensure to compute thermal trend\n  thermal: ti-soc-thermal: Set the bandgap mask counter delay value\n  thermal: ti-soc-thermal: Initialize counter_delay field for TI DRA752 sensors\n  thermal: step_wise: return instance-\u003etarget by default\n  thermal: step_wise: cdev only needs update on a new target state\n  Thermal/cpu_cooling: Return directly for the cpu out of allowed_cpus in the cpufreq_thermal_notifier()\n  thermal: exynos_tmu: fix wrong error check for mapped memory\n  thermal: imx: implement thermal alarm interrupt handling\n  thermal: imx: dynamic passive and SoC specific critical trip points\n  Documentation: thermal: Explain the exynos thermal driver model\n  ARM: dts: thermal: exynos: Add documentation for Exynos SoC thermal bindings\n  thermal: exynos: Support for TMU regulator defined at device tree\n  ...\n"
    },
    {
      "commit": "aa9e10409eae9dd61a336c6307d0a0b538063970",
      "tree": "2283f6cb17199b0945bf08dcac7a88040a65bc76",
      "parents": [
        "74ffa796e127906883cacedcf3871494192c9e42"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu Sep 12 00:17:31 2013 +0300"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Sep 12 09:42:08 2013 -0500"
      },
      "message": "xfs: \u003d vs \u003d\u003d typo in ASSERT()\n\nThere is a \u0027\u003d\u0027 vs \u0027\u003d\u003d\u0027 typo so the ASSERT()s are always true.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "7b7a2f0a31c6c1ff53a3c87c0bca4f8d01471391",
      "tree": "17b0e72c8e996e581974bbbc0e7f68f07d87ab1e",
      "parents": [
        "c3567f8a359b7917dcffa442301f88ed0a75211f",
        "42873b0a282ac84a56e0e48c408beb62d0ad2917"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:41:12 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:41:12 2013 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"CIFS update including case insensitive file name matching improvements\n  for UTF-8 to Unicode, various small cifs fixes, SMB2/SMB3 leasing\n  improvements, support for following SMB2 symlinks, SMB3 packet signing\n  improvements\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6: (25 commits)\n  CIFS: Respect epoch value from create lease context v2\n  CIFS: Add create lease v2 context for SMB3\n  CIFS: Move parsing lease buffer to ops struct\n  CIFS: Move creating lease buffer to ops struct\n  CIFS: Store lease state itself rather than a mapped oplock value\n  CIFS: Replace clientCanCache* bools with an integer\n  [CIFS] quiet sparse compile warning\n  cifs: Start using per session key for smb2/3 for signature generation\n  cifs: Add a variable specific to NTLMSSP for key exchange.\n  cifs: Process post session setup code in respective dialect functions.\n  CIFS: convert to use le32_add_cpu()\n  CIFS: Fix missing lease break\n  CIFS: Fix a memory leak when a lease break comes\n  cifs: add winucase_convert.pl to Documentation/ directory\n  cifs: convert case-insensitive dentry ops to use new case conversion routines\n  cifs: add new case-insensitive conversion routines that are based on wchar_t\u0027s\n  [CIFS] Add Scott to list of cifs contributors\n  cifs: Move and expand MAX_SERVER_SIZE definition\n  cifs: Expand max share name length to 256\n  cifs: Move string length definitions to uapi\n  ...\n"
    },
    {
      "commit": "c3567f8a359b7917dcffa442301f88ed0a75211f",
      "tree": "0bf6687e01b7d9eabd7b096e64bbb2d8a6c2bf15",
      "parents": [
        "d5d04bb48f0eb89c14e76779bb46212494de0bec"
      ],
      "author": {
        "name": "Noam Camus",
        "email": "noamc@ezchip.com",
        "time": "Thu Sep 12 13:07:39 2013 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:40:08 2013 -0700"
      },
      "message": "ARC: SMP failed to boot due to missing IVT setup\n\nCommit 05b016ecf5e7a \"ARC: Setup Vector Table Base in early boot\" moved\nthe Interrupt vector Table setup out of arc_init_IRQ() which is called\nfor all CPUs, to entry point of boot cpu only, breaking booting of others.\n\nFix by adding the same to entry point of non-boot CPUs too.\n\nread_arc_build_cfg_regs() printing IVT Base Register didn\u0027t help the\ncasue since it prints a synthetic value if zero which is totally bogus,\nso fix that to print the exact Register.\n\n[vgupta: Remove the now stale comment from header of arc_init_IRQ and\nalso added the commentary for halt-on-reset]\n\nCc: Gilad Ben-Yossef \u003cgilad@benyossef.com\u003e\nCc: Cc: \u003cstable@vger.kernel.org\u003e #3.11\nSigned-off-by: Noam Camus \u003cnoamc@ezchip.com\u003e\nSigned-off-by: Vineet Gupta \u003cvgupta@synopsys.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23c323af0375a7f63732bed0386aba5935b8de69",
      "tree": "2244871e47070a7a3eb4f5fdea075531729d484c",
      "parents": [
        "134293059bd5ed59f093a8f8a374b3d074b71440"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 12 10:16:31 2013 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 12 10:16:31 2013 -0400"
      },
      "message": "SUNRPC: No, I did not intend to create a 256KiB hashtable\n\nFix the declaration of the gss_auth_hash_table so that it creates\na 16 bucket hashtable, as I had intended.\n\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "134293059bd5ed59f093a8f8a374b3d074b71440",
      "tree": "57cff49757da69584c39d44c9c0adff80fb1b315",
      "parents": [
        "312cd958a7433feef9c6f3ce6b06471e760e452f"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Thu Sep 12 15:09:39 2013 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 12 10:16:06 2013 -0400"
      },
      "message": "sunrpc: Add missing kuids conversion for printing\n\nm68k/allmodconfig:\n\nnet/sunrpc/auth_generic.c: In function ‘generic_key_timeout’:\nnet/sunrpc/auth_generic.c:241: warning: format ‘%d’ expects type ‘int’, but\nargument 2 has type ‘kuid_t’\n\ncommit cdba321e291f0fbf5abda4d88340292b858e3d4d (\"sunrpc: Convert kuids and\nkgids to uids and gids for printing\") forgot to convert one instance.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f1728fd1599112239ed5cebc7be9810264db6792",
      "tree": "de36bb207a71db98c7170b57c557017e340831b7",
      "parents": [
        "0df03a30c333d67ee9b4c37f32d423624f48fe05",
        "44871c9c7f7963f8869dd8bc9620221c9e9db153"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Sep 12 13:04:11 2013 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Sep 12 13:04:11 2013 +0200"
      },
      "message": "Merge branch \u0027pm-cpufreq\u0027\n\n* pm-cpufreq:\n  cpufreq: Acquire the lock in cpufreq_policy_restore() for reading\n  cpufreq: Prevent problems in update_policy_cpu() if last_cpu \u003d\u003d new_cpu\n  cpufreq: Restructure if/else block to avoid unintended behavior\n  cpufreq: Fix crash in cpufreq-stats during suspend/resume\n"
    },
    {
      "commit": "dbc33f7016747bfce64f3d1e3af63f1251fcbf85",
      "tree": "8523036d438767c26acd85da2b083861730b9537",
      "parents": [
        "878b5a6efd38030c7a90895dc8346e8fb1e09b4c"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Mon Sep 09 12:53:50 2013 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 12 08:42:37 2013 +0200"
      },
      "message": "perf/x86: Fix uncore PCI fixed counter handling\n\nThere was a bug in the handling of SNB-EP/IVB-EP uncore PCI\nfixed counters, e.g., IMC.\n\nIt would cause erratic values to be returned for the IMC\nclockticks event. This was due to a bogus hwc-\u003econfig value\nwhich was then written to PCI config space.\n\nThe erratic values can be seen via:\n\n  $ perf stat -a -C 0 -e uncore_imc_0/clockticks/ -I 1000 sleep 10\n\nThe fixed counter has most fields marked as reserved with\nhw reset values of 0. Yet the kernel was defaulting to a\nhwc-\u003econfig \u003d ~0 and that was causing the issues.\n\nThis patch sets the hwc-\u003econfig values for fixed uncore event\nto 0. Now, the values of IMC clockticks is correct.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: peterz@infradead.org\nCc: zheng.z.yan@intel.com\nLink: http://lkml.kernel.org/r/20130909195350.GA17643@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    }
  ],
  "next": "878b5a6efd38030c7a90895dc8346e8fb1e09b4c"
}
