)]}'
{
  "log": [
    {
      "commit": "5d8d2f2bdbd0812dfad05ca37e4b28912fca7e33",
      "tree": "bf4270cef12358a9557688771605c3b226c95441",
      "parents": [
        "483db43e81f4958e3cd11a990112e8082a6a5261"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:02 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:02 2012 +0100"
      },
      "message": "hwmon: (it87) Report thermal sensor type as Intel PECI if appropriate\n\nIT8721 and IT8728 support Intel PECI temperature reporting. Each sensor\ncan be programmed to display the temperature reported on the PECI interface.\n\nIf configured for Intel PECI, the driver reported the wrong sensor type for\nthe respective thermal sensor. Fix the code to correctly report it as\n\"Intel PECI (6)\".\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "483db43e81f4958e3cd11a990112e8082a6a5261",
      "tree": "4f1f0081a8dedbb2ec9c2f264d40f03ae3772be7",
      "parents": [
        "c4458db3688a603a4cb4b1d01ca10ff0d58bc8eb"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:02 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:02 2012 +0100"
      },
      "message": "hwmon: (it87) Manage device specific features with table\n\nThis simplifies the code, improves runtime performance, reduces\ncode size (about 280 bytes on x86_64), and makes it easier\nto add support for new devices.\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "c4458db3688a603a4cb4b1d01ca10ff0d58bc8eb",
      "tree": "f87b078e6f4fa3c099c2d67882b34389ac6ab93f",
      "parents": [
        "1d9bcf6aef0af67901a54ad4c4458e6a2124b769"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:02 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:02 2012 +0100"
      },
      "message": "hwmon: (it87) Replace pwm group macro with direct attribute definitions\n\nFix checkpatch error:\n\nERROR: Macros with multiple statements should be enclosed in a do - while loop\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "1d9bcf6aef0af67901a54ad4c4458e6a2124b769",
      "tree": "44b9af3fa5d9171a5d7f6a55cca150afee7bb24a",
      "parents": [
        "e1169ba0aea187d0ea15d6f98bc818cab37335e5"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "message": "hwmon: (it87) Avoid quoted string splits across lines\n\nFix the respective checkpatch warnings.\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "e1169ba0aea187d0ea15d6f98bc818cab37335e5",
      "tree": "ed0051f873da553c1aa8f7d63a43d8dbea33ac97",
      "parents": [
        "161d898ac974818156afe48d755578bfd0d6e7c0"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "message": "hwmon: (it87) Save fan registers in 2-dimensional array\n\nAlso unify fan functions to use the same code for 8 and 16 bit fans.\n\nThis patch reduces code size by approximately 1,200 bytes on x86_64.\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "161d898ac974818156afe48d755578bfd0d6e7c0",
      "tree": "a6e6b76494ec02219f2b701c0b2103e7ff1777aa",
      "parents": [
        "2cece01ffd622ab65a4f5a6704e3a74c1174d2fa"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "message": "hwmon: (it87) Introduce support for tempX_offset sysfs attribute\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "2cece01ffd622ab65a4f5a6704e3a74c1174d2fa",
      "tree": "80ca67d24770743381e423f157f192e8a03bc1fa",
      "parents": [
        "929c6a5696f5efe7f4213cf9d8b12144a0c0c650"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:01 2012 +0100"
      },
      "message": "hwmon: (it87) Replace macro defining tempX_type sensors with direct definitions\n\nThe macro name show_sensor_offset is confusing since it related to the sensor\ntype, not an offset - even more so when we introduce offset attributes later on.\nReplace it with direct definitions, and replace the show_sensor/set_sensor\nfunction names with show_temp_type/set_temp_type. This also resolves a\ncheckpatch error.\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "929c6a5696f5efe7f4213cf9d8b12144a0c0c650",
      "tree": "39ffc4b0703a6b680789c8775ae07208f7eb4851",
      "parents": [
        "60ca385a530405ab501773ef4c9e222825a6cd40"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "message": "hwmon: (it87) Save voltage register values in 2-dimensional array\n\nReduces code size (more than 600 bytes on x86_64),\nand gets rid of some checkpatch errors.\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "60ca385a530405ab501773ef4c9e222825a6cd40",
      "tree": "4c6e3d327ce8e38bcfccc20ae12358d9b7f38dd3",
      "parents": [
        "45633fb370fdd16608756d587245459bf8983a26"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "message": "hwmon: (it87) Save temperature registers in 2-dimensional array\n\nCleaner code, fewer checkpatch errors, and reduced code size\n(saves more than 500 bytes on x86-64).\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "45633fb370fdd16608756d587245459bf8983a26",
      "tree": "c5f840fea63b034ef56f1bd15179ddae20790f25",
      "parents": [
        "8f3c7c547d47bcfcf9ca2ed30b79733ce1e7ad3a"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "message": "hwmon: (w83627ehf) Get rid of smatch warnings\n\nThe smatch static code analyzer complains:\n\ndrivers/hwmon/w83627ehf.c:911 w83627ehf_update_device() error: buffer overflow \u0027W83627EHF_REG_TEMP_OFFSET\u0027 3 \u003c\u003d 8\ndrivers/hwmon/w83627ehf.c:909 w83627ehf_update_device() error: buffer overflow \u0027data-\u003etemp_offset\u0027 3 \u003c\u003d 8\ndrivers/hwmon/w83627ehf.c:2672 w83627ehf_resume() error: buffer overflow \u0027W83627EHF_REG_TEMP_OFFSET\u0027 3 \u003c\u003d 8\ndrivers/hwmon/w83627ehf.c:2673 w83627ehf_resume() error: buffer overflow \u0027data-\u003etemp_offset\u0027 3 \u003c\u003d 8\n\nA deeper analysis of the code shows that these are false positives, as\nonly the lower 3 bits of data-\u003ehave_temp_offset can be set so the\nwrite is never attempted with i \u003e\u003d 3. However this shows that the code\nisn\u0027t very robust and future changes could easily introduce a buffer\noverflow. So let\u0027s add a safety check to prevent that and make smatch\nhappy.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Peter Huewe \u003cPeterHuewe@gmx.de\u003e\nReviewed-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\n"
    },
    {
      "commit": "8f3c7c547d47bcfcf9ca2ed30b79733ce1e7ad3a",
      "tree": "9cbb66aade67d1550a25101e8b75d9c65d7b6159",
      "parents": [
        "7e630bb55a52cfaa35011c0ebc2efc96f13e5135"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:17:00 2012 +0100"
      },
      "message": "hwmon: (w83627hf) Don\u0027t touch nonexistent I2C address registers\n\nOnly the W83627HF could be accessed through I2C. All other supported\nchips are LPC-only, so they do not have I2C address registers. Don\u0027t\nwrite to nonexistent or reserved registers on these chips.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\n"
    },
    {
      "commit": "7e630bb55a52cfaa35011c0ebc2efc96f13e5135",
      "tree": "f3f405eb3d9fd80d8729b62799624072837c15d3",
      "parents": [
        "275b7d6ebe9e3599b2d178089171afd63d3fda02"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Wed Dec 19 22:16:59 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:16:59 2012 +0100"
      },
      "message": "hwmon: (w83627ehf) Add support for suspend\n\nOn suspend some register values are lost, most notably the Value RAM\nareas but also other limits and settings. Restore them on resume.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nReviewed-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nTested-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\n"
    },
    {
      "commit": "275b7d6ebe9e3599b2d178089171afd63d3fda02",
      "tree": "0bede5b9f1f47cc763952817d57fd3b1495a7624",
      "parents": [
        "d6dab7dd123ba6a737e69d89c8cca9c6d9b75aa9"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Wed Dec 19 22:16:59 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:16:59 2012 +0100"
      },
      "message": "hwmon: (w83627hf) Add support for suspend\n\nOn suspend some register values are lost, most notably the Value RAM\nareas but also other limits. Restore them on resume. On top of that,\nsome fixups are needed to work around BIOS bugs, in particular when\nthe BIOS omits running the same initialization sequence on resume\nthat it does after boot. In that case we have to carry initialization\nover suspend.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nTested-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\n"
    },
    {
      "commit": "d6dab7dd123ba6a737e69d89c8cca9c6d9b75aa9",
      "tree": "64ecfc90d3bca65fe952c6dd5f10ac1341f7a2a8",
      "parents": [
        "752451f01c4567b506bf4343082682dbb8fb30dd"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Wed Dec 19 22:16:59 2012 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Dec 19 22:16:59 2012 +0100"
      },
      "message": "hwmon: Fix PCI device reference leak in quirk\n\nThankfully this only affects systems with one specific south bridge\nand is most probably harmless unless the hwmon module is heavily\ncycled.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\n"
    },
    {
      "commit": "752451f01c4567b506bf4343082682dbb8fb30dd",
      "tree": "ec2ec2989c93e567952ddc1ec879013aa2704f0a",
      "parents": [
        "673ab8783b596cda5b616b317b1a1b47480c66fd",
        "972deb4f49b5b6703d9c6117ba0aeda2180d4447"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 16:51:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 16:51:10 2012 -0800"
      },
      "message": "Merge branch \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux\n\nPull i2c-embedded changes from Wolfram Sang:\n - CBUS driver (an I2C variant)\n - continued rework of the omap driver\n - s3c2410 gets lots of fixes and gains pinctrl support\n - at91 gains DMA support\n - the GPIO muxer gains devicetree probing\n - typical fixes and additions all over\n\n* \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux: (45 commits)\n  i2c: omap: Remove the OMAP_I2C_FLAG_RESET_REGS_POSTIDLE flag\n  i2c: at91: add dma support\n  i2c: at91: change struct members indentation\n  i2c: at91: fix compilation warning\n  i2c: mxs: Do not disable the I2C SMBus quick mode\n  i2c: mxs: Handle i2c DMA failure properly\n  i2c: s3c2410: Remove recently introduced performance overheads\n  i2c: ocores: Move grlib set/get functions into #ifdef CONFIG_OF block\n  i2c: s3c2410: Add fix for i2c suspend/resume\n  i2c: s3c2410: Fix code to free gpios\n  i2c: i2c-cbus-gpio: introduce driver\n  i2c: ocores: Add support for the GRLIB port of the controller and use function pointers for getreg and setreg functions\n  i2c: ocores: Add irq support for sparc\n  i2c: omap: Move the remove constraint\n  ARM: dts: cfa10049: Add the i2c muxer buses to the CFA-10049\n  i2c: s3c2410: do not special case HDMIPHY stuck bus detection\n  i2c: s3c2410: use exponential back off while polling for bus idle\n  i2c: s3c2410: do not generate STOP for QUIRK_HDMIPHY\n  i2c: s3c2410: grab adapter lock while changing i2c clock\n  i2c: s3c2410: Add support for pinctrl\n  ...\n"
    },
    {
      "commit": "673ab8783b596cda5b616b317b1a1b47480c66fd",
      "tree": "d3fc9bb4279720c53d0dc69c2a34c40635cf05f3",
      "parents": [
        "d7b96ca5d08a8f2f836feb2b3b3bd721d2837a8e",
        "3cf23841b4b76eb94d3f8d0fb3627690e4431413"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:08:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:08:12 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (more patches from Andrew)\n\nMerge patches from Andrew Morton:\n \"Most of the rest of MM, plus a few dribs and drabs.\n\n  I still have quite a few irritating patches left around: ones with\n  dubious testing results, lack of review, ones which should have gone\n  via maintainer trees but the maintainers are slack, etc.\n\n  I need to be more activist in getting these things wrapped up outside\n  the merge window, but they\u0027re such a PITA.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (48 commits)\n  mm/vmscan.c: avoid possible deadlock caused by too_many_isolated()\n  vmscan: comment too_many_isolated()\n  mm/kmemleak.c: remove obsolete simple_strtoul\n  mm/memory_hotplug.c: improve comments\n  mm/hugetlb: create hugetlb cgroup file in hugetlb_init\n  mm/mprotect.c: coding-style cleanups\n  Documentation: ABI: /sys/devices/system/node/\n  slub: drop mutex before deleting sysfs entry\n  memcg: add comments clarifying aspects of cache attribute propagation\n  kmem: add slab-specific documentation about the kmem controller\n  slub: slub-specific propagation changes\n  slab: propagate tunable values\n  memcg: aggregate memcg cache values in slabinfo\n  memcg/sl[au]b: shrink dead caches\n  memcg/sl[au]b: track all the memcg children of a kmem_cache\n  memcg: destroy memcg caches\n  sl[au]b: allocate objects from memcg cache\n  sl[au]b: always get the cache from its page in kmem_cache_free()\n  memcg: skip memcg kmem allocations in specified code regions\n  memcg: infrastructure to match an allocation to the right cache\n  ...\n"
    },
    {
      "commit": "d7b96ca5d08a8f2f836feb2b3b3bd721d2837a8e",
      "tree": "e4700189d9d880489b0aaa69ce6f9ff04f41d12f",
      "parents": [
        "5b3040a48bc9b916dc318bde33c9ebd98f00fbeb",
        "7764b5282e7e04ede3020d86787122887840e016"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:06:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:06:11 2012 -0800"
      },
      "message": "Merge tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging\n\nPull hwmon fixlet from Guenter Roeck:\n \"Fix fallout from __devexit removal\"\n\n* tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:\n  hwmon: (twl4030-madc-hwmon) Fix warning message caused by removal of __devexit\n"
    },
    {
      "commit": "5b3040a48bc9b916dc318bde33c9ebd98f00fbeb",
      "tree": "3762a11cb024c1197e07046d60af0b93d3a541ff",
      "parents": [
        "31564cbd77baa88405862d4aa0d00893ab1d8cb7",
        "e6cdebdf5aeccb5cbcf81e5e2764ad28a80f3185"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:05:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:05:30 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\nPull tile updates from Chris Metcalf:\n \"These are a smattering of minor changes from Tilera and other folks,\n  mostly in the ptrace area.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  arch/tile: set CORE_DUMP_USE_REGSET on tile\n  arch/tile: implement arch_ptrace using user_regset on tile\n  arch/tile: implement user_regset interface on tile\n  arch/tile: clean up tile-specific PTRACE_SETOPTIONS\n  arch/tile: provide PT_FLAGS_COMPAT value in pt_regs\n  tile/PCI: use for_each_pci_dev to simplify the code\n  tilegx: remove __init from pci fixup hook\n"
    },
    {
      "commit": "3cf23841b4b76eb94d3f8d0fb3627690e4431413",
      "tree": "f7c697537949c0394bccfe654ea0743b88ea5ceb",
      "parents": [
        "d37dd5dcb955dd8c2cdd4eaef1f15d1b7ecbc379"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Dec 18 14:23:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "mm/vmscan.c: avoid possible deadlock caused by too_many_isolated()\n\nNeil found that if too_many_isolated() returns true while performing\ndirect reclaim we can end up waiting for other threads to complete their\ndirect reclaim.  If those threads are allowed to enter the FS or IO to\nfree memory, but this thread is not, then it is possible that those\nthreads will be waiting on this thread and so we get a circular deadlock.\n\nsome task enters direct reclaim with GFP_KERNEL\n  \u003d\u003e too_many_isolated() false\n    \u003d\u003e vmscan and run into dirty pages\n      \u003d\u003e pageout()\n        \u003d\u003e take some FS lock\n          \u003d\u003e fs/block code does GFP_NOIO allocation\n            \u003d\u003e enter direct reclaim again\n              \u003d\u003e too_many_isolated() true\n                \u003d\u003e waiting for others to progress, however the other\n                   tasks may be circular waiting for the FS lock..\n\nThe fix is to let !__GFP_IO and !__GFP_FS direct reclaims enjoy higher\npriority than normal ones, by lowering the throttle threshold for the\nlatter.\n\nAllowing ~1/8 isolated pages in normal is large enough.  For example, for\na 1GB LRU list, that\u0027s ~128MB isolated pages, or 1k blocked tasks (each\nisolates 32 4KB pages), or 64 blocked tasks per logical CPU (assuming 16\nlogical CPUs per NUMA node).  So it\u0027s not likely some CPU goes idle\nwaiting (when it could make progress) because of this limit: there are\nmuch more sleeping reclaim tasks than the number of CPU, so the task may\nwell be blocked by some low level queue/lock anyway.\n\nNow !GFP_IOFS reclaims won\u0027t be waiting for GFP_IOFS reclaims to progress.\n They will be blocked only when there are too many concurrent !GFP_IOFS\nreclaims, however that\u0027s very unlikely because the IO-less direct reclaims\nis able to progress much more faster, and they won\u0027t deadlock each other.\nThe threshold is raised high enough for them, so that there can be\nsufficient parallel progress of !GFP_IOFS reclaims.\n\n[akpm@linux-foundation.org: tweak comment]\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nTested-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "d37dd5dcb955dd8c2cdd4eaef1f15d1b7ecbc379",
      "tree": "604209843c03b53a6c74f90cdb7d000914213066",
      "parents": [
        "dc053733ea44babedb20266300b984d6add8b9e5"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Dec 18 14:23:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "vmscan: comment too_many_isolated()\n\nComment \"Why it\u0027s doing so\" rather than \"What it does\" as proposed by\nAndrew Morton.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc053733ea44babedb20266300b984d6add8b9e5",
      "tree": "4206349761194b05f17c3d120b3b5dd1c110e729",
      "parents": [
        "79a4dcefd3256896416f5a94d2d1442a7f5aa9b8"
      ],
      "author": {
        "name": "Abhijit Pawar",
        "email": "abhi.c.pawar@gmail.com",
        "time": "Tue Dec 18 14:23:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "mm/kmemleak.c: remove obsolete simple_strtoul\n\nReplace the obsolete simple_strtoul() with kstrtoul().\n\nSigned-off-by: Abhijit Pawar \u003cabhi.c.pawar@gmail.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79a4dcefd3256896416f5a94d2d1442a7f5aa9b8",
      "tree": "4a00cd22e719484b1bf40fab95eda98070c7550a",
      "parents": [
        "7179e7bf4592ac5a7b30257a7df6259ee81e51da"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Tue Dec 18 14:23:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "mm/memory_hotplug.c: improve comments\n\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@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": "7179e7bf4592ac5a7b30257a7df6259ee81e51da",
      "tree": "a3fb75a87e1a18b153c18aa7e4530d35c768e8b6",
      "parents": [
        "7d12efaea7e74bf8f4953412514e836313fa32ec"
      ],
      "author": {
        "name": "Jianguo Wu",
        "email": "wujianguo@huawei.com",
        "time": "Tue Dec 18 14:23:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "mm/hugetlb: create hugetlb cgroup file in hugetlb_init\n\nBuild kernel with CONFIG_HUGETLBFS\u003dy,CONFIG_HUGETLB_PAGE\u003dy and\nCONFIG_CGROUP_HUGETLB\u003dy, then specify hugepagesz\u003dxx boot option, system\nwill fail to boot.\n\nThis failure is caused by following code path:\n\n  setup_hugepagesz\n    hugetlb_add_hstate\n      hugetlb_cgroup_file_init\n        cgroup_add_cftypes\n          kzalloc \u003c--slab is *not available* yet\n\nFor this path, slab is not available yet, so memory allocated will be\nfailed, and cause WARN_ON() in hugetlb_cgroup_file_init().\n\nSo I move hugetlb_cgroup_file_init() into hugetlb_init().\n\n[akpm@linux-foundation.org: tweak coding-style, remove pointless __init on inlined function]\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d12efaea7e74bf8f4953412514e836313fa32ec",
      "tree": "63aeb87bc6135cd9b7e7c77e2b4a1e8d578fb2b4",
      "parents": [
        "5bbe1ec11fcf08af086ae214cdd4f4da0f25ca46"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 18 14:23:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "mm/mprotect.c: coding-style cleanups\n\nA few gremlins have recently crept in.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bbe1ec11fcf08af086ae214cdd4f4da0f25ca46",
      "tree": "1294c0826396b9a8aed44acfb2a22b2f3ad846d6",
      "parents": [
        "5413dfba88d6f6090c8cdf181ab9172d24752f8f"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Tue Dec 18 14:23:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "Documentation: ABI: /sys/devices/system/node/\n\nDescribe NUMA node sysfs files/attributes.\n\nNote that for the specific dates and contacts I couldn\u0027t find,\nI left it as default for Oct 2002 and linux-mm.\n\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5413dfba88d6f6090c8cdf181ab9172d24752f8f",
      "tree": "6d8d90ef6a342d35d753533f3a06b3f2d9dd3dd1",
      "parents": [
        "ebe945c27628fca03723582eba138acc2e2f3d15"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "slub: drop mutex before deleting sysfs entry\n\nSasha Levin recently reported a lockdep problem resulting from the new\nattribute propagation introduced by kmemcg series.  In short, slab_mutex\nwill be called from within the sysfs attribute store function.  This will\ncreate a dependency, that will later be held backwards when a cache is\ndestroyed - since destruction occurs with the slab_mutex held, and then\ncalls in to the sysfs directory removal function.\n\nIn this patch, I propose to adopt a strategy close to what\n__kmem_cache_create does before calling sysfs_slab_add, and release the\nlock before the call to sysfs_slab_remove.  This is pretty much the last\noperation in the kmem_cache_shutdown() path, so we could do better by\nsplitting this and moving this call alone to later on.  This will fit\nnicely when sysfs handling is consistent between all caches, but will look\nweird now.\n\nLockdep info:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible circular locking dependency detected ]\n  3.7.0-rc4-next-20121106-sasha-00008-g353b62f #117 Tainted: G        W\n  -------------------------------------------------------\n  trinity-child13/6961 is trying to acquire lock:\n   (s_active#43){++++.+}, at:  sysfs_addrm_finish+0x31/0x60\n\n  but task is already holding lock:\n   (slab_mutex){+.+.+.}, at:  kmem_cache_destroy+0x22/0xe0\n\n  which lock already depends on the new lock.\n\n  the existing dependency chain (in reverse order) is:\n  -\u003e #1 (slab_mutex){+.+.+.}:\n          lock_acquire+0x1aa/0x240\n          __mutex_lock_common+0x59/0x5a0\n          mutex_lock_nested+0x3f/0x50\n          slab_attr_store+0xde/0x110\n          sysfs_write_file+0xfa/0x150\n          vfs_write+0xb0/0x180\n          sys_pwrite64+0x60/0xb0\n          tracesys+0xe1/0xe6\n  -\u003e #0 (s_active#43){++++.+}:\n          __lock_acquire+0x14df/0x1ca0\n          lock_acquire+0x1aa/0x240\n          sysfs_deactivate+0x122/0x1a0\n          sysfs_addrm_finish+0x31/0x60\n          sysfs_remove_dir+0x89/0xd0\n          kobject_del+0x16/0x40\n          __kmem_cache_shutdown+0x40/0x60\n          kmem_cache_destroy+0x40/0xe0\n          mon_text_release+0x78/0xe0\n          __fput+0x122/0x2d0\n          ____fput+0x9/0x10\n          task_work_run+0xbe/0x100\n          do_exit+0x432/0xbd0\n          do_group_exit+0x84/0xd0\n          get_signal_to_deliver+0x81d/0x930\n          do_signal+0x3a/0x950\n          do_notify_resume+0x3e/0x90\n          int_signal+0x12/0x17\n\n  other info that might help us debug this:\n\n   Possible unsafe locking scenario:\n\n         CPU0                    CPU1\n         ----                    ----\n    lock(slab_mutex);\n                                 lock(s_active#43);\n                                 lock(slab_mutex);\n    lock(s_active#43);\n\n   *** DEADLOCK ***\n\n  2 locks held by trinity-child13/6961:\n   #0:  (mon_lock){+.+.+.}, at:  mon_text_release+0x25/0xe0\n   #1:  (slab_mutex){+.+.+.}, at:  kmem_cache_destroy+0x22/0xe0\n\n  stack backtrace:\n  Pid: 6961, comm: trinity-child13 Tainted: G        W    3.7.0-rc4-next-20121106-sasha-00008-g353b62f #117\n  Call Trace:\n    print_circular_bug+0x1fb/0x20c\n    __lock_acquire+0x14df/0x1ca0\n    lock_acquire+0x1aa/0x240\n    sysfs_deactivate+0x122/0x1a0\n    sysfs_addrm_finish+0x31/0x60\n    sysfs_remove_dir+0x89/0xd0\n    kobject_del+0x16/0x40\n    __kmem_cache_shutdown+0x40/0x60\n    kmem_cache_destroy+0x40/0xe0\n    mon_text_release+0x78/0xe0\n    __fput+0x122/0x2d0\n    ____fput+0x9/0x10\n    task_work_run+0xbe/0x100\n    do_exit+0x432/0xbd0\n    do_group_exit+0x84/0xd0\n    get_signal_to_deliver+0x81d/0x930\n    do_signal+0x3a/0x950\n    do_notify_resume+0x3e/0x90\n    int_signal+0x12/0x17\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReported-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebe945c27628fca03723582eba138acc2e2f3d15",
      "tree": "5998e8dd874aedf3b8873d0ffeaf658d10505655",
      "parents": [
        "92e793495597af4135d94314113bf13eafb0e663"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "memcg: add comments clarifying aspects of cache attribute propagation\n\nThis patch clarifies two aspects of cache attribute propagation.\n\nFirst, the expected context for the for_each_memcg_cache macro in\nmemcontrol.h.  The usages already in the codebase are safe.  In mm/slub.c,\nit is trivially safe because the lock is acquired right before the loop.\nIn mm/slab.c, it is less so: the lock is acquired by an outer function a\nfew steps back in the stack, so a VM_BUG_ON() is added to make sure it is\nindeed safe.\n\nA comment is also added to detail why we are returning the value of the\nparent cache and ignoring the children\u0027s when we propagate the attributes.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92e793495597af4135d94314113bf13eafb0e663",
      "tree": "7647becc58b64c524de60f3262188239ed808416",
      "parents": [
        "107dab5c92d5f9c3afe962036e47c207363255c7"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "kmem: add slab-specific documentation about the kmem controller\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "107dab5c92d5f9c3afe962036e47c207363255c7",
      "tree": "17722e888fc00428ef1614a097bae82d1e9de87a",
      "parents": [
        "943a451a87d229ca564a27274b58eaeae35fde5d"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "slub: slub-specific propagation changes\n\nSLUB allows us to tune a particular cache behavior with sysfs-based\ntunables.  When creating a new memcg cache copy, we\u0027d like to preserve any\ntunables the parent cache already had.\n\nThis can be done by tapping into the store attribute function provided by\nthe allocator.  We of course don\u0027t need to mess with read-only fields.\nSince the attributes can have multiple types and are stored internally by\nsysfs, the best strategy is to issue a -\u003eshow() in the root cache, and\nthen -\u003estore() in the memcg cache.\n\nThe drawback of that, is that sysfs can allocate up to a page in buffering\nfor show(), that we are likely not to need, but also can\u0027t guarantee.  To\navoid always allocating a page for that, we can update the caches at store\ntime with the maximum attribute size ever stored to the root cache.  We\nwill then get a buffer big enough to hold it.  The corolary to this, is\nthat if no stores happened, nothing will be propagated.\n\nIt can also happen that a root cache has its tunables updated during\nnormal system operation.  In this case, we will propagate the change to\nall caches that are already active.\n\n[akpm@linux-foundation.org: tweak code to avoid __maybe_unused]\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "943a451a87d229ca564a27274b58eaeae35fde5d",
      "tree": "607a0bc1aba3911602dec1448be2ace190b5c1eb",
      "parents": [
        "749c54151a6e5b229e4ae067dbc651e54b161fbc"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "slab: propagate tunable values\n\nSLAB allows us to tune a particular cache behavior with tunables.  When\ncreating a new memcg cache copy, we\u0027d like to preserve any tunables the\nparent cache already had.\n\nThis could be done by an explicit call to do_tune_cpucache() after the\ncache is created.  But this is not very convenient now that the caches are\ncreated from common code, since this function is SLAB-specific.\n\nAnother method of doing that is taking advantage of the fact that\ndo_tune_cpucache() is always called from enable_cpucache(), which is\ncalled at cache initialization.  We can just preset the values, and then\nthings work as expected.\n\nIt can also happen that a root cache has its tunables updated during\nnormal system operation.  In this case, we will propagate the change to\nall caches that are already active.\n\nThis change will require us to move the assignment of root_cache in\nmemcg_params a bit earlier.  We need this to be already set - which\nmemcg_kmem_register_cache will do - when we reach __kmem_cache_create()\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "749c54151a6e5b229e4ae067dbc651e54b161fbc",
      "tree": "8d2d858e76e44d1bbf64439c189a57c18c8e60ae",
      "parents": [
        "22933152934f30de6f05b600c03f8a08f853a8d2"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: aggregate memcg cache values in slabinfo\n\nWhen we create caches in memcgs, we need to display their usage\ninformation somewhere.  We\u0027ll adopt a scheme similar to /proc/meminfo,\nwith aggregate totals shown in the global file, and per-group information\nstored in the group itself.\n\nFor the time being, only reads are allowed in the per-group cache.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "22933152934f30de6f05b600c03f8a08f853a8d2",
      "tree": "1abc838ffd9a130d25a493091dfe631145feea26",
      "parents": [
        "7cf2798240a2a2230cb16a391beef98d8a7ad362"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg/sl[au]b: shrink dead caches\n\nThis means that when we destroy a memcg cache that happened to be empty,\nthose caches may take a lot of time to go away: removing the memcg\nreference won\u0027t destroy them - because there are pending references, and\nthe empty pages will stay there, until a shrinker is called upon for any\nreason.\n\nIn this patch, we will call kmem_cache_shrink() for all dead caches that\ncannot be destroyed because of remaining pages.  After shrinking, it is\npossible that it could be freed.  If this is not the case, we\u0027ll schedule\na lazy worker to keep trying.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "7cf2798240a2a2230cb16a391beef98d8a7ad362",
      "tree": "989f28b74d08bf91938cc5a7fe632faa32e7542f",
      "parents": [
        "1f458cbf122288b23620ee822e19bcbb76c8d6ec"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg/sl[au]b: track all the memcg children of a kmem_cache\n\nThis enables us to remove all the children of a kmem_cache being\ndestroyed, if for example the kernel module it\u0027s being used in gets\nunloaded.  Otherwise, the children will still point to the destroyed\nparent.\n\nSigned-off-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\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": "1f458cbf122288b23620ee822e19bcbb76c8d6ec",
      "tree": "fa434b9ff6d6bdfd2daaf24fd7812cc975cba7b7",
      "parents": [
        "d79923fad95b0cdf7770e024677180c734cb7148"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:50 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: destroy memcg caches\n\nImplement destruction of memcg caches.  Right now, only caches where our\nreference counter is the last remaining are deleted.  If there are any\nother reference counters around, we just leave the caches lying around\nuntil they go away.\n\nWhen that happens, a destruction function is called from the cache code.\nCaches are only destroyed in process context, so we queue them up for\nlater processing in the general case.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "d79923fad95b0cdf7770e024677180c734cb7148",
      "tree": "e7cf6e9fb151d3c0d5c773fa1ba723a71b1e9329",
      "parents": [
        "b9ce5ef49f00daf2254c6953c8d31f79aabccd34"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "sl[au]b: allocate objects from memcg cache\n\nWe are able to match a cache allocation to a particular memcg.  If the\ntask doesn\u0027t change groups during the allocation itself - a rare event,\nthis will give us a good picture about who is the first group to touch a\ncache page.\n\nThis patch uses the now available infrastructure by calling\nmemcg_kmem_get_cache() before all the cache allocations.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "b9ce5ef49f00daf2254c6953c8d31f79aabccd34",
      "tree": "1da6afdbb3dc2e2d31f588dbfbf502e984af48a6",
      "parents": [
        "0e9d92f2d02d8c8320f0502307c688d07bdac2b3"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:46 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "sl[au]b: always get the cache from its page in kmem_cache_free()\n\nstruct page already has this information.  If we start chaining caches,\nthis information will always be more trustworthy than whatever is passed\ninto the function.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "0e9d92f2d02d8c8320f0502307c688d07bdac2b3",
      "tree": "bbbdb6759579766c60679963497064e0db3a6f32",
      "parents": [
        "d7f25f8a2f81252d1ac134470ba1d0a287cf8fcd"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: skip memcg kmem allocations in specified code regions\n\nCreate a mechanism that skip memcg allocations during certain pieces of\nour core code.  It basically works in the same way as\npreempt_disable()/preempt_enable(): By marking a region under which all\nallocations will be accounted to the root memcg.\n\nWe need this to prevent races in early cache creation, when we\nallocate data using caches that are not necessarily created already.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nyCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "d7f25f8a2f81252d1ac134470ba1d0a287cf8fcd",
      "tree": "ecde8b5d98762e15a6fa1984d098ddf86646942b",
      "parents": [
        "55007d849759252ddd573aeb36143b947202d509"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: infrastructure to match an allocation to the right cache\n\nThe page allocator is able to bind a page to a memcg when it is\nallocated.  But for the caches, we\u0027d like to have as many objects as\npossible in a page belonging to the same cache.\n\nThis is done in this patch by calling memcg_kmem_get_cache in the\nbeginning of every allocation function.  This function is patched out by\nstatic branches when kernel memory controller is not being used.\n\nIt assumes that the task allocating, which determines the memcg in the\npage allocator, belongs to the same cgroup throughout the whole process.\nMisaccounting can happen if the task calls memcg_kmem_get_cache() while\nbelonging to a cgroup, and later on changes.  This is considered\nacceptable, and should only happen upon task migration.\n\nBefore the cache is created by the memcg core, there is also a possible\nimbalance: the task belongs to a memcg, but the cache being allocated from\nis the global cache, since the child cache is not yet guaranteed to be\nready.  This case is also fine, since in this case the GFP_KMEMCG will not\nbe passed and the page allocator will not attempt any cgroup accounting.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "55007d849759252ddd573aeb36143b947202d509",
      "tree": "d042bc2f717922fb73f9d526592eeb331c2f0f70",
      "parents": [
        "2633d7a028239a738b793be5ca8fa6ac312f5793"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: allocate memory for memcg caches whenever a new memcg appears\n\nEvery cache that is considered a root cache (basically the \"original\"\ncaches, tied to the root memcg/no-memcg) will have an array that should be\nlarge enough to store a cache pointer per each memcg in the system.\n\nTheoreticaly, this is as high as 1 \u003c\u003c sizeof(css_id), which is currently\nin the 64k pointers range.  Most of the time, we won\u0027t be using that much.\n\nWhat goes in this patch, is a simple scheme to dynamically allocate such\nan array, in order to minimize memory usage for memcg caches.  Because we\nwould also like to avoid allocations all the time, at least for now, the\narray will only grow.  It will tend to be big enough to hold the maximum\nnumber of kmem-limited memcgs ever achieved.\n\nWe\u0027ll allocate it to be a minimum of 64 kmem-limited memcgs.  When we have\nmore than that, we\u0027ll start doubling the size of this array every time the\nlimit is reached.\n\nBecause we are only considering kmem limited memcgs, a natural point for\nthis to happen is when we write to the limit.  At that point, we already\nhave set_limit_mutex held, so that will become our natural synchronization\nmechanism.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "2633d7a028239a738b793be5ca8fa6ac312f5793",
      "tree": "48a9f157b2c2a8218611aaade9667cacc2e018ec",
      "parents": [
        "6ccfb5bcf52bcf100fa085946f044fdbba015048"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "slab/slub: consider a memcg parameter in kmem_create_cache\n\nAllow a memcg parameter to be passed during cache creation.  When the slub\nallocator is being used, it will only merge caches that belong to the same\nmemcg.  We\u0027ll do this by scanning the global list, and then translating\nthe cache to a memcg-specific cache\n\nDefault function is created as a wrapper, passing NULL to the memcg\nversion.  We only merge caches that belong to the same memcg.\n\nA helper is provided, memcg_css_id: because slub needs a unique cache name\nfor sysfs.  Since this is visible, but not the canonical location for slab\ndata, the cache name is not used, the css_id should suffice.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "6ccfb5bcf52bcf100fa085946f044fdbba015048",
      "tree": "51ceaa2eba8eabd07cca5de3e16b7c0cd85e41c2",
      "parents": [
        "ba6c496ed834a37a26fc6fc87fc9aecb0fa0014d"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "slab: annotate on-slab caches nodelist locks\n\nWe currently provide lockdep annotation for kmalloc caches, and also\ncaches that have SLAB_DEBUG_OBJECTS enabled.  The reason for this is that\nwe can quite frequently nest in the l3-\u003elist_lock lock, which is not\nsomething trivial to avoid.\n\nMy proposal with this patch, is to extend this to caches whose slab\nmanagement object lives within the slab as well (\"on_slab\").  The need for\nthis arose in the context of testing kmemcg-slab patches.  With such\npatchset, we can have per-memcg kmalloc caches.  So the same path that led\nto nesting between kmalloc caches will could then lead to in-memcg\nnesting.  Because they are not annotated, lockdep will trigger.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "ba6c496ed834a37a26fc6fc87fc9aecb0fa0014d",
      "tree": "cd229b78ca04817354865c9fdf57b564a6bf7852",
      "parents": [
        "d5bdae7d59451b9d63303f7794ef32bb76ba6330"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "slab/slub: struct memcg_params\n\nFor the kmem slab controller, we need to record some extra information in\nthe kmem_cache structure.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\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": "d5bdae7d59451b9d63303f7794ef32bb76ba6330",
      "tree": "1e55e423c478d4cb0032f44f400ecd128084ed48",
      "parents": [
        "2ad306b17c0ac5a1b1f250d5f772aeb87fdf1eba"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: add documentation about the kmem controller\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "2ad306b17c0ac5a1b1f250d5f772aeb87fdf1eba",
      "tree": "743e6092019959dd455091d75b3fab2aa7f0a2aa",
      "parents": [
        "c8b2a36fb1597e9390cf4c1a7f2dd394dc7d7b17"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "fork: protect architectures where THREAD_SIZE \u003e\u003d PAGE_SIZE against fork bombs\n\nBecause those architectures will draw their stacks directly from the page\nallocator, rather than the slab cache, we can directly pass __GFP_KMEMCG\nflag, and issue the corresponding free_pages.\n\nThis code path is taken when the architecture doesn\u0027t define\nCONFIG_ARCH_THREAD_INFO_ALLOCATOR (only ia64 seems to), and has\nTHREAD_SIZE \u003e\u003d PAGE_SIZE.  Luckily, most - if not all - of the remaining\narchitectures fall in this category.\n\nThis will guarantee that every stack page is accounted to the memcg the\nprocess currently lives on, and will have the allocations to fail if they\ngo over limit.\n\nFor the time being, I am defining a new variant of THREADINFO_GFP, not to\nmess with the other path.  Once the slab is also tracked by memcg, we can\nget rid of that flag.\n\nTested to successfully protect against :(){ :|:\u0026 };:\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "c8b2a36fb1597e9390cf4c1a7f2dd394dc7d7b17",
      "tree": "b43700c24ea8737138e523ebf492f3b29eb23ecf",
      "parents": [
        "bea207c86e4eb158bf20f7b36bee72da9272e8d3"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: execute the whole memcg freeing in free_worker()\n\nA lot of the initialization we do in mem_cgroup_create() is done with\nsoftirqs enabled.  This include grabbing a css id, which holds\n\u0026ss-\u003eid_lock-\u003erlock, and the per-zone trees, which holds\nrtpz-\u003elock-\u003erlock.  All of those signal to the lockdep mechanism that\nthose locks can be used in SOFTIRQ-ON-W context.\n\nThis means that the freeing of memcg structure must happen in a\ncompatible context, otherwise we\u0027ll get a deadlock, like the one below,\ncaught by lockdep:\n\n   free_accounted_pages+0x47/0x4c\n   free_task+0x31/0x5c\n   __put_task_struct+0xc2/0xdb\n   put_task_struct+0x1e/0x22\n   delayed_put_task_struct+0x7a/0x98\n   __rcu_process_callbacks+0x269/0x3df\n   rcu_process_callbacks+0x31/0x5b\n   __do_softirq+0x122/0x277\n\nThis usage pattern could not be triggered before kmem came into play.\nWith the introduction of kmem stack handling, it is possible that we call\nthe last mem_cgroup_put() from the task destructor, which is run in an rcu\ncallback.  Such callbacks are run with softirqs disabled, leading to the\noffensive usage pattern.\n\nIn general, we have little, if any, means to guarantee in which context\nthe last memcg_put will happen.  The best we can do is test it and try to\nmake sure no invalid context releases are happening.  But as we add more\ncode to memcg, the possible interactions grow in number and expose more\nways to get context conflicts.  One thing to keep in mind, is that part of\nthe freeing process is already deferred to a worker, such as vfree(), that\ncan only be called from process context.\n\nFor the moment, the only two functions we really need moved away are:\n\n  * free_css_id(), and\n  * mem_cgroup_remove_from_trees().\n\nBut because the later accesses per-zone info,\nfree_mem_cgroup_per_zone_info() needs to be moved as well.  With that, we\nare left with the per_cpu stats only.  Better move it all.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nTested-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "bea207c86e4eb158bf20f7b36bee72da9272e8d3",
      "tree": "9e100534378fa916f739b6a595508b40eabc35c0",
      "parents": [
        "a8964b9b84f99c0b1b5d7c09520f89f0700e742e"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: allow a memcg with kmem charges to be destructed\n\nBecause the ultimate goal of the kmem tracking in memcg is to track slab\npages as well, we can\u0027t guarantee that we\u0027ll always be able to point a\npage to a particular process, and migrate the charges along with it -\nsince in the common case, a page will contain data belonging to multiple\nprocesses.\n\nBecause of that, when we destroy a memcg, we only make sure the\ndestruction will succeed by discounting the kmem charges from the user\ncharges when we try to empty the cgroup.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\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": "a8964b9b84f99c0b1b5d7c09520f89f0700e742e",
      "tree": "468c57a6cd3bd03c91152ede7fdbcacc238341d2",
      "parents": [
        "7de37682bec35bbe0cd69b8112ef257bc5fb1c3e"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: use static branches when code not in use\n\nWe can use static branches to patch the code in or out when not used.\n\nBecause the _ACTIVE bit on kmem_accounted is only set after the increment\nis done, we guarantee that the root memcg will always be selected for kmem\ncharges until all call sites are patched (see memcg_kmem_enabled).  This\nguarantees that no mischarges are applied.\n\nStatic branch decrement happens when the last reference count from the\nkmem accounting in memcg dies.  This will only happen when the charges\ndrop down to 0.\n\nWhen that happens, we need to disable the static branch only on those\nmemcgs that enabled it.  To achieve this, we would be forced to complicate\nthe code by keeping track of which memcgs were the ones that actually\nenabled limits, and which ones got it from its parents.\n\nIt is a lot simpler just to do static_key_slow_inc() on every child\nthat is accounted.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7de37682bec35bbe0cd69b8112ef257bc5fb1c3e",
      "tree": "09d0ff77741b1f154005fb139adb4bd8520f9870",
      "parents": [
        "50bdd430c20566b13d8bc59946184b08f5875de6"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: kmem accounting lifecycle management\n\nBecause kmem charges can outlive the cgroup, we need to make sure that we\nwon\u0027t free the memcg structure while charges are still in flight.  For\nreviewing simplicity, the charge functions will issue mem_cgroup_get() at\nevery charge, and mem_cgroup_put() at every uncharge.\n\nThis can get expensive, however, and we can do better.  mem_cgroup_get()\nonly really needs to be issued once: when the first limit is set.  In the\nsame spirit, we only need to issue mem_cgroup_put() when the last charge\nis gone.\n\nWe\u0027ll need an extra bit in kmem_account_flags for that:\nKMEM_ACCOUNTED_DEAD.  it will be set when the cgroup dies, if there are\ncharges in the group.  If there aren\u0027t, we can proceed right away.\n\nOur uncharge function will have to test that bit every time the charges\ndrop to 0.  Because that is not the likely output of res_counter_uncharge,\nthis should not impose a big hit on us: it is certainly much better than a\nreference count decrease at every operation.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50bdd430c20566b13d8bc59946184b08f5875de6",
      "tree": "15ccc558002367c3d2c6b092ccc1d49e6d14acf1",
      "parents": [
        "6a1a0d3b625a4091e7a0eb249aefc6a644385149"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "res_counter: return amount of charges after res_counter_uncharge()\n\nIt is useful to know how many charges are still left after a call to\nres_counter_uncharge.  While it is possible to issue a res_counter_read\nafter uncharge, this can be racy.\n\nIf we need, for instance, to take some action when the counters drop down\nto 0, only one of the callers should see it.  This is the same semantics\nas the atomic variables in the kernel.\n\nSince the current return value is void, we don\u0027t need to worry about\nanything breaking due to this change: nobody relied on that, and only\nusers appearing from now on will be checking this value.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a1a0d3b625a4091e7a0eb249aefc6a644385149",
      "tree": "dcffaa5af65847680d1acdf7b4956d75a66e5885",
      "parents": [
        "7ae1e1d0f8ac2927ed7e3ca6d15e42d485903459"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "mm: allocate kernel pages to the right memcg\n\nWhen a process tries to allocate a page with the __GFP_KMEMCG flag, the\npage allocator will call the corresponding memcg functions to validate\nthe allocation.  Tasks in the root memcg can always proceed.\n\nTo avoid adding markers to the page - and a kmem flag that would\nnecessarily follow, as much as doing page_cgroup lookups for no reason,\nwhoever is marking its allocations with __GFP_KMEMCG flag is responsible\nfor telling the page allocator that this is such an allocation at\nfree_pages() time.  This is done by the invocation of\n__free_accounted_pages() and free_accounted_pages().\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ae1e1d0f8ac2927ed7e3ca6d15e42d485903459",
      "tree": "6b95f008400510bee9a7742ee21bf5316a59f851",
      "parents": [
        "7a64bf05b2a6fe3703062d13d389e3eb904741c6"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:21:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "memcg: kmem controller infrastructure\n\nIntroduce infrastructure for tracking kernel memory pages to a given\nmemcg.  This will happen whenever the caller includes the flag\n__GFP_KMEMCG flag, and the task belong to a memcg other than the root.\n\nIn memcontrol.h those functions are wrapped in inline acessors.  The idea\nis to later on, patch those with static branches, so we don\u0027t incur any\noverhead when no mem cgroups with limited kmem are being used.\n\nUsers of this functionality shall interact with the memcg core code\nthrough the following functions:\n\nmemcg_kmem_newpage_charge: will return true if the group can handle the\n                           allocation. At this point, struct page is not\n                           yet allocated.\n\nmemcg_kmem_commit_charge: will either revert the charge, if struct page\n                          allocation failed, or embed memcg information\n                          into page_cgroup.\n\nmemcg_kmem_uncharge_page: called at free time, will revert the charge.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@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": "7a64bf05b2a6fe3703062d13d389e3eb904741c6",
      "tree": "7de58cc32cd02f11de5a1695b650946e1d48023a",
      "parents": [
        "510fc4e11b772fd60f2c545c64d4c55abd07ce36"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:21:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "mm: add a __GFP_KMEMCG flag\n\nThis flag is used to indicate to the callees that this allocation is a\nkernel allocation in process context, and should be accounted to current\u0027s\nmemcg.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@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": "510fc4e11b772fd60f2c545c64d4c55abd07ce36",
      "tree": "d4e5b773b87e35d91b6a569bf43dc3424ac1968d",
      "parents": [
        "86ae53e1a138a3295c04ae69bf404be00244a381"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:21:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "memcg: kmem accounting basic infrastructure\n\nAdd the basic infrastructure for the accounting of kernel memory.  To\ncontrol that, the following files are created:\n\n * memory.kmem.usage_in_bytes\n * memory.kmem.limit_in_bytes\n * memory.kmem.failcnt\n * memory.kmem.max_usage_in_bytes\n\nThey have the same meaning of their user memory counterparts.  They\nreflect the state of the \"kmem\" res_counter.\n\nPer cgroup kmem memory accounting is not enabled until a limit is set for\nthe group.  Once the limit is set the accounting cannot be disabled for\nthat group.  This means that after the patch is applied, no behavioral\nchanges exists for whoever is still using memcg to control their memory\nusage, until memory.kmem.limit_in_bytes is set for the first time.\n\nWe always account to both user and kernel resource_counters.  This\neffectively means that an independent kernel limit is in place when the\nlimit is set to a lower value than the user memory.  A equal or higher\nvalue means that the user limit will always hit first, meaning that kmem\nis effectively unlimited.\n\nPeople who want to track kernel memory but not limit it, can set this\nlimit to a very high number (like RESOURCE_MAX - 1page - that no one will\never hit, or equal to the user memory)\n\n[akpm@linux-foundation.org: MEMCG_MMEM only works with slab and slub]\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86ae53e1a138a3295c04ae69bf404be00244a381",
      "tree": "27d6028b3259e65f9479db1d5f2e2d53c60c6384",
      "parents": [
        "4c9c535968cacf507c5febe49e6ec5123eadf207"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:21:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "memcg: change defines to an enum\n\nThis is just a cleanup patch for clarity of expression.  In earlier\nsubmissions, people asked it to be in a separate patch, so here it is.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@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": "4c9c535968cacf507c5febe49e6ec5123eadf207",
      "tree": "726189ffffb689f1fcef87a8fb1d60a2632f88ae",
      "parents": [
        "a0956d54492eb7257b09230680a8812b42cdee92"
      ],
      "author": {
        "name": "Suleiman Souhlal",
        "email": "ssouhlal@FreeBSD.org",
        "time": "Tue Dec 18 14:21:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "memcg: reclaim when more than one page needed\n\nmem_cgroup_do_charge() was written before kmem accounting, and expects\nthree cases: being called for 1 page, being called for a stock of 32\npages, or being called for a hugepage.  If we call for 2 or 3 pages (and\nboth the stack and several slabs used in process creation are such, at\nleast with the debug options I had), it assumed it\u0027s being called for\nstock and just retried without reclaiming.\n\nFix that by passing down a minsize argument in addition to the csize.\n\nAnd what to do about that (csize \u003d\u003d PAGE_SIZE \u0026\u0026 ret) retry?  If it\u0027s\nneeded at all (and presumably is since it\u0027s there, perhaps to handle\nraces), then it should be extended to more than PAGE_SIZE, yet how far?\nAnd should there be a retry count limit, of what?  For now retry up to\nCOSTLY_ORDER (as page_alloc.c does) and make sure not to do it if\n__GFP_NORETRY.\n\nv4: fixed nr pages calculation pointed out by Christoph Lameter.\n\nSigned-off-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0956d54492eb7257b09230680a8812b42cdee92",
      "tree": "e0faecd5b7a22fe254654e09e87dca946ade0402",
      "parents": [
        "c2974058a9caa82c9dd9e1e11e4f2c6ce42ff17e"
      ],
      "author": {
        "name": "Suleiman Souhlal",
        "email": "ssouhlal@FreeBSD.org",
        "time": "Tue Dec 18 14:21:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "memcg: make it possible to use the stock for more than one page\n\nWe currently have a percpu stock cache scheme that charges one page at a\ntime from memcg-\u003eres, the user counter.  When the kernel memory controller\ncomes into play, we\u0027ll need to charge more than that.\n\nThis is because kernel memory allocations will also draw from the user\ncounter, and can be bigger than a single page, as it is the case with the\nstack (usually 2 pages) or some higher order slabs.\n\n[glommer@parallels.com: added a changelog ]\nSigned-off-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@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": "c2974058a9caa82c9dd9e1e11e4f2c6ce42ff17e",
      "tree": "5dccd1c1bfb43d24eaaf6d59850a78da4edc9055",
      "parents": [
        "0bb2c7637ef0db4f44528698fa725179fb4917ad"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Tue Dec 18 14:21:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "memory-hotplug: document and enable CONFIG_MOVABLE_NODE\n\nAdd help info for CONFIG_MOVABLE_NODE and permit its selection.\n\nThis option allows the user to online all memory of a node as movable\nmemory.  So that the whole node can be hotplugged.  Users who don\u0027t use\nthe hotplug feature are also fine with this option on since they won\u0027t\nonline memory as movable.\n\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n[akpm@linux-foundation.org: tweak help text]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bb2c7637ef0db4f44528698fa725179fb4917ad",
      "tree": "5bc0fdbd68805f8cc4a2b2c44a9d48ade1e59685",
      "parents": [
        "3012d60b39761b0bf73e3be677d2f8e424f0b294"
      ],
      "author": {
        "name": "Gavin Shan",
        "email": "shangw@linux.vnet.ibm.com",
        "time": "Tue Dec 18 14:21:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "mm/page_alloc.c: remove duplicate check\n\nWhile allocating pages using buddy allocator, the compound page is\nprobably split up to free pages.  Under these circumstances, the compound\npage should be destroyed by destroy_compound_page().  However, there is a\nduplicate check to judge if the page is compound.\n\nRemove the duplicate check since the compound_order() returns 0 when the\npage doesn\u0027t have PG_head set in destroy_compound_page().  That is to say,\ndestroy_compound_page() needn\u0027t check PageHead().\n\nSigned-off-by: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3012d60b39761b0bf73e3be677d2f8e424f0b294",
      "tree": "2db37054681113058b4e369dce36f41be8c85020",
      "parents": [
        "d95bfe464bae35daadaa46477e3ef984747abfff"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Tue Dec 18 14:21:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "drivers/message/fusion/mptscsih.c: missing break\n\nThis happens to do the right thing in all cases on fibre channel but not on\nother media types\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Nagalakshmi Nandigama \u003cnagalakshmi.nandigama@lsi.com\u003e\nCc: Kashyap Desai \u003ckashyap.desai@lsi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d95bfe464bae35daadaa46477e3ef984747abfff",
      "tree": "3ab21267930ead189b8b91aa6dc2940be643bbb2",
      "parents": [
        "af56e3f017bae54b9c3b5f7877d5eff990a2eed9"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Dec 18 14:21:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:11 2012 -0800"
      },
      "message": "h8300: select generic atomic64_t support\n\nRationales from Eric:\n\nSo I just looked a little deeper and it appears architectures that do\nnot support atomic64_t are broken.\n\nThe generic atomic64 support came in 2009 to support the perf subsystem\nwith the expectation that all architectures would implement atomic64\nsupport.\n\nFurthermore upon inspection of the kernel atomic64_t is used in a fair\nnumber of places beyond the performance counters:\n\nblock/blk-cgroup.c\ndrivers/acpi/apei/\ndrivers/block/rbd.c\ndrivers/crypto/nx/nx.h\ndrivers/gpu/drm/radeon/radeon.h\ndrivers/infiniband/hw/ipath/\ndrivers/infiniband/hw/qib/\ndrivers/staging/octeon/\nfs/xfs/\ninclude/linux/perf_event.h\ninclude/net/netfilter/nf_conntrack_acct.h\nkernel/events/\nkernel/trace/\nnet/mac80211/key.h\nnet/rds/\n\nThe block control group, infiniband, xfs, crypto, 802.11, netfilter.\nNothing quite so fundamental as fs/namespace.c but definitely in\nmultiplatform-code that should work, and is already broken on those\narchitecutres.\n\nLooking at the implementation of atomic64_add_return in lib/atomic64.c the\ncode looks as efficient as these kinds of things get.\n\nWhich leads me to the conclusion that we need atomic64 support on all\narchitectures.\n\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af56e3f017bae54b9c3b5f7877d5eff990a2eed9",
      "tree": "aefe2e189094966dd1522b99dc57f08ab23017d1",
      "parents": [
        "19af395d7c0daaafdebd441a162128aaac575912"
      ],
      "author": {
        "name": "Cyril Roelandt",
        "email": "tipecaml@gmail.com",
        "time": "Tue Dec 18 14:21:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:11 2012 -0800"
      },
      "message": "Coccinelle: add api/d_find_alias.cocci\n\nEnsure that calls to d_find_alias() have a corresponding dput().\n\nSigned-off-by: Cyril Roelandt \u003ctipecaml@gmail.com\u003e\nCc: Julia Lawall \u003cJulia.Lawall@lip6.fr\u003e\nCc: Gilles Muller \u003cGilles.Muller@lip6.fr\u003e\nCc: Nicolas Palix \u003cnicolas.palix@imag.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19af395d7c0daaafdebd441a162128aaac575912",
      "tree": "1101927675dd8fc7e19da64b28c8eed4370f6ca4",
      "parents": [
        "f6af75dac3978d0b4d83939cb5d244b2a844820e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Tue Dec 18 14:21:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:11 2012 -0800"
      },
      "message": "irq: tsk-\u003ecomm is an array\n\nThe array check is useless so remove it.\n\n[akpm@linux-foundation.org: remove comment, per David]\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6af75dac3978d0b4d83939cb5d244b2a844820e",
      "tree": "5d73ddf996763783ad8e65d6754cfba0cd478af6",
      "parents": [
        "88d67ee3ec52d19e52ae58ef4303464720215d3a"
      ],
      "author": {
        "name": "Cyril Roelandt",
        "email": "tipecaml@gmail.com",
        "time": "Tue Dec 18 14:21:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:11 2012 -0800"
      },
      "message": "ceph: fix dentry reference leak in ceph_encode_fh()\n\ndput() was not called in the error path.\n\nSigned-off-by: Cyril Roelandt \u003ctipecaml@gmail.com\u003e\nCc: Sage Weil \u003csage@inktank.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88d67ee3ec52d19e52ae58ef4303464720215d3a",
      "tree": "8191ae1ca066f431be1c79141c0502bebddbb367",
      "parents": [
        "c24bf9b4cc6a0f330ea355d73bfdf1dae7e63a05"
      ],
      "author": {
        "name": "Shérab",
        "email": "Sebastien.Hinderer@ens-lyon.org",
        "time": "Tue Dec 18 14:21:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:11 2012 -0800"
      },
      "message": "arch/x86/platform/iris/iris.c: register a platform device and a platform driver\n\nThis makes the iris driver use the platform API, so it is properly exposed\nin /sys.\n\n[akpm@linux-foundation.org: remove commented-out code, add missing space to printk, clean up code layout]\nSigned-off-by: Shérab \u003cSebastien.Hinderer@ens-lyon.org\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c24bf9b4cc6a0f330ea355d73bfdf1dae7e63a05",
      "tree": "f1865e5b9c399ae001131d2fdadf7b0b4ddfb686",
      "parents": [
        "9f67675a249f6f993edd41bc084827411366a652"
      ],
      "author": {
        "name": "Corey Minyard",
        "email": "cminyard@mvista.com",
        "time": "Tue Dec 18 14:21:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:11 2012 -0800"
      },
      "message": "CRIS: fix I/O macros\n\nThe inb/outb macros for CRIS are broken from a number of points of view,\nmissing () around parameters and they have an unprotected if statement\nin them.  This was breaking the compile of IPMI on CRIS and thus I was\nbeing annoyed by build regressions, so I fixed them.\n\nPlus I don\u0027t think they would have worked at all, since the data values\nwere missing \"\u0026\" and the outsl had a \"3\" instead of a \"4\" for the size.\nFrom what I can tell, this stuff is not used at all, so this can\u0027t be\nany more broken than it was before, anyway.\n\nSigned-off-by: Corey Minyard \u003ccminyard@mvista.com\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f67675a249f6f993edd41bc084827411366a652",
      "tree": "7cf83db6133e7c8c5f3fbe09e38244f3212ac651",
      "parents": [
        "ae664dba2724e59ddd66291b895f7370e28b9a7a"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Tue Dec 18 14:21:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:11 2012 -0800"
      },
      "message": "backlight: locomolcd: fix checkpatch error and warning\n\nThis patch fixes the checkpatch error and warning as below:\n\n  WARNING: space prohibited between function name and open parenthesis \u0027(\u0027\n  ERROR: trailing statements should be on next line\n\nAlso, long comments are fixed for the preferred style and unnecessary\nlines are removed.\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31564cbd77baa88405862d4aa0d00893ab1d8cb7",
      "tree": "2eaec947ab64ccfa2d94ca29bf14feb70b8a4b61",
      "parents": [
        "6842d98de7bb726dfddc719cb9ae022b26a0f2b8",
        "022573c275500e1a50889949f679d04b5446edf6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:46:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:46:37 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull second round of input updates from Dmitry Torokhov:\n \"As usual, there are a couple of new drivers, input core now supports\n  managed input devices (devres), a slew of drivers now have device tree\n  support and a bunch of fixes and cleanups.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (71 commits)\n  Input: walkera0701 - fix crash on startup\n  Input: matrix-keymap - provide a proper module license\n  Input: gpio_keys_polled - switch to using gpio_request_one()\n  Input: gpio_keys - switch to using gpio_request_one()\n  Input: wacom - fix touch support for Bamboo Fun CTH-461\n  Input: xpad - add a few new VID/PID combinations\n  Input: xpad - minor formatting fixes\n  Input: gpio-keys-polled - honor \u0027autorepeat\u0027 setting in platform data\n  Input: tca8418-keypad - switch to using managed resources\n  Input: tca8418_keypad - increase severity of failures in probe()\n  Input: tca8418_keypad - move device ID tables closer to where they are used\n  Input: tca8418_keypad - use dev_get_platdata() to retrieve platform data\n  Input: tca8418_keypad - use a temporary variable for parent device\n  Input: tca8418_keypad - add support for shared interrupt\n  Input: tca8418_keypad - add support for device tree bindings\n  Input: remove Compaq iPAQ H3600 (Bitsy) touchscreen driver\n  Input: bu21013_ts - add support for Device Tree booting\n  Input: bu21013_ts - move GPIO init and exit functions into the driver\n  Input: bu21013_ts - request regulator that actually exists\n  ARM: ux500: Strip out duplicate touch screen platform information\n  ...\n"
    },
    {
      "commit": "6842d98de7bb726dfddc719cb9ae022b26a0f2b8",
      "tree": "73c42dbbd09dc6697c601f23a9be3ccdbc54664b",
      "parents": [
        "758338e960ebe8ac3bef7ae11ff830bc2f9c655c",
        "55f1f545f709a6023371848028a3029118855576"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:34:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:34:29 2012 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nPull powertool update from Len Brown:\n \"This updates the tree w/ the latest version of turbostat, which\n  reports temperature and - on SNB and later - Watts.\"\n\nFix up semantic merge conflict as per Len.\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:\n  tools: Allow tools to be installed in a user specified location\n  tools/power: turbostat: make Makefile a bit more capable\n  tools/power x86_energy_perf_policy: close /proc/stat in for_every_cpu()\n  tools/power turbostat: v3.0: monitor Watts and Temperature\n  tools/power turbostat: fix output buffering issue\n  tools/power turbostat: prevent infinite loop on migration error path\n  x86 power: define RAPL MSRs\n  tools/power/x86/turbostat: share kernel MSR #defines\n"
    },
    {
      "commit": "758338e960ebe8ac3bef7ae11ff830bc2f9c655c",
      "tree": "dbaea6140ada681baa462a2818095bcea0160108",
      "parents": [
        "224394ad75711042c6d362c9dbc9874b476edbc0",
        "bf3071f5a054db9e5bab873355d27a7330ce5187"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:28:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:28:39 2012 -0800"
      },
      "message": "Merge branch \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull minor tracing updates and fixes from Steven Rostedt:\n \"It seems that one of my old pull requests have slipped through.\n\n  The changes are contained to just the files that I maintain, and are\n  changes from others that I told I would get into this merge window.\n\n  They have already been in linux-next for several weeks, and should be\n  well tested.\"\n\n* \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing: Remove unnecessary WARN_ONCE\u0027s from tracing_buffers_splice_read\n  tracing: Remove unneeded checks from the stack tracer\n  tracing: Add a resize function to make one buffer equivalent to another buffer\n"
    },
    {
      "commit": "224394ad75711042c6d362c9dbc9874b476edbc0",
      "tree": "69cff48bc367ca2f035685d16441b1fa51a53aee",
      "parents": [
        "ae664dba2724e59ddd66291b895f7370e28b9a7a",
        "9d328a948f38ec240fc6d05db2c146e23ccd9b8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:26:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:26:54 2012 -0800"
      },
      "message": "Merge tag \u0027stable/for-linus-3.8-rc0-bugfix-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\nPull Xen bugfixes from Konrad Rzeszutek Wilk:\n \"Two fixes.  One of them is caused by the recent change introduced by\n  the \u0027x86-bsp-hotplug-for-linus\u0027 tip tree that inhibited bootup (old\n  function does not do what it used to do).  The other one is just a\n  vanilla bug.\n\n   - Fix to bootup regression introduced by \u0027x86-bsp-hotplug-for-linus\u0027\n     tip branch.\n   - Fix to vcpu hotplug code.\"\n\n* tag \u0027stable/for-linus-3.8-rc0-bugfix-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen/vcpu: Fix vcpu restore path.\n  xen: Add EVTCHNOP_reset in Xen interface header files.\n  xen/smp: Use smp_store_boot_cpu_info() to store cpu info for BSP during boot time.\n"
    },
    {
      "commit": "e6cdebdf5aeccb5cbcf81e5e2764ad28a80f3185",
      "tree": "3e209ad4309838f62c57ade3818e133286292a16",
      "parents": [
        "9af62547675b04ef8aa5eda5f60450c01f598f2a"
      ],
      "author": {
        "name": "Simon Marchi",
        "email": "simon.marchi@polymtl.ca",
        "time": "Mon Dec 17 20:08:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Tue Dec 18 14:53:21 2012 -0500"
      },
      "message": "arch/tile: set CORE_DUMP_USE_REGSET on tile\n\nFollowing the previous patch which adds support for user_regset, tile\ncan now use this feature.\n\nSigned-off-by: Simon Marchi \u003csimon.marchi@polymtl.ca\u003e\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "9af62547675b04ef8aa5eda5f60450c01f598f2a",
      "tree": "7e424dc34254d11aa7fe1e2eb9987f250584f25d",
      "parents": [
        "7be68284bd201174bc6663b010cb56867a874276"
      ],
      "author": {
        "name": "Simon Marchi",
        "email": "simon.marchi@polymtl.ca",
        "time": "Mon Dec 17 20:08:10 2012 -0500"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Tue Dec 18 14:53:14 2012 -0500"
      },
      "message": "arch/tile: implement arch_ptrace using user_regset on tile\n\nThis patch changes arch_ptrace on tile so that it uses user_regset\nto implement the PTRACE_GETREGS and PTRACE_SETREGS operations.\n\nSigned-off-by: Simon Marchi \u003csimon.marchi@polymtl.ca\u003e\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "7be68284bd201174bc6663b010cb56867a874276",
      "tree": "643e809627d815d460595b437217df20f75d32d6",
      "parents": [
        "395e095ed92b1ccfe74c90fee4cc637cff468ea7"
      ],
      "author": {
        "name": "Simon Marchi",
        "email": "simon.marchi@polymtl.ca",
        "time": "Mon Dec 17 20:08:09 2012 -0500"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Tue Dec 18 14:53:06 2012 -0500"
      },
      "message": "arch/tile: implement user_regset interface on tile\n\nThis is a basic implementation of user_regset for the tile\narchitecture. It reuses the basic blocks that were already there.\n\nSigned-off-by: Simon Marchi \u003csimon.marchi@polymtl.ca\u003e\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "ae664dba2724e59ddd66291b895f7370e28b9a7a",
      "tree": "d6e214bdc9999bcb8b0a067053aa6934cfd9d60e",
      "parents": [
        "a2faf2fc534f57ba26bc4d613795236ed4f5fb1c",
        "08afe22c68d8c07e8e31ee6491c37f36199ba14b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:56:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:56:07 2012 -0800"
      },
      "message": "Merge branch \u0027slab/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux\n\nPull SLAB changes from Pekka Enberg:\n \"This contains preparational work from Christoph Lameter and Glauber\n  Costa for SLAB memcg and cleanups and improvements from Ezequiel\n  Garcia and Joonsoo Kim.\n\n  Please note that the SLOB cleanup commit from Arnd Bergmann already\n  appears in your tree but I had also merged it myself which is why it\n  shows up in the shortlog.\"\n\n* \u0027slab/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:\n  mm/sl[aou]b: Common alignment code\n  slab: Use the new create_boot_cache function to simplify bootstrap\n  slub: Use statically allocated kmem_cache boot structure for bootstrap\n  mm, sl[au]b: create common functions for boot slab creation\n  slab: Simplify bootstrap\n  slub: Use correct cpu_slab on dead cpu\n  mm: fix slab.c kernel-doc warnings\n  mm/slob: use min_t() to compare ARCH_SLAB_MINALIGN\n  slab: Ignore internal flags in cache creation\n  mm/slob: Use free_page instead of put_page for page-size kmalloc allocations\n  mm/sl[aou]b: Move common kmem_cache_size() to slab.h\n  mm/slob: Use object_size field in kmem_cache_size()\n  mm/slob: Drop usage of page-\u003eprivate for storing page-sized allocations\n  slub: Commonize slab_cache field in struct page\n  sl[au]b: Process slabinfo_show in common code\n  mm/sl[au]b: Move print_slabinfo_header to slab_common.c\n  mm/sl[au]b: Move slabinfo processing to slab_common.c\n  slub: remove one code path and reduce lock contention in __slab_free()\n"
    },
    {
      "commit": "a2faf2fc534f57ba26bc4d613795236ed4f5fb1c",
      "tree": "d75c4daadb469c8f08c498532fbf1fff68879e69",
      "parents": [
        "4351654e3ddf86a04966163dce4def586303e5cc",
        "5155040ed349950e16c093ba8e65ad534994df2a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:55:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:55:28 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull (again) user namespace infrastructure changes from Eric Biederman:\n \"Those bugs, those darn embarrasing bugs just want don\u0027t want to get\n  fixed.\n\n  Linus I just updated my mirror of your kernel.org tree and it appears\n  you successfully pulled everything except the last 4 commits that fix\n  those embarrasing bugs.\n\n  When you get a chance can you please repull my branch\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:\n  userns: Fix typo in description of the limitation of userns_install\n  userns: Add a more complete capability subset test to commit_creds\n  userns: Require CAP_SYS_ADMIN for most uses of setns.\n  Fix cap_capable to only allow owners in the parent user namespace to have caps.\n"
    },
    {
      "commit": "4351654e3ddf86a04966163dce4def586303e5cc",
      "tree": "eeb683133e78fbe522c80d0895f94ce4ca699a23",
      "parents": [
        "3d9de1909b339f967f1b37367df233a0dcfc10cf",
        "86794b43569c9b8936dff2e8eed503393379af6e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:54:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:54:27 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin\n\nPull blackfin update from Bob Liu.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin:\n  blackfin: SEC: clean up SEC interrupt initialization\n  blackfin: kgdb: call generic_exec_single() directly\n  blackfin: anomaly: add anomaly 16000030 for bf5xx\n  Blackfin: dpmc: use module_platform_driver macro\n  Blackfin: remove unused is_in_rom()\n  Blackfin: remove unnecessary prototype for kobjsize()\n  Blackfin: twi: Add missing __iomem annotation\n  Blackfin: Annotate strnlen_user and strlen_user \u0027src\u0027 parameter with __user\n  Blackfin: Annotate clear_user \u0027to\u0027 parameter with __user\n  Blackfin: Add missing __user annotations to put_user\n  Blackfin: Annotate strncpy_from_user src parameter with __user\n  blackfin: Use Kbuild infrastructure for kvm_para.h\n  UAPI: (Scripted) Disintegrate arch/blackfin/include/asm\n"
    },
    {
      "commit": "3d9de1909b339f967f1b37367df233a0dcfc10cf",
      "tree": "b2360a9ac142e15007ebe0fabf0365b9d4cd8b65",
      "parents": [
        "9a8a5702c5a7298c0edd125464aa178dd8b50440",
        "96433f6ee49032d7a8bda76de2b05cfde2914354"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:10:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:10:36 2012 -0800"
      },
      "message": "Merge tag \u0027disintegrate-alpha-20121217\u0027 of git://git.infradead.org/users/dhowells/linux-headers\n\nPull UAPI disintegration for Alpha from David Howells:\n \"I\u0027ve been asked to send the Alpha UAPI disintegration to you directly.\n  The acks I have been given have been added into the patch.\"\n\n* tag \u0027disintegrate-alpha-20121217\u0027 of git://git.infradead.org/users/dhowells/linux-headers:\n  UAPI: (Scripted) Disintegrate arch/alpha/include/asm\n"
    },
    {
      "commit": "9a8a5702c5a7298c0edd125464aa178dd8b50440",
      "tree": "9d8aab6f2670e23f8517f44c5a79c3127e2eb5c2",
      "parents": [
        "7b077868cb8bc31aa5a0dad961ecc9f157bff744",
        "634bd40a894d64df09ba36c12bb6e70787989ba9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:08:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:08:47 2012 -0800"
      },
      "message": "Merge tag \u0027for-3.8\u0027 of git://openrisc.net/~jonas/linux\n\nPull OpenRISC update from Jonas Bonn:\n \"Trivial cleanups for OpenRISC.\"\n\n* tag \u0027for-3.8\u0027 of git://openrisc.net/~jonas/linux:\n  openrisc: use kbuild.h instead of defining macros in asm-offset.c\n  openrisc: Use Kbuild infrastructure for kvm_para.h\n"
    },
    {
      "commit": "7b077868cb8bc31aa5a0dad961ecc9f157bff744",
      "tree": "02edce8760040ab5c15c242eb648fb3a342c58d7",
      "parents": [
        "16e024f30ce96ef5fa651e2914e19d175a924cab",
        "1f1c96102ff848778cd596e81bdbd45f81a40119"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:06:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:06:00 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux\n\nPull s390 update #2 from Martin Schwidefsky:\n \"The main patch is the function measurement blocks extension for PCI to\n  do performance statistics and help with debugging.  The other patch is\n  a small cleanup in ccwdev.h.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:\n  s390/ccwdev: Include asm/schid.h.\n  s390/pci: performance statistics and debug infrastructure\n"
    },
    {
      "commit": "16e024f30ce96ef5fa651e2914e19d175a924cab",
      "tree": "d68106151a0b36e22625d7af7b23081a48c92e87",
      "parents": [
        "c36e0501ee91d7616a188efbf9714b1fce150032",
        "376bddd34433065aeb9b9a140870537feecf90ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:58:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:58:09 2012 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc update from Benjamin Herrenschmidt:\n \"The main highlight is probably some base POWER8 support.  There\u0027s more\n  to come such as transactional memory support but that will wait for\n  the next one.\n\n  Overall it\u0027s pretty quiet, or rather I\u0027ve been pretty poor at picking\n  things up from patchwork and reviewing them this time around and Kumar\n  no better on the FSL side it seems...\"\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (73 commits)\n  powerpc+of: Rename and fix OF reconfig notifier error inject module\n  powerpc: mpc5200: Add a3m071 board support\n  powerpc/512x: don\u0027t compile any platform DIU code if the DIU is not enabled\n  powerpc/mpc52xx: use module_platform_driver macro\n  powerpc+of: Export of_reconfig_notifier_[register,unregister]\n  powerpc/dma/raidengine: add raidengine device\n  powerpc/iommu/fsl: Add PAMU bypass enable register to ccsr_guts struct\n  powerpc/mpc85xx: Change spin table to cached memory\n  powerpc/fsl-pci: Add PCI controller ATMU PM support\n  powerpc/86xx: fsl_pcibios_fixup_bus requires CONFIG_PCI\n  drivers/virt: the Freescale hypervisor driver doesn\u0027t need to check MSR[GS]\n  powerpc/85xx: p1022ds: Use NULL instead of 0 for pointers\n  powerpc: Disable relocation on exceptions when kexecing\n  powerpc: Enable relocation on during exceptions at boot\n  powerpc: Move get_longbusy_msecs into hvcall.h and remove duplicate function\n  powerpc: Add wrappers to enable/disable relocation on exceptions\n  powerpc: Add set_mode hcall\n  powerpc: Setup relocation on exceptions for bare metal systems\n  powerpc: Move initial mfspr LPCR out of __init_LPCR\n  powerpc: Add relocation on exception vector handlers\n  ...\n"
    },
    {
      "commit": "c36e0501ee91d7616a188efbf9714b1fce150032",
      "tree": "7f5a03ce5f6a969703a6cf3839239fb44f1f9544",
      "parents": [
        "ea77d73c464c1fae250486c3ab0908500ba96558"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Dec 18 00:03:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:49:03 2012 -0800"
      },
      "message": "x86, paravirt: fix build error when thp is disabled\n\nWith CONFIG_PARAVIRT\u003dy and CONFIG_TRANSPARENT_HUGEPAGE\u003dn, the build breaks\nbecause set_pmd_at() is undeclared:\n\n  mm/memory.c: In function \u0027do_pmd_numa_page\u0027:\n  mm/memory.c:3520: error: implicit declaration of function \u0027set_pmd_at\u0027\n  mm/mprotect.c: In function \u0027change_pmd_protnuma\u0027:\n  mm/mprotect.c:120: error: implicit declaration of function \u0027set_pmd_at\u0027\n\nThis is because paravirt defines set_pmd_at() only when\nCONFIG_TRANSPARENT_HUGEPAGE\u003dy and such a restriction is unneeded.  The\nfix is to define it for all CONFIG_PARAVIRT configurations.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea77d73c464c1fae250486c3ab0908500ba96558",
      "tree": "58dd5ae19691c169e9a431b93558bd92a47ad31e",
      "parents": [
        "a22180d2666c018f4fef6818074d78bb76ff2bda",
        "861d66601acda6d7a2038fb3c95f68009128003a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:44:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:44:44 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd\n\nPull exofs changes from Boaz Harrosh:\n \"These are just 3 patches, the last two are bug fixes on the error\n  paths in exofs.\n\n  The important patch is the one to osd_uld which adds sysfs info to osd\n  devices for use by user-mode clustering discovery software.  I\u0027m\n  already sitting on this patch since before February this year, It is\n  important for some of the big installation cluster systems, who\u0027s been\n  compiling their own kernel just for that patch.\"\n\nUgh.  The osd_uld patch already went through the SCSI tree, so this was\nkind of pointless.  But at least it has the two small error-path fixes..\n\n* \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd:\n  exofs: don\u0027t leak io_state and pages on read error\n  exofs: clean up the correct page collection on write error\n  osduld: Add osdname \u0026 systemid sysfs at scsi_osd class\n"
    },
    {
      "commit": "a22180d2666c018f4fef6818074d78bb76ff2bda",
      "tree": "a633aaf423ff39f94d00502d03dbbd99dab4b2ee",
      "parents": [
        "2d4dce0070448bcb5ccd04553a4be4635417f565",
        "213490b301773ea9c6fb89a86424a6901fcdd069"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:42:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:42:05 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs update from Chris Mason:\n \"A big set of fixes and features.\n\n  In terms of line count, most of the code comes from Stefan, who added\n  the ability to replace a single drive in place.  This is different\n  from how btrfs normally replaces drives, and is much much much faster.\n\n  Josef is plowing through our synchronous write performance.  This pull\n  request does not include the DIO_OWN_WAITING patch that was discussed\n  on the list, but it has a number of other improvements to cut down our\n  latencies and CPU time during fsync/O_DIRECT writes.\n\n  Miao Xie has a big series of fixes and is spreading out ordered\n  operations over more CPUs.  This improves performance and reduces\n  contention.\n\n  I\u0027ve put in fixes for error handling around hash collisions.  These\n  are going back to individual stable kernels as I test against them.\n\n  Otherwise we have a lot of fixes and cleanups, thanks everyone!\n  raid5/6 is being rebased against the device replacement code.  I\u0027ll\n  have it posted this Friday along with a nice series of benchmarks.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (115 commits)\n  Btrfs: fix a bug of per-file nocow\n  Btrfs: fix hash overflow handling\n  Btrfs: don\u0027t take inode delalloc mutex if we\u0027re a free space inode\n  Btrfs: fix autodefrag and umount lockup\n  Btrfs: fix permissions of empty files not affected by umask\n  Btrfs: put raid properties into global table\n  Btrfs: fix BUG() in scrub when first superblock reading gives EIO\n  Btrfs: do not call file_update_time in aio_write\n  Btrfs: only unlock and relock if we have to\n  Btrfs: use tokens where we can in the tree log\n  Btrfs: optimize leaf_space_used\n  Btrfs: don\u0027t memset new tokens\n  Btrfs: only clear dirty on the buffer if it is marked as dirty\n  Btrfs: move checks in set_page_dirty under DEBUG\n  Btrfs: log changed inodes based on the extent map tree\n  Btrfs: add path-\u003ereally_keep_locks\n  Btrfs: do not mark ems as prealloc if we are writing to them\n  Btrfs: keep track of the extents original block length\n  Btrfs: inline csums if we\u0027re fsyncing\n  Btrfs: don\u0027t bother copying if we\u0027re only logging the inode\n  ...\n"
    },
    {
      "commit": "2d4dce0070448bcb5ccd04553a4be4635417f565",
      "tree": "300915d2df0b8f28072d090c21d8ac084cd5f6c0",
      "parents": [
        "ea88eeac0cb8328014b53d80ca631e8dc0dc18dc",
        "cd6c5968582a273561464fe6b1e8cc8214be02df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:36:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:36:34 2012 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.8-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"Features include:\n\n   - Full audit of BUG_ON asserts in the NFS, SUNRPC and lockd client\n     code.  Remove altogether where possible, and replace with\n     WARN_ON_ONCE and appropriate error returns where not.\n   - NFSv4.1 client adds session dynamic slot table management.  There\n     is matching server side code that has been submitted to Bruce for\n     consideration.\n\n     Together, this code allows the server to dynamically manage the\n     amount of memory it allocates to the duplicate request cache for\n     each client.  It will constantly resize those caches to reserve\n     more memory for clients that are hot while shrinking caches for\n     those that are quiescent.\n\n  In addition, there are assorted bugfixes for the generic NFS write\n  code, fixes to deal with the drop_nlink() warnings, and yet another\n  fix for NFSv4 getacl.\"\n\n* tag \u0027nfs-for-3.8-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (106 commits)\n  SUNRPC: continue run over clients list on PipeFS event instead of break\n  NFS: Don\u0027t use SetPageError in the NFS writeback code\n  SUNRPC: variable \u0027svsk\u0027 is unused in function bc_send_request\n  SUNRPC: Handle ECONNREFUSED in xs_local_setup_socket\n  NFSv4.1: Deal effectively with interrupted RPC calls.\n  NFSv4.1: Move the RPC timestamp out of the slot.\n  NFSv4.1: Try to deal with NFS4ERR_SEQ_MISORDERED.\n  NFS: nfs_lookup_revalidate should not trust an inode with i_nlink \u003d\u003d 0\n  NFS: Fix calls to drop_nlink()\n  NFS: Ensure that we always drop inodes that have been marked as stale\n  nfs: Remove unused list nfs4_clientid_list\n  nfs: Remove duplicate function declaration in internal.h\n  NFS: avoid NULL dereference in nfs_destroy_server\n  SUNRPC handle EKEYEXPIRED in call_refreshresult\n  SUNRPC set gss gc_expiry to full lifetime\n  nfs: fix page dirtying in NFS DIO read codepath\n  nfs: don\u0027t zero out the rest of the page if we hit the EOF on a DIO READ\n  NFSv4.1: Be conservative about the client highest slotid\n  NFSv4.1: Handle NFS4ERR_BADSLOT errors correctly\n  nfs: don\u0027t extend writes to cover entire page if pagecache is invalid\n  ...\n"
    },
    {
      "commit": "ea88eeac0cb8328014b53d80ca631e8dc0dc18dc",
      "tree": "de605c1d0e7ab1e342eedad47c56061b65a6b790",
      "parents": [
        "848b81415c42ff3dc9a4204749087b015c37ef66",
        "a9add5d92b64ea57fb4c3b557c3891cdeb15fa0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:32:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:32:44 2012 -0800"
      },
      "message": "Merge tag \u0027md-3.8\u0027 of git://neil.brown.name/md\n\nPull md update from Neil Brown:\n \"Mostly just little fixes.  Probably biggest part is AVX accelerated\n  RAID6 calculations.\"\n\n* tag \u0027md-3.8\u0027 of git://neil.brown.name/md:\n  md/raid5: add blktrace calls\n  md/raid5: use async_tx_quiesce() instead of open-coding it.\n  md: Use -\u003ecurr_resync as last completed request when cleanly aborting resync.\n  lib/raid6: build proper files on corresponding arch\n  lib/raid6: Add AVX2 optimized gen_syndrome functions\n  lib/raid6: Add AVX2 optimized recovery functions\n  md: Update checkpoint of resync/recovery based on time.\n  md:Add place to update -\u003erecovery_cp.\n  md.c: re-indent various \u0027switch\u0027 statements.\n  md: close race between removing and adding a device.\n  md: removed unused variable in calc_sb_1_csm.\n"
    },
    {
      "commit": "08afe22c68d8c07e8e31ee6491c37f36199ba14b",
      "tree": "875d203149b74fddb50522fd5df3d6b154f5fe1e",
      "parents": [
        "a304f836a2e6d257c1f918b3431f97ef6b33e02e",
        "4590685546a374fb0f60682ce0e3a6fd48911d46"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Dec 18 12:46:20 2012 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Dec 18 12:46:20 2012 +0200"
      },
      "message": "Merge branch \u0027slab/next\u0027 into slab/for-linus\n\nFix up a trivial merge conflict with commit baaf1dd (\"mm/slob: use\nmin_t() to compare ARCH_SLAB_MINALIGN\") that did not go through the slab\ntree.\n\nConflicts:\n\tmm/slob.c\n\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "a304f836a2e6d257c1f918b3431f97ef6b33e02e",
      "tree": "ad1967fbc0c31ede4ca2a2289992fa9893942cc1",
      "parents": [
        "29594404d7fe73cd80eaa4ee8c43dcc53970c60e",
        "0d7561c61d76690ed84bd1016acc0fcbff063205"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Dec 18 12:35:44 2012 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Dec 18 12:35:44 2012 +0200"
      },
      "message": "Merge branch \u0027slab/procfs\u0027 into slab/for-linus\n"
    },
    {
      "commit": "848b81415c42ff3dc9a4204749087b015c37ef66",
      "tree": "391da3a73aea48632248220d2d6b8d45a88f7eae",
      "parents": [
        "992956189de58cae9f2be40585bc25105cd7c5ad",
        "6fd59a83b9261fa53eaf98fb5514abba504a3ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n \"Incoming:\n\n   - lots of misc stuff\n\n   - backlight tree updates\n\n   - lib/ updates\n\n   - Oleg\u0027s percpu-rwsem changes\n\n   - checkpatch\n\n   - rtc\n\n   - aoe\n\n   - more checkpoint/restart support\n\n  I still have a pile of MM stuff pending - Pekka should be merging\n  later today after which that is good to go.  A number of other things\n  are twiddling thumbs awaiting maintainer merges.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (180 commits)\n  scatterlist: don\u0027t BUG when we can trivially return a proper error.\n  docs: update documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e fanotify output\n  fs, fanotify: add @mflags field to fanotify output\n  docs: add documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e output\n  fs, notify: add procfs fdinfo helper\n  fs, exportfs: add exportfs_encode_inode_fh() helper\n  fs, exportfs: escape nil dereference if no s_export_op present\n  fs, epoll: add procfs fdinfo helper\n  fs, eventfd: add procfs fdinfo helper\n  procfs: add ability to plug in auxiliary fdinfo providers\n  tools/testing/selftests/kcmp/kcmp_test.c: print reason for failure in kcmp_test\n  breakpoint selftests: print failure status instead of cause make error\n  kcmp selftests: print fail status instead of cause make error\n  kcmp selftests: make run_tests fix\n  mem-hotplug selftests: print failure status instead of cause make error\n  cpu-hotplug selftests: print failure status instead of cause make error\n  mqueue selftests: print failure status instead of cause make error\n  vm selftests: print failure status instead of cause make error\n  ubifs: use prandom_bytes\n  mtd: nandsim: use prandom_bytes\n  ...\n"
    },
    {
      "commit": "992956189de58cae9f2be40585bc25105cd7c5ad",
      "tree": "61f5f6504117c725d3d882f7dc0f29c2c4bf18fd",
      "parents": [
        "ce4a9cc579381bc70b12ebb91c57da31baf8e3b7"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Dec 17 17:19:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:14:15 2012 -0800"
      },
      "message": "efi: Fix the build with user namespaces enabled.\n\nWhen compiling efivars.c the build fails with:\n\n   CC      drivers/firmware/efivars.o\n  drivers/firmware/efivars.c: In function ‘efivarfs_get_inode’:\n  drivers/firmware/efivars.c:886:31: error: incompatible types when assigning to type ‘kgid_t’ from type ‘int’\n  make[2]: *** [drivers/firmware/efivars.o] Error 1\n  make[1]: *** [drivers/firmware/efivars.o] Error 2\n\nFix the build error by removing the duplicate initialization of i_uid and\ni_gid inode_init_always has already initialized them to 0.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce4a9cc579381bc70b12ebb91c57da31baf8e3b7",
      "tree": "4d269c7fb957062812bfe9deef8834ed98ea6afd",
      "parents": [
        "6a2b60b17b3e48a418695a94bd2420f6ab32e519"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Dec 10 19:50:57 2012 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 19:37:03 2012 -0800"
      },
      "message": "mm,numa: fix update_mmu_cache_pmd call\n\nThis build error is currently hidden by the fact that the x86\nimplementation of \u0027update_mmu_cache_pmd()\u0027 is a macro that doesn\u0027t use\nits last argument, but commit b32967ff101a (\"mm: numa: Add THP migration\nfor the NUMA working set scanning fault case\") introduced a call with\nthe wrong third argument.\n\nIn the akpm tree, it causes this build error:\n\n  mm/migrate.c: In function \u0027migrate_misplaced_transhuge_page_put\u0027:\n  mm/migrate.c:1666:2: error: incompatible type for argument 3 of \u0027update_mmu_cache_pmd\u0027\n  arch/x86/include/asm/pgtable.h:792:20: note: expected \u0027struct pmd_t *\u0027 but argument is of type \u0027pmd_t\u0027\n\nFix it.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d328a948f38ec240fc6d05db2c146e23ccd9b8b",
      "tree": "b50234ea0ffe5b4870533e8a97ae1c43d8322fcd",
      "parents": [
        "cc31fd9c4f8fc466ec8488d617150e751f643903"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "wei.liu2@citrix.com",
        "time": "Thu Dec 13 15:33:05 2012 +0000"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Dec 17 21:58:09 2012 -0500"
      },
      "message": "xen/vcpu: Fix vcpu restore path.\n\nThe runstate of vcpu should be restored for all possible cpus, as well as the\nvcpu info placement.\n\nAcked-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nSigned-off-by: Wei Liu \u003cwei.liu2@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "cc31fd9c4f8fc466ec8488d617150e751f643903",
      "tree": "6d7586daca7caf037b584c27d409cc0a94a8c9f0",
      "parents": [
        "06d0b5d9edcecccab45588a472cd34af2608e665"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "wei.liu2@citrix.com",
        "time": "Thu Dec 13 15:31:35 2012 +0000"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Dec 17 21:58:05 2012 -0500"
      },
      "message": "xen: Add EVTCHNOP_reset in Xen interface header files.\n\nSigned-off-by: Wei Liu \u003cwei.liu2@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "06d0b5d9edcecccab45588a472cd34af2608e665",
      "tree": "7c92de05a8165e9e45402544faa91d900c392416",
      "parents": [
        "6a7ed405114b2a53ccd99631b0636aaeabf71b3e"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Dec 17 20:29:32 2012 -0500"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Dec 17 21:56:35 2012 -0500"
      },
      "message": "xen/smp: Use smp_store_boot_cpu_info() to store cpu info for BSP during boot time.\n\nGit commit 30106c174311b8cfaaa3186c7f6f9c36c62d17da\n(\"x86, hotplug: Support functions for CPU0 online/offline\") alters what\nthe call to smp_store_cpu_info() does. For BSP we should use the\nsmp_store_boot_cpu_info() and for secondary CPU\u0027s the old\nvariant of smp_store_cpu_info() should be used. This fixes\nthe regression introduced by said commit.\n\nReported-and-Tested-by: Sander Eikelenboom \u003clinux@eikelenboom.it\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "6fd59a83b9261fa53eaf98fb5514abba504a3ea3",
      "tree": "08dfeef55544c0c30e1567618f62ae771feeac53",
      "parents": [
        "e71ec593201e1b367b5f22955e3db49e3c562e67"
      ],
      "author": {
        "name": "Nick Bowler",
        "email": "nbowler@elliptictech.com",
        "time": "Mon Dec 17 16:05:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:28 2012 -0800"
      },
      "message": "scatterlist: don\u0027t BUG when we can trivially return a proper error.\n\nThere is absolutely no reason to crash the kernel when we have a\nperfectly good return value already available to use for conveying\nfailure status.\n\nLet\u0027s return an error code instead of crashing the kernel: that sounds\nlike a much better plan.\n\n[akpm@linux-foundation.org: s/E2BIG/EINVAL/]\nSigned-off-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e71ec593201e1b367b5f22955e3db49e3c562e67",
      "tree": "ed5b17a12905e5cf16141f49d263e9862b01458c",
      "parents": [
        "e6dbcafb744ab94a94142a6e721e16330397fad8"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:28 2012 -0800"
      },
      "message": "docs: update documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e fanotify output\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6dbcafb744ab94a94142a6e721e16330397fad8",
      "tree": "6ef896651e962003960186fa516b2696ff293b22",
      "parents": [
        "f1d8c16298d317dbdeb166a135e85dadd1782858"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:28 2012 -0800"
      },
      "message": "fs, fanotify: add @mflags field to fanotify output\n\nThe kernel keeps FAN_MARK_IGNORED_SURV_MODIFY bit separately from\nfsnotify_mark::mask|ignored_mask thus put it in @mflags (mark flags)\nfield so the user-space reader will be able to detect if such bit were\nused on mark creation procedure.\n\n | pos:\t0\n | flags:\t04002\n | fanotify flags:10 event-flags:0\n | fanotify mnt_id:12 mflags:40 mask:38 ignored_mask:40000003\n | fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:69f90400c275b5b4\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1d8c16298d317dbdeb166a135e85dadd1782858",
      "tree": "b7b5fd4fc10dfa153e796a7bd69d4edcd8a695b1",
      "parents": [
        "be77196b809cdce8603a5aadd5e3cfabd3cbef96"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:28 2012 -0800"
      },
      "message": "docs: add documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e output\n\n[akpm@linux-foundation.org: tweak documentation]\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be77196b809cdce8603a5aadd5e3cfabd3cbef96",
      "tree": "9b0f464b4ab3521fc662f5af790c3dbd0c4f7453",
      "parents": [
        "711c7bf9914060d7aaf3c1a15f38094a5d5e748f"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:28 2012 -0800"
      },
      "message": "fs, notify: add procfs fdinfo helper\n\nThis allow us to print out fsnotify details such as watchee inode, device,\nmask and optionally a file handle.\n\nFor inotify objects if kernel compiled with exportfs support the output\nwill be\n\n | pos:\t0\n | flags:\t02000000\n | inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7e9e0000640d1b6d\n | inotify wd:2 ino:a111 sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:11a1000020542153\n | inotify wd:1 ino:6b149 sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:49b1060023552153\n\nIf kernel compiled without exportfs support, the file handle\nwon\u0027t be provided but inode and device only.\n\n | pos:\t0\n | flags:\t02000000\n | inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0\n | inotify wd:2 ino:a111 sdev:800013 mask:800afce ignored_mask:0\n | inotify wd:1 ino:6b149 sdev:800013 mask:800afce ignored_mask:0\n\nFor fanotify the output is like\n\n | pos:\t0\n | flags:\t04002\n | fanotify flags:10 event-flags:0\n | fanotify mnt_id:12 mask:3b ignored_mask:0\n | fanotify ino:50205 sdev:800013 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:05020500fb1d47e7\n\nTo minimize impact on general fsnotify code the new functionality\nis gathered in fs/notify/fdinfo.c file.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "711c7bf9914060d7aaf3c1a15f38094a5d5e748f",
      "tree": "9e77f75166d591c2a3979494253793add2df607a",
      "parents": [
        "ab49bdecc3ebb46ab661f5f05d5c5ea9606406c6"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:27 2012 -0800"
      },
      "message": "fs, exportfs: add exportfs_encode_inode_fh() helper\n\nWe will need this helper in the next patch to provide a file handle for\ninotify marks in /proc/pid/fdinfo output.\n\nThe patch is rather providing the way to use inodes directly when dentry\nis not available (like in case of inotify system).\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab49bdecc3ebb46ab661f5f05d5c5ea9606406c6",
      "tree": "8b9cb838c82a2255d52fb36b34d3569b4726c48a",
      "parents": [
        "138d22b58696c506799f8de759804083ff9effae"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:27 2012 -0800"
      },
      "message": "fs, exportfs: escape nil dereference if no s_export_op present\n\nThis routine will be used to generate a file handle in fdinfo output for\ninotify subsystem, where if no s_export_op present the general\nexport_encode_fh should be used.  Thus add a test if s_export_op present\ninside exportfs_encode_fh itself.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "138d22b58696c506799f8de759804083ff9effae"
}
