)]}'
{
  "log": [
    {
      "commit": "18320f2a6871aaf2522f793fee4a67eccf5e131a",
      "tree": "bb900ce16b590a5e1ae8fcff78e5677e99fcbd35",
      "parents": [
        "db3ecdee1cf0538f11832f7ef66945c4dd903918",
        "c7fb90dfbef49b03e6f3fd6a32338e59cbcf34ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 13:45:57 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 13:45:57 2015 -0800"
      },
      "message": "Merge tag \u0027pm+acpi-3.20-rc1-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull more ACPI and power management updates from Rafael Wysocki:\n \"These are two reverts related to system suspend breakage by one of a\n  recent commits, a fix for a recently introduced bug in devfreq and a\n  bunch of other things that didn\u0027t make it into my previous pull\n  request, but otherwise are ready to go.\n\n  Specifics:\n\n   - Revert two ACPI EC driver commits, one that broke system suspend on\n     Acer Aspire S5 and one that depends on it (Rafael J Wysocki).\n\n   - Fix a typo leading to an incorrect check in the exynos-ppmu devfreq\n     driver (Dan Carpenter).\n\n   - Add support for one more Broadwell CPU model to intel_idle (Len Brown).\n\n   - Fix an obscure problem with state transitions related to interrupts\n     in the speedstep-smi cpufreq driver (Mikulas Patocka).\n\n   - Remove some unnecessary messages related to the \"out of memory\"\n     condition from the core PM code (Quentin Lambert).\n\n   - Update turbostat parameters and documentation, add support for one\n     more Broadwell CPU model to it and modify it to skip printing\n     disabled package C-states (Len Brown)\"\n\n* tag \u0027pm+acpi-3.20-rc1-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  PM / devfreq: event: testing the wrong variable\n  cpufreq: speedstep-smi: enable interrupts when waiting\n  PM / OPP / clk: Remove unnecessary OOM message\n  Revert \"ACPI / EC: Add query flushing support\"\n  Revert \"ACPI / EC: Add GPE reference counting debugging messages\"\n  tools/power turbostat: support additional Broadwell model\n  intel_idle: support additional Broadwell model\n  tools/power turbostat: update parameters, documentation\n  tools/power turbostat: Skip printing disabled package C-states\n"
    },
    {
      "commit": "c7fb90dfbef49b03e6f3fd6a32338e59cbcf34ee",
      "tree": "abf9acf8d97ce29e42c7539d902070745a66e535",
      "parents": [
        "69bf75e9ae2d02304fe42b32daaa8d173705afc6",
        "d4d4eda23794c701442e55129dd4f8f2fefd5e4d",
        "5177a94aea6fbffc897aaee29c7cde57f951b541",
        "04a695edcaee386207e5a43a41bafa8388bf3bf4",
        "59d84ca8c46a93ad62f9129458e897e7fe5075de",
        "79b56ab8c3f64d05700bd3bcad79aa726931c150"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 13 21:39:06 2015 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 13 21:39:06 2015 +0100"
      },
      "message": "Merge branches \u0027pm-cpufreq\u0027, \u0027pm-cpuidle\u0027, \u0027pm-devfreq\u0027, \u0027pm-opp\u0027 and \u0027pm-tools\u0027\n\n* pm-cpufreq:\n  cpufreq: speedstep-smi: enable interrupts when waiting\n\n* pm-cpuidle:\n  intel_idle: support additional Broadwell model\n\n* pm-devfreq:\n  PM / devfreq: event: testing the wrong variable\n\n* pm-opp:\n  PM / OPP / clk: Remove unnecessary OOM message\n\n* pm-tools:\n  tools/power turbostat: support additional Broadwell model\n  tools/power turbostat: update parameters, documentation\n  tools/power turbostat: Skip printing disabled package C-states\n"
    },
    {
      "commit": "69bf75e9ae2d02304fe42b32daaa8d173705afc6",
      "tree": "61a9680212f3718930039d8221c6758d8742e872",
      "parents": [
        "872912352c5be930e9568e5f3b6d73107d9f278d",
        "37d11391c2de8a846da50a2972a82289e65e5ea6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 13 21:38:20 2015 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 13 21:38:20 2015 +0100"
      },
      "message": "Merge branch \u0027acpi-ec\u0027\n\n* acpi-ec:\n  Revert \"ACPI / EC: Add query flushing support\"\n  Revert \"ACPI / EC: Add GPE reference counting debugging messages\"\n"
    },
    {
      "commit": "db3ecdee1cf0538f11832f7ef66945c4dd903918",
      "tree": "b3e2b3f7ccc9a1b2ea4aa05ce5bb3f8debbe119e",
      "parents": [
        "a42cf70eb81558082e9a26fe8541d160b6c2a694",
        "c6e71f813f7208d80bfe0f435d627fad1b204558"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:54:44 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:54:44 2015 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds\n\nPull LED subsystem update from Bryan Wu:\n \"The big change of LED subsystem is introducing a new LED class for\n  Flash type LEDs which will be used for V4L2 subsystem.\n\n  Also we got some cleanup and fixes\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:\n  leds: leds-gpio: Pass on error codes unmodified\n  DT: leds: Add led-sources property\n  leds: Add LED Flash class extension to the LED subsystem\n  leds: leds-mc13783: Use of_get_child_by_name() instead of refcount hack\n  leds: Use setup_timer\n  leds: Don\u0027t allow brightness values greater than max_brightness\n  DT: leds: Add flash LED devices related properties\n"
    },
    {
      "commit": "a42cf70eb81558082e9a26fe8541d160b6c2a694",
      "tree": "53258e360c1934c8203bbed0e1f39df347185e37",
      "parents": [
        "f1252515d901ee2a184a9d49a7f29ae14da823eb",
        "9cc019b8c94fa59e02fd82f15f7b7d689e35c190"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:47:13 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:47:13 2015 -0800"
      },
      "message": "Merge tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module update from Rusty Russell:\n \"Trivial cleanups, mainly\"\n\n* tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:\n  module: Replace over-engineered nested sleep\n  module: Annotate nested sleep in resolve_symbol()\n  module: Remove double spaces in module verification taint message\n  kernel/module.c: Free lock-classes if parse_args failed\n  module: set ksymtab/kcrctab* section addresses to 0x0\n"
    },
    {
      "commit": "f1252515d901ee2a184a9d49a7f29ae14da823eb",
      "tree": "deb2cd0776ace4fdb9614eb7f161e89dd2d76ee5",
      "parents": [
        "8329aa9fff3fca84009e6a444d8d160193643bac",
        "740e1433f50e6d0f1c4705c1a963645072f5a74c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:43:04 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:43:04 2015 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\nPull arch/tile changes from Chris Metcalf:\n \"Not much in this batch, just some minor cleanups\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  tile: change MAINTAINERS website from tilera.com to ezchip.com\n  tile: enable sparse checks for get/put_user\n  tile: fix put_user sparse errors\n  tile: default to little endian on older toolchains\n"
    },
    {
      "commit": "8329aa9fff3fca84009e6a444d8d160193643bac",
      "tree": "7c2287287e44498561e77d9556a99cabc0ead4f6",
      "parents": [
        "b9085bcbf5f43adf60533f9b635b2e7faeed0fe9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:26:18 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 10:26:18 2015 -0800"
      },
      "message": "Revert \"x86/apic: Only disable CPU x2apic mode when necessary\"\n\nThis reverts commit 5fcee53ce705d49c766f8a302c7e93bdfc33c124.\n\nIt causes the suspend to fail on at least the Chromebook Pixel, possibly\nother platforms too.\n\nJoerg Roedel points out that the logic should probably have been\n\n                if (max_physical_apicid \u003e 255 ||\n                    !(IS_ENABLED(CONFIG_HYPERVISOR_GUEST) \u0026\u0026\n                      hypervisor_x2apic_available())) {\n\ninstead, but since the code is not in any fast-path, so we can just live\nwithout that optimization and just revert to the original code.\n\nAcked-by: Joerg Roedel \u003cjoro@8bytes.org\u003e\nAcked-by: Jiang Liu \u003cjiang.liu@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "740e1433f50e6d0f1c4705c1a963645072f5a74c",
      "tree": "f333fc698e769e2f44eb83eae38f426c7737def9",
      "parents": [
        "b9f705758a4faaf86532bddf6ea3c50d6778ba42"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@ezchip.com",
        "time": "Fri Feb 13 13:16:49 2015 -0500"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@ezchip.com",
        "time": "Fri Feb 13 13:16:49 2015 -0500"
      },
      "message": "tile: change MAINTAINERS website from tilera.com to ezchip.com\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@ezchip.com\u003e\n"
    },
    {
      "commit": "b9085bcbf5f43adf60533f9b635b2e7faeed0fe9",
      "tree": "e397abf5682a45c096e75b3d0fa99c8e228425fc",
      "parents": [
        "c7d7b98671552abade78834c522b7308bda73c0d",
        "6557bada461afeaa920a189fae2cff7c8fdce39f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 09:55:09 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 09:55:09 2015 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM update from Paolo Bonzini:\n \"Fairly small update, but there are some interesting new features.\n\n  Common:\n     Optional support for adding a small amount of polling on each HLT\n     instruction executed in the guest (or equivalent for other\n     architectures).  This can improve latency up to 50% on some\n     scenarios (e.g. O_DSYNC writes or TCP_RR netperf tests).  This\n     also has to be enabled manually for now, but the plan is to\n     auto-tune this in the future.\n\n  ARM/ARM64:\n     The highlights are support for GICv3 emulation and dirty page\n     tracking\n\n  s390:\n     Several optimizations and bugfixes.  Also a first: a feature\n     exposed by KVM (UUID and long guest name in /proc/sysinfo) before\n     it is available in IBM\u0027s hypervisor! :)\n\n  MIPS:\n     Bugfixes.\n\n  x86:\n     Support for PML (page modification logging, a new feature in\n     Broadwell Xeons that speeds up dirty page tracking), nested\n     virtualization improvements (nested APICv---a nice optimization),\n     usual round of emulation fixes.\n\n     There is also a new option to reduce latency of the TSC deadline\n     timer in the guest; this needs to be tuned manually.\n\n     Some commits are common between this pull and Catalin\u0027s; I see you\n     have already included his tree.\n\n  Powerpc:\n     Nothing yet.\n\n     The KVM/PPC changes will come in through the PPC maintainers,\n     because I haven\u0027t received them yet and I might end up being\n     offline for some part of next week\"\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (130 commits)\n  KVM: ia64: drop kvm.h from installed user headers\n  KVM: x86: fix build with !CONFIG_SMP\n  KVM: x86: emulate: correct page fault error code for NoWrite instructions\n  KVM: Disable compat ioctl for s390\n  KVM: s390: add cpu model support\n  KVM: s390: use facilities and cpu_id per KVM\n  KVM: s390/CPACF: Choose crypto control block format\n  s390/kernel: Update /proc/sysinfo file with Extended Name and UUID\n  KVM: s390: reenable LPP facility\n  KVM: s390: floating irqs: fix user triggerable endless loop\n  kvm: add halt_poll_ns module parameter\n  kvm: remove KVM_MMIO_SIZE\n  KVM: MIPS: Don\u0027t leak FPU/DSP to guest\n  KVM: MIPS: Disable HTW while in guest\n  KVM: nVMX: Enable nested posted interrupt processing\n  KVM: nVMX: Enable nested virtual interrupt delivery\n  KVM: nVMX: Enable nested apic register virtualization\n  KVM: nVMX: Make nested control MSRs per-cpu\n  KVM: nVMX: Enable nested virtualize x2apic mode\n  KVM: nVMX: Prepare for using hardware MSR bitmap\n  ...\n"
    },
    {
      "commit": "c7d7b98671552abade78834c522b7308bda73c0d",
      "tree": "062dab589e90a8006d2be5d55f8f95f4f16be93b",
      "parents": [
        "818099574b04c5301eacbbcd441022b353a65466",
        "1a118ccfd60fc78e64c0a3ab9e85075545839d6e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 19:28:50 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 19:28:50 2015 -0800"
      },
      "message": "Merge tag \u0027for-f2fs-3.20\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"Major changes are to:\n   - add f2fs_io_tracer and F2FS_IOC_GETVERSION\n   - fix wrong acl assignment from parent\n   - fix accessing wrong data blocks\n   - fix wrong condition check for f2fs_sync_fs\n   - align start block address for direct_io\n   - add and refactor the readahead flows of FS metadata\n   - refactor atomic and volatile write policies\n\n  But most of patches are for clean-ups and minor bug fixes.  Some of\n  them refactor old code too\"\n\n* tag \u0027for-f2fs-3.20\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (64 commits)\n  f2fs: use spinlock for segmap_lock instead of rwlock\n  f2fs: fix accessing wrong indexed data blocks\n  f2fs: avoid variable length array\n  f2fs: fix sparse warnings\n  f2fs: allocate data blocks in advance for f2fs_direct_IO\n  f2fs: introduce macros to convert bytes and blocks in f2fs\n  f2fs: call set_buffer_new for get_block\n  f2fs: check node page contents all the time\n  f2fs: avoid data offset overflow when lseeking huge file\n  f2fs: fix to use highmem for pages of newly created directory\n  f2fs: introduce a batched trim\n  f2fs: merge {invalidate,release}page for meta/node/data pages\n  f2fs: show the number of writeback pages in stat\n  f2fs: keep PagePrivate during releasepage\n  f2fs: should fail mount when trying to recover data on read-only dev\n  f2fs: split UMOUNT and FASTBOOT flags\n  f2fs: avoid write_checkpoint if f2fs is mounted readonly\n  f2fs: support norecovery mount option\n  f2fs: fix not to drop mount options when retrying fill_super\n  f2fs: merge flags in struct f2fs_sb_info\n  ...\n"
    },
    {
      "commit": "818099574b04c5301eacbbcd441022b353a65466",
      "tree": "77b3645b375105cb0389df2b4ea5ffa90329f7f8",
      "parents": [
        "802ea9d8645d33d24b7b4cd4537c14f3e698bde0",
        "6016daed58ee482a2f7684e93342e89139cf4419"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:28 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:28 2015 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew)\n\nMerge third set of updates from Andrew Morton:\n\n - the rest of MM\n\n   [ This includes getting rid of the numa hinting bits, in favor of\n     just generic protnone logic.  Yay.     - Linus ]\n\n - core kernel\n\n - procfs\n\n - some of lib/ (lots of lib/ material this time)\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (104 commits)\n  lib/lcm.c: replace include\n  lib/percpu_ida.c: remove redundant includes\n  lib/strncpy_from_user.c: replace module.h include\n  lib/stmp_device.c: replace module.h include\n  lib/sort.c: move include inside #if 0\n  lib/show_mem.c: remove redundant include\n  lib/radix-tree.c: change to simpler include\n  lib/plist.c: remove redundant include\n  lib/nlattr.c: remove redundant include\n  lib/kobject_uevent.c: remove redundant include\n  lib/llist.c: remove redundant include\n  lib/md5.c: simplify include\n  lib/list_sort.c: rearrange includes\n  lib/genalloc.c: remove redundant include\n  lib/idr.c: remove redundant include\n  lib/halfmd4.c: simplify includes\n  lib/dynamic_queue_limits.c: simplify includes\n  lib/sort.c: use simpler includes\n  lib/interval_tree.c: simplify includes\n  hexdump: make it return number of bytes placed in buffer\n  ...\n"
    },
    {
      "commit": "6016daed58ee482a2f7684e93342e89139cf4419",
      "tree": "847018ac6a42cf5f02163837e636aa46fe5a03b6",
      "parents": [
        "6918584aad8e9c6b9a9be74b15bf9e7dafc2d691"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:21 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/lcm.c: replace include\n\nWe don\u0027t need all the stuff kernel.h pulls in; just compiler.h since\nexport.h doesn\u0027t do necessary #includes.  This removes more than 100\ndependencies.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6918584aad8e9c6b9a9be74b15bf9e7dafc2d691",
      "tree": "17e4267c31d3d3e70d148caf4efd77e374de57b5",
      "parents": [
        "bf3c2d6d2f9649f1cdfac96781e98a097e871147"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:19 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/percpu_ida.c: remove redundant includes\n\nThese three #includes seem to be completely redundant: Removing them\nyields identical objdump -d output for each of {allyes,allno,def}config,\nand neither included file end up in the generated dependency file through\nsome recursive include.  In total, about 50 lines are eliminated from\n.percpu.o.cmd.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf3c2d6d2f9649f1cdfac96781e98a097e871147",
      "tree": "fca055aad5592e168c1eac6c6bf0508ab136db51",
      "parents": [
        "b6d4f3221d7fe00d440edaeeb6cde7257ae63a73"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:16 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/strncpy_from_user.c: replace module.h include\n\nstrncpy_from_user.c only needs EXPORT_SYMBOL, so just include compiler.h\nand export.h instead of the whole module.h machinery.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6d4f3221d7fe00d440edaeeb6cde7257ae63a73",
      "tree": "579443973544634e485a00ad447d2f2cf9285045",
      "parents": [
        "2ddae683bf36d50b960402a94a55047ab0c73e2c"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:13 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/stmp_device.c: replace module.h include\n\nstmp_device.c only needs EXPORT_SYMBOL, so just include compiler.h and\nexport.h instead of the whole module.h machinery.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ddae683bf36d50b960402a94a55047ab0c73e2c",
      "tree": "60f4e5c60f8a7b9ba5c589601c3f62ac7d417a42",
      "parents": [
        "b8b6db1793551fac131834d413199197f86b6b5f"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:10 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/sort.c: move include inside #if 0\n\nThe sort function and its helpers don\u0027t do memory allocation, so the\nslab.h include is redundant.  Move it inside the #if 0 protecting the\nself-test, similar to how it is done in lib/list_sort.c.  This removes\nover 450 lines from the generated dependency file.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8b6db1793551fac131834d413199197f86b6b5f",
      "tree": "e63f1f4ada91f5875ac2f6da9c84c5170a98e6ba",
      "parents": [
        "886d3dfa85d5aa6f11813c319e50f5402c7cf4e4"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:08 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/show_mem.c: remove redundant include\n\nshow_mem.c doesn\u0027t use anything from nmi.h.  Removing it yields identical\nobjdump -d output for each of {allyes,allno,def}config and eliminates more\nthan 100 lines in the dependency file.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "886d3dfa85d5aa6f11813c319e50f5402c7cf4e4",
      "tree": "312aac349d03de3dd49974227661f592c8bedaa7",
      "parents": [
        "7f1ce3c86411f5b836f84358e2fc4e225c7e145e"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:05 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/radix-tree.c: change to simpler include\n\nThe comment helpfully explains why hardirq.h is included, but since\ncommit 2d4b84739f0a (\"hardirq: Split preempt count mask definitions\")\nin_interrupt() has been provided by preempt_mask.h.  Use that instead,\nsaving around 40 lines in the generated dependency file.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f1ce3c86411f5b836f84358e2fc4e225c7e145e",
      "tree": "e4360e424df4ca5e5a4d557ed00115f9bfee4f60",
      "parents": [
        "fb41f9d71c4b15474640d1c01ae2e90982d8d07e"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:03:02 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/plist.c: remove redundant include\n\nRemoving the include of linux/spinlock.h produces byte-identical output\nfor {allno,def}config, and identical objdump -d output for allyesconfig.\nIn the former two cases, more than a 100 lines are eliminated from the\ngenerated dependency file.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb41f9d71c4b15474640d1c01ae2e90982d8d07e",
      "tree": "08c0ac3657362911f01dc08338ba99385364627b",
      "parents": [
        "a69ae45c260d24a4497ed38ec87c1e5ba461cae4"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:59 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:16 2015 -0800"
      },
      "message": "lib/nlattr.c: remove redundant include\n\nnlattr.c doesn\u0027t seem to rely on anything from netdevice.h.  Removing it\nyields identical objdump -d output for each of {allyes,allno,def}config,\nand eliminates more than 200 lines from the generated dependency file.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a69ae45c260d24a4497ed38ec87c1e5ba461cae4",
      "tree": "e3fecdbd6ab509dd17dc0ad61ef39c5968184de6",
      "parents": [
        "9b40570bd986128bb8e3c5f6f1abc60e1ad89794"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:57 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/kobject_uevent.c: remove redundant include\n\nThe file doesn\u0027t seem to use anything from linux/user_namespace.h, and\nremoving it yields byte-identical object code and strictly fewer\ndependencies in the .cmd file.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b40570bd986128bb8e3c5f6f1abc60e1ad89794",
      "tree": "99427b8d3805a4d61b947b0e224d7d3d3491e8b8",
      "parents": [
        "9a29ae84c147a348c3cb7aef249b0d40ed6da1ed"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:54 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/llist.c: remove redundant include\n\nThis file doesn\u0027t seem to use anything provided by linux/interrupt.h or\nanything recursively included through that.  Removing it produces\nbyte-identical output, while reducing .llist.o.cmd from 541 to 156 lines.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a29ae84c147a348c3cb7aef249b0d40ed6da1ed",
      "tree": "1944ac45022000a847e4ba429dbdbe54283846b2",
      "parents": [
        "7259fa0424208fb7ab19a914f10e2502d2f6d18b"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:51 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/md5.c: simplify include\n\nmd5.c doesn\u0027t use anything from kernel.h, except that that pulls in\ncompiler.h, which is needed for the export.h to work.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7259fa0424208fb7ab19a914f10e2502d2f6d18b",
      "tree": "6d15a8edae24af2f3e935d3c233479b75f90c91d",
      "parents": [
        "18fa6d2e4574d2a44e0c2cc5ae1c1812ec8019d8"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:48 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/list_sort.c: rearrange includes\n\nMemory allocation only happens in the self test, just as random numbers\nare only used there.  So move the inclusion of slab.h inside the\nCONFIG_TEST_LIST_SORT.\n\nWe don\u0027t need module.h and all of the stuff it carries with it, so replace\nwith export.h and compiler.h.  Unfortunately, the ARRAY_SIZE macro from\nkernel.h requires the user to ensure bug.h is also included (for\nBUILD_BUG_ON_ZERO, used by __must_be_array).  We used to get that through\nsome maze of nested includes, but just include it explicitly.\n\nlinux/string.h is then only included implicitly through\nkernel.h-\u003eprintk.h-\u003edynamic_debug.h, but only if !CONFIG_DYNAMIC_DEBUG, so\njust include it explicitly (for memset).\n\nobjdump -d says the generated code is the same, and wc -l says that\nlib/.list_sort.o.cmd went from 579 to 165 lines.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18fa6d2e4574d2a44e0c2cc5ae1c1812ec8019d8",
      "tree": "e93e5a4c12ffd234c5c9bc4e61a313563a36e4cb",
      "parents": [
        "87d1d16937f64dd7822aee8b2e35b2f3ed3200b4"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:46 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/genalloc.c: remove redundant include\n\nRemoving this include produces byte-identical output, and thus removes a\nfalse dependency.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87d1d16937f64dd7822aee8b2e35b2f3ed3200b4",
      "tree": "8b89c6c5ca7f07ba2e0702015ee7e0a0dc491361",
      "parents": [
        "3248340d3f10871d2ae2d1df9e323f284fa1fdb6"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:43 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/idr.c: remove redundant include\n\nidr.c doesn\u0027t seem to use anything from hardirq.h (or anything included\nfrom that).  Removing it produces identical objdump -d output, and gives\n44 fewer lines in the .idr.o.cmd dependency file.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3248340d3f10871d2ae2d1df9e323f284fa1fdb6",
      "tree": "7182a43fe280b3fae73484defece49ce93be4457",
      "parents": [
        "565ac23b81ebbcfad4111fa9c743ebc7fc25a4f7"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:40 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/halfmd4.c: simplify includes\n\nWe only need EXPORT_SYMBOL, so compiler.h and export.h suffice.  This\nmeans linux/types.h is no longer implicitly included, so add an include of\nuapi/linux/types.h to linux/cryptohash.h for __u32.  Other users of\ncryptohash.h cannot be affected, since they must already have been\nincluding uapi/linux/types.h in order for gcc not to complain about\nunknown types.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "565ac23b81ebbcfad4111fa9c743ebc7fc25a4f7",
      "tree": "c2839768ba76ffcee5cf106e79cc8bb23b460c0b",
      "parents": [
        "42cf809654e4ea2fa16dd73608e153f1c6f7c2ed"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:37 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/dynamic_queue_limits.c: simplify includes\n\nThe file doesn\u0027t use anything from ctype.h.  Instead of module.h, just use\nexport.h for EXPORT_SYMBOL.  The latter requires the user to include\ncompiler.h, so do that explicitly instead of relying on some other header\npulling it in.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42cf809654e4ea2fa16dd73608e153f1c6f7c2ed",
      "tree": "927fdf62df517e9ee34dd3e96b0bc4d82dc753cf",
      "parents": [
        "85c5e27c4a7d085e8a0e112f659f6375c6f309e1"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:35 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/sort.c: use simpler includes\n\nsort.c doesn\u0027t use facilities from kernel.h, but does use some types\ndefined in linux/types.h.  Include the latter directly instead of relying\non some other header doing it.  Similarly, include linux/export.h directly\ninstead of through module.h.  This removes 80 lines from the dependency\nfile .sort.o.cmd.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85c5e27c4a7d085e8a0e112f659f6375c6f309e1",
      "tree": "82c3ef8feec014ebe8e6e15c6c6dd41272bee301",
      "parents": [
        "114fc1afb2de7dec40da137dc2a55cd38fc220f2"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:32 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "lib/interval_tree.c: simplify includes\n\nThe file uses nothing from init.h, and also doesn\u0027t need the full module.h\nmachinery; export.h is sufficient.  The latter requires the user to ensure\ncompiler.h is included, so do that explicitly instead of relying on some\nother header pulling it in.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "114fc1afb2de7dec40da137dc2a55cd38fc220f2",
      "tree": "414c7731a5a4743cbdba6583a1b79f3723ec190d",
      "parents": [
        "5d909c8d54b114eddb7c50506f03bf7309a9192e"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Thu Feb 12 15:02:29 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "hexdump: make it return number of bytes placed in buffer\n\nThis patch makes hexdump return the number of bytes placed in the buffer\nexcluding trailing NUL.  In the case of overflow it returns the desired\namount of bytes to produce the entire dump.  Thus, it mimics snprintf().\n\nThis will be useful for users that would like to repeat with a bigger\nbuffer.\n\n[akpm@linux-foundation.org: fix printk warning]\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d909c8d54b114eddb7c50506f03bf7309a9192e",
      "tree": "276ad2aa80b54b674b67e74552fbab443a235b8b",
      "parents": [
        "6f6f3fcb87a53c720941f4bd039ec2c0bce66625"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Thu Feb 12 15:02:26 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:15 2015 -0800"
      },
      "message": "hexdump: do a few calculations ahead\n\nInstead of doing calculations in each case of different groupsize let\u0027s do\nthem beforehand.  While there, change the switch to an if-else-if\nconstruction.\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f6f3fcb87a53c720941f4bd039ec2c0bce66625",
      "tree": "647a4637c3e1202b259dd36bb49586a411ce8dc7",
      "parents": [
        "64d1d77a44697af8e314939ecef30642c68309cb"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Thu Feb 12 15:02:24 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "hexdump: fix ascii column for the tail of a dump\n\nIn the current implementation we have a floating ascii column in the tail\nof the dump.\n\nFor example, for row size equal to 16 the ascii column as in following\ntable\n\ngroup size \\ length\t8\t12\t16\n\t1\t\t50\t50\t50\n\t2\t\t22\t32\t42\n\t4\t\t20\t29\t38\n\t8\t\t19\t-\t36\n\nThis patch makes it the same independently of amount of bytes dumped.\n\nThe change is safe since all current users, which use ASCII part of the\ndump, rely on the group size equal to 1.  The patch doesn\u0027t change\nbehaviour for such group size (see the table above).\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64d1d77a44697af8e314939ecef30642c68309cb",
      "tree": "f41a82fde6001ed05ab7c0ae560e6e1e9f83fb80",
      "parents": [
        "ad3d5d2f7deca6d0fd72163573bcb0cca6337e33"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Thu Feb 12 15:02:21 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "hexdump: introduce test suite\n\nTest different scenarios of function calls located in lib/hexdump.c.\n\nCurrently hex_dump_to_buffer() is only tested and test data is provided\nfor little endian CPUs.\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad3d5d2f7deca6d0fd72163573bcb0cca6337e33",
      "tree": "42b109baf3a0121d702964fd5411d9ac0cd168f4",
      "parents": [
        "af3cd13501eb04ca61d017ff4406f1cbffafdc04"
      ],
      "author": {
        "name": "Toshi Kikuchi",
        "email": "toshik@chromium.org",
        "time": "Thu Feb 12 15:02:18 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/genalloc.c: fix the end addr check in addr_in_gen_pool()\n\nSince chunk-\u003eend_addr is (chunk-\u003estart_addr + size - 1), the end address\nto compare should be (start + size - 1).\n\nSigned-off-by: Toshi Kikuchi \u003ctoshik@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af3cd13501eb04ca61d017ff4406f1cbffafdc04",
      "tree": "5db6541c752c18f453fd37d990932fb47cde82fe",
      "parents": [
        "9814ec135dedb70a9daa41e68798d540d7ba71f2"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:15 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/string.c: remove strnicmp()\n\nNow that all in-tree users of strnicmp have been converted to\nstrncasecmp, the wrapper can be removed.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9814ec135dedb70a9daa41e68798d540d7ba71f2",
      "tree": "858d7cf2fda770e3331b33d554bee8f503a6eb27",
      "parents": [
        "f6a1f5db8d7a7a94ff07251996959d27daba4ee7"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:13 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/bitmap.c: make the bits parameter of bitmap_remap unsigned\n\nAlso, rename bits to nbits. Both changes for consistency with other\nbitmap_* functions.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6a1f5db8d7a7a94ff07251996959d27daba4ee7",
      "tree": "60e8d219664966cab66732850ac0e40f9aa5dc5e",
      "parents": [
        "df1d80a9eb16d98002673f68a7ebbe881f6e6946"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:10 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/bitmap.c: simplify bitmap_ord_to_pos\n\nMake the return value and the ord and nbits parameters of\nbitmap_ord_to_pos unsigned.\n\nAlso, simplify the implementation and as a side effect make the result\nfully defined, returning nbits for ord \u003e\u003d weight, in analogy with what\nfind_{first,next}_bit does.  This is a better sentinel than the former\n(\"unofficial\") 0.  No current users are affected by this change.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df1d80a9eb16d98002673f68a7ebbe881f6e6946",
      "tree": "354e5cd242fdd024e258f40460887d231d48e2aa",
      "parents": [
        "b26ad5836c3a0a9d456eb60b9f841ca15403ee59"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:07 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/bitmap.c: simplify bitmap_pos_to_ord\n\nThe ordinal of a set bit is simply the number of set bits before it;\ncounting those doesn\u0027t need to be done one bit at a time.  While at it,\nupdate the parameters to unsigned int.\n\nIt is not completely unthinkable that gcc would see pos as compile-time\nconstant 0 in one of the uses of bitmap_pos_to_ord.  Since the static\ninline frontend bitmap_weight doesn\u0027t handle nbits\u003d\u003d0 correctly (it would\nbehave exactly as if nbits\u003d\u003dBITS_PER_LONG), use __bitmap_weight.\n\nAlternatively, the last line could be spelled bitmap_weight(buf, pos+1)-1,\nbut this is simpler.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b26ad5836c3a0a9d456eb60b9f841ca15403ee59",
      "tree": "74b4b59d18c350bb79481283c8b54440c1aa25c7",
      "parents": [
        "eb5698837881687841c9e477e4162ac3387c6b59"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:04 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/bitmap.c: change parameters of bitmap_fold to unsigned\n\nChange the sz and nbits parameters of bitmap_fold to unsigned int for\nconsistency with other bitmap_* functions, and to save another few bytes\nin the generated code.\n\n[akpm@linux-foundation.org: fix kerneldoc]\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb5698837881687841c9e477e4162ac3387c6b59",
      "tree": "8be5696db7d6ef4e3204d9fdf266ea3fc94084b0",
      "parents": [
        "f5ac1f55204fec9d9c63644bc1de0ab6a59af9f1"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:02:01 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/bitmap.c: update bitmap_onto to unsigned\n\nChange the nbits parameter of bitmap_onto to unsigned int for consistency\nwith other bitmap_* functions.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5ac1f55204fec9d9c63644bc1de0ab6a59af9f1",
      "tree": "fee633dbe52a226f16118cb915263a215febabbb",
      "parents": [
        "33c4fa8c6763f1ba9f4ea64079882eaa6d7957b7"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:59 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "linux/cpumask.h: update bitmap wrappers to take unsigned int\n\nSince the various bitmap_* functions now take an unsigned int as nbits\nparameter, it makes sense to also update the various wrappers, even though\nthey\u0027re marked as obsolete.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33c4fa8c6763f1ba9f4ea64079882eaa6d7957b7",
      "tree": "dd3382197ec8c67b4d920aba6e8662fe5bf1254d",
      "parents": [
        "8b4daad52fee7731ea4bae22a99ece2d4ba7ba43"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:56 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "linux/nodemask.h: update bitmap wrappers to take unsigned int\n\nSince the various bitmap_* functions now take an unsigned int as nbits\nparameter, it makes sense to also update the various wrappers.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b4daad52fee7731ea4bae22a99ece2d4ba7ba43",
      "tree": "b569874e38aca1aeb7aacc5faf75eb21c65ecd3a",
      "parents": [
        "d1214c65c02d503330ce86bd38e344a36599e055"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:53 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:14 2015 -0800"
      },
      "message": "lib/bitmap.c: more signed-\u003eunsigned conversions\n\nFor consistency with the other bitmap_* functions, also make the nbits\nparameter of bitmap_zero, bitmap_fill and bitmap_copy unsigned.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1214c65c02d503330ce86bd38e344a36599e055",
      "tree": "e07829fc569c35be5860b239ad3e9c4e2b28e6cb",
      "parents": [
        "84b9fbedf54a6ea4fba62ef8a167138233586ad3"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:50 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "libstring_helpers.c:string_get_size(): return void\n\nstring_get_size() was documented to return an error, but in fact always\nreturned 0.  Since the output always fits in 9 bytes, just document that\nand let callers do what they do now: pass a small stack buffer and ignore\nthe return value.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84b9fbedf54a6ea4fba62ef8a167138233586ad3",
      "tree": "33e86741e9cab9ef7c66817ce54b3d0b49e36dc5",
      "parents": [
        "7eed8fde021b4e169e325e5f50d9f12320668bf2"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:48 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "lib/string_helpers.c:string_get_size(): use 32 bit arithmetic when possible\n\nThe remainder from do_div is always a u32, and after size has been reduced\nto be below 1000 (or 1024), it certainly fits in u32.  So both remainder\nand sf_cap can be made u32s, the format specifiers can be simplified (%lld\nwasn\u0027t the right thing to use for _unsigned_ long long anyway), and we can\nreplace a do_div with an ordinary 32/32 bit division.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7eed8fde021b4e169e325e5f50d9f12320668bf2",
      "tree": "17b2014d7c97facc7def41b76d173f48a81489d5",
      "parents": [
        "43e5b666cf25516b5c27cd10c47d287dc9d1f376"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:45 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "lib/string_helpers.c:string_get_size(): remove redundant prefixes\n\nWhile commit 3c9f3681d0b4 (\"[SCSI] lib: add generic helper to print\nsizes rounded to the correct SI range\") says that Z and Y are included\nin preparation for 128 bit computers, they just waste .text currently.\nIf and when we get u128, string_get_size needs updating anyway (and ISO\nneeds to come up with four more prefixes).\n\nAlso there\u0027s no need to include and test for the NULL sentinel; once we\nreach \"E\" size is at most 18.  [The test is also wrong; it should be\nunits_str[units][i+1]; if we\u0027ve reached NULL we\u0027re already doomed.]\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43e5b666cf25516b5c27cd10c47d287dc9d1f376",
      "tree": "1347a5fca8c89e284e3548e9059a3e1f6aee1e84",
      "parents": [
        "2aa2f9e21e4eb25c720b2e7d80f8929638f6ad73"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:42 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "lib/vsprintf.c: replace while with do-while in skip_atoi\n\nAll callers of skip_atoi have already checked for the first character\nbeing a digit.  In this case, gcc generates simpler code for a do\nwhile-loop.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Randy Dunlap \u003crdunlap@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2aa2f9e21e4eb25c720b2e7d80f8929638f6ad73",
      "tree": "727a89ea34898d8c0da28c87a1259d079ddcab6a",
      "parents": [
        "ffbfed03b4bdd229b99c2611f5ace1fbc912caaa"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:39 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "lib/vsprintf.c: improve sanity check in vsnprintf()\n\nOn 64 bit, size may very well be huge even if bit 31 happens to be 0.\nSomehow it doesn\u0027t feel right that one can pass a 5 GiB buffer but not a\n3 GiB one.  So cap at INT_MAX as was probably the intention all along.\nThis is also the made-up value passed by sprintf and vsprintf.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Randy Dunlap \u003crdunlap@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ffbfed03b4bdd229b99c2611f5ace1fbc912caaa",
      "tree": "bb3f9fdb1d2d2aff388dd1fb18bde0fdde947744",
      "parents": [
        "205bd3d23e938530cb89ff9e14afda389ac85dc3"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:37 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "lib/vsprintf.c: consume \u0027p\u0027 in format_decode\n\nIt seems a little simpler to consume the p from a %p specifier in\nformat_decode, just as it is done for the surrounding %c, %s and %% cases.\n\nWhile there, delete a redundant and misplaced comment.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Randy Dunlap \u003crdunlap@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "205bd3d23e938530cb89ff9e14afda389ac85dc3",
      "tree": "21d4b9b0c888a5717387ea1b03706fe8c2b9c839",
      "parents": [
        "02f1f2170d2831b3233e91091c60a66622f29e82"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Feb 12 15:01:34 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "printk: correct timeout comment, neaten MODULE_PARM_DESC\n\nNeaten the MODULE_PARAM_DESC message.\nUse 30 seconds in the comment for the zap console locks timeout.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02f1f2170d2831b3233e91091c60a66622f29e82",
      "tree": "6a107ef6615aa9d3c3275b477a4d1b408366a4ad",
      "parents": [
        "4be1b29795d692d512bb67b770665d6f8ea5cb0b"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:01:31 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "kernel.h: remove ancient __FUNCTION__ hack\n\n__FUNCTION__ hasn\u0027t been treated as a string literal since gcc 3.4, so\nthis only helps people who only test-compile using 3.3 (compiler-gcc3.h\nbarks at anything older than that).  Besides, there are almost no\noccurrences of __FUNCTION__ left in the tree.\n\n[akpm@linux-foundation.org: convert remaining __FUNCTION__ references]\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4be1b29795d692d512bb67b770665d6f8ea5cb0b",
      "tree": "7502b10178a0c16f65e7be2aecf583691f78dedf",
      "parents": [
        "545a2bf742fb41f17d03486dd8a8c74ad511dec2"
      ],
      "author": {
        "name": "Cyril Bur",
        "email": "cyrilbur@gmail.com",
        "time": "Thu Feb 12 15:01:28 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "powerpc: add running_clock for powerpc to prevent spurious softlockup warnings\n\nOn POWER8 virtualised kernels the VTB register can be read to have a view\nof time that only increases while the guest is running.  This will prevent\nguests from seeing time jump if a guest is paused for significant amounts\nof time.\n\nOn POWER7 and below virtualised kernels stolen time is subtracted from\nlocal_clock as a best effort approximation.  This will not eliminate\nspurious warnings in the case of a suspended guest but may reduce the\noccurance in the case of softlockups due to host over commit.\n\nBare metal kernels should avoid reading the VTB as KVM does not restore\nsane values when not executing, the approxmation is fine as host kernels\nwon\u0027t observe any stolen time.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cyril Bur \u003ccyrilbur@gmail.com\u003e\nCc: Michael Ellerman \u003cmpe@ellerman.id.au\u003e\nCc: Andrew Jones \u003cdrjones@redhat.com\u003e\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nCc: chai wen \u003cchaiw.fnst@cn.fujitsu.com\u003e\nCc: Fabian Frederick \u003cfabf@skynet.be\u003e\nCc: Aaron Tomlin \u003catomlin@redhat.com\u003e\nCc: Ben Zhang \u003cbenzh@chromium.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "545a2bf742fb41f17d03486dd8a8c74ad511dec2",
      "tree": "f4e73814dd6f4df296e913f2089244759eb33108",
      "parents": [
        "dd4a5c1e6531b9c6ba6ee1f3cb11f0aeea25881e"
      ],
      "author": {
        "name": "Cyril Bur",
        "email": "cyrilbur@gmail.com",
        "time": "Thu Feb 12 15:01:24 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "kernel/sched/clock.c: add another clock for use with the soft lockup watchdog\n\nWhen the hypervisor pauses a virtualised kernel the kernel will observe a\njump in timebase, this can cause spurious messages from the softlockup\ndetector.\n\nWhilst these messages are harmless, they are accompanied with a stack\ntrace which causes undue concern and more problematically the stack trace\nin the guest has nothing to do with the observed problem and can only be\nmisleading.\n\nFuthermore, on POWER8 this is completely avoidable with the introduction\nof the Virtual Time Base (VTB) register.\n\nThis patch (of 2):\n\nThis permits the use of arch specific clocks for which virtualised kernels\ncan use their notion of \u0027running\u0027 time, not the elpased wall time which\nwill include host execution time.\n\nSigned-off-by: Cyril Bur \u003ccyrilbur@gmail.com\u003e\nCc: Michael Ellerman \u003cmpe@ellerman.id.au\u003e\nCc: Andrew Jones \u003cdrjones@redhat.com\u003e\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nCc: chai wen \u003cchaiw.fnst@cn.fujitsu.com\u003e\nCc: Fabian Frederick \u003cfabf@skynet.be\u003e\nCc: Aaron Tomlin \u003catomlin@redhat.com\u003e\nCc: Ben Zhang \u003cbenzh@chromium.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd4a5c1e6531b9c6ba6ee1f3cb11f0aeea25881e",
      "tree": "b58d8fa1997947a95f5470887582f7d08fd42470",
      "parents": [
        "dd10ca6c95600c0c357e724da4e5eb47066e3854"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Thu Feb 12 15:01:22 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "linux/types.h: Always use unsigned long for pgoff_t\n\nEverybody uses unsigned long for pgoff_t, and no one ever overrode the\ndefinition of pgoff_t.  Keep it that way, and remove the option of\noverriding it.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Randy Dunlap \u003crdunlap@infradead.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd10ca6c95600c0c357e724da4e5eb47066e3854",
      "tree": "ee0062d7a622a089e59587e1baf616a2a51bd3d5",
      "parents": [
        "f56141e3e2d9aabf7e6b89680ab572c2cdbb2a24"
      ],
      "author": {
        "name": "Andrey Skvortsov",
        "email": "andrej.skvortzov@gmail.com",
        "time": "Thu Feb 12 15:01:19 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:13 2015 -0800"
      },
      "message": "gitignore: ignore tar-install build directory\n\nHave git ignore the Debian directory created when running:\n     make tar-pkg / targz-pkg / tarbz2-pkg / tarxz-pkg\n\nSigned-off-by: Andrey Skvortsov \u003candrej.skvortzov@gmail.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Boaz Harrosh \u003cboaz@plexistor.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f56141e3e2d9aabf7e6b89680ab572c2cdbb2a24",
      "tree": "481e3d99bc1121ce75d505d340153b9d158e60c5",
      "parents": [
        "edc924e023ae2022fc29f1246e115c610c9abf38"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@amacapital.net",
        "time": "Thu Feb 12 15:01:14 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "all arches, signal: move restart_block to struct task_struct\n\nIf an attacker can cause a controlled kernel stack overflow, overwriting\nthe restart block is a very juicy exploit target.  This is because the\nrestart_block is held in the same memory allocation as the kernel stack.\n\nMoving the restart block to struct task_struct prevents this exploit by\nmaking the restart_block harder to locate.\n\nNote that there are other fields in thread_info that are also easy\ntargets, at least on some architectures.\n\nIt\u0027s also a decent simplification, since the restart code is more or less\nidentical on all architectures.\n\n[james.hogan@imgtec.com: metag: align thread_info::supervisor_stack]\nSigned-off-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Vineet Gupta \u003cvgupta@synopsys.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Steven Miao \u003crealmz6@gmail.com\u003e\nCc: Mark Salter \u003cmsalter@redhat.com\u003e\nCc: Aurelien Jacquiot \u003ca-jacquiot@ti.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Richard Kuo \u003crkuo@codeaurora.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Jonas Bonn \u003cjonas@southpole.se\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Michael Ellerman \u003cmpe@ellerman.id.au\u003e (powerpc)\nTested-by: Michael Ellerman \u003cmpe@ellerman.id.au\u003e (powerpc)\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Chen Liqin \u003cliqin.linux@gmail.com\u003e\nCc: Lennox Wu \u003clennox.wu@gmail.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@ezchip.com\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: Max Filippov \u003cjcmvbkbc@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edc924e023ae2022fc29f1246e115c610c9abf38",
      "tree": "09417a3d57aa78bc11ae8a35d2aca4b0c627db1c",
      "parents": [
        "198d1597cc5a12d04af18b69338a5b1d66ee7020"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Thu Feb 12 15:01:11 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "fs/proc/array.c: convert to use string_escape_str()\n\nInstead of custom approach let\u0027s use string_escape_str() to escape a given\nstring (task_name in this case).\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "198d1597cc5a12d04af18b69338a5b1d66ee7020",
      "tree": "79ae5755cf7f159bf16423fa1c01ac755641f36b",
      "parents": [
        "0c3697118bb4f0991b11dafea038e4457813cae0"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Thu Feb 12 15:01:08 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "fs: proc: task_mmu: show page size in /proc/\u003cpid\u003e/numa_maps\n\nThe output of /proc/$pid/numa_maps is in terms of number of pages like\nanon\u003d22 or dirty\u003d54.  Here\u0027s some output:\n\n  7f4680000000 default file\u003d/hugetlb/bigfile anon\u003d50 dirty\u003d50 N0\u003d50\n  7f7659600000 default file\u003d/anon_hugepage\\040(deleted) anon\u003d50 dirty\u003d50 N0\u003d50\n  7fff8d425000 default stack anon\u003d50 dirty\u003d50 N0\u003d50\n\nLooks like we have a stack and a couple of anonymous hugetlbfs\nareas page which both use the same amount of memory.  They don\u0027t.\n\nThe \u0027bigfile\u0027 uses 1GB pages and takes up ~50GB of space.  The\nanon_hugepage uses 2MB pages and takes up ~100MB of space while the stack\nuses normal 4k pages.  You can go over to smaps to figure out what the\npage size _really_ is with KernelPageSize or MMUPageSize.  But, I think\nthis is a pretty nasty and counterintuitive interface as it stands.\n\nThis patch introduces \u0027kernelpagesize_kB\u0027 line element to\n/proc/\u003cpid\u003e/numa_maps report file in order to help identifying the size of\npages that are backing memory areas mapped by a given task.  This is\nspecially useful to help differentiating between HUGE and GIGANTIC page\nbacked VMAs.\n\nThis patch is based on Dave Hansen\u0027s proposal and reviewer\u0027s follow-ups\ntaken from the following dicussion threads:\n * https://lkml.org/lkml/2011/9/21/454\n * https://lkml.org/lkml/2014/12/20/66\n\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c3697118bb4f0991b11dafea038e4457813cae0",
      "tree": "aeba873b316f0b0630072c612db385e44a53fdc1",
      "parents": [
        "6bee55f94f971ccf87c8c95c10fa1047ade0f122"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Thu Feb 12 15:01:05 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "Documentation/filesystems/proc.txt: add /proc/pid/numa_maps interface explanation snippet\n\nAdd a small section to proc.txt doc in order to document its\n/proc/pid/numa_maps interface.  It does not introduce any functional\nchanges, just documentation.\n\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Dave Hansen \u003cdave.hansen@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": "6bee55f94f971ccf87c8c95c10fa1047ade0f122",
      "tree": "49d17716fbec009664aac95d8e77651f407568c3",
      "parents": [
        "695f055936938c674473ea071ca7359a863551e7"
      ],
      "author": {
        "name": "Alexander Kuleshov",
        "email": "kuleshovmail@gmail.com",
        "time": "Thu Feb 12 15:01:03 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "fs: proc: use PDE() to get proc_dir_entry\n\nUse the PDE() helper to get proc_dir_entry instead of coding it directly.\n\nSigned-off-by: Alexander Kuleshov \u003ckuleshovmail@gmail.com\u003e\nAcked-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "695f055936938c674473ea071ca7359a863551e7",
      "tree": "8975abce255f8d638fa1291beb62803e2d611004",
      "parents": [
        "d170cf4674768db22b66a1be4be7877d3b2c3874"
      ],
      "author": {
        "name": "Petr Cermak",
        "email": "petrcermak@chromium.org",
        "time": "Thu Feb 12 15:01:00 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "fs/proc/task_mmu.c: add user-space support for resetting mm-\u003ehiwater_rss (peak RSS)\n\nPeak resident size of a process can be reset back to the process\u0027s\ncurrent rss value by writing \"5\" to /proc/pid/clear_refs.  The driving\nuse-case for this would be getting the peak RSS value, which can be\nretrieved from the VmHWM field in /proc/pid/status, per benchmark\niteration or test scenario.\n\n[akpm@linux-foundation.org: clarify behaviour in documentation]\nSigned-off-by: Petr Cermak \u003cpetrcermak@chromium.org\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Primiano Tucci \u003cprimiano@chromium.org\u003e\nCc: Petr Cermak \u003cpetrcermak@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d170cf4674768db22b66a1be4be7877d3b2c3874",
      "tree": "787a5221bb7ebb59cfbc3089434333c010343750",
      "parents": [
        "0f050d997e275cf0e47ddc7006284eaa3c6fe049"
      ],
      "author": {
        "name": "Rickard Strandqvist",
        "email": "rickard_strandqvist@spectrumdigital.se",
        "time": "Thu Feb 12 15:00:57 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "arch/frv/mm/extable.c: remove unused function\n\nRemove the function search_one_table() that is not used anywhere.\n\nThis was partially found by using a static code analysis program called\ncppcheck.\n\nSigned-off-by: Rickard Strandqvist \u003crickard_strandqvist@spectrumdigital.se\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f050d997e275cf0e47ddc7006284eaa3c6fe049",
      "tree": "380ee8b8b699a07a6b52c545310a8b4f65f8f6d6",
      "parents": [
        "3eba0c6a56c04f2b017b43641a821f1ebfb7fb4c"
      ],
      "author": {
        "name": "Ganesh Mahendran",
        "email": "opensource.ganesh@gmail.com",
        "time": "Thu Feb 12 15:00:54 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "mm/zsmalloc: add statistics support\n\nKeeping fragmentation of zsmalloc in a low level is our target.  But now\nwe still need to add the debug code in zsmalloc to get the quantitative\ndata.\n\nThis patch adds a new configuration CONFIG_ZSMALLOC_STAT to enable the\nstatistics collection for developers.  Currently only the objects\nstatatitics in each class are collected.  User can get the information via\ndebugfs.\n\n     cat /sys/kernel/debug/zsmalloc/zram0/...\n\nFor example:\n\nAfter I copied \"jdk-8u25-linux-x64.tar.gz\" to zram with ext4 filesystem:\n class  size obj_allocated   obj_used pages_used\n     0    32             0          0          0\n     1    48           256         12          3\n     2    64            64         14          1\n     3    80            51          7          1\n     4    96           128          5          3\n     5   112            73          5          2\n     6   128            32          4          1\n     7   144             0          0          0\n     8   160             0          0          0\n     9   176             0          0          0\n    10   192             0          0          0\n    11   208             0          0          0\n    12   224             0          0          0\n    13   240             0          0          0\n    14   256            16          1          1\n    15   272            15          9          1\n    16   288             0          0          0\n    17   304             0          0          0\n    18   320             0          0          0\n    19   336             0          0          0\n    20   352             0          0          0\n    21   368             0          0          0\n    22   384             0          0          0\n    23   400             0          0          0\n    24   416             0          0          0\n    25   432             0          0          0\n    26   448             0          0          0\n    27   464             0          0          0\n    28   480             0          0          0\n    29   496            33          1          4\n    30   512             0          0          0\n    31   528             0          0          0\n    32   544             0          0          0\n    33   560             0          0          0\n    34   576             0          0          0\n    35   592             0          0          0\n    36   608             0          0          0\n    37   624             0          0          0\n    38   640             0          0          0\n    40   672             0          0          0\n    42   704             0          0          0\n    43   720            17          1          3\n    44   736             0          0          0\n    46   768             0          0          0\n    49   816             0          0          0\n    51   848             0          0          0\n    52   864            14          1          3\n    54   896             0          0          0\n    57   944            13          1          3\n    58   960             0          0          0\n    62  1024             4          1          1\n    66  1088            15          2          4\n    67  1104             0          0          0\n    71  1168             0          0          0\n    74  1216             0          0          0\n    76  1248             0          0          0\n    83  1360             3          1          1\n    91  1488            11          1          4\n    94  1536             0          0          0\n   100  1632             5          1          2\n   107  1744             0          0          0\n   111  1808             9          1          4\n   126  2048             4          4          2\n   144  2336             7          3          4\n   151  2448             0          0          0\n   168  2720            15         15         10\n   190  3072            28         27         21\n   202  3264             0          0          0\n   254  4096         36209      36209      36209\n\n Total               37022      36326      36288\n\nWe can calculate the overall fragentation by the last line:\n    Total               37022      36326      36288\n    (37022 - 36326) / 37022 \u003d 1.87%\n\nAlso by analysing objects alocated in every class we know why we got so\nlow fragmentation: Most of the allocated objects is in \u003cclass 254\u003e.  And\nthere is only 1 page in class 254 zspage.  So, No fragmentation will be\nintroduced by allocating objs in class 254.\n\nAnd in future, we can collect other zsmalloc statistics as we need and\nanalyse them.\n\nSigned-off-by: Ganesh Mahendran \u003copensource.ganesh@gmail.com\u003e\nSuggested-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nCc: Seth Jennings \u003csjennings@variantweb.net\u003e\nCc: Dan Streetman \u003cddstreet@ieee.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eba0c6a56c04f2b017b43641a821f1ebfb7fb4c",
      "tree": "ae8732c7012ccee1573769e2a686eb98df173bca",
      "parents": [
        "ee98016010ae036a5b27300d83bd99ef3fd5776e"
      ],
      "author": {
        "name": "Ganesh Mahendran",
        "email": "opensource.ganesh@gmail.com",
        "time": "Thu Feb 12 15:00:51 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "mm/zpool: add name argument to create zpool\n\nCurrently the underlay of zpool: zsmalloc/zbud, do not know who creates\nthem.  There is not a method to let zsmalloc/zbud find which caller they\nbelong to.\n\nNow we want to add statistics collection in zsmalloc.  We need to name the\ndebugfs dir for each pool created.  The way suggested by Minchan Kim is to\nuse a name passed by caller(such as zram) to create the zsmalloc pool.\n\n    /sys/kernel/debug/zsmalloc/zram0\n\nThis patch adds an argument `name\u0027 to zs_create_pool() and other related\nfunctions.\n\nSigned-off-by: Ganesh Mahendran \u003copensource.ganesh@gmail.com\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Seth Jennings \u003csjennings@variantweb.net\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nCc: Dan Streetman \u003cddstreet@ieee.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee98016010ae036a5b27300d83bd99ef3fd5776e",
      "tree": "baddea4a5c526ff632ebdf7eaed106cb25d5596b",
      "parents": [
        "08eee69fcf6baea543a2b4d2a2fcba0e61aa3160"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Thu Feb 12 15:00:48 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "zram: remove request_queue from struct zram\n\n`struct zram\u0027 contains both `struct gendisk\u0027 and `struct request_queue\u0027.\nthe latter can be deleted, because zram-\u003edisk carries -\u003equeue pointer, and\n-\u003equeue carries zram pointer:\n\ncreate_device()\n\tzram-\u003equeue-\u003equeuedata \u003d zram\n\tzram-\u003edisk-\u003equeue \u003d zram-\u003equeue\n\tzram-\u003edisk-\u003eprivate_data \u003d zram\n\nso zram-\u003equeue is not needed, we can access all necessary data anyway.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08eee69fcf6baea543a2b4d2a2fcba0e61aa3160",
      "tree": "eda2eb79414a825fea6d87f9d0c466b51ea42286",
      "parents": [
        "2b269ce6fcbfafc6cae37254cab4bf2309bfed0e"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Thu Feb 12 15:00:45 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:12 2015 -0800"
      },
      "message": "zram: remove init_lock in zram_make_request\n\nAdmin could reset zram during I/O operation going on so we have used\nzram-\u003einit_lock as read-side lock in I/O path to prevent sudden zram\nmeta freeing.\n\nHowever, the init_lock is really troublesome.  We can\u0027t do call\nzram_meta_alloc under init_lock due to lockdep splat because\nzram_rw_page is one of the function under reclaim path and hold it as\nread_lock while other places in process context hold it as write_lock.\nSo, we have used allocation out of the lock to avoid lockdep warn but\nit\u0027s not good for readability and fainally, I met another lockdep splat\nbetween init_lock and cpu_hotplug from kmem_cache_destroy during working\nzsmalloc compaction.  :(\n\nYes, the ideal is to remove horrible init_lock of zram in rw path.  This\npatch removes it in rw path and instead, add atomic refcount for meta\nlifetime management and completion to free meta in process context.\nIt\u0027s important to free meta in process context because some of resource\ndestruction needs mutex lock, which could be held if we releases the\nresource in reclaim context so it\u0027s deadlock, again.\n\nAs a bonus, we could remove init_done check in rw path because\nzram_meta_get will do a role for it, instead.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Ganesh Mahendran \u003copensource.ganesh@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": "2b269ce6fcbfafc6cae37254cab4bf2309bfed0e",
      "tree": "298da9fc613e5f7933e7697bbee003ecaafa02fa",
      "parents": [
        "a096cafc31862c54da0b56c8441dc14023437008"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Thu Feb 12 15:00:42 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "zram: check bd_openers instead of bd_holders\n\nbd_holders is increased only when user open the device file as FMODE_EXCL\nso if something opens zram0 as !FMODE_EXCL and request I/O while another\nuser reset zram0, we can see following warning.\n\n  zram0: detected capacity change from 0 to 64424509440\n  Buffer I/O error on dev zram0, logical block 180823, lost async page write\n  Buffer I/O error on dev zram0, logical block 180824, lost async page write\n  Buffer I/O error on dev zram0, logical block 180825, lost async page write\n  Buffer I/O error on dev zram0, logical block 180826, lost async page write\n  Buffer I/O error on dev zram0, logical block 180827, lost async page write\n  Buffer I/O error on dev zram0, logical block 180828, lost async page write\n  Buffer I/O error on dev zram0, logical block 180829, lost async page write\n  Buffer I/O error on dev zram0, logical block 180830, lost async page write\n  Buffer I/O error on dev zram0, logical block 180831, lost async page write\n  Buffer I/O error on dev zram0, logical block 180832, lost async page write\n  ------------[ cut here ]------------\n  WARNING: CPU: 11 PID: 1996 at fs/block_dev.c:57 __blkdev_put+0x1d7/0x210()\n  Modules linked in:\n  CPU: 11 PID: 1996 Comm: dd Not tainted 3.19.0-rc6-next-20150202+ #1125\n  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011\n  Call Trace:\n    dump_stack+0x45/0x57\n    warn_slowpath_common+0x8a/0xc0\n    warn_slowpath_null+0x1a/0x20\n    __blkdev_put+0x1d7/0x210\n    blkdev_put+0x50/0x130\n    blkdev_close+0x25/0x30\n    __fput+0xdf/0x1e0\n    ____fput+0xe/0x10\n    task_work_run+0xa7/0xe0\n    do_notify_resume+0x49/0x60\n    int_signal+0x12/0x17\n  ---[ end trace 274fbbc5664827d2 ]---\n\nThe warning comes from bdev_write_node in blkdev_put path.\n\n   static void bdev_write_inode(struct inode *inode)\n   {\n        spin_lock(\u0026inode-\u003ei_lock);\n        while (inode-\u003ei_state \u0026 I_DIRTY) {\n                spin_unlock(\u0026inode-\u003ei_lock);\n                WARN_ON_ONCE(write_inode_now(inode, true)); \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d here.\n                spin_lock(\u0026inode-\u003ei_lock);\n        }\n        spin_unlock(\u0026inode-\u003ei_lock);\n   }\n\nThe reason is dd process encounters I/O fails due to sudden block device\ndisappear so in filemap_check_errors in __writeback_single_inode returns\n-EIO.\n\nIf we check bd_openers instead of bd_holders, we could address the\nproblem.  When I see the brd, it already have used it rather than\nbd_holders so although I\u0027m not a expert of block layer, it seems to be\nbetter.\n\nI can make following warning with below simple script.  In addition, I\nadded msleep(2000) below set_capacity(zram-\u003edisk, 0) after applying your\npatch to make window huge(Kudos to Ganesh!)\n\nscript:\n\n   echo $((60\u003c\u003c30)) \u003e /sys/block/zram0/disksize\n   setsid dd if\u003d/dev/zero of\u003d/dev/zram0 \u0026\n   sleep 1\n   setsid echo 1 \u003e /sys/block/zram0/reset\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Ganesh Mahendran \u003copensource.ganesh@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": "a096cafc31862c54da0b56c8441dc14023437008",
      "tree": "e79e5326429f2c91b180091e114b11ec8f2eaf39",
      "parents": [
        "ba6b17d68c8e3aa8d55d0474299cb931965c5ea5"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Thu Feb 12 15:00:39 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "zram: rework reset and destroy path\n\nWe need to return set_capacity(disk, 0) from reset_store() back to\nzram_reset_device(), a catch by Ganesh Mahendran.  Potentially, we can\nrace set_capacity() calls from init and reset paths.\n\nThe problem is that zram_reset_device() is also getting called from\nzram_exit(), which performs operations in misleading reversed order -- we\nfirst create_device() and then init it, while zram_exit() perform\ndestroy_device() first and then does zram_reset_device().  This is done to\nremove sysfs group before we reset device, so we can continue with device\nreset/destruction not being raced by sysfs attr write (f.e.  disksize).\n\nApart from that, destroy_device() releases zram-\u003edisk (but we still have\n-\u003edisk pointer), so we cannot acces zram-\u003edisk in later\nzram_reset_device() call, which may cause additional errors in the future.\n\nSo, this patch rework and cleanup destroy path.\n\n1) remove several unneeded goto labels in zram_init()\n\n2) factor out zram_init() error path and zram_exit() into\n   destroy_devices() function, which takes the number of devices to\n   destroy as its argument.\n\n3) remove sysfs group in destroy_devices() first, so we can reorder\n   operations -- reset device (as expected) goes before disk destroy and\n   queue cleanup.  So we can always access -\u003edisk in zram_reset_device().\n\n4) and, finally, return set_capacity() back under -\u003einit_lock.\n\n[akpm@linux-foundation.org: tweak comment]\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Ganesh Mahendran \u003copensource.ganesh@gmail.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba6b17d68c8e3aa8d55d0474299cb931965c5ea5",
      "tree": "3130712f638e8158e7b5f985cec46189564fc935",
      "parents": [
        "1fec117281d9f5349c35279c9521f4096fa33357"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Thu Feb 12 15:00:36 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "zram: fix umount-reset_store-mount race condition\n\nGanesh Mahendran was the first one who proposed to use bdev-\u003ebd_mutex to\navoid -\u003ebd_holders race condition:\n\n        CPU0                            CPU1\numount /* zram-\u003einit_done is true */\nreset_store()\nbdev-\u003ebd_holders \u003d\u003d 0                   mount\n...                                     zram_make_request()\nzram_reset_device()\n\nHowever, his solution required some considerable amount of code movement,\nwhich we can avoid.\n\nApart from using bdev-\u003ebd_mutex in reset_store(), this patch also\nsimplifies zram_reset_device().\n\nzram_reset_device() has a bool parameter reset_capacity which tells it\nwhether disk capacity and itself disk should be reset.  There are two\nzram_reset_device() callers:\n\n-- zram_exit() passes reset_capacity\u003dfalse\n-- reset_store() passes reset_capacity\u003dtrue\n\nSo we can move reset_capacity-sensitive work out of zram_reset_device()\nand perform it unconditionally in reset_store().  This also lets us drop\nreset_capacity parameter from zram_reset_device() and pass zram pointer\nonly.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Ganesh Mahendran \u003copensource.ganesh@gmail.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fec117281d9f5349c35279c9521f4096fa33357",
      "tree": "a762dbcc0aa1a396a6d7ef8a7e6b2897ab35d8ea",
      "parents": [
        "b8179958327a1f513efca095ba782a1986c7c4fb"
      ],
      "author": {
        "name": "Ganesh Mahendran",
        "email": "opensource.ganesh@gmail.com",
        "time": "Thu Feb 12 15:00:33 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "zram: free meta table in zram_meta_free\n\nzram_meta_alloc() and zram_meta_free() are a pair.  In\nzram_meta_alloc(), meta table is allocated.  So it it better to free it\nin zram_meta_free().\n\nSigned-off-by: Ganesh Mahendran \u003copensource.ganesh@gmail.com\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8179958327a1f513efca095ba782a1986c7c4fb",
      "tree": "134afec269a887efefcc834960b273018a8ccf76",
      "parents": [
        "ff59909a077b3c51c168cb658601c6b63136a347"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Thu Feb 12 15:00:31 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "zram: clean up zram_meta_alloc()\n\nA trivial cleanup of zram_meta_alloc() error handling.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff59909a077b3c51c168cb658601c6b63136a347",
      "tree": "fdd8e3279f54c3458789592306b93bcb637cef8e",
      "parents": [
        "9ab3b598d2dfbdb0153ffa7e4b1456bbff59a25d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Feb 12 15:00:28 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "mm: fix negative nr_isolated counts\n\nThe vmstat interfaces are good at hiding negative counts (at least when\nCONFIG_SMP); but if you peer behind the curtain, you find that\nnr_isolated_anon and nr_isolated_file soon go negative, and grow ever\nmore negative: so they can absorb larger and larger numbers of isolated\npages, yet still appear to be zero.\n\nI\u0027m happy to avoid a congestion_wait() when too_many_isolated() myself;\nbut I guess it\u0027s there for a good reason, in which case we ought to get\ntoo_many_isolated() working again.\n\nThe imbalance comes from isolate_migratepages()\u0027s ISOLATE_ABORT case:\nputback_movable_pages() decrements the NR_ISOLATED counts, but we forgot\nto call acct_isolated() to increment them.\n\nIt is possible that the bug whcih this patch fixes could cause OOM kills\nwhen the system still has a lot of reclaimable page cache.\n\nFixes: edc2ca612496 (\"mm, compaction: move pageblock checks up from isolate_migratepages_range()\")\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nAcked-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.18+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ab3b598d2dfbdb0153ffa7e4b1456bbff59a25d",
      "tree": "5eea7682b59e69f24c91b0606f7b4760fb6621a9",
      "parents": [
        "84109e15ddc8fe00c832d5228ca2aedf95d13b97"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Thu Feb 12 15:00:25 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()\n\nA race condition starts to be visible in recent mmotm, where a PG_hwpoison\nflag is set on a migration source page *before* it\u0027s back in buddy page\npoo\u003d l.\n\nThis is problematic because no page flag is supposed to be set when\nfreeing (see __free_one_page().) So the user-visible effect of this race\nis that it could trigger the BUG_ON() when soft-offlining is called.\n\nThe root cause is that we call lru_add_drain_all() to make sure that the\npage is in buddy, but that doesn\u0027t work because this function just\nschedule\u003d s a work item and doesn\u0027t wait its completion.\ndrain_all_pages() does drainin\u003d g directly, so simply dropping\nlru_add_drain_all() solves this problem.\n\nFixes: f15bdfa802bf (\"mm/memory-failure.c: fix memory leak in successful soft offlining\")\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.11+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84109e15ddc8fe00c832d5228ca2aedf95d13b97",
      "tree": "649c39b06d214fa471c4eed636ee31583b97ddde",
      "parents": [
        "9cb12d7b4ccaa976f97ce0c5fd0f1b6a83bc2a75"
      ],
      "author": {
        "name": "Yaowei Bai",
        "email": "bywxiaobai@163.com",
        "time": "Thu Feb 12 15:00:22 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "mm/page_alloc: fix comment\n\nAdd a necessary \u0027leave\u0027.\n\nSigned-off-by: Yaowei Bai \u003cbywxiaobai@163.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cb12d7b4ccaa976f97ce0c5fd0f1b6a83bc2a75",
      "tree": "e0a8e02b5cb9296e057f68b4cb8a53398345e189",
      "parents": [
        "8f4ab07f4bf1b1069c01b7c6758a7d444406996b"
      ],
      "author": {
        "name": "Grazvydas Ignotas",
        "email": "notasas@gmail.com",
        "time": "Thu Feb 12 15:00:19 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "mm/memory.c: actually remap enough memory\n\nFor whatever reason, generic_access_phys() only remaps one page, but\nactually allows to access arbitrary size.  It\u0027s quite easy to trigger\nlarge reads, like printing out large structure with gdb, which leads to a\ncrash.  Fix it by remapping correct size.\n\nFixes: 28b2ee20c7cb (\"access_process_vm device memory infrastructure\")\nSigned-off-by: Grazvydas Ignotas \u003cnotasas@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\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": "8f4ab07f4bf1b1069c01b7c6758a7d444406996b",
      "tree": "7cff8907086e2a08c45d355c2365b2e59687d9f0",
      "parents": [
        "194e81512063e96763025a990f841f5ab24815ee"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:00:16 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "kernel/cpuset.c: Mark cpuset_init_current_mems_allowed as __init\n\nThe only caller of cpuset_init_current_mems_allowed is the __init\nannotated build_all_zonelists_init, so we can also make the former __init.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vishnu Pratap Singh \u003cvishnu.ps@samsung.com\u003e\nCc: Pintu Kumar \u003cpintu.k@samsung.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Li Zefan \u003clizefan@huawei.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": "194e81512063e96763025a990f841f5ab24815ee",
      "tree": "1426ce703bc786f49fc7df2e41cfaa8ac667c6db",
      "parents": [
        "0e2342c709aa568b90cde3387d6e588ca862a0ba"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:00:12 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "mm/mm_init.c: mark mminit_loglevel __meminitdata\n\nmminit_loglevel is only referenced from __init and __meminit functions, so\nwe can mark it __meminitdata.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vishnu Pratap Singh \u003cvishnu.ps@samsung.com\u003e\nCc: Pintu Kumar \u003cpintu.k@samsung.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Li Zefan \u003clizefan@huawei.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": "0e2342c709aa568b90cde3387d6e588ca862a0ba",
      "tree": "7bea0415a74e601b44355b2c2d5418a92932428c",
      "parents": [
        "061f67bc4d053e03970a268fca99a55b6859f301"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:00:09 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "mm/mm_init.c: park mminit_verify_zonelist as __init\n\nThe only caller of mminit_verify_zonelist is build_all_zonelists_init,\nwhich is annotated with __init, so it should be safe to also mark the\nformer as __init, saving ~400 bytes of .text.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vishnu Pratap Singh \u003cvishnu.ps@samsung.com\u003e\nCc: Pintu Kumar \u003cpintu.k@samsung.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Li Zefan \u003clizefan@huawei.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": "061f67bc4d053e03970a268fca99a55b6859f301",
      "tree": "b49640e6d1ed55abffa5b178884556dc1305f1cf",
      "parents": [
        "fc5199d1a9c9ed14e22651d0fd3b10c79e7e1f6d"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:00:06 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:11 2015 -0800"
      },
      "message": "mm/page_alloc.c: pull out init code from build_all_zonelists\n\nPulling the code protected by if (system_state \u003d\u003d SYSTEM_BOOTING) into\nits own helper allows us to shrink .text a little. This relies on\nbuild_all_zonelists already having a __ref annotation. Add a comment\nexplaining why so one doesn\u0027t have to track it down through git log.\n\nThe real saving comes in 3/5, (\"mm/mm_init.c: Mark mminit_verify_zonelist\nas __init\"), where we save about 400 bytes\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vishnu Pratap Singh \u003cvishnu.ps@samsung.com\u003e\nCc: Pintu Kumar \u003cpintu.k@samsung.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Li Zefan \u003clizefan@huawei.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": "fc5199d1a9c9ed14e22651d0fd3b10c79e7e1f6d",
      "tree": "cb45d3ab7e8a92eabe4141402964f2a9b71c7624",
      "parents": [
        "2d2f5119b8bb057595e18f5b2f07aa097ea1b233"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Thu Feb 12 15:00:02 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "mm/internal.h: don\u0027t split printk call in two\n\nAll users of mminit_dprintk pass a compile-time constant as level, so this\njust makes gcc emit a single printk call instead of two.\n\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vishnu Pratap Singh \u003cvishnu.ps@samsung.com\u003e\nCc: Pintu Kumar \u003cpintu.k@samsung.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Li Zefan \u003clizefan@huawei.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": "2d2f5119b8bb057595e18f5b2f07aa097ea1b233",
      "tree": "60d98464937b95ad2f68220251c998dfe461830b",
      "parents": [
        "f48b80a5e22200347e91f96b8b237b24b93c7192"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Feb 12 14:59:59 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "mm: do not use mm-\u003enr_pmds on !MMU configurations\n\nmm-\u003enr_pmds doesn\u0027t make sense on !MMU configurations\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f48b80a5e22200347e91f96b8b237b24b93c7192",
      "tree": "d28d2e0915a135cb2cecc3dd144e99d98327b37c",
      "parents": [
        "932ff6bbbdcadd85b309ef4fd59d4d8a77329b8b"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:56 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "memcg: cleanup static keys decrement\n\nMove memcg_socket_limit_enabled decrement to tcp_destroy_cgroup (called\nfrom memcg_destroy_kmem -\u003e mem_cgroup_sockets_destroy) and zap a bunch of\nwrapper functions.\n\nAlthough this patch moves static keys decrement from __mem_cgroup_free to\nmem_cgroup_css_free, it does not introduce any functional changes, because\nthe keys are incremented on setting the limit (tcp or kmem), which can\nonly happen after successful mem_cgroup_css_online.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujtisu.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "932ff6bbbdcadd85b309ef4fd59d4d8a77329b8b",
      "tree": "64a820151120a58e822a987e91aba65b1a46c2c2",
      "parents": [
        "372549c2a3778fd3df445819811c944ad54609ca"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "iamjoonsoo.kim@lge.com",
        "time": "Thu Feb 12 14:59:53 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "mm/compaction: stop the isolation when we isolate enough freepage\n\nCurrently, freepage isolation in one pageblock doesn\u0027t consider how many\nfreepages we isolate. When I traced flow of compaction, compaction\nsometimes isolates more than 256 freepages to migrate just 32 pages.\n\nIn this patch, freepage isolation is stopped at the point that we\nhave more isolated freepage than isolated page for migration. This\nresults in slowing down free page scanner and make compaction success\nrate higher.\n\nstress-highalloc test in mmtests with non movable order 7 allocation shows\nincrease of compaction success rate.\n\nCompaction success rate (Compaction success * 100 / Compaction stalls, %)\n27.13 : 31.82\n\npfn where both scanners meets on compaction complete\n(separate test due to enormous tracepoint buffer)\n(zone_start\u003d4096, zone_end\u003d1048576)\n586034 : 654378\n\nIn fact, I didn\u0027t fully understand why this patch results in such good\nresult. There was a guess that not used freepages are released to pcp list\nand on next compaction trial we won\u0027t isolate them again so compaction\nsuccess rate would decrease. To prevent this effect, I tested with adding\npcp drain code on release_freepages(), but, it has no good effect.\n\nAnyway, this patch reduces waste time to isolate unneeded freepages so\nseems reasonable.\n\nVlastimil said:\n\n: I briefly tried it on top of the pivot-changing series and with order-9\n: allocations it reduced free page scanned counter by almost 10%.  No effect\n: on success rates (maybe because pivot changing already took care of the\n: scanners meeting problem) but the scanning reduction is good on its own.\n:\n: It also explains why e14c720efdd7 (\"mm, compaction: remember position\n: within pageblock in free pages scanner\") had less than expected\n: improvements.  It would only actually stop within pageblock in case of\n: async compaction detecting contention.  I guess that\u0027s also why the\n: infinite loop problem fixed by 1d5bfe1ffb5b affected so relatively few\n: people.\n\nSigned-off-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nTested-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nReviewed-by: Zhang Yanfei \u003czhangyanfei@cn.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.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": "372549c2a3778fd3df445819811c944ad54609ca",
      "tree": "c42aa8ec37e65a8dfcea4b23cd7b7516aa66dedd",
      "parents": [
        "d6e0b7fa11862433773d986b5f995ffdf47ce672"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "iamjoonsoo.kim@lge.com",
        "time": "Thu Feb 12 14:59:50 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "mm/compaction: fix wrong order check in compact_finished()\n\nWhat we want to check here is whether there is highorder freepage in buddy\nlist of other migratetype in order to steal it without fragmentation.\nBut, current code just checks cc-\u003eorder which means allocation request\norder.  So, this is wrong.\n\nWithout this fix, non-movable synchronous compaction below pageblock order\nwould not stopped until compaction is complete, because migratetype of\nmost pageblocks are movable and high order freepage made by compaction is\nusually on movable type buddy list.\n\nThere is some report related to this bug. See below link.\n\n  http://www.spinics.net/lists/linux-mm/msg81666.html\n\nAlthough the issued system still has load spike comes from compaction,\nthis makes that system completely stable and responsive according to his\nreport.\n\nstress-highalloc test in mmtests with non movable order 7 allocation\ndoesn\u0027t show any notable difference in allocation success rate, but, it\nshows more compaction success rate.\n\nCompaction success rate (Compaction success * 100 / Compaction stalls, %)\n18.47 : 28.94\n\nFixes: 1fb3f8ca0e92 (\"mm: compaction: capture a suitable high-order page immediately when it is made available\")\nSigned-off-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nReviewed-by: Zhang Yanfei \u003czhangyanfei@cn.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.7+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6e0b7fa11862433773d986b5f995ffdf47ce672",
      "tree": "031830bb978d8861c3089941480de8effe9ccc6a",
      "parents": [
        "ce3712d74d8ed531a9fd0fbb711ff8fefbacdd9f"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:47 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "slub: make dead caches discard free slabs immediately\n\nTo speed up further allocations SLUB may store empty slabs in per cpu/node\npartial lists instead of freeing them immediately.  This prevents per\nmemcg caches destruction, because kmem caches created for a memory cgroup\nare only destroyed after the last page charged to the cgroup is freed.\n\nTo fix this issue, this patch resurrects approach first proposed in [1].\nIt forbids SLUB to cache empty slabs after the memory cgroup that the\ncache belongs to was destroyed.  It is achieved by setting kmem_cache\u0027s\ncpu_partial and min_partial constants to 0 and tuning put_cpu_partial() so\nthat it would drop frozen empty slabs immediately if cpu_partial \u003d 0.\n\nThe runtime overhead is minimal.  From all the hot functions, we only\ntouch relatively cold put_cpu_partial(): we make it call\nunfreeze_partials() after freezing a slab that belongs to an offline\nmemory cgroup.  Since slab freezing exists to avoid moving slabs from/to a\npartial list on free/alloc, and there can\u0027t be allocations from dead\ncaches, it shouldn\u0027t cause any overhead.  We do have to disable preemption\nfor put_cpu_partial() to achieve that though.\n\nThe original patch was accepted well and even merged to the mm tree.\nHowever, I decided to withdraw it due to changes happening to the memcg\ncore at that time.  I had an idea of introducing per-memcg shrinkers for\nkmem caches, but now, as memcg has finally settled down, I do not see it\nas an option, because SLUB shrinker would be too costly to call since SLUB\ndoes not keep free slabs on a separate list.  Besides, we currently do not\neven call per-memcg shrinkers for offline memcgs.  Overall, it would\nintroduce much more complexity to both SLUB and memcg than this small\npatch.\n\nRegarding to SLAB, there\u0027s no problem with it, because it shrinks\nper-cpu/node caches periodically.  Thanks to list_lru reparenting, we no\nlonger keep entries for offline cgroups in per-memcg arrays (such as\nmemcg_cache_params-\u003ememcg_caches), so we do not have to bother if a\nper-memcg cache will be shrunk a bit later than it could be.\n\n[1] http://thread.gmane.org/gmane.linux.kernel.mm/118649/focus\u003d118650\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce3712d74d8ed531a9fd0fbb711ff8fefbacdd9f",
      "tree": "ea28f9bef6a3eccd26a696a6c1254c358a01b2a9",
      "parents": [
        "832f37f5d5f5c7281880c21eb09508750b67f540"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:44 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "slub: fix kmem_cache_shrink return value\n\nIt is supposed to return 0 if the cache has no remaining objects and 1\notherwise, while currently it always returns 0.  Fix it.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "832f37f5d5f5c7281880c21eb09508750b67f540",
      "tree": "9d0102615b2169659d156f633ba7a304ad27e590",
      "parents": [
        "2788cf0c401c268b4819c5407493a8769b7007aa"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:41 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "slub: never fail to shrink cache\n\nSLUB\u0027s version of __kmem_cache_shrink() not only removes empty slabs, but\nalso tries to rearrange the partial lists to place slabs filled up most to\nthe head to cope with fragmentation.  To achieve that, it allocates a\ntemporary array of lists used to sort slabs by the number of objects in\nuse.  If the allocation fails, the whole procedure is aborted.\n\nThis is unacceptable for the kernel memory accounting extension of the\nmemory cgroup, where we want to make sure that kmem_cache_shrink()\nsuccessfully discarded empty slabs.  Although the allocation failure is\nutterly unlikely with the current page allocator implementation, which\nretries GFP_KERNEL allocations of order \u003c\u003d 2 infinitely, it is better not\nto rely on that.\n\nThis patch therefore makes __kmem_cache_shrink() allocate the array on\nstack instead of calling kmalloc, which may fail.  The array size is\nchosen to be equal to 32, because most SLUB caches store not more than 32\nobjects per slab page.  Slab pages with \u003c\u003d 32 free objects are sorted\nusing the array by the number of objects in use and promoted to the head\nof the partial list, while slab pages with \u003e 32 free objects are left in\nthe end of the list without any ordering imposed on them.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2788cf0c401c268b4819c5407493a8769b7007aa",
      "tree": "863ea244d6908bd6e8149e6cd81270389a9426a8",
      "parents": [
        "3f97b163207c67a3b35931494ad3db1de66356f0"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:38 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "memcg: reparent list_lrus and free kmemcg_id on css offline\n\nNow, the only reason to keep kmemcg_id till css free is list_lru, which\nuses it to distribute elements between per-memcg lists.  However, it can\nbe easily sorted out - we only need to change kmemcg_id of an offline\ncgroup to its parent\u0027s id, making further list_lru_add()\u0027s add elements to\nthe parent\u0027s list, and then move all elements from the offline cgroup\u0027s\nlist to the one of its parent.  It will work, because a racing\nlist_lru_del() does not need to know the list it is deleting the element\nfrom.  It can decrement the wrong nr_items counter though, but the ongoing\nreparenting will fix it.  After list_lru reparenting is done we are free\nto release kmemcg_id saving a valuable slot in a per-memcg array for new\ncgroups.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f97b163207c67a3b35931494ad3db1de66356f0",
      "tree": "012012aafb687ebfb7e794e2bcd0c1728212fafc",
      "parents": [
        "2a4db7eb9391a544ff58f4fa11d35246e87c87af"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:35 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "list_lru: add helpers to isolate items\n\nCurrently, the isolate callback passed to the list_lru_walk family of\nfunctions is supposed to just delete an item from the list upon returning\nLRU_REMOVED or LRU_REMOVED_RETRY, while nr_items counter is fixed by\n__list_lru_walk_one after the callback returns.  Since the callback is\nallowed to drop the lock after removing an item (it has to return\nLRU_REMOVED_RETRY then), the nr_items can be less than the actual number\nof elements on the list even if we check them under the lock.  This makes\nit difficult to move items from one list_lru_one to another, which is\nrequired for per-memcg list_lru reparenting - we can\u0027t just splice the\nlists, we have to move entries one by one.\n\nThis patch therefore introduces helpers that must be used by callback\nfunctions to isolate items instead of raw list_del/list_move.  These are\nlist_lru_isolate and list_lru_isolate_move.  They not only remove the\nentry from the list, but also fix the nr_items counter, making sure\nnr_items always reflects the actual number of elements on the list if\nchecked under the appropriate lock.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a4db7eb9391a544ff58f4fa11d35246e87c87af",
      "tree": "3bbd57297a8303ffa227d6ea5600d2593a0302f4",
      "parents": [
        "f1008365bbe4931d6a94dcfc11cf4cdada359664"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:32 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:10 2015 -0800"
      },
      "message": "memcg: free memcg_caches slot on css offline\n\nWe need to look up a kmem_cache in -\u003ememcg_params.memcg_caches arrays only\non allocations, so there is no need to have the array entries set until\ncss free - we can clear them on css offline.  This will allow us to reuse\narray entries more efficiently and avoid costly array relocations.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1008365bbe4931d6a94dcfc11cf4cdada359664",
      "tree": "b82f2b1fcb57d1680b8f5c223c41a98fee4c96ce",
      "parents": [
        "01e586598b224d1a427acd8a7afa0b21e879d3a7"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:29 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "slab: use css id for naming per memcg caches\n\nCurrently, we use mem_cgroup-\u003ekmemcg_id to guarantee kmem_cache-\u003ename\nuniqueness.  This is correct, because kmemcg_id is only released on css\nfree after destroying all per memcg caches.\n\nHowever, I am going to change that and release kmemcg_id on css offline,\nbecause it is not wise to keep it for so long, wasting valuable entries of\nmemcg_cache_params-\u003ememcg_caches arrays.  Therefore, to preserve cache\nname uniqueness, let us switch to css-\u003eid.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01e586598b224d1a427acd8a7afa0b21e879d3a7",
      "tree": "cf53ecf130f08a453f3a70963dd3fd6741fee449",
      "parents": [
        "426589f571f7d6d5ab2ca33ece73164149279ca1"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:26 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "cgroup: release css-\u003eid after css_free\n\nCurrently, we release css-\u003eid in css_release_work_fn, right before calling\ncss_free callback, so that when css_free is called, the id may have\nalready been reused for a new cgroup.\n\nI am going to use css-\u003eid to create unique names for per memcg kmem\ncaches.  Since kmem caches are destroyed only on css_free, I need css-\u003eid\nto be freed after css_free was called to avoid name clashes.  This patch\ntherefore moves css-\u003eid removal to css_free_work_fn.  To prevent\ncss_from_id from returning a pointer to a stale css, it makes\ncss_release_work_fn replace the css ptr at css_idr:css-\u003eid with NULL.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "426589f571f7d6d5ab2ca33ece73164149279ca1",
      "tree": "9b9c94fad5bd7bb8330d8c9b4c510479b75c5588",
      "parents": [
        "f7ce3190c4a35bf887adb7a1aa1ba899b679872d"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:23 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "slab: link memcg caches of the same kind into a list\n\nSometimes, we need to iterate over all memcg copies of a particular root\nkmem cache.  Currently, we use memcg_cache_params-\u003ememcg_caches array for\nthat, because it contains all existing memcg caches.\n\nHowever, it\u0027s a bad practice to keep all caches, including those that\nbelong to offline cgroups, in this array, because it will be growing\nbeyond any bounds then.  I\u0027m going to wipe away dead caches from it to\nsave space.  To still be able to perform iterations over all memcg caches\nof the same kind, let us link them into a list.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7ce3190c4a35bf887adb7a1aa1ba899b679872d",
      "tree": "8a40d93f1e796e1007d59e67541ce3044430b927",
      "parents": [
        "49e7e7ff8d551b5b1e2f8da8497b9058cfa25672"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:20 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "slab: embed memcg_cache_params to kmem_cache\n\nCurrently, kmem_cache stores a pointer to struct memcg_cache_params\ninstead of embedding it.  The rationale is to save memory when kmem\naccounting is disabled.  However, the memcg_cache_params has shrivelled\ndrastically since it was first introduced:\n\n* Initially:\n\nstruct memcg_cache_params {\n\tbool is_root_cache;\n\tunion {\n\t\tstruct kmem_cache *memcg_caches[0];\n\t\tstruct {\n\t\t\tstruct mem_cgroup *memcg;\n\t\t\tstruct list_head list;\n\t\t\tstruct kmem_cache *root_cache;\n\t\t\tbool dead;\n\t\t\tatomic_t nr_pages;\n\t\t\tstruct work_struct destroy;\n\t\t};\n\t};\n};\n\n* Now:\n\nstruct memcg_cache_params {\n\tbool is_root_cache;\n\tunion {\n\t\tstruct {\n\t\t\tstruct rcu_head rcu_head;\n\t\t\tstruct kmem_cache *memcg_caches[0];\n\t\t};\n\t\tstruct {\n\t\t\tstruct mem_cgroup *memcg;\n\t\t\tstruct kmem_cache *root_cache;\n\t\t};\n\t};\n};\n\nSo the memory saving does not seem to be a clear win anymore.\n\nOTOH, keeping a pointer to memcg_cache_params struct instead of embedding\nit results in touching one more cache line on kmem alloc/free hot paths.\nBesides, it makes linking kmem caches in a list chained by a field of\nstruct memcg_cache_params really painful due to a level of indirection,\nwhile I want to make them linked in the following patch.  That said, let\nus embed it.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49e7e7ff8d551b5b1e2f8da8497b9058cfa25672",
      "tree": "aa671bba976ba7bc0837785a49d5d83c5fc99c98",
      "parents": [
        "2acb60a0461fec8a4516686c913a295ce872697f"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:17 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "fs: shrinker: always scan at least one object of each type\n\nIn super_cache_scan() we divide the number of objects of particular type\nby the total number of objects in order to distribute pressure among As a\nresult, in some corner cases we can get nr_to_scan\u003d0 even if there are\nsome objects to reclaim, e.g.  dentries\u003d1, inodes\u003d1, fs_objects\u003d1,\nnr_to_scan\u003d1/3\u003d0.\n\nThis is unacceptable for per memcg kmem accounting, because this means\nthat some objects may never get reclaimed after memcg death, preventing it\nfrom being freed.\n\nThis patch therefore assures that super_cache_scan() will scan at least\none object of each type if any.\n\n[akpm@linux-foundation.org: add comment]\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2acb60a0461fec8a4516686c913a295ce872697f",
      "tree": "aa4e36d78f28e5164041e861064db101405659e4",
      "parents": [
        "60d3fd32a7a9da4c8c93a9f89cfda22a0b4c65ce"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:14 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "fs: make shrinker memcg aware\n\nNow, to make any list_lru-based shrinker memcg aware we should only\ninitialize its list_lru as memcg aware.  Let\u0027s do it for the general FS\nshrinker (super_block::s_shrink).\n\nThere are other FS-specific shrinkers that use list_lru for storing\nobjects, such as XFS and GFS2 dquot cache shrinkers, but since they\nreclaim objects that are shared among different cgroups, there is no point\nmaking them memcg aware.  It\u0027s a big question whether we should account\nthem to memcg at all.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Glauber Costa \u003cglommer@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.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": "60d3fd32a7a9da4c8c93a9f89cfda22a0b4c65ce",
      "tree": "47de9f3f0e48ecc9f416b5a40fac6f6e1c97395e",
      "parents": [
        "c0a5b560938a0f2fd2fbf66ddc446c7c2b41383a"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:10 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "list_lru: introduce per-memcg lists\n\nThere are several FS shrinkers, including super_block::s_shrink, that\nkeep reclaimable objects in the list_lru structure.  Hence to turn them\nto memcg-aware shrinkers, it is enough to make list_lru per-memcg.\n\nThis patch does the trick.  It adds an array of lru lists to the\nlist_lru_node structure (per-node part of the list_lru), one for each\nkmem-active memcg, and dispatches every item addition or removal to the\nlist corresponding to the memcg which the item is accounted to.  So now\nthe list_lru structure is not just per node, but per node and per memcg.\n\nNot all list_lrus need this feature, so this patch also adds a new\nmethod, list_lru_init_memcg, which initializes a list_lru as memcg\naware.  Otherwise (i.e.  if initialized with old list_lru_init), the\nlist_lru won\u0027t have per memcg lists.\n\nJust like per memcg caches arrays, the arrays of per-memcg lists are\nindexed by memcg_cache_id, so we must grow them whenever\nmemcg_nr_cache_ids is increased.  So we introduce a callback,\nmemcg_update_all_list_lrus, invoked by memcg_alloc_cache_id if the id\nspace is full.\n\nThe locking is implemented in a manner similar to lruvecs, i.e.  we have\none lock per node that protects all lists (both global and per cgroup) on\nthe node.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Glauber Costa \u003cglommer@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.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": "c0a5b560938a0f2fd2fbf66ddc446c7c2b41383a",
      "tree": "f69922a1bffc5d841d5323ba018a61d2e548db6c",
      "parents": [
        "ff0b67ef5b1687692bc1fd3ce4bc3d1ff83587c7"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:07 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "list_lru: organize all list_lrus to list\n\nTo make list_lru memcg aware, we need all list_lrus to be kept on a list\nprotected by a mutex, so that we could sleep while walking over the\nlist.\n\nTherefore after this change list_lru_destroy may sleep.  Fortunately,\nthere is only one user that calls it from an atomic context - it\u0027s\nput_super - and we can easily fix it by calling list_lru_destroy before\nput_super in destroy_locked_super - anyway we don\u0027t longer need lrus by\nthat time.\n\nAnother point that should be noted is that list_lru_destroy is allowed\nto be called on an uninitialized zeroed-out object, in which case it is\na no-op.  Before this patch this was guaranteed by kfree, but now we\nneed an explicit check there.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Glauber Costa \u003cglommer@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.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": "ff0b67ef5b1687692bc1fd3ce4bc3d1ff83587c7",
      "tree": "9c4b001b4b814b1cfd90c195fe4b425d3342b19c",
      "parents": [
        "05257a1a3dcc196c197714b5c9a8dd35b7f6aefc"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 12 14:59:04 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 18:54:09 2015 -0800"
      },
      "message": "list_lru: get rid of -\u003eactive_nodes\n\nThe active_nodes mask allows us to skip empty nodes when walking over\nlist_lru items from all nodes in list_lru_count/walk.  However, these\nfunctions are never called from hot paths, so it doesn\u0027t seem we need\nsuch kind of optimization there.  OTOH, removing the mask will make it\neasier to make list_lru per-memcg.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Glauber Costa \u003cglommer@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.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"
    }
  ],
  "next": "05257a1a3dcc196c197714b5c9a8dd35b7f6aefc"
}
