)]}'
{
  "log": [
    {
      "commit": "e93dd910b906d2bb881f334685eb03431fd3fa48",
      "tree": "ae8527dcdc9237e1bd7a65490d98e77fbe006307",
      "parents": [
        "b4820416dd92bc3df33f261c60ec21b2c4481bec",
        "e8603136cb04ec2d0c9b4b5be7a071fc003cb399"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 25 15:12:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 25 15:12:46 2013 -0700"
      },
      "message": "Merge tag \u0027dm-3.12-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm\n\nPull device-mapper fixes from Mike Snitzer:\n \"A few fixes for dm-snapshot, a 32 bit fix for dm-stats, a couple error\n  handling fixes for dm-multipath.  A fix for the thin provisioning\n  target to not expose non-zero discard limits if discards are disabled.\n\n  Lastly, add two DM module parameters which allow users to tune the\n  emergency memory reserves that DM mainatins per device -- this helps\n  fix a long-standing issue for dm-multipath.  The conservative default\n  reserve for request-based dm-multipath devices (256) has proven\n  problematic for users with many multipathed SCSI devices but\n  relatively little memory.  To responsibly select a smaller value users\n  should use the new nr_bios tracepoint info (via commit 75afb352\n  \"block: Add nr_bios to block_rq_remap tracepoint\") to determine the\n  peak number of bios their workloads create\"\n\n* tag \u0027dm-3.12-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:\n  dm: add reserved_bio_based_ios module parameter\n  dm: add reserved_rq_based_ios module parameter\n  dm: lower bio-based mempool reservation\n  dm thin: do not expose non-zero discard limits if discards disabled\n  dm mpath: disable WRITE SAME if it fails\n  dm-snapshot: fix performance degradation due to small hash size\n  dm snapshot: workaround for a false positive lockdep warning\n  dm stats: fix possible counter corruption on 32-bit systems\n  dm mpath: do not fail path on -ENOSPC\n"
    },
    {
      "commit": "bdc5663fa14de657f24080ee959670d49c8dd094",
      "tree": "e97fc2caa29655ae5550f2467f56b6590e85a231",
      "parents": [
        "743a7ecbe8e28d487e2573ec2b7fb1179a443717",
        "cf3b425dd8d99e01214515a6754f9e69ecc6dce8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 25 13:28:08 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 25 13:28:08 2013 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"Assorted standalone fixes\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/x86/intel: Add model number for Avoton Silvermont\n  perf: Fix capabilities bitfield compatibility in \u0027struct perf_event_mmap_page\u0027\n  perf/x86/intel/uncore: Don\u0027t use smp_processor_id() in validate_group()\n  perf: Update ABI comment\n  tools lib lk: Uninclude linux/magic.h in debugfs.c\n  perf tools: Fix old GCC build error in trace-event-parse.c:parse_proc_kallsyms()\n  perf probe: Fix finder to find lines of given function\n  perf session: Check for SIGINT in more loops\n  perf tools: Fix compile with libelf without get_phdrnum\n  perf tools: Fix buildid cache handling of kallsyms with kcore\n  perf annotate: Fix objdump line parsing offset validation\n  perf tools: Fill in new definitions for madvise()/mmap() flags\n  perf tools: Sharpen the libaudit dependencies test\n"
    },
    {
      "commit": "0608f43da64a1f1c42507304b5f25bc8b1227aa4",
      "tree": "3138a251439bee1f12bd176f41f3fc63e194f455",
      "parents": [
        "bb4cc1a8b5eaf3b9e5707d7c270400b05d11a2b7"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Sep 24 15:27:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 24 17:00:26 2013 -0700"
      },
      "message": "revert \"memcg, vmscan: integrate soft reclaim tighter with zone shrinking code\"\n\nRevert commit 3b38722efd9f (\"memcg, vmscan: integrate soft reclaim\ntighter with zone shrinking code\")\n\nI merged this prematurely - Michal and Johannes still disagree about the\noverall design direction and the future remains unclear.\n\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1aff7fcf86c88472b0a70f15d89d7a4adba07bb",
      "tree": "00a1b6194f6abe8a93a1bfb180365800a2873b65",
      "parents": [
        "694fbc0fe78518d06efa63910bf4ecee660e7852"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Sep 24 15:27:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 24 17:00:26 2013 -0700"
      },
      "message": "revert \"vmscan, memcg: do softlimit reclaim also for targeted reclaim\"\n\nRevert commit a5b7c87f9207 (\"vmscan, memcg: do softlimit reclaim also\nfor targeted reclaim\")\n\nI merged this prematurely - Michal and Johannes still disagree about the\noverall design direction and the future remains unclear.\n\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "694fbc0fe78518d06efa63910bf4ecee660e7852",
      "tree": "895244c4cc010759ce5c29333bee3cddc8c852d2",
      "parents": [
        "30361e51cae7a4df3fec89f935a450a6fe6f16fa"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Sep 24 15:27:37 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 24 17:00:26 2013 -0700"
      },
      "message": "revert \"memcg: enhance memcg iterator to support predicates\"\n\nRevert commit de57780dc659 (\"memcg: enhance memcg iterator to support\npredicates\")\n\nI merged this prematurely - Michal and Johannes still disagree about the\noverall design direction and the future remains unclear.\n\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9809b18fcf6b8d8ec4d3643677345907e6b50eca",
      "tree": "0dfb9bf2f84f5a18736567d126cb9ed7478fe008",
      "parents": [
        "359e6fab6600562073162348cd4c18c5958296d8"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Sep 24 15:27:30 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 24 17:00:25 2013 -0700"
      },
      "message": "watchdog: update watchdog_thresh properly\n\nwatchdog_tresh controls how often nmi perf event counter checks per-cpu\nhrtimer_interrupts counter and blows up if the counter hasn\u0027t changed\nsince the last check.  The counter is updated by per-cpu\nwatchdog_hrtimer hrtimer which is scheduled with 2/5 watchdog_thresh\nperiod which guarantees that hrtimer is scheduled 2 times per the main\nperiod.  Both hrtimer and perf event are started together when the\nwatchdog is enabled.\n\nSo far so good.  But...\n\nBut what happens when watchdog_thresh is updated from sysctl handler?\n\nproc_dowatchdog will set a new sampling period and hrtimer callback\n(watchdog_timer_fn) will use the new value in the next round.  The\nproblem, however, is that nobody tells the perf event that the sampling\nperiod has changed so it is ticking with the period configured when it\nhas been set up.\n\nThis might result in an ear ripping dissonance between perf and hrtimer\nparts if the watchdog_thresh is increased.  And even worse it might lead\nto KABOOM if the watchdog is configured to panic on such a spurious\nlockup.\n\nThis patch fixes the issue by updating both nmi perf even counter and\nhrtimers if the threshold value has changed.\n\nThe nmi one is disabled and then reinitialized from scratch.  This has\nan unpleasant side effect that the allocation of the new event might\nfail theoretically so the hard lockup detector would be disabled for\nsuch cpus.  On the other hand such a memory allocation failure is very\nunlikely because the original event is deallocated right before.\n\nIt would be much nicer if we just changed perf event period but there\ndoesn\u0027t seem to be any API to do that right now.  It is also unfortunate\nthat perf_event_alloc uses GFP_KERNEL allocation unconditionally so we\ncannot use on_each_cpu() and do the same thing from the per-cpu context.\nThe update from the current CPU should be safe because\nperf_event_disable removes the event atomically before it clears the\nper-cpu watchdog_ev so it cannot change anything under running handler\nfeet.\n\nThe hrtimer is simply restarted (thanks to Don Zickus who has pointed\nthis out) if it is queued because we cannot rely it will fire\u0026adopt to\nthe new sampling period before a new nmi event triggers (when the\ntreshold is decreased).\n\n[akpm@linux-foundation.org: the UP version of __smp_call_function_single ended up in the wrong place]\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Fabio Estevam \u003cfestevam@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": "d8524ae9d6f492a9c6db9f4d89c5f9b8782fa2d5",
      "tree": "18c9f6fbf80000e8be35b593d8008e904c9036b5",
      "parents": [
        "68cf8d0c720cdb76dc912c983d8dae9de6d6e5cf",
        "6ddf2ed6e00396883b3123032ccb4416205aac7c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 22 19:51:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 22 19:51:49 2013 -0700"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://people.freedesktop.org/~airlied/linux\n\nPull drm fixes from Dave Airlie:\n - some small fixes for msm and exynos\n - a regression revert affecting nouveau users with old userspace\n - intel pageflip deadlock and gpu hang fixes, hsw modesetting hangs\n\n* \u0027drm-fixes\u0027 of git://people.freedesktop.org/~airlied/linux: (22 commits)\n  Revert \"drm: mark context support as a legacy subsystem\"\n  drm/i915: Don\u0027t enable the cursor on a disable pipe\n  drm/i915: do not update cursor in crtc mode set\n  drm/exynos: fix return value check in lowlevel_buffer_allocate()\n  drm/exynos: Fix address space warnings in exynos_drm_fbdev.c\n  drm/exynos: Fix address space warning in exynos_drm_buf.c\n  drm/exynos: Remove redundant OF dependency\n  drm/msm: drop unnecessary set_need_resched()\n  drm/i915: kill set_need_resched\n  drm/msm: fix potential NULL pointer dereference\n  drm/i915/dvo: set crtc timings again for panel fixed modes\n  drm/i915/sdvo: Robustify the dtd\u003c-\u003edrm_mode conversions\n  drm/msm: workaround for missing irq\n  drm/msm: return -EBUSY if bo still active\n  drm/msm: fix return value check in ERR_PTR()\n  drm/msm: fix cmdstream size check\n  drm/msm: hangcheck harder\n  drm/msm: handle read vs write fences\n  drm/i915/sdvo: Fully translate sync flags in the dtd-\u003emode conversion\n  drm/i915: Use proper print format for debug prints\n  ...\n"
    },
    {
      "commit": "68cf8d0c720cdb76dc912c983d8dae9de6d6e5cf",
      "tree": "41779dfce5cae3dc495f27f76ed8e66dd046ac4c",
      "parents": [
        "0fbf2cc983ca15208545010863c6536d36a25f3a",
        "f3cff25f05f2ac29b2ee355e611b0657482f6f1d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 22 15:00:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 22 15:00:11 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.12/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO fixes from Jens Axboe:\n \"After merge window, no new stuff this time only a collection of neatly\n  confined and simple fixes\"\n\n* \u0027for-3.12/core\u0027 of git://git.kernel.dk/linux-block:\n  cfq: explicitly use 64bit divide operation for 64bit arguments\n  block: Add nr_bios to block_rq_remap tracepoint\n  If the queue is dying then we only call the rq-\u003eend_io callout. This leaves bios setup on the request, because the caller assumes when the blk_execute_rq_nowait/blk_execute_rq call has completed that the rq-\u003ebios have been cleaned up.\n  bio-integrity: Fix use of bs-\u003ebio_integrity_pool after free\n  blkcg: relocate root_blkg setting and clearing\n  block: Convert kmalloc_node(...GFP_ZERO...) to kzalloc_node(...)\n  block: trace all devices plug operation\n"
    },
    {
      "commit": "0fbf2cc983ca15208545010863c6536d36a25f3a",
      "tree": "19a6b5d197d9051c6775c69cb1731f7563ee35ca",
      "parents": [
        "c43a3855f41a25330326570d8e8d54e9927b3f56",
        "94aebfb2e7d83748d882992196cb05dd39ba1807"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 22 14:58:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 22 14:58:49 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs fixes from Chris Mason:\n \"These are mostly bug fixes and a two small performance fixes.  The\n  most important of the bunch are Josef\u0027s fix for a snapshotting\n  regression and Mark\u0027s update to fix compile problems on arm\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (25 commits)\n  Btrfs: create the uuid tree on remount rw\n  btrfs: change extent-same to copy entire argument struct\n  Btrfs: dir_inode_operations should use btrfs_update_time also\n  btrfs: Add btrfs: prefix to kernel log output\n  btrfs: refuse to remount read-write after abort\n  Btrfs: btrfs_ioctl_default_subvol: Revert back to toplevel subvolume when arg is 0\n  Btrfs: don\u0027t leak transaction in btrfs_sync_file()\n  Btrfs: add the missing mutex unlock in write_all_supers()\n  Btrfs: iput inode on allocation failure\n  Btrfs: remove space_info-\u003ereservation_progress\n  Btrfs: kill delay_iput arg to the wait_ordered functions\n  Btrfs: fix worst case calculator for space usage\n  Revert \"Btrfs: rework the overcommit logic to be based on the total size\"\n  Btrfs: improve replacing nocow extents\n  Btrfs: drop dir i_size when adding new names on replay\n  Btrfs: replay dir_index items before other items\n  Btrfs: check roots last log commit when checking if an inode has been logged\n  Btrfs: actually log directory we are fsync()\u0027ing\n  Btrfs: actually limit the size of delalloc range\n  Btrfs: allocate the free space by the existed max extent size when ENOSPC\n  ...\n"
    },
    {
      "commit": "75afb352991ff1cd3cf5955bfe611de6d83a0c87",
      "tree": "2873c9fa5c098c4dd5134f395207af9463cc21d9",
      "parents": [
        "7652113c2f508b1c8176640dcd034730fe79bc48"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Sat Sep 21 13:57:47 2013 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Sep 21 13:57:47 2013 -0600"
      },
      "message": "block: Add nr_bios to block_rq_remap tracepoint\n\nAdding the number of bios in a remapped request to \u0027block_rq_remap\u0027\ntracepoint.\n\nRequest remapper clones bios in a request to track the completion\nstatus of each bio. So the number of bios can be useful information\nfor investigation.\n\nRelated discussions:\n  http://www.redhat.com/archives/dm-devel/2013-August/msg00084.html\n  http://www.redhat.com/archives/dm-devel/2013-September/msg00024.html\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "13fd8da98f79317d26277360d510caa1edf9bab3",
      "tree": "851ae37048beeb30300ba28f76c0e35da2b0f501",
      "parents": [
        "79556c3d882a848c8faabddc487b033c4e78f7c5"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Tue Sep 03 18:28:57 2013 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Sep 21 10:58:56 2013 -0400"
      },
      "message": "btrfs: add lockdep and tracing annotations for uuid tree\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "07f0e62e7f2533918f28e780ab3cfeea1a63145d",
      "tree": "cb64b7cf275f1a5fd7f121f4f434e77dc6769e37",
      "parents": [
        "d7396f07358a7c6e22c238d36d1d85f9d652a414",
        "6e4664525b1db28f8c4e1130957f70a94c19213e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Sep 21 10:44:55 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Sep 21 10:44:55 2013 -0400"
      },
      "message": "Merge tag \u0027v3.11\u0027 into for-linus\n\nLinux 3.11\n"
    },
    {
      "commit": "f84cb8a46a771f36a04a02c61ea635c968ed5f6a",
      "tree": "af75fbffdf13f3765f4d8ddc13494585533351f8",
      "parents": [
        "60e356f381954d79088d0455e357db48cfdd6857"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Sep 19 12:13:58 2013 -0400"
      },
      "committer": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Sep 20 10:36:34 2013 -0400"
      },
      "message": "dm mpath: disable WRITE SAME if it fails\n\nWorkaround the SCSI layer\u0027s problematic WRITE SAME heuristics by\ndisabling WRITE SAME in the DM multipath device\u0027s queue_limits if an\nunderlying device disabled it.\n\nThe WRITE SAME heuristics, with both the original commit 5db44863b6eb\n(\"[SCSI] sd: Implement support for WRITE SAME\") and the updated commit\n66c28f971 (\"[SCSI] sd: Update WRITE SAME heuristics\"), default to enabling\nWRITE SAME(10) even without successfully determining it is supported.\nAfter the first failed WRITE SAME the SCSI layer will disable WRITE SAME\nfor the device (by setting sdkp-\u003edevice-\u003eno_write_same which results in\n\u0027max_write_same_sectors\u0027 in device\u0027s queue_limits to be set to 0).\n\nWhen a device is stacked ontop of such a SCSI device any changes to that\nSCSI device\u0027s queue_limits do not automatically propagate up the stack.\nAs such, a DM multipath device will not have its WRITE SAME support\ndisabled.  This causes the block layer to continue to issue WRITE SAME\nrequests to the mpath device which causes paths to fail and (if mpath IO\nisn\u0027t configured to queue when no paths are available) it will result in\nactual IO errors to the upper layers.\n\nThis fix doesn\u0027t help configurations that have additional devices\nstacked ontop of the mpath device (e.g. LVM created linear DM devices\nontop).  A proper fix that restacks all the queue_limits from the bottom\nof the device stack up will need to be explored if SCSI will continue to\nuse this model of optimistically allowing op codes and then disabling\nthem after they fail for the first time.\n\nBefore this patch:\n\nEXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: (null)\ndevice-mapper: multipath: XXX snitm debugging: got -EREMOTEIO (-121)\ndevice-mapper: multipath: XXX snitm debugging: failing WRITE SAME IO with error\u003d-121\nend_request: critical target error, dev dm-6, sector 528\ndm-6: WRITE SAME failed. Manually zeroing.\ndevice-mapper: multipath: Failing path 8:112.\nend_request: I/O error, dev dm-6, sector 4616\ndm-6: WRITE SAME failed. Manually zeroing.\nend_request: I/O error, dev dm-6, sector 4616\nend_request: I/O error, dev dm-6, sector 5640\nend_request: I/O error, dev dm-6, sector 6664\nend_request: I/O error, dev dm-6, sector 7688\nend_request: I/O error, dev dm-6, sector 524288\nBuffer I/O error on device dm-6, logical block 65536\nlost page write due to I/O error on dm-6\nJBD2: Error -5 detected when updating journal superblock for dm-6-8.\nend_request: I/O error, dev dm-6, sector 524296\nAborting journal on device dm-6-8.\nend_request: I/O error, dev dm-6, sector 524288\nBuffer I/O error on device dm-6, logical block 65536\nlost page write due to I/O error on dm-6\nJBD2: Error -5 detected when updating journal superblock for dm-6-8.\n\n# cat /sys/block/sdh/queue/write_same_max_bytes\n0\n# cat /sys/block/dm-6/queue/write_same_max_bytes\n33553920\n\nAfter this patch:\n\nEXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: (null)\ndevice-mapper: multipath: XXX snitm debugging: got -EREMOTEIO (-121)\ndevice-mapper: multipath: XXX snitm debugging: WRITE SAME I/O failed with error\u003d-121\nend_request: critical target error, dev dm-6, sector 528\ndm-6: WRITE SAME failed. Manually zeroing.\n\n# cat /sys/block/sdh/queue/write_same_max_bytes\n0\n# cat /sys/block/dm-6/queue/write_same_max_bytes\n0\n\nIt should be noted that WRITE SAME support wasn\u0027t enabled in DM\nmultipath until v3.10.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: stable@vger.kernel.org # 3.10+\n"
    },
    {
      "commit": "fa7315871046b9a4c48627905691dbde57e51033",
      "tree": "89b94f609063bb4abadf354ad06afbd8c203737d",
      "parents": [
        "73c4427c6ca3b32fa0441791e9c6eadceff7242f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Sep 19 10:16:42 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Sep 20 09:45:11 2013 +0200"
      },
      "message": "perf: Fix capabilities bitfield compatibility in \u0027struct perf_event_mmap_page\u0027\n\nSolve the problems around the broken definition of perf_event_mmap_page::\ncap_usr_time and cap_usr_rdpmc fields which used to overlap, partially\nfixed by:\n\n  860f085b74e9 (\"perf: Fix broken union in \u0027struct perf_event_mmap_page\u0027\")\n\nThe problem with the fix (merged in v3.12-rc1 and not yet released\nofficially), noticed by Vince Weaver is that the new behavior is\nnot detectable by new user-space, and that due to the reuse of the\nfield names it\u0027s easy to mis-compile a binary if old headers are used\non a new kernel or new headers are used on an old kernel.\n\nTo solve all that make this change explicit, detectable and self-contained,\nby iterating the ABI the following way:\n\n - Always clear bit 0, and rename it to usrpage-\u003ecap_bit0, to at least not\n   confuse old user-space binaries. RDPMC will be marked as unavailable\n   to old binaries but that\u0027s within the ABI, this is a capability bit.\n\n - Rename bit 1 to -\u003ecap_bit0_is_deprecated and always set it to 1, so new\n   libraries can reliably detect that bit 0 is deprecated and perma-zero\n   without having to check the kernel version.\n\n - Use bits 2, 3, 4 for the newly defined, correct functionality:\n\n\tcap_user_rdpmc\t\t: 1, /* The RDPMC instruction can be used to read counts */\n\tcap_user_time\t\t: 1, /* The time_* fields are used */\n\tcap_user_time_zero\t: 1, /* The time_zero field is used */\n\n - Rename all the bitfield names in perf_event.h to be different from the\n   old names, to make sure it\u0027s not possible to mis-compile it\n   accidentally with old assumptions.\n\nThe \u0027size\u0027 field can then be used in the future to add new fields and it\nwill act as a natural ABI version indicator as well.\n\nAlso adjust tools/perf/ userspace for the new definitions, noticed by\nAdrian Hunter.\n\nReported-by: Vince Weaver \u003cvincent.weaver@maine.edu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAlso-Fixed-by: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nLink: http://lkml.kernel.org/n/tip-zr03yxjrpXesOzzupszqglbv@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c5ecceefdb840af45db436adc58219ae97b6ef3c",
      "tree": "056992a41969099b11d88c03070ff4314a886574",
      "parents": [
        "24e31f0bef40f6ed08073734d9250576a44a2db1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Sep 13 23:39:17 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Sep 20 06:54:34 2013 +0200"
      },
      "message": "perf: Update ABI comment\n\nFor some mysterious reason the sample_id field of PERF_RECORD_MMAP went AWOL.\n\nReported-by: Vince Weaver \u003cvince@deater.net\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c21eb21cb50d58e7cbdcb8b9e7ff68b85cfa5095",
      "tree": "2ac14a2041ca462c51ee25eca1267f545a852e11",
      "parents": [
        "928c2f0c006bf7f381f58af2b2786d2a858ae311"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Fri Sep 20 08:32:59 2013 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Fri Sep 20 08:32:59 2013 +1000"
      },
      "message": "Revert \"drm: mark context support as a legacy subsystem\"\n\nThis reverts commit 7c510133d93dd6f15ca040733ba7b2891ed61fd1.\n\nWell looks like not enough digging was done, libdrm_nouveau before 2.4.33\nused contexts,\n\n292da616fe1f936ca78a3fa8e1b1b19883e343b6 nouveau: pull in major libdrm rewrite\n\ngot rid of them,\n\nReported-by: Paul Zimmerman \u003cPaul.Zimmerman@synopsys.com\u003e\nReported-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "b75ff5e84bb6c2d43a8ec39b240c80f0543821f0",
      "tree": "faa21bd0cd3617c0847c6eccb50005b1c65d61b2",
      "parents": [
        "f05f8198e415151bc6f8369c93e25befcafe8026",
        "c71380ff0b199f1e8be5ca46dd91262f7fbe4cb4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 19 13:57:28 2013 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 19 13:57:28 2013 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking fixes from David Miller:\n\n 1) If the local_df boolean is set on an SKB we have to allocate a\n    unique ID even if IP_DF is set in the ipv4 headers, from Ansis\n    Atteka.\n\n 2) Some fixups for the new chipset support that went into the sfc\n    driver, from Ben Hutchings.\n\n 3) Because SCTP bypasses a good chunk of, and actually duplicates, the\n    logic of the ipv6 output path, some IPSEC things don\u0027t get done\n    properly.  Integrate SCTP better into the ipv6 output path so that\n    these problems are fixed and such issues don\u0027t get missed in the\n    future either.  From Daniel Borkmann.\n\n 4) Fix skge regressions added by the DMA mapping error return checking\n    added in v3.10, from Mikulas Patocka.\n\n 5) Kill some more IRQF_DISABLED references, from Michael Opdenacker.\n\n 6) Fix races and deadlocks in the bridging code, from Hong Zhiguo.\n\n 7) Fix error handling in tun_set_iff(), in particular don\u0027t leak\n    resources.  From Jason Wang.\n\n 8) Prevent format-string injection into xen-netback driver, from Kees\n    Cook.\n\n 9) Fix regression added to netpoll ARP packet handling, in particular\n    check for the right ETH_P_ARP protocol code.  From Sonic Zhang.\n\n10) Try to deal with AMD IOMMU errors when using r8169 chips, from\n    Francois Romieu.\n\n11) Cure freezes due to recent changes in the rt2x00 wireless driver,\n    from Stanislaw Gruszka.\n\n12) Don\u0027t do SPI transfers (which can sleep) in interrupt context in\n    cw1200 driver, from Solomon Peachy.\n\n13) Fix LEDs handling bug in 5720 tg3 chips already handled for 5719.\n    From Nithin Sujir.\n\n14) Make xen_netbk_count_skb_slots() count the actual number of slots\n    that will be used, taking into consideration packing and other\n    issues that the transmit path will run into.  From David Vrabel.\n\n15) Use the correct maximum age when calculating the bridge\n    message_age_timer, from Chris Healy.\n\n16) Get rid of memory leaks in mcs7780 IRDA driver, from Alexey\n    Khoroshilov.\n\n17) Netfilter conntrack extensions were converted to RCU but are not\n    always freed properly using kfree_rcu().  Fix from Michal Kubecek.\n\n18) VF reset recovery not being done correctly in qlcnic driver, from\n    Manish Chopra.\n\n19) Fix inverted test in ATM nicstar driver, from Andy Shevchenko.\n\n20) Missing workqueue destroy in cxgb4 error handling, from Wei Yang.\n\n21) Internal switch not initialized properly in bgmac driver, from Rafał\n    Miłecki.\n\n22) Netlink messages report wrong local and remote addresses in IPv6\n    tunneling, from Ding Zhi.\n\n23) ICMP redirects should not generate socket errors in DCCP and SCTP.\n    We\u0027re still working out how this should be handled for RAW and UDP\n    sockets.  From Daniel Borkmann and Duan Jiong.\n\n24) We\u0027ve had several bugs wherein the network namespace\u0027s loopback\n    device gets accessed after it is free\u0027d, NULL it out so that we can\n    catch these problems more readily.  From Eric W Biederman.\n\n25) Fix regression in TCP RTO calculations, from Neal Cardwell.\n\n26) Fix too early free of xen-netback network device when VIFs still\n    exist.  From Paul Durrant.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (87 commits)\n  netconsole: fix a deadlock with rtnl and netconsole\u0027s mutex\n  netpoll: fix NULL pointer dereference in netpoll_cleanup\n  skge: fix broken driver\n  ip: generate unique IP identificator if local fragmentation is allowed\n  ip: use ip_hdr() in __ip_make_skb() to retrieve IP header\n  xen-netback: Don\u0027t destroy the netdev until the vif is shut down\n  net:dccp: do not report ICMP redirects to user space\n  cnic: Fix crash in cnic_bnx2x_service_kcq()\n  bnx2x, cnic, bnx2i, bnx2fc: Fix bnx2i and bnx2fc regressions.\n  vxlan: Avoid creating fdb entry with NULL destination\n  tcp: fix RTO calculated from cached RTT\n  drivers: net: phy: cicada.c: clears warning Use #include \u003clinux/io.h\u003e instead of \u003casm/io.h\u003e\n  net loopback: Set loopback_dev to NULL when freed\n  batman-adv: set the TAG flag for the vid passed to BLA\n  netfilter: nfnetlink_queue: use network skb for sequence adjustment\n  net: sctp: rfc4443: do not report ICMP redirects to user space\n  net: usb: cdc_ether: use usb.h macros whenever possible\n  net: usb: cdc_ether: fix checkpatch errors and warnings\n  net: usb: cdc_ether: Use wwan interface for Telit modules\n  ip6_tunnels: raddr and laddr are inverted in nl msg\n  ...\n"
    },
    {
      "commit": "703133de331a7a7df47f31fb9de51dc6f68a9de8",
      "tree": "0c6c49e15c9461cd3a563d17062a866d2fafd6fa",
      "parents": [
        "749154aa56b57652a282cbde57a57abc278d1205"
      ],
      "author": {
        "name": "Ansis Atteka",
        "email": "aatteka@nicira.com",
        "time": "Wed Sep 18 15:29:53 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 19 14:11:15 2013 -0400"
      },
      "message": "ip: generate unique IP identificator if local fragmentation is allowed\n\nIf local fragmentation is allowed, then ip_select_ident() and\nip_select_ident_more() need to generate unique IDs to ensure\ncorrect defragmentation on the peer.\n\nFor example, if IPsec (tunnel mode) has to encrypt large skbs\nthat have local_df bit set, then all IP fragments that belonged\nto different ESP datagrams would have used the same identificator.\nIf one of these IP fragments would get lost or reordered, then\npeer could possibly stitch together wrong IP fragments that did\nnot belong to the same datagram. This would lead to a packet loss\nor data corruption.\n\nSigned-off-by: Ansis Atteka \u003caatteka@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9ff04dd94d46c817bbb103531cdef6e7bd5d022",
      "tree": "f6544ac65503d04b7760492e7f2592132e4a6d6c",
      "parents": [
        "ed24fee24a6be9568b1ee30209bafe4dad66be0e",
        "9c89d62948c4740e379a7e0085dd8d7c1561f53f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 19 12:50:37 2013 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 19 12:50:37 2013 -0500"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull ceph fixes from Sage Weil:\n \"These fix several bugs with RBD from 3.11 that didn\u0027t get tested in\n  time for the merge window: some error handling, a use-after-free, and\n  a sequencing issue when unmapping and image races with a notify\n  operation.\n\n  There is also a patch fixing a problem with the new ceph + fscache\n  code that just went in\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  fscache: check consistency does not decrement refcount\n  rbd: fix error handling from rbd_snap_name()\n  rbd: ignore unmapped snapshots that no longer exist\n  rbd: fix use-after free of rbd_dev-\u003edisk\n  rbd: make rbd_obj_notify_ack() synchronous\n  rbd: complete notifies before cleaning up osd_client and rbd_dev\n  libceph: add function to ensure notifies are complete\n"
    },
    {
      "commit": "ed24fee24a6be9568b1ee30209bafe4dad66be0e",
      "tree": "21be377c9b49fd9383467db1cedc51def42762f2",
      "parents": [
        "3fe03debfc58aba8f5ddb32abd7343237d07714c",
        "928c2f0c006bf7f381f58af2b2786d2a858ae311"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 21:17:44 2013 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 21:17:44 2013 -0500"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://people.freedesktop.org/~airlied/linux\n\nPull drm radeon/nouveau/core fixes from Dave Airlie:\n \"Mostly radeon fixes, with some nouveau bios parser, ttm fix and a fix\n  for AST driver\"\n\n* \u0027drm-fixes\u0027 of git://people.freedesktop.org/~airlied/linux: (42 commits)\n  drm/fb-helper: don\u0027t sleep for screen unblank when an oops is in progress\n  drm, ttm Fix uninitialized warning\n  drm/ttm: fix the tt_populated check in ttm_tt_destroy()\n  drm/nouveau/ttm: prevent double-free in nouveau_sgdma_create_ttm() failure path\n  drm/nouveau/bios/init: fix thinko in INIT_CONFIGURE_MEM\n  drm/nouveau/kms: enable for non-vga pci classes\n  drm/nouveau/bios/init: stub opcode 0xaa\n  drm/radeon: avoid UVD corruptions on AGP cards\n  drm/radeon: fix panel scaling with eDP and LVDS bridges\n  drm/radeon/dpm: rework auto performance level enable\n  drm/radeon: Fix hmdi typo\n  drm/radeon/dpm/rs780: fix force_performance state for same sclks\n  drm/radeon/dpm/rs780: don\u0027t enable sclk scaling if not required\n  drm/radeon/dpm/rs780: add some sanity checking to sclk scaling\n  drm/radeon/dpm/rs780: use drm_mode_vrefresh()\n  drm/udl: rip out set_need_resched\n  drm/ast: fix the ast open key function\n  drm/radeon/dpm: add bapm callback for kb/kv\n  drm/radeon/dpm: add bapm callback for trinity\n  drm/radeon/dpm: add infrastructure to properly handle bapm\n  ...\n"
    },
    {
      "commit": "9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8",
      "tree": "0fd13d51002dc3d0991cb5bdd6e026970171d457",
      "parents": [
        "7e28b2712e5ebd8d73d25561585bc2ae77da5c30",
        "7bd36014460f793c19e7d6c94dab67b0afcfcb7f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 11:24:49 2013 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 11:24:49 2013 -0500"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fix from Ingo Molnar:\n \"An NTP related lockup fix\"\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timekeeping: Fix HRTICK related deadlock from ntp lock changes\n"
    },
    {
      "commit": "186844b292140d1e33225ec95039b6adb03d3fec",
      "tree": "23665f4d03bd7fea44a1cbe2c8eec7e518ffbafd",
      "parents": [
        "62d228b8c676232eca579f91cc0782b060a59097",
        "a8e0108cac181a7b141dacaa99ea52efaf9b5f07"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 11:22:53 2013 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 11:22:53 2013 -0500"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"Two small fixes\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf: Fix UAPI export of PERF_EVENT_IOC_ID\n  perf/x86/intel: Fix Silvermont offcore masks\n"
    },
    {
      "commit": "a8e0108cac181a7b141dacaa99ea52efaf9b5f07",
      "tree": "1dd643b2ed3f9cc830754213a59c4cf398f10b12",
      "parents": [
        "06c939c1f41b1c28bb17fae074ad610e22a01db8"
      ],
      "author": {
        "name": "Vince Weaver",
        "email": "vincent.weaver@maine.edu",
        "time": "Tue Sep 17 14:53:41 2013 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Sep 18 11:29:07 2013 +0200"
      },
      "message": "perf: Fix UAPI export of PERF_EVENT_IOC_ID\n\nWithout the following patch I have problems compiling code using\nthe new PERF_EVENT_IOC_ID ioctl().  It looks like u64 was used\ninstead of __u64\n\nSigned-off-by: Vince Weaver \u003cvincent.weaver@maine.edu\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.10.1309171450380.11444@vincent-weaver-1.um.maine.edu\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "62d228b8c676232eca579f91cc0782b060a59097",
      "tree": "18acffcd94343a510dee6a8c14d7db2449359d86",
      "parents": [
        "84fca9f38c5d646e95cdeef70e41cf15db549b95",
        "0be9c7a89f75072e091cd079d76194aec8d1fb09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 17 22:20:30 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 17 22:20:30 2013 -0400"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM fixes from Gleb Natapov.\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm:\n  KVM: VMX: set \"blocked by NMI\" flag if EPT violation happens during IRET from NMI\n  kvm: free resources after canceling async_pf\n  KVM: nEPT: reset PDPTR register cache on nested vmentry emulation\n  KVM: mmu: allow page tables to be in read-only slots\n  KVM: x86 emulator: emulate RETF imm\n"
    },
    {
      "commit": "84fca9f38c5d646e95cdeef70e41cf15db549b95",
      "tree": "c904715c9b70a2f0716c84931e2d58b1a226a1e0",
      "parents": [
        "03e1261778cca782d41a3d8e3945ca88cf93e01e",
        "0ccdd9e7476680c16113131264ad6597bd10299d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 17 21:54:05 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 17 21:54:05 2013 -0400"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\nPull HID updates from Jiri Kosina:\n \"Fixes for CVE-2013-2897, CVE-2013-2895, CVE-2013-2897, CVE-2013-2894,\n  CVE-2013-2893, CVE-2013-2891, CVE-2013-2890, CVE-2013-2889.\n\n  All the bugs are triggerable only by specially crafted evil-on-purpose\n  HW devices.  Fixes by Kees Cook and Benjamin Tissoires\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: lenovo-tpkbd: fix leak if tpkbd_probe_tp fails\n  HID: multitouch: validate indexes details\n  HID: logitech-dj: validate output report details\n  HID: validate feature and input report details\n  HID: lenovo-tpkbd: validate output report details\n  HID: LG: validate HID output report details\n  HID: steelseries: validate output report details\n  HID: sony: validate HID output report details\n  HID: zeroplus: validate output report details\n  HID: provide a helper for validating hid reports\n"
    },
    {
      "commit": "61c5923a2f2d8ab98a1e3c76f17e0f4a871ec75b",
      "tree": "0bcacd43538e7e1952f7e8696e48f9ffdbb1e0d0",
      "parents": [
        "2936b6ab455433a5ad14c7a1d2473afe1fa3faa7",
        "0a0d80eb39aa465b7bdf6f7754d0ba687eb3d2a7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 17 20:22:53 2013 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 17 20:22:53 2013 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf\n\nPablo Neira Ayuso says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nThe following patchset contains Netfilter fixes for you net tree,\nmostly targeted to ipset, they are:\n\n* Fix ICMPv6 NAT due to wrong comparison, code instead of type, from\n  Phil Oester.\n\n* Fix RCU race in conntrack extensions release path, from Michal Kubecek.\n\n* Fix missing inversion in the userspace ipset test command match if\n  the nomatch option is specified, from Jozsef Kadlecsik.\n\n* Skip layer 4 protocol matching in ipset in case of IPv6 fragments,\n  also from Jozsef Kadlecsik.\n\n* Fix sequence adjustment in nfnetlink_queue due to using the netlink\n  skb instead of the network skb, from Gao feng.\n\n* Make sure we cannot swap of sets with different layer 3 family in\n  ipset, from Jozsef Kadlecsik.\n\n* Fix possible bogus matching in ipset if hash sets with net elements\n  are used, from Oliver Smith.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ba6a3541545542721ce821d1e7e5ce35752e6fdf",
      "tree": "b53ff602454f383dc8148d38d7d870972d7866db",
      "parents": [
        "3261107ebfd8f6bba57cfcdb89385779fd149a00"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Sep 09 13:52:33 2013 +0200"
      },
      "committer": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Sep 17 12:52:31 2013 +0300"
      },
      "message": "KVM: mmu: allow page tables to be in read-only slots\n\nPage tables in a read-only memory slot will currently cause a triple\nfault because the page walker uses gfn_to_hva and it fails on such a slot.\n\nOVMF uses such a page table; however, real hardware seems to be fine with\nthat as long as the accessed/dirty bits are set.  Save whether the slot\nis readonly, and later check it when updating the accessed and dirty bits.\n\nReviewed-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nReviewed-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "a4ae54f90e0a7063799eb90852aa8648ccfbb791",
      "tree": "88fd7f7920c8849fed99c782ab1fc605da69a375",
      "parents": [
        "3369d116934b70bd2755cdd8b2af9741d18a4047",
        "63ce2cc474ce962d936ae6dfaa6ae2354b1db5b2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 16 16:10:26 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 16 16:10:26 2013 -0400"
      },
      "message": "Merge branch \u0027timers/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer code update from Thomas Gleixner:\n - armada SoC clocksource overhaul with a trivial merge conflict\n - Minor improvements to various SoC clocksource drivers\n\n* \u0027timers/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  clocksource: armada-370-xp: Add detailed clock requirements in devicetree binding\n  clocksource: armada-370-xp: Get reference fixed-clock by name\n  clocksource: armada-370-xp: Replace WARN_ON with BUG_ON\n  clocksource: armada-370-xp: Fix device-tree binding\n  clocksource: armada-370-xp: Introduce new compatibles\n  clocksource: armada-370-xp: Use CLOCKSOURCE_OF_DECLARE\n  clocksource: armada-370-xp: Simplify TIMER_CTRL register access\n  clocksource: armada-370-xp: Use BIT()\n  ARM: timer-sp: Set dynamic irq affinity\n  ARM: nomadik: add dynamic irq flag to the timer\n  clocksource: sh_cmt: 32-bit control register support\n  clocksource: em_sti: Convert to devm_* managed helpers\n"
    },
    {
      "commit": "0f1799ba1a5db4c48b72ac2da2dc70d8c190a73d",
      "tree": "5b7c5e791c45eb6cc4c174dc27ac98eb2643cf86",
      "parents": [
        "55524c219aa803887d1c247853842a9566598cba"
      ],
      "author": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Mon Sep 16 20:04:53 2013 +0200"
      },
      "committer": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Mon Sep 16 20:35:55 2013 +0200"
      },
      "message": "netfilter: ipset: Consistent userspace testing with nomatch flag\n\nThe \"nomatch\" commandline flag should invert the matching at testing,\nsimilarly to the --return-nomatch flag of the \"set\" match of iptables.\nUntil now it worked with the elements with \"nomatch\" flag only. From\nnow on it works with elements without the flag too, i.e:\n\n # ipset n test hash:net\n # ipset a test 10.0.0.0/24 nomatch\n # ipset t test 10.0.0.1\n 10.0.0.1 is NOT in set test.\n # ipset t test 10.0.0.1 nomatch\n 10.0.0.1 is in set test.\n\n # ipset a test 192.168.0.0/24\n # ipset t test 192.168.0.1\n 192.168.0.1 is in set test.\n # ipset t test 192.168.0.1 nomatch\n 192.168.0.1 is NOT in set test.\n\n Before the patch the results were\n\n ...\n # ipset t test 192.168.0.1\n 192.168.0.1 is in set test.\n # ipset t test 192.168.0.1 nomatch\n 192.168.0.1 is in set test.\n\nSigned-off-by: Jozsef Kadlecsik \u003ckadlec@blackhole.kfki.hu\u003e\n"
    },
    {
      "commit": "35e4237973665c8a1ad4e3f7a7cb87573deaa24a",
      "tree": "ce2529c137ec6b1da4f81aa77c2882706bd0c80c",
      "parents": [
        "5c44bbdab5fd7831859cf0d38626317ffcf39558"
      ],
      "author": {
        "name": "Joseph Gasparakis",
        "email": "joseph.gasparakis@intel.com",
        "time": "Fri Sep 13 07:34:13 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 15 22:18:13 2013 -0400"
      },
      "message": "vxlan: Fix sparse warnings\n\nThis patch fixes sparse warnings when incorrectly handling the port number\nand using int instead of unsigned int iterating through \u0026vn-\u003esock_list[].\nKeeping the port as __be16 also makes things clearer wrt endianess.\nAlso, it was pointed out that vxlan_get_rx_port() had unnecessary checks\nwhich got removed.\n\nSigned-off-by: Joseph Gasparakis \u003cjoseph.gasparakis@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0375ec5899a37e80af7be8e813548df3292325ff",
      "tree": "6f3e60e0430988255ea6507d2c018b06227f8349",
      "parents": [
        "bff157b3ad4b9f6be0af6987fcd62deaf0f2b799",
        "fc85799ee362e3ef13b8f2f5c687101490aaaa7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 17:41:30 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 17:41:30 2013 -0400"
      },
      "message": "Merge tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull misc SCSI driver updates from James Bottomley:\n \"This patch set is a set of driver updates (megaraid_sas, fnic, lpfc,\n  ufs, hpsa) we also have a couple of bug fixes (sd out of bounds and\n  ibmvfc error handling) and the first round of esas2r checker fixes and\n  finally the much anticipated big endian additions for megaraid_sas\"\n\n* tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (47 commits)\n  [SCSI] fnic: fnic Driver Tuneables Exposed through CLI\n  [SCSI] fnic: Kernel panic while running sh/nosh with max lun cfg\n  [SCSI] fnic: Hitting BUG_ON(io_req-\u003eabts_done) in fnic_rport_exch_reset\n  [SCSI] fnic: Remove QUEUE_FULL handling code\n  [SCSI] fnic: On system with \u003e1.1TB RAM, VIC fails multipath after boot up\n  [SCSI] fnic: FC stat param seconds_since_last_reset not getting updated\n  [SCSI] sd: Fix potential out-of-bounds access\n  [SCSI] lpfc 8.3.42: Update lpfc version to driver version 8.3.42\n  [SCSI] lpfc 8.3.42: Fixed issue of task management commands having a fixed timeout\n  [SCSI] lpfc 8.3.42: Fixed inconsistent spin lock usage.\n  [SCSI] lpfc 8.3.42: Fix driver\u0027s abort loop functionality to skip IOs already getting aborted\n  [SCSI] lpfc 8.3.42: Fixed failure to allocate SCSI buffer on PPC64 platform for SLI4 devices\n  [SCSI] lpfc 8.3.42: Fix WARN_ON when driver unloads\n  [SCSI] lpfc 8.3.42: Avoided making pci bar ioremap call during dual-chute WQ/RQ pci bar selection\n  [SCSI] lpfc 8.3.42: Fixed driver iocbq structure\u0027s iocb_flag field running out of space\n  [SCSI] lpfc 8.3.42: Fix crash on driver load due to cpu affinity logic\n  [SCSI] lpfc 8.3.42: Fixed logging format of setting driver sysfs attributes hard to interpret\n  [SCSI] lpfc 8.3.42: Fixed back to back RSCNs discovery failure.\n  [SCSI] lpfc 8.3.42: Fixed race condition between BSG I/O dispatch and timeout handling\n  [SCSI] lpfc 8.3.42: Fixed function mode field defined too small for not recognizing dual-chute mode\n  ...\n"
    },
    {
      "commit": "bff157b3ad4b9f6be0af6987fcd62deaf0f2b799",
      "tree": "02ae68620a40fefd9ffc2de739a8bb362baa3f08",
      "parents": [
        "8bf5e36d0429e9b8fc2c84966577f10386bd7195",
        "23774a2f6fee0848503bfb8004eeeb5adef94f5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:15:06 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:15:06 2013 -0400"
      },
      "message": "Merge branch \u0027slab/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux\n\nPull SLAB update from Pekka Enberg:\n \"Nothing terribly exciting here apart from Christoph\u0027s kmalloc\n  unification patches that brings sl[aou]b implementations closer to\n  each other\"\n\n* \u0027slab/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:\n  slab: Use correct GFP_DMA constant\n  slub: remove verify_mem_not_deleted()\n  mm/sl[aou]b: Move kmallocXXX functions to common code\n  mm, slab_common: add \u0027unlikely\u0027 to size check of kmalloc_slab()\n  mm/slub.c: beautify code for removing redundancy \u0027break\u0027 statement.\n  slub: Remove unnecessary page NULL check\n  slub: don\u0027t use cpu partial pages on UP\n  mm/slub: beautify code for 80 column limitation and tab alignment\n  mm/slub: remove \u0027per_cpu\u0027 which is useless variable\n"
    },
    {
      "commit": "8bf5e36d0429e9b8fc2c84966577f10386bd7195",
      "tree": "d060b4ddc3cbc8bddd35a2aa182ed9bed9efb0de",
      "parents": [
        "05a8252bdefe9f2a8931c720afe6200671d631a6",
        "c7dc65737c9a607d3e6f8478659876074ad129b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:13:39 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:13:39 2013 -0400"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull input update from Dmitry Torokhov:\n \"The only change is David Hermann\u0027s new EVIOCREVOKE evdev ioctl that\n  allows safely passing file descriptors to input devices to session\n  processes and later being able to stop delivery of events through\n  these fds so that inactive sessions will no longer receive user input\n  that does not belong to them\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: evdev - add EVIOCREVOKE ioctl\n"
    },
    {
      "commit": "3711d86a2de17e967b576af8b8a1e9351a7d1466",
      "tree": "f7d6028b81a475a83a6c2471645e0202b2b5f427",
      "parents": [
        "89dc77bcdabf42ec99553f5837aa4bb8255a088c",
        "a8855990e382fc81c04187c5fdb48743307baf32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 23:06:40 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 23:06:40 2013 -0400"
      },
      "message": "Merge tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback fix from Wu Fengguang:\n \"A trivial writeback fix\"\n\n* tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Do not sort b_io list only because of block device inode\n"
    },
    {
      "commit": "9bf12df31f282e845b3dfaac1e5d5376a041da22",
      "tree": "10d7a21d34c7f2c47eff3e807f5efef46228d507",
      "parents": [
        "399a946edbbe90bd03aec2e93ce58c9b3f18e70b",
        "d9b2c8714aef102dea95544a8cd9372b21af463f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "message": "Merge git://git.kvack.org/~bcrl/aio-next\n\nPull aio changes from Ben LaHaise:\n \"First off, sorry for this pull request being late in the merge window.\n  Al had raised a couple of concerns about 2 items in the series below.\n  I addressed the first issue (the race introduced by Gu\u0027s use of\n  mm_populate()), but he has not provided any further details on how he\n  wants to rework the anon_inode.c changes (which were sent out months\n  ago but have yet to be commented on).\n\n  The bulk of the changes have been sitting in the -next tree for a few\n  months, with all the issues raised being addressed\"\n\n* git://git.kvack.org/~bcrl/aio-next: (22 commits)\n  aio: rcu_read_lock protection for new rcu_dereference calls\n  aio: fix race in ring buffer page lookup introduced by page migration support\n  aio: fix rcu sparse warnings introduced by ioctx table lookup patch\n  aio: remove unnecessary debugging from aio_free_ring()\n  aio: table lookup: verify ctx pointer\n  staging/lustre: kiocb-\u003eki_left is removed\n  aio: fix error handling and rcu usage in \"convert the ioctx list to table lookup v3\"\n  aio: be defensive to ensure request batching is non-zero instead of BUG_ON()\n  aio: convert the ioctx list to table lookup v3\n  aio: double aio_max_nr in calculations\n  aio: Kill ki_dtor\n  aio: Kill ki_users\n  aio: Kill unneeded kiocb members\n  aio: Kill aio_rw_vect_retry()\n  aio: Don\u0027t use ctx-\u003etail unnecessarily\n  aio: io_cancel() no longer returns the io_event\n  aio: percpu ioctx refcount\n  aio: percpu reqs_available\n  aio: reqs_active -\u003e reqs_available\n  aio: fix build when migration is disabled\n  ...\n"
    },
    {
      "commit": "331415ff16a12147d57d5c953f3a961b7ede348b",
      "tree": "79a497ffd03b720215e567c9c9862090fc76d0fa",
      "parents": [
        "b04c99e3b845892d754ee8052d6324c39c4040de"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed Sep 11 21:56:50 2013 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Sep 13 15:11:21 2013 +0200"
      },
      "message": "HID: provide a helper for validating hid reports\n\nMany drivers need to validate the characteristics of their HID report\nduring initialization to avoid misusing the reports. This adds a common\nhelper to perform validation of the report exisitng, the field existing,\nand the expected number of values within the field.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: stable@vger.kernel.org\nReviewed-by: Benjamin Tissoires \u003cbenjamin.tissoires@redhat.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0244ad004a54e39308d495fee0a2e637f8b5c317",
      "tree": "b59152dc7cf57e7ffb9c8388ae9095e665406633",
      "parents": [
        "5a7d8a28080caed7fd4cb1b81d092adac4445e8e"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Aug 30 09:39:53 2013 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Sep 13 15:09:52 2013 +0200"
      },
      "message": "Remove GENERIC_HARDIRQ config option\n\nAfter the last architecture switched to generic hard irqs the config\noptions HAVE_GENERIC_HARDIRQS \u0026 GENERIC_HARDIRQS and the related code\nfor !CONFIG_GENERIC_HARDIRQS can be removed.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "c13a84a830a208fb3443628773c8ca0557773cc7",
      "tree": "9d1c7a2d6e73a7bcb9af3b753eeccac73c43b47a",
      "parents": [
        "c19d65c95c6d472d69829fea7d473228493d5245"
      ],
      "author": {
        "name": "Michal Kubeček",
        "email": "mkubecek@suse.cz",
        "time": "Wed Sep 11 10:17:27 2013 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Fri Sep 13 11:58:40 2013 +0200"
      },
      "message": "netfilter: nf_conntrack: use RCU safe kfree for conntrack extensions\n\nCommit 68b80f11 (netfilter: nf_nat: fix RCU races) introduced\nRCU protection for freeing extension data when reallocation\nmoves them to a new location. We need the same protection when\nfreeing them in nf_ct_ext_free() in order to prevent a\nuse-after-free by other threads referencing a NAT extension data\nvia bysource list.\n\nSigned-off-by: Michal Kubecek \u003cmkubecek@suse.cz\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "48efe453e6b29561f78a1df55c7f58375259cb8c",
      "tree": "53d6ac1f2010b102c15b264b13fc4c98ba634d48",
      "parents": [
        "ac4de9543aca59f2b763746647577302fbedd57e",
        "2999ee7fda3f670effbfa746164c525f9d1be4b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:11:45 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:11:45 2013 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\nPull SCSI target updates from Nicholas Bellinger:\n \"Lots of activity again this round for I/O performance optimizations\n  (per-cpu IDA pre-allocation for vhost + iscsi/target), and the\n  addition of new fabric independent features to target-core\n  (COMPARE_AND_WRITE + EXTENDED_COPY).\n\n  The main highlights include:\n\n   - Support for iscsi-target login multiplexing across individual\n     network portals\n   - Generic Per-cpu IDA logic (kent + akpm + clameter)\n   - Conversion of vhost to use per-cpu IDA pre-allocation for\n     descriptors, SGLs and userspace page pointer list\n   - Conversion of iscsi-target + iser-target to use per-cpu IDA\n     pre-allocation for descriptors\n   - Add support for generic COMPARE_AND_WRITE (AtomicTestandSet)\n     emulation for virtual backend drivers\n   - Add support for generic EXTENDED_COPY (CopyOffload) emulation for\n     virtual backend drivers.\n   - Add support for fast memory registration mode to iser-target (Vu)\n\n  The patches to add COMPARE_AND_WRITE and EXTENDED_COPY support are of\n  particular significance, which make us the first and only open source\n  target to support the full set of VAAI primitives.\n\n  Currently Linux clients are lacking upstream support to actually\n  utilize these primitives.  However, with server side support now in\n  place for folks like MKP + ZAB working on the client, this logic once\n  reserved for the highest end of storage arrays, can now be run in VMs\n  on their laptops\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (50 commits)\n  target/iscsi: Bump versions to v4.1.0\n  target: Update copyright ownership/year information to 2013\n  iscsi-target: Bump default TCP listen backlog to 256\n  target: Fix \u003e\u003d v3.9+ regression in PR APTPL + ALUA metadata write-out\n  iscsi-target; Bump default CmdSN Depth to 64\n  iscsi-target: Remove unnecessary wait_for_completion in iscsi_get_thread_set\n  iscsi-target: Add thread_set-\u003ets_activate_sem + use common deallocate\n  iscsi-target: Fix race with thread_pre_handler flush_signals + ISCSI_THREAD_SET_DIE\n  target: remove unused including \u003clinux/version.h\u003e\n  iser-target: introduce fast memory registration mode (FRWR)\n  iser-target: generalize rdma memory registration and cleanup\n  iser-target: move rdma wr processing to a shared function\n  target: Enable global EXTENDED_COPY setup/release\n  target: Add Third Party Copy (3PC) bit in INQUIRY response\n  target: Enable EXTENDED_COPY setup in spc_parse_cdb\n  target: Add support for EXTENDED_COPY copy offload emulation\n  target: Avoid non-existent tg_pt_gp_mem in target_alua_state_check\n  target: Add global device list for EXTENDED_COPY\n  target: Make helpers non static for EXTENDED_COPY command setup\n  target: Make spc_parse_naa_6h_vendor_specific non static\n  ...\n"
    },
    {
      "commit": "ac4de9543aca59f2b763746647577302fbedd57e",
      "tree": "40407750569ee030de56233c41c9a97f7e89cf67",
      "parents": [
        "26935fb06ee88f1188789807687c03041f3c70d9",
        "de32a8177f64bc62e1b19c685dd391af664ab13f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:44:27 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:44:27 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew Morton)\n\nMerge more patches from Andrew Morton:\n \"The rest of MM.  Plus one misc cleanup\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  mm/Kconfig: add MMU dependency for MIGRATION.\n  kernel: replace strict_strto*() with kstrto*()\n  mm, thp: count thp_fault_fallback anytime thp fault fails\n  thp: consolidate code between handle_mm_fault() and do_huge_pmd_anonymous_page()\n  thp: do_huge_pmd_anonymous_page() cleanup\n  thp: move maybe_pmd_mkwrite() out of mk_huge_pmd()\n  mm: cleanup add_to_page_cache_locked()\n  thp: account anon transparent huge pages into NR_ANON_PAGES\n  truncate: drop \u0027oldsize\u0027 truncate_pagecache() parameter\n  mm: make lru_add_drain_all() selective\n  memcg: document cgroup dirty/writeback memory statistics\n  memcg: add per cgroup writeback pages accounting\n  memcg: check for proper lock held in mem_cgroup_update_page_stat\n  memcg: remove MEMCG_NR_FILE_MAPPED\n  memcg: reduce function dereference\n  memcg: avoid overflow caused by PAGE_ALIGN\n  memcg: rename RESOURCE_MAX to RES_COUNTER_MAX\n  memcg: correct RESOURCE_MAX to ULLONG_MAX\n  mm: memcg: do not trap chargers with full callstack on OOM\n  mm: memcg: rework and document OOM waiting and wakeup\n  ...\n"
    },
    {
      "commit": "c02925540ca7019465a43c00f8a3c0186ddace2b",
      "tree": "3097ece86eedd0a01cf5dbc0a8f6c28fcbd1f4f7",
      "parents": [
        "128ec037bafe5905b2e6f2796f426a1d247d0066"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:14:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "thp: consolidate code between handle_mm_fault() and do_huge_pmd_anonymous_page()\n\ndo_huge_pmd_anonymous_page() has copy-pasted piece of handle_mm_fault()\nto handle fallback path.\n\nLet\u0027s consolidate code back by introducing VM_FAULT_FALLBACK return\ncode.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7caef26767c1727d7abfbbbfbe8b2bb473430d48",
      "tree": "909e2a3c1b0a20a976fa3f84a17a00f8a21607bf",
      "parents": [
        "5fbc461636c32efdb9d5216d491d37a40d54535b"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:13:56 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "truncate: drop \u0027oldsize\u0027 truncate_pagecache() parameter\n\ntruncate_pagecache() doesn\u0027t care about old size since commit\ncedabed49b39 (\"vfs: Fix vmtruncate() regression\").  Let\u0027s drop it.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fbc461636c32efdb9d5216d491d37a40d54535b",
      "tree": "119599fe279ba3daf94422d54cfc7bd2a5ae4a80",
      "parents": [
        "9cb2dc1c950cf0624202c1ea2705705e1e51c278"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Sep 12 15:13:55 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "mm: make lru_add_drain_all() selective\n\nmake lru_add_drain_all() only selectively interrupt the cpus that have\nper-cpu free pages that can be drained.\n\nThis is important in nohz mode where calling mlockall(), for example,\notherwise will interrupt every core unnecessarily.\n\nThis is important on workloads where nohz cores are handling 10 Gb traffic\nin userspace.  Those CPUs do not enter the kernel and place pages into LRU\npagevecs and they really, really don\u0027t want to be interrupted, or they\ndrop packets on the floor.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ea67d06e4679a16f69f66f43a8d6ee4778985fc",
      "tree": "0ec35a312de85ce91bf0bf6e4c5b88440f3d0f1d",
      "parents": [
        "658b72c5a7a033f0dde61b15dff86bf423ce425e"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: add per cgroup writeback pages accounting\n\nAdd memcg routines to count writeback pages, later dirty pages will also\nbe accounted.\n\nAfter Kame\u0027s commit 89c06bd52fb9 (\"memcg: use new logic for page stat\naccounting\"), we can use \u0027struct page\u0027 flag to test page state instead\nof per page_cgroup flag.  But memcg has a feature to move a page from a\ncgroup to another one and may have race between \"move\" and \"page stat\naccounting\".  So in order to avoid the race we have designed a new lock:\n\n         mem_cgroup_begin_update_page_stat()\n         modify page information        --\u003e(a)\n         mem_cgroup_update_page_stat()  --\u003e(b)\n         mem_cgroup_end_update_page_stat()\n\nIt requires both (a) and (b)(writeback pages accounting) to be pretected\nin mem_cgroup_{begin/end}_update_page_stat().  It\u0027s full no-op for\n!CONFIG_MEMCG, almost no-op if memcg is disabled (but compiled in), rcu\nread lock in the most cases (no task is moving), and spin_lock_irqsave\non top in the slow path.\n\nThere\u0027re two writeback interfaces to modify: test_{clear/set}_page_writeback().\nAnd the lock order is:\n\t--\u003e memcg-\u003emove_lock\n\t  --\u003e mapping-\u003etree_lock\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68b4876d996e8749142b2895bc2e251448996363",
      "tree": "bd21b2e160d48dc38b11869c1bef5d38100ddd98",
      "parents": [
        "1a36e59d4833de19120dc7482c61ef69e228c73c"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:50 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: remove MEMCG_NR_FILE_MAPPED\n\nWhile accounting memcg page stat, it\u0027s not worth to use\nMEMCG_NR_FILE_MAPPED as an extra layer of indirection because of the\ncomplexity and presumed performance overhead.  We can use\nMEM_CGROUP_STAT_FILE_MAPPED directly.\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6de5a8bfcae6e3b427d642eff078d8305b324b52",
      "tree": "333d73c79bdec97184c4a60e45453a167730fd7b",
      "parents": [
        "34ff8dc08956098563989d8599840b130be81252"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: rename RESOURCE_MAX to RES_COUNTER_MAX\n\nRESOURCE_MAX is far too general name, change it to RES_COUNTER_MAX.\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34ff8dc08956098563989d8599840b130be81252",
      "tree": "39c964226586a57b0b1e97d9eb1f34b1dc99519e",
      "parents": [
        "3812c8c8f3953921ef18544110dafc3505c1ac62"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu Sep 12 15:13:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "memcg: correct RESOURCE_MAX to ULLONG_MAX\n\nCurrent RESOURCE_MAX is ULONG_MAX, but the value we used to set resource\nlimit is unsigned long long, so we can set bigger value than that which is\nstrange.  The XXX_MAX should be reasonable max value, bigger than that\nshould be overflow.\n\nNotice that this change will affect user output of default *.limit_in_bytes:\nbefore change:\n\n  $ cat /cgroup/memory/memory.limit_in_bytes\n  9223372036854775807\n\nafter change:\n\n  $ cat /cgroup/memory/memory.limit_in_bytes\n  18446744073709551615\n\nBut it doesn\u0027t alter the API in term of input - we can still use \"echo -1\n\u003e *.limit_in_bytes\" to reset the numbers to \"unlimited\".\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3812c8c8f3953921ef18544110dafc3505c1ac62",
      "tree": "8e5efc15fec4700644774df5fb5302f5c82f4a31",
      "parents": [
        "fb2a6fc56be66c169f8b80e07ed999ba453a2db2"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:44 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "mm: memcg: do not trap chargers with full callstack on OOM\n\nThe memcg OOM handling is incredibly fragile and can deadlock.  When a\ntask fails to charge memory, it invokes the OOM killer and loops right\nthere in the charge code until it succeeds.  Comparably, any other task\nthat enters the charge path at this point will go to a waitqueue right\nthen and there and sleep until the OOM situation is resolved.  The problem\nis that these tasks may hold filesystem locks and the mmap_sem; locks that\nthe selected OOM victim may need to exit.\n\nFor example, in one reported case, the task invoking the OOM killer was\nabout to charge a page cache page during a write(), which holds the\ni_mutex.  The OOM killer selected a task that was just entering truncate()\nand trying to acquire the i_mutex:\n\nOOM invoking task:\n  mem_cgroup_handle_oom+0x241/0x3b0\n  mem_cgroup_cache_charge+0xbe/0xe0\n  add_to_page_cache_locked+0x4c/0x140\n  add_to_page_cache_lru+0x22/0x50\n  grab_cache_page_write_begin+0x8b/0xe0\n  ext3_write_begin+0x88/0x270\n  generic_file_buffered_write+0x116/0x290\n  __generic_file_aio_write+0x27c/0x480\n  generic_file_aio_write+0x76/0xf0           # takes -\u003ei_mutex\n  do_sync_write+0xea/0x130\n  vfs_write+0xf3/0x1f0\n  sys_write+0x51/0x90\n  system_call_fastpath+0x18/0x1d\n\nOOM kill victim:\n  do_truncate+0x58/0xa0              # takes i_mutex\n  do_last+0x250/0xa30\n  path_openat+0xd7/0x440\n  do_filp_open+0x49/0xa0\n  do_sys_open+0x106/0x240\n  sys_open+0x20/0x30\n  system_call_fastpath+0x18/0x1d\n\nThe OOM handling task will retry the charge indefinitely while the OOM\nkilled task is not releasing any resources.\n\nA similar scenario can happen when the kernel OOM killer for a memcg is\ndisabled and a userspace task is in charge of resolving OOM situations.\nIn this case, ALL tasks that enter the OOM path will be made to sleep on\nthe OOM waitqueue and wait for userspace to free resources or increase\nthe group\u0027s limit.  But a userspace OOM handler is prone to deadlock\nitself on the locks held by the waiting tasks.  For example one of the\nsleeping tasks may be stuck in a brk() call with the mmap_sem held for\nwriting but the userspace handler, in order to pick an optimal victim,\nmay need to read files from /proc/\u003cpid\u003e, which tries to acquire the same\nmmap_sem for reading and deadlocks.\n\nThis patch changes the way tasks behave after detecting a memcg OOM and\nmakes sure nobody loops or sleeps with locks held:\n\n1. When OOMing in a user fault, invoke the OOM killer and restart the\n   fault instead of looping on the charge attempt.  This way, the OOM\n   victim can not get stuck on locks the looping task may hold.\n\n2. When OOMing in a user fault but somebody else is handling it\n   (either the kernel OOM killer or a userspace handler), don\u0027t go to\n   sleep in the charge context.  Instead, remember the OOMing memcg in\n   the task struct and then fully unwind the page fault stack with\n   -ENOMEM.  pagefault_out_of_memory() will then call back into the\n   memcg code to check if the -ENOMEM came from the memcg, and then\n   either put the task to sleep on the memcg\u0027s OOM waitqueue or just\n   restart the fault.  The OOM victim can no longer get stuck on any\n   lock a sleeping task may hold.\n\nDebugged by Michal Hocko.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: azurIt \u003cazurit@pobox.sk\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "519e52473ebe9db5cdef44670d5a97f1fd53d721",
      "tree": "635fce64ff3658250745b9c8dfebd47e981a5b16",
      "parents": [
        "3a13c4d761b4b979ba8767f42345fed3274991b0"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:42 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "mm: memcg: enable memcg OOM killer only for user faults\n\nSystem calls and kernel faults (uaccess, gup) can handle an out of memory\nsituation gracefully and just return -ENOMEM.\n\nEnable the memcg OOM killer only for user faults, where it\u0027s really the\nonly option available.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "759496ba6407c6994d6a5ce3a5e74937d7816208",
      "tree": "aeff8de8af36f70f2591114cef58c9ae7df25565",
      "parents": [
        "871341023c771ad233620b7a1fb3d9c7031c4e5c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "arch: mm: pass userspace fault flag to generic fault handler\n\nUnlike global OOM handling, memory cgroup code will invoke the OOM killer\nin any OOM situation because it has no way of telling faults occuring in\nkernel context - which could be handled more gracefully - from\nuser-triggered faults.\n\nPass a flag that identifies faults originating in user space from the\narchitecture-specific fault handlers to generic code so that memcg OOM\nhandling can be improved.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de57780dc659f95b17ccb649f003278dde0b5b86",
      "tree": "d2493cc412c16946f3ead9158a61b26dd1f0c45a",
      "parents": [
        "a5b7c87f92076352dbff2fe0423ec255e1c9a71b"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:26 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "memcg: enhance memcg iterator to support predicates\n\nThe caller of the iterator might know that some nodes or even subtrees\nshould be skipped but there is no way to tell iterators about that so the\nonly choice left is to let iterators to visit each node and do the\nselection outside of the iterating code.  This, however, doesn\u0027t scale\nwell with hierarchies with many groups where only few groups are\ninteresting.\n\nThis patch adds mem_cgroup_iter_cond variant of the iterator with a\ncallback which gets called for every visited node.  There are three\npossible ways how the callback can influence the walk.  Either the node is\nvisited, it is skipped but the tree walk continues down the tree or the\nwhole subtree of the current group is skipped.\n\n[hughd@google.com: fix memcg-less page reclaim]\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5b7c87f92076352dbff2fe0423ec255e1c9a71b",
      "tree": "fbc14b98d1412a078fc570914b050cd618e359f2",
      "parents": [
        "e883110aad718b65de658db77387aaa69cce996d"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:25 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "vmscan, memcg: do softlimit reclaim also for targeted reclaim\n\nSoft reclaim has been done only for the global reclaim (both background\nand direct).  Since \"memcg: integrate soft reclaim tighter with zone\nshrinking code\" there is no reason for this limitation anymore as the soft\nlimit reclaim doesn\u0027t use any special code paths and it is a part of the\nzone shrinking code which is used by both global and targeted reclaims.\n\nFrom the semantic point of view it is natural to consider soft limit\nbefore touching all groups in the hierarchy tree which is touching the\nhard limit because soft limit tells us where to push back when there is a\nmemory pressure.  It is not important whether the pressure comes from the\nlimit or imbalanced zones.\n\nThis patch simply enables soft reclaim unconditionally in\nmem_cgroup_should_soft_reclaim so it is enabled for both global and\ntargeted reclaim paths.  mem_cgroup_soft_reclaim_eligible needs to learn\nabout the root of the reclaim to know where to stop checking soft limit\nstate of parents up the hierarchy.  Say we have\n\nA (over soft limit)\n \\\n  B (below s.l., hit the hard limit)\n / \\\nC   D (below s.l.)\n\nB is the source of the outside memory pressure now for D but we shouldn\u0027t\nsoft reclaim it because it is behaving well under B subtree and we can\nstill reclaim from C (pressumably it is over the limit).\nmem_cgroup_soft_reclaim_eligible should therefore stop climbing up the\nhierarchy at B (root of the memory pressure).\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Glauber Costa \u003cglommer@openvz.org\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b38722efd9f66da63bbbd41520c2e6fa9db3d68",
      "tree": "aeec255d0358051b8ffe83f6744a2054b383c62e",
      "parents": [
        "c33bd8354f3a3bb26a98d2b6bf600b7b35657328"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Sep 12 15:13:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:00 2013 -0700"
      },
      "message": "memcg, vmscan: integrate soft reclaim tighter with zone shrinking code\n\nThis patchset is sitting out of tree for quite some time without any\nobjections.  I would be really happy if it made it into 3.12.  I do not\nwant to push it too hard but I think this work is basically ready and\nwaiting more doesn\u0027t help.\n\nThe basic idea is quite simple.  Pull soft reclaim into shrink_zone in the\nfirst step and get rid of the previous soft reclaim infrastructure.\nshrink_zone is done in two passes now.  First it tries to do the soft\nlimit reclaim and it falls back to reclaim-all mode if no group is over\nthe limit or no pages have been scanned.  The second pass happens at the\nsame priority so the only time we waste is the memcg tree walk which has\nbeen updated in the third step to have only negligible overhead.\n\nAs a bonus we will get rid of a _lot_ of code by this and soft reclaim\nwill not stand out like before when it wasn\u0027t integrated into the zone\nshrinking code and it reclaimed at priority 0 (the testing results show\nthat some workloads suffers from such an aggressive reclaim).  The clean\nup is in a separate patch because I felt it would be easier to review that\nway.\n\nThe second step is soft limit reclaim integration into targeted reclaim.\nIt should be rather straight forward.  Soft limit has been used only for\nthe global reclaim so far but it makes sense for any kind of pressure\ncoming from up-the-hierarchy, including targeted reclaim.\n\nThe third step (patches 4-8) addresses the tree walk overhead by enhancing\nmemcg iterators to enable skipping whole subtrees and tracking number of\nover soft limit children at each level of the hierarchy.  This information\nis updated same way the old soft limit tree was updated (from\nmemcg_check_events) so we shouldn\u0027t see an additional overhead.  In fact\nmem_cgroup_update_soft_limit is much simpler than tree manipulation done\npreviously.\n\n__shrink_zone uses mem_cgroup_soft_reclaim_eligible as a predicate for\nmem_cgroup_iter so the decision whether a particular group should be\nvisited is done at the iterator level which allows us to decide to skip\nthe whole subtree as well (if there is no child in excess).  This reduces\nthe tree walk overhead considerably.\n\n* TEST 1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nMy primary test case was a parallel kernel build with 2 groups (make is\nrunning with -j8 with a distribution .config in a separate cgroup without\nany hard limit) on a 32 CPU machine booted with 1GB memory and both builds\nrun taskset to Node 0 cpus.\n\nI was mostly interested in 2 setups.  Default - no soft limit set and -\nand 0 soft limit set to both groups.  The first one should tell us whether\nthe rework regresses the default behavior while the second one should show\nus improvements in an extreme case where both workloads are always over\nthe soft limit.\n\n/usr/bin/time -v has been used to collect the statistics and each\nconfiguration had 3 runs after fresh boot without any other load on the\nsystem.\n\nbase is mmotm-2013-07-18-16-40\nrework all 8 patches applied on top of base\n\n* No-limit\nUser\nno-limit/base: min: 651.92 max: 672.65 avg: 664.33 std: 8.01 runs: 6\nno-limit/rework: min: 657.34 [100.8%] max: 668.39 [99.4%] avg: 663.13 [99.8%] std: 3.61 runs: 6\nSystem\nno-limit/base: min: 69.33 max: 71.39 avg: 70.32 std: 0.79 runs: 6\nno-limit/rework: min: 69.12 [99.7%] max: 71.05 [99.5%] avg: 70.04 [99.6%] std: 0.59 runs: 6\nElapsed\nno-limit/base: min: 398.27 max: 422.36 avg: 408.85 std: 7.74 runs: 6\nno-limit/rework: min: 386.36 [97.0%] max: 438.40 [103.8%] avg: 416.34 [101.8%] std: 18.85 runs: 6\n\nThe results are within noise. Elapsed time has a bigger variance but the\naverage looks good.\n\n* 0-limit\nUser\n0-limit/base: min: 573.76 max: 605.63 avg: 585.73 std: 12.21 runs: 6\n0-limit/rework: min: 645.77 [112.6%] max: 666.25 [110.0%] avg: 656.97 [112.2%] std: 7.77 runs: 6\nSystem\n0-limit/base: min: 69.57 max: 71.13 avg: 70.29 std: 0.54 runs: 6\n0-limit/rework: min: 68.68 [98.7%] max: 71.40 [100.4%] avg: 69.91 [99.5%] std: 0.87 runs: 6\nElapsed\n0-limit/base: min: 1306.14 max: 1550.17 avg: 1430.35 std: 90.86 runs: 6\n0-limit/rework: min: 404.06 [30.9%] max: 465.94 [30.1%] avg: 434.81 [30.4%] std: 22.68 runs: 6\n\nThe improvement is really huge here (even bigger than with my previous\ntesting and I suspect that this highly depends on the storage).  Page\nfault statistics tell us at least part of the story:\n\nMinor\n0-limit/base: min: 37180461.00 max: 37319986.00 avg: 37247470.00 std: 54772.71 runs: 6\n0-limit/rework: min: 36751685.00 [98.8%] max: 36805379.00 [98.6%] avg: 36774506.33 [98.7%] std: 17109.03 runs: 6\nMajor\n0-limit/base: min: 170604.00 max: 221141.00 avg: 196081.83 std: 18217.01 runs: 6\n0-limit/rework: min: 2864.00 [1.7%] max: 10029.00 [4.5%] avg: 5627.33 [2.9%] std: 2252.71 runs: 6\n\nSame as with my previous testing Minor faults are more or less within\nnoise but Major fault count is way bellow the base kernel.\n\nWhile this looks as a nice win it is fair to say that 0-limit\nconfiguration is quite artificial. So I was playing with 0-no-limit\nloads as well.\n\n* TEST 2\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe following results are from 2 groups configuration on a 16GB machine\n(single NUMA node).\n\n- A running stream IO (dd if\u003d/dev/zero of\u003dlocal.file bs\u003d1024) with\n  2*TotalMem with 0 soft limit.\n- B running a mem_eater which consumes TotalMem-1G without any limit. The\n  mem_eater consumes the memory in 100 chunks with 1s nap after each\n  mmap+poppulate so that both loads have chance to fight for the memory.\n\nThe expected result is that B shouldn\u0027t be reclaimed and A shouldn\u0027t see\na big dropdown in elapsed time.\n\nUser\nbase: min: 2.68 max: 2.89 avg: 2.76 std: 0.09 runs: 3\nrework: min: 3.27 [122.0%] max: 3.74 [129.4%] avg: 3.44 [124.6%] std: 0.21 runs: 3\nSystem\nbase: min: 86.26 max: 88.29 avg: 87.28 std: 0.83 runs: 3\nrework: min: 81.05 [94.0%] max: 84.96 [96.2%] avg: 83.14 [95.3%] std: 1.61 runs: 3\nElapsed\nbase: min: 317.28 max: 332.39 avg: 325.84 std: 6.33 runs: 3\nrework: min: 281.53 [88.7%] max: 298.16 [89.7%] avg: 290.99 [89.3%] std: 6.98 runs: 3\n\nSystem time improved slightly as well as Elapsed. My previous testing\nhas shown worse numbers but this again seem to depend on the storage\nspeed.\n\nMy theory is that the writeback doesn\u0027t catch up and prio-0 soft reclaim\nfalls into wait on writeback page too often in the base kernel. The\npatched kernel doesn\u0027t do that because the soft reclaim is done from the\nkswapd/direct reclaim context. This can be seen on the following graph\nnicely. The A\u0027s group usage_in_bytes regurarly drops really low very often.\n\nAll 3 runs\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/stream.png\nresp. a detail of the single run\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/stream-one-run.png\n\nmem_eater seems to be doing better as well. It gets to the full\nallocation size faster as can be seen on the following graph:\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/mem_eater-one-run.png\n\n/proc/meminfo collected during the test also shows that rework kernel\nhasn\u0027t swapped that much (well almost not at all):\nbase: max: 123900 K avg: 56388.29 K\nrework: max: 300 K avg: 128.68 K\n\nkswapd and direct reclaim statistics are of no use unfortunatelly because\nsoft reclaim is not accounted properly as the counters are hidden by\nglobal_reclaim() checks in the base kernel.\n\n* TEST 3\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAnother test was the same configuration as TEST2 except the stream IO was\nreplaced by a single kbuild (16 parallel jobs bound to Node0 cpus same as\nin TEST1) and mem_eater allocated TotalMem-200M so kbuild had only 200MB\nleft.\n\nKbuild did better with the rework kernel here as well:\nUser\nbase: min: 860.28 max: 872.86 avg: 868.03 std: 5.54 runs: 3\nrework: min: 880.81 [102.4%] max: 887.45 [101.7%] avg: 883.56 [101.8%] std: 2.83 runs: 3\nSystem\nbase: min: 84.35 max: 85.06 avg: 84.79 std: 0.31 runs: 3\nrework: min: 85.62 [101.5%] max: 86.09 [101.2%] avg: 85.79 [101.2%] std: 0.21 runs: 3\nElapsed\nbase: min: 135.36 max: 243.30 avg: 182.47 std: 45.12 runs: 3\nrework: min: 110.46 [81.6%] max: 116.20 [47.8%] avg: 114.15 [62.6%] std: 2.61 runs: 3\nMinor\nbase: min: 36635476.00 max: 36673365.00 avg: 36654812.00 std: 15478.03 runs: 3\nrework: min: 36639301.00 [100.0%] max: 36695541.00 [100.1%] avg: 36665511.00 [100.0%] std: 23118.23 runs: 3\nMajor\nbase: min: 14708.00 max: 53328.00 avg: 31379.00 std: 16202.24 runs: 3\nrework: min: 302.00 [2.1%] max: 414.00 [0.8%] avg: 366.33 [1.2%] std: 47.22 runs: 3\n\nAgain we can see a significant improvement in Elapsed (it also seems to\nbe more stable), there is a huge dropdown for the Major page faults and\nmuch more swapping:\nbase: max: 583736 K avg: 112547.43 K\nrework: max: 4012 K avg: 124.36 K\n\nGraphs from all three runs show the variability of the kbuild quite\nnicely.  It even seems that it took longer after every run with the base\nkernel which would be quite surprising as the source tree for the build is\nremoved and caches are dropped after each run so the build operates on a\nfreshly extracted sources everytime.\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/kbuild-mem_eater.png\n\nMy other testing shows that this is just a matter of timing and other runs\nbehave differently the std for Elapsed time is similar ~50.  Example of\nother three runs:\nhttp://labs.suse.cz/mhocko/soft_limit_rework/stream_io-vs-mem_eater/kbuild-mem_eater2.png\n\nSo to wrap this up.  The series is still doing good and improves the soft\nlimit.\n\nThe testing results for bunch of cgroups with both stream IO and kbuild\nloads can be found in \"memcg: track children in soft limit excess to\nimprove soft limit\".\n\nThis patch:\n\nMemcg soft reclaim has been traditionally triggered from the global\nreclaim paths before calling shrink_zone.  mem_cgroup_soft_limit_reclaim\nthen picked up a group which exceeds the soft limit the most and reclaimed\nit with 0 priority to reclaim at least SWAP_CLUSTER_MAX pages.\n\nThe infrastructure requires per-node-zone trees which hold over-limit\ngroups and keep them up-to-date (via memcg_check_events) which is not cost\nfree.  Although this overhead hasn\u0027t turned out to be a bottle neck the\nimplementation is suboptimal because mem_cgroup_update_tree has no idea\nwhich zones consumed memory over the limit so we could easily end up\nhaving a group on a node-zone tree having only few pages from that\nnode-zone.\n\nThis patch doesn\u0027t try to fix node-zone trees management because it seems\nthat integrating soft reclaim into zone shrinking sounds much easier and\nmore appropriate for several reasons.  First of all 0 priority reclaim was\na crude hack which might lead to big stalls if the group\u0027s LRUs are big\nand hard to reclaim (e.g.  a lot of dirty/writeback pages).  Soft reclaim\nshould be applicable also to the targeted reclaim which is awkward right\nnow without additional hacks.  Last but not least the whole infrastructure\neats quite some code.\n\nAfter this patch shrink_zone is done in 2 passes.  First it tries to do\nthe soft reclaim if appropriate (only for global reclaim for now to keep\ncompatible with the original state) and fall back to ignoring soft limit\nif no group is eligible to soft reclaim or nothing has been scanned during\nthe first pass.  Only groups which are over their soft limit or any of\ntheir parents up the hierarchy is over the limit are considered eligible\nduring the first pass.\n\nSoft limit tree which is not necessary anymore will be removed in the\nfollow up patch to make this patch smaller and easier to review.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Glauber Costa \u003cglommer@openvz.org\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26935fb06ee88f1188789807687c03041f3c70d9",
      "tree": "381c487716540b52348d78bee6555f8fa61d77ef",
      "parents": [
        "3cc69b638e11bfda5d013c2b75b60934aa0e88a1",
        "bf2ba3bc185269eca274b458aac46ba1ad7c1121"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:01:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:01:38 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 4 from Al Viro:\n \"list_lru pile, mostly\"\n\nThis came out of Andrew\u0027s pile, Al ended up doing the merge work so that\nAndrew didn\u0027t have to.\n\nAdditionally, a few fixes.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (42 commits)\n  super: fix for destroy lrus\n  list_lru: dynamically adjust node arrays\n  shrinker: Kill old -\u003eshrink API.\n  shrinker: convert remaining shrinkers to count/scan API\n  staging/lustre/libcfs: cleanup linux-mem.h\n  staging/lustre/ptlrpc: convert to new shrinker API\n  staging/lustre/obdclass: convert lu_object shrinker to count/scan API\n  staging/lustre/ldlm: convert to shrinkers to count/scan API\n  hugepage: convert huge zero page shrinker to new shrinker API\n  i915: bail out earlier when shrinker cannot acquire mutex\n  drivers: convert shrinkers to new count/scan API\n  fs: convert fs shrinkers to new scan/count API\n  xfs: fix dquot isolation hang\n  xfs-convert-dquot-cache-lru-to-list_lru-fix\n  xfs: convert dquot cache lru to list_lru\n  xfs: rework buffer dispose list tracking\n  xfs-convert-buftarg-lru-to-generic-code-fix\n  xfs: convert buftarg LRU to generic code\n  fs: convert inode and dentry shrinking to be node aware\n  vmscan: per-node deferred work\n  ...\n"
    },
    {
      "commit": "5223161dc0f5e44fbf3d5e42d23697b6796cdf4e",
      "tree": "10837ec58d96e751469d78d347f76c0d49238d72",
      "parents": [
        "e5d0c874391a500be7643d3eef9fb07171eee129",
        "61abeba5222895d6900b13115f5d8eba7988d7d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:35:33 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:35:33 2013 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds\n\nPull led updates from Bryan Wu:\n \"Sorry for the late pull request, since I\u0027m just back from vacation.\n\n  LED subsystem updates for 3.12:\n   - pca9633 driver DT supporting and pca9634 chip supporting\n   - restore legacy device attributes for lp5521\n   - other fixing and updates\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (28 commits)\n  leds: wm831x-status: Request a REG resource\n  leds: trigger: ledtrig-backlight: Fix invalid memory access in fb_event notification callback\n  leds-pca963x: Fix device tree parsing\n  leds-pca9633: Rename to leds-pca963x\n  leds-pca9633: Add mutex to the ledout register\n  leds-pca9633: Unique naming of the LEDs\n  leds-pca9633: Add support for PCA9634\n  leds: lp5562: use LP55xx common macros for device attributes\n  Documentation: leds-lp5521,lp5523: update device attribute information\n  leds: lp5523: remove unnecessary writing commands\n  leds: lp5523: restore legacy device attributes\n  leds: lp5523: LED MUX configuration on initializing\n  leds: lp5523: make separate API for loading engine\n  leds: lp5521: remove unnecessary writing commands\n  leds: lp5521: restore legacy device attributes\n  leds: lp55xx: add common macros for device attributes\n  leds: lp55xx: add common data structure for program\n  Documentation: leds: Fix a typo\n  leds: ss4200: Fix incorrect placement of __initdata\n  leds: clevo-mail: Fix incorrect placement of __initdata\n  ...\n"
    },
    {
      "commit": "e5d0c874391a500be7643d3eef9fb07171eee129",
      "tree": "e584dda865c5628fbb8e59a50096a0f4c21bf2bd",
      "parents": [
        "d5adf7e2db897f9d4a00be59262875ae5d9574f4",
        "d6a60fc1a8187004792a01643d8af1d06a465026"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:29:26 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:29:26 2013 -0700"
      },
      "message": "Merge tag \u0027iommu-updates-v3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU Updates from Joerg Roedel:\n \"This round the updates contain:\n\n   - A new driver for the Freescale PAMU IOMMU from Varun Sethi.\n\n     This driver has cooked for a while and required changes to the\n     IOMMU-API and infrastructure that were already merged before.\n\n   - Updates for the ARM-SMMU driver from Will Deacon\n\n   - Various fixes, the most important one is probably a fix from Alex\n     Williamson for a memory leak in the VT-d page-table freeing code\n\n  In summary not all that much.  The biggest part in the diffstat is the\n  new PAMU driver\"\n\n* tag \u0027iommu-updates-v3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:\n  intel-iommu: Fix leaks in pagetable freeing\n  iommu/amd: Fix resource leak in iommu_init_device()\n  iommu/amd: Clean up unnecessary MSI/MSI-X capability find\n  iommu/arm-smmu: Simplify VMID and ASID allocation\n  iommu/arm-smmu: Don\u0027t use VMIDs for stage-1 translations\n  iommu/arm-smmu: Tighten up global fault reporting\n  iommu/arm-smmu: Remove broken big-endian check\n  iommu/fsl: Remove unnecessary \u0027fsl-pamu\u0027 prefixes\n  iommu/fsl: Fix whitespace problems noticed by git-am\n  iommu/fsl: Freescale PAMU driver and iommu implementation.\n  iommu/fsl: Add additional iommu attributes required by the PAMU driver.\n  powerpc: Add iommu domain pointer to device archdata\n  iommu/exynos: Remove dead code (set_prefbuf)\n"
    },
    {
      "commit": "02b9735c12892e04d3e101b06e4c6d64a814f566",
      "tree": "7907deb1cbfd1599d4f34d414873170d3266f164",
      "parents": [
        "75acebf2423ab13ff6198daa6e17ef7a2543bfe4",
        "f1728fd1599112239ed5cebc7be9810264db6792"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:22:45 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:22:45 2013 -0700"
      },
      "message": "Merge tag \u0027pm+acpi-fixes-3.12-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull ACPI and power management fixes from Rafael Wysocki:\n \"All of these commits are fixes that have emerged recently and some of\n  them fix bugs introduced during this merge window.\n\n  Specifics:\n\n   1) ACPI-based PCI hotplug (ACPIPHP) fixes related to spurious events\n\n      After the recent ACPIPHP changes we\u0027ve seen some interesting\n      breakage on a system that triggers device check notifications\n      during boot for non-existing devices.  Although those\n      notifications are really spurious, we should be able to deal with\n      them nevertheless and that shouldn\u0027t introduce too much overhead.\n      Four commits to make that work properly.\n\n   2) Memory hotplug and hibernation mutual exclusion rework\n\n      This was maent to be a cleanup, but it happens to fix a classical\n      ABBA deadlock between system suspend/hibernation and ACPI memory\n      hotplug which is possible if they are started roughly at the same\n      time.  Three commits rework memory hotplug so that it doesn\u0027t\n      acquire pm_mutex and make hibernation use device_hotplug_lock\n      which prevents it from racing with memory hotplug.\n\n   3) ACPI Intel LPSS (Low-Power Subsystem) driver crash fix\n\n      The ACPI LPSS driver crashes during boot on Apple Macbook Air with\n      Haswell that has slightly unusual BIOS configuration in which one\n      of the LPSS device\u0027s _CRS method doesn\u0027t return all of the\n      information expected by the driver.  Fix from Mika Westerberg, for\n      stable.\n\n   4) ACPICA fix related to Store-\u003eArgX operation\n\n      AML interpreter fix for obscure breakage that causes AML to be\n      executed incorrectly on some machines (observed in practice).\n      From Bob Moore.\n\n   5) ACPI core fix for PCI ACPI device objects lookup\n\n      There still are cases in which there is more than one ACPI device\n      object matching a given PCI device and we don\u0027t choose the one\n      that the BIOS expects us to choose, so this makes the lookup take\n      more criteria into account in those cases.\n\n   6) Fix to prevent cpuidle from crashing in some rare cases\n\n      If the result of cpuidle_get_driver() is NULL, which can happen on\n      some systems, cpuidle_driver_ref() will crash trying to use that\n      pointer and the Daniel Fu\u0027s fix prevents that from happening.\n\n   7) cpufreq fixes related to CPU hotplug\n\n      Stephen Boyd reported a number of concurrency problems with\n      cpufreq related to CPU hotplug which are addressed by a series of\n      fixes from Srivatsa S Bhat and Viresh Kumar.\n\n   8) cpufreq fix for time conversion in time_in_state attribute\n\n      Time conversion carried out by cpufreq when user space attempts to\n      read /sys/devices/system/cpu/cpu*/cpufreq/stats/time_in_state\n      won\u0027t work correcty if cputime_t doesn\u0027t map directly to jiffies.\n      Fix from Andreas Schwab.\n\n   9) Revert of a troublesome cpufreq commit\n\n      Commit 7c30ed5 (cpufreq: make sure frequency transitions are\n      serialized) was intended to address some known concurrency\n      problems in cpufreq related to the ordering of transitions, but\n      unfortunately it introduced several problems of its own, so I\n      decided to revert it now and address the original problems later\n      in a more robust way.\n\n  10) Intel Haswell CPU models for intel_pstate from Nell Hardcastle.\n\n  11) cpufreq fixes related to system suspend/resume\n\n      The recent cpufreq changes that made it preserve CPU sysfs\n      attributes over suspend/resume cycles introduced a possible NULL\n      pointer dereference that caused it to crash during the second\n      attempt to suspend.  Three commits from Srivatsa S Bhat fix that\n      problem and a couple of related issues.\n\n  12) cpufreq locking fix\n\n      cpufreq_policy_restore() should acquire the lock for reading, but\n      it acquires it for writing.  Fix from Lan Tianyu\"\n\n* tag \u0027pm+acpi-fixes-3.12-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (25 commits)\n  cpufreq: Acquire the lock in cpufreq_policy_restore() for reading\n  cpufreq: Prevent problems in update_policy_cpu() if last_cpu \u003d\u003d new_cpu\n  cpufreq: Restructure if/else block to avoid unintended behavior\n  cpufreq: Fix crash in cpufreq-stats during suspend/resume\n  intel_pstate: Add Haswell CPU models\n  Revert \"cpufreq: make sure frequency transitions are serialized\"\n  cpufreq: Use signed type for \u0027ret\u0027 variable, to store negative error values\n  cpufreq: Remove temporary fix for race between CPU hotplug and sysfs-writes\n  cpufreq: Synchronize the cpufreq store_*() routines with CPU hotplug\n  cpufreq: Invoke __cpufreq_remove_dev_finish() after releasing cpu_hotplug.lock\n  cpufreq: Split __cpufreq_remove_dev() into two parts\n  cpufreq: Fix wrong time unit conversion\n  cpufreq: serialize calls to __cpufreq_governor()\n  cpufreq: don\u0027t allow governor limits to be changed when it is disabled\n  ACPI / bind: Prefer device objects with _STA to those without it\n  ACPI / hotplug / PCI: Avoid parent bus rescans on spurious device checks\n  ACPI / hotplug / PCI: Use _OST to notify firmware about notify status\n  ACPI / hotplug / PCI: Avoid doing too much for spurious notifies\n  ACPICA: Fix for a Store-\u003eArgX when ArgX contains a reference to a field.\n  ACPI / hotplug / PCI: Don\u0027t trim devices before scanning the namespace\n  ...\n"
    },
    {
      "commit": "5762482f5496cb1dd86acd2aace3ea25d1404e1f",
      "tree": "6d74d7b501002f7516e2eb3068f5a942f63098ee",
      "parents": [
        "b7c09ad4014e3678e8cc01fdf663c9f43b272dc6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:12:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:12:47 2013 -0700"
      },
      "message": "vfs: move get_fs_root_and_pwd() to single caller\n\nLet\u0027s not pollute the include files with inline functions that are only\nused in a single place.  Especially not if we decide we might want to\nchange the semantics of said function to make it more efficient..\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7c09ad4014e3678e8cc01fdf663c9f43b272dc6",
      "tree": "1edb073b0a76ce1530cb31c113f9e741e33ece0e",
      "parents": [
        "1812997720ab90d029548778c55d7315555e1fef",
        "d7396f07358a7c6e22c238d36d1d85f9d652a414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:58:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:58:51 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs updates from Chris Mason:\n \"This is against 3.11-rc7, but was pulled and tested against your tree\n  as of yesterday.  We do have two small incrementals queued up, but I\n  wanted to get this bunch out the door before I hop on an airplane.\n\n  This is a fairly large batch of fixes, performance improvements, and\n  cleanups from the usual Btrfs suspects.\n\n  We\u0027ve included Stefan Behren\u0027s work to index subvolume UUIDs, which is\n  targeted at speeding up send/receive with many subvolumes or snapshots\n  in place.  It closes a long standing performance issue that was built\n  in to the disk format.\n\n  Mark Fasheh\u0027s offline dedup work is also here.  In this case offline\n  means the FS is mounted and active, but the dedup work is not done\n  inline during file IO.  This is a building block where utilities are\n  able to ask the FS to dedup a series of extents.  The kernel takes\n  care of verifying the data involved really is the same.  Today this\n  involves reading both extents, but we\u0027ll continue to evolve the\n  patches\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)\n  Btrfs: optimize key searches in btrfs_search_slot\n  Btrfs: don\u0027t use an async starter for most of our workers\n  Btrfs: only update disk_i_size as we remove extents\n  Btrfs: fix deadlock in uuid scan kthread\n  Btrfs: stop refusing the relocation of chunk 0\n  Btrfs: fix memory leak of uuid_root in free_fs_info\n  btrfs: reuse kbasename helper\n  btrfs: return btrfs error code for dev excl ops err\n  Btrfs: allow partial ordered extent completion\n  Btrfs: convert all bug_ons in free-space-cache.c\n  Btrfs: add support for asserts\n  Btrfs: adjust the fs_devices-\u003emissing count on unmount\n  Btrf: cleanup: don\u0027t check for root_refs \u003d\u003d 0 twice\n  Btrfs: fix for patch \"cleanup: don\u0027t check the same thing twice\"\n  Btrfs: get rid of one BUG() in write_all_supers()\n  Btrfs: allocate prelim_ref with a slab allocater\n  Btrfs: pass gfp_t to __add_prelim_ref() to avoid always using GFP_ATOMIC\n  Btrfs: fix race conditions in BTRFS_IOC_FS_INFO ioctl\n  Btrfs: fix race between removing a dev and writing sbs\n  Btrfs: remove ourselves from the cluster list under lock\n  ...\n"
    },
    {
      "commit": "1370e97bb2eb1ef2df7355204e5a4ba13e12b861",
      "tree": "9e3c2e9b0e0a7f67e50898e8ff5ecb462f260625",
      "parents": [
        "decf7abcc97444ecd2d3cf278f5cc8093f33f49a"
      ],
      "author": {
        "name": "Waiman Long",
        "email": "Waiman.Long@hp.com",
        "time": "Thu Sep 12 10:55:34 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:25:23 2013 -0700"
      },
      "message": "seqlock: Add a new locking reader type\n\nThe sequence lock (seqlock) was originally designed for the cases where\nthe readers do not need to block the writers by making the readers retry\nthe read operation when the data change.\n\nSince then, the use cases have been expanded to include situations where\na thread does not need to change the data (effectively a reader) at all\nbut have to take the writer lock because it can\u0027t tolerate changes to\nthe protected structure.  Some examples are the d_path() function and\nthe getcwd() syscall in fs/dcache.c where the functions take the writer\nlock on rename_lock even though they don\u0027t need to change anything in\nthe protected data structure at all.  This is inefficient as a reader is\nnow blocking other sequence number reading readers from moving forward\nby pretending to be a writer.\n\nThis patch tries to eliminate this inefficiency by introducing a new\ntype of locking reader to the seqlock locking mechanism.  This new\nlocking reader will try to take an exclusive lock preventing other\nwriters and locking readers from going forward.  However, it won\u0027t\naffect the progress of the other sequence number reading readers as the\nsequence number won\u0027t be changed.\n\nSigned-off-by: Waiman Long \u003cWaiman.Long@hp.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "decf7abcc97444ecd2d3cf278f5cc8093f33f49a",
      "tree": "735057e504a1787a741f6a15fac7dbe2f461e887",
      "parents": [
        "24ba40588fe50adce2a99e026fc0026872ebeb85",
        "3d0049e8529adaa36c38a7b400792f6c37b66c92"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 08:52:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 08:52:41 2013 -0700"
      },
      "message": "Merge tag \u0027sound-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\nPull sound fixes from Takashi Iwai:\n \"A few last-minute fixes for 3.12-rc1.  All patches are driver\n  specific.\n\n   - HD-audio fixes: MacBook 6,1/6,2 speaker fix, ASUS TX300 dock\n     speaker fix, Toshiba Satellite irq fix, Haswell HDMI audio\n     cleanups)\n\n   - ASoC fixes: atmel irq fix, fsl DT fix, mc13783 spi fix, kirkwood\n     compatible string change, etc\"\n\n* tag \u0027sound-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:\n  ASoC: mc13783: add spi errata fix\n  ASoC: rsnd: fixup flag name of rsnd_scu_platform_info\n  ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2\n  ALSA: hda - Add Toshiba Satellite C870 to MSI blacklist\n  ASoC: fsl_spdif: Select regmap-mmio\n  ALSA: hda - unmute pin amplifier in infoframe setup for Haswell\n  ALSA: hda - define is_haswell() to check if a display audio codec is Haswell\n  ALSA: hda - Add dock speaker support for ASUS TX300\n  ASoC: kirkwood: change the compatible string of the kirkwood-i2s driver\n  ASoC: atmel: disable error interrupt\n  ASoC: fsl: imx-audmux: Do not call imx_audmux_parse_dt_defaults() on non-dt kernel\n"
    },
    {
      "commit": "d6a60fc1a8187004792a01643d8af1d06a465026",
      "tree": "033a6976e47fc49c5f095c38008f1d1f6be5f93e",
      "parents": [
        "6e4664525b1db28f8c4e1130957f70a94c19213e",
        "ca19243e9ce81f8e8a25ee33969444f11b0590b7",
        "634544bf718dd29cd2e29efba6801a8d08daf335",
        "ecfadb6e5b49a0a56df2038bf39f1fcd652788b9",
        "e644a013fe67f2bccd54378b88556d07fa2714d6",
        "3269ee0bd6686baf86630300d528500ac5b516d7"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Thu Sep 12 16:46:34 2013 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Thu Sep 12 16:46:34 2013 +0200"
      },
      "message": "Merge branches \u0027arm/exynos\u0027, \u0027ppc/pamu\u0027, \u0027arm/smmu\u0027, \u0027x86/amd\u0027 and \u0027iommu/fixes\u0027 into next\n"
    },
    {
      "commit": "b9b42eeb88d36cc7400925302f1587aaaa348905",
      "tree": "f5260ad8013adeca9f86c85c096099844238c725",
      "parents": [
        "7b7a2f0a31c6c1ff53a3c87c0bca4f8d01471391",
        "50e66c7ed8a1cd7e933628f9f5cf2617394adf5a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:42:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:42:59 2013 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux\n\nPull thermal management updates from Zhang Rui:\n \"We have a lot of SOC changes and a few thermal core fixes this time.\n\n  The biggest change is about exynos thermal driver restructure.  The\n  patch set adds TMU (Thermal management Unit) driver support for\n  exynos5440 platform.  There are 3 instances of the TMU controllers so\n  necessary cleanup/re-structure is done to handle multiple thermal\n  zone.\n\n  The next biggest change is the introduction of the imx thermal driver.\n  It adds the imx thermal support using Temperature Monitor (TEMPMON)\n  block found on some Freescale i.MX SoCs.  The driver uses syscon\n  regmap interface to access TEMPMON control registers and calibration\n  data, and supports cpufreq as the cooling device.\n\n  Highlights:\n\n   - restructure exynos thermal driver.\n\n   - introduce new imx thermal driver.\n\n   - fix a bug in thermal core, which powers on the fans unexpectedly\n     after resume from suspend\"\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (46 commits)\n  drivers: thermal: add check when unregistering cpu cooling\n  thermal: thermal_core: allow binding with limits on bind_params\n  drivers: thermal: make usage of CONFIG_THERMAL_HWMON optional\n  drivers: thermal: parent virtual hwmon with thermal zone\n  thermal: hwmon: move hwmon support to single file\n  thermal: exynos: Clean up non-DT remnants\n  thermal: exynos: Fix potential NULL pointer dereference\n  thermal: exynos: Fix typos in Kconfig\n  thermal: ti-soc-thermal: Ensure to compute thermal trend\n  thermal: ti-soc-thermal: Set the bandgap mask counter delay value\n  thermal: ti-soc-thermal: Initialize counter_delay field for TI DRA752 sensors\n  thermal: step_wise: return instance-\u003etarget by default\n  thermal: step_wise: cdev only needs update on a new target state\n  Thermal/cpu_cooling: Return directly for the cpu out of allowed_cpus in the cpufreq_thermal_notifier()\n  thermal: exynos_tmu: fix wrong error check for mapped memory\n  thermal: imx: implement thermal alarm interrupt handling\n  thermal: imx: dynamic passive and SoC specific critical trip points\n  Documentation: thermal: Explain the exynos thermal driver model\n  ARM: dts: thermal: exynos: Add documentation for Exynos SoC thermal bindings\n  thermal: exynos: Support for TMU regulator defined at device tree\n  ...\n"
    },
    {
      "commit": "7b7a2f0a31c6c1ff53a3c87c0bca4f8d01471391",
      "tree": "17b0e72c8e996e581974bbbc0e7f68f07d87ab1e",
      "parents": [
        "c3567f8a359b7917dcffa442301f88ed0a75211f",
        "42873b0a282ac84a56e0e48c408beb62d0ad2917"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:41:12 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:41:12 2013 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"CIFS update including case insensitive file name matching improvements\n  for UTF-8 to Unicode, various small cifs fixes, SMB2/SMB3 leasing\n  improvements, support for following SMB2 symlinks, SMB3 packet signing\n  improvements\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6: (25 commits)\n  CIFS: Respect epoch value from create lease context v2\n  CIFS: Add create lease v2 context for SMB3\n  CIFS: Move parsing lease buffer to ops struct\n  CIFS: Move creating lease buffer to ops struct\n  CIFS: Store lease state itself rather than a mapped oplock value\n  CIFS: Replace clientCanCache* bools with an integer\n  [CIFS] quiet sparse compile warning\n  cifs: Start using per session key for smb2/3 for signature generation\n  cifs: Add a variable specific to NTLMSSP for key exchange.\n  cifs: Process post session setup code in respective dialect functions.\n  CIFS: convert to use le32_add_cpu()\n  CIFS: Fix missing lease break\n  CIFS: Fix a memory leak when a lease break comes\n  cifs: add winucase_convert.pl to Documentation/ directory\n  cifs: convert case-insensitive dentry ops to use new case conversion routines\n  cifs: add new case-insensitive conversion routines that are based on wchar_t\u0027s\n  [CIFS] Add Scott to list of cifs contributors\n  cifs: Move and expand MAX_SERVER_SIZE definition\n  cifs: Expand max share name length to 256\n  cifs: Move string length definitions to uapi\n  ...\n"
    },
    {
      "commit": "7bd36014460f793c19e7d6c94dab67b0afcfcb7f",
      "tree": "aff35c1d376508c4436591df0895111c73cc75b8",
      "parents": [
        "5a8e01f8fa51f5cbce8f37acc050eb2319d12956"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Sep 11 16:50:56 2013 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 12 07:49:51 2013 +0200"
      },
      "message": "timekeeping: Fix HRTICK related deadlock from ntp lock changes\n\nGerlando Falauto reported that when HRTICK is enabled, it is\npossible to trigger system deadlocks. These were hard to\nreproduce, as HRTICK has been broken in the past, but seemed\nto be connected to the timekeeping_seq lock.\n\nSince seqlock/seqcount\u0027s aren\u0027t supported w/ lockdep, I added\nsome extra spinlock based locking and triggered the following\nlockdep output:\n\n[   15.849182] ntpd/4062 is trying to acquire lock:\n[   15.849765]  (\u0026(\u0026pool-\u003elock)-\u003erlock){..-...}, at: [\u003cffffffff810aa9b5\u003e] __queue_work+0x145/0x480\n[   15.850051]\n[   15.850051] but task is already holding lock:\n[   15.850051]  (timekeeper_lock){-.-.-.}, at: [\u003cffffffff810df6df\u003e] do_adjtimex+0x7f/0x100\n\n\u003csnip\u003e\n\n[   15.850051] Chain exists of: \u0026(\u0026pool-\u003elock)-\u003erlock --\u003e \u0026p-\u003epi_lock --\u003e timekeeper_lock\n[   15.850051]  Possible unsafe locking scenario:\n[   15.850051]\n[   15.850051]        CPU0                    CPU1\n[   15.850051]        ----                    ----\n[   15.850051]   lock(timekeeper_lock);\n[   15.850051]                                lock(\u0026p-\u003epi_lock);\n[   15.850051] lock(timekeeper_lock);\n[   15.850051] lock(\u0026(\u0026pool-\u003elock)-\u003erlock);\n[   15.850051]\n[   15.850051]  *** DEADLOCK ***\n\nThe deadlock was introduced by 06c017fdd4dc48451a (\"timekeeping:\nHold timekeepering locks in do_adjtimex and hardpps\") in 3.10\n\nThis patch avoids this deadlock, by moving the call to\nschedule_delayed_work() outside of the timekeeper lock\ncritical section.\n\nReported-by: Gerlando Falauto \u003cgerlando.falauto@keymile.com\u003e\nTested-by: Lin Ming \u003cminggr@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.11, 3.10\nLink: http://lkml.kernel.org/r/1378943457-27314-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c2d95729e3094ecdd8c54e856bbe971adbbd7f48",
      "tree": "76cc5b551227d3d55d68a93105c1fe8080dfb812",
      "parents": [
        "bbda1baeeb2f4aff3addac3d086a1e56c3f2503e",
        "b34081f1cd59585451efaa69e1dff1b9507e6c89"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 16:08:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 16:08:54 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew Morton)\n\nMerge first patch-bomb from Andrew Morton:\n - Some pidns/fork/exec tweaks\n - OCFS2 updates\n - Most of MM - there remain quite a few memcg parts which depend on\n   pending core cgroups changes.  Which might have been already merged -\n   I\u0027ll check tomorrow...\n - Various misc stuff all over the place\n - A few block bits which I never got around to sending to Jens -\n   relatively minor things.\n - MAINTAINERS maintenance\n - A small number of lib/ updates\n - checkpatch updates\n - epoll\n - firmware/dmi-scan\n - Some kprobes work for S390\n - drivers/rtc updates\n - hfsplus feature work\n - vmcore feature work\n - rbtree upgrades\n - AOE updates\n - pktcdvd cleanups\n - PPS\n - memstick\n - w1\n - New \"inittmpfs\" feature, which does the obvious\n - More IPC work from Davidlohr.\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (303 commits)\n  lz4: fix compression/decompression signedness mismatch\n  ipc: drop ipc_lock_check\n  ipc, shm: drop shm_lock_check\n  ipc: drop ipc_lock_by_ptr\n  ipc, shm: guard against non-existant vma in shmdt(2)\n  ipc: document general ipc locking scheme\n  ipc,msg: drop msg_unlock\n  ipc: rename ids-\u003erw_mutex\n  ipc,shm: shorten critical region for shmat\n  ipc,shm: cleanup do_shmat pasta\n  ipc,shm: shorten critical region for shmctl\n  ipc,shm: make shmctl_nolock lockless\n  ipc,shm: introduce shmctl_nolock\n  ipc: drop ipcctl_pre_down\n  ipc,shm: shorten critical region in shmctl_down\n  ipc,shm: introduce lockless functions to obtain the ipc object\n  initmpfs: use initramfs if rootfstype\u003d or root\u003d specified\n  initmpfs: make rootfs use tmpfs when CONFIG_TMPFS enabled\n  initmpfs: move rootfs code from fs/ramfs/ to init/\n  initmpfs: move bdi setup from init_rootfs to init_ramfs\n  ...\n"
    },
    {
      "commit": "b34081f1cd59585451efaa69e1dff1b9507e6c89",
      "tree": "b04c842059aeeed535e71e72570a29e2989ceeb3",
      "parents": [
        "20b8875abcf2daa1dda5cf70bd6369df5e85d4c1"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Sep 11 14:26:32 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:45 2013 -0700"
      },
      "message": "lz4: fix compression/decompression signedness mismatch\n\nLZ4 compression and decompression functions require different in\nsignedness input/output parameters: unsigned char for compression and\nsigned char for decompression.\n\nChange decompression API to require \"(const) unsigned char *\".\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Yann Collet \u003cyann.collet.73@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": "d9a605e40b1376eb02b067d7690580255a0df68f",
      "tree": "b21254f7172ae8db6faffd9b7941d579fa421478",
      "parents": [
        "c2c737a0461e61a34676bd0bd1bc1a70a1b4e396"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Wed Sep 11 14:26:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:42 2013 -0700"
      },
      "message": "ipc: rename ids-\u003erw_mutex\n\nSince in some situations the lock can be shared for readers, we shouldn\u0027t\nbe calling it a mutex, rename it to rwsem.\n\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57f150a58c40cda598c31af8bceb8598f43c3e5f",
      "tree": "fde3e7fc48c97f0db5b3975fd74e12773f423fe2",
      "parents": [
        "4bbee76bc986af326be0a84ad661000cf89b29f6"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Sep 11 14:26:10 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:37 2013 -0700"
      },
      "message": "initmpfs: move rootfs code from fs/ramfs/ to init/\n\nWhen the rootfs code was a wrapper around ramfs, having them in the same\nfile made sense.  Now that it can wrap another filesystem type, move it in\nwith the init code instead.\n\nThis also allows a subsequent patch to access rootfstype\u003d command line\narg.\n\nSigned-off-by: Rob Landley \u003crob@landley.net\u003e\nCc: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Stephen Warren \u003cswarren@nvidia.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e4c0d974139a98741b829b27cf38dc8f9284490",
      "tree": "fddd959828300c1de1ade15eeb33606c317b79db",
      "parents": [
        "4b39248365e09fb8268b6fecd1704907ffc3d980"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 11 14:26:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:36 2013 -0700"
      },
      "message": "lib/radix-tree.c: make radix_tree_node_alloc() work correctly within interrupt\n\nWith users of radix_tree_preload() run from interrupt (block/blk-ioc.c is\none such possible user), the following race can happen:\n\nradix_tree_preload()\n...\nradix_tree_insert()\n  radix_tree_node_alloc()\n    if (rtp-\u003enr) {\n      ret \u003d rtp-\u003enodes[rtp-\u003enr - 1];\n\u003cinterrupt\u003e\n...\nradix_tree_preload()\n...\nradix_tree_insert()\n  radix_tree_node_alloc()\n    if (rtp-\u003enr) {\n      ret \u003d rtp-\u003enodes[rtp-\u003enr - 1];\n\nAnd we give out one radix tree node twice.  That clearly results in radix\ntree corruption with different results (usually OOPS) depending on which\ntwo users of radix tree race.\n\nWe fix the problem by making radix_tree_node_alloc() always allocate fresh\nradix tree nodes when in interrupt.  Using preloading when in interrupt\ndoesn\u0027t make sense since all the allocations have to be atomic anyway and\nwe cannot steal nodes from process-context users because some users rely\non radix_tree_insert() succeeding after radix_tree_preload().\nin_interrupt() check is somewhat ugly but we cannot simply key off passed\ngfp_mask as that is acquired from root_gfp_mask() and thus the same for\nall preload users.\n\nAnother part of the fix is to avoid node preallocation in\nradix_tree_preload() when passed gfp_mask doesn\u0027t allow waiting.  Again,\npreallocation in such case doesn\u0027t make sense and when preallocation would\nhappen in interrupt we could possibly leak some allocated nodes.  However,\nsome users of radix_tree_preload() require following radix_tree_insert()\nto succeed.  To avoid unexpected effects for these users,\nradix_tree_preload() only warns if passed gfp mask doesn\u0027t allow waiting\nand we provide a new function radix_tree_maybe_preload() for those users\nwhich get different gfp mask from different call sites and which are\nprepared to handle radix_tree_insert() failure.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b529089257705499207ce7da9d0e3ae26a844ba",
      "tree": "fffde388176946c7de6eaddd4e7bdd2b7ea27ffd",
      "parents": [
        "9dee5c51516d2c3fff22633c1272c5652e68075a"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:25:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:20 2013 -0700"
      },
      "message": "rbtree: add rbtree_postorder_for_each_entry_safe() helper\n\nBecause deletion (of the entire tree) is a relatively common use of the\nrbtree_postorder iteration, and because doing it safely means fiddling\nwith temporary storage, provide a helper to simplify postorder rbtree\niteration.\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nReviewed-by: Seth Jennings \u003csjenning@linux.vnet.ibm.com\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michel Lespinasse \u003cwalken@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": "9dee5c51516d2c3fff22633c1272c5652e68075a",
      "tree": "b8d1811b0357a74c720008911e06559f772ce731",
      "parents": [
        "b4bc4a18a226f46fec4ef47f2df28ea209db8b5d"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:25:10 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:19 2013 -0700"
      },
      "message": "rbtree: add postorder iteration functions\n\nPostorder iteration yields all of a node\u0027s children prior to yielding the\nnode itself, and this particular implementation also avoids examining the\nleaf links in a node after that node has been yielded.\n\nIn what I expect will be its most common usage, postorder iteration allows\nthe deletion of every node in an rbtree without modifying the rbtree nodes\n(no _requirement_ that they be nulled) while avoiding referencing child\nnodes after they have been \"deleted\" (most commonly, freed).\n\nI have only updated zswap to use this functionality at this point, but\nnumerous bits of code (most notably in the filesystem drivers) use a hand\nrolled postorder iteration that NULLs child links as it traverses the\ntree.  Each of those instances could be replaced with this common\nimplementation.\n\n1 \u0026 2 add rbtree postorder iteration functions.\n3 adds testing of the iteration to the rbtree runtime tests\n4 allows building the rbtree runtime tests as builtins\n5 updates zswap.\n\nThis patch:\n\nAdd postorder iteration functions for rbtree.  These are useful for safely\nfreeing an entire rbtree without modifying the tree at all.\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nReviewed-by: Seth Jennings \u003csjenning@linux.vnet.ibm.com\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michel Lespinasse \u003cwalken@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": "9cb218131de1c59dca9063b2efe876f053f316af",
      "tree": "e01f110a4137e8e2d33bc28f1f77e3a6361c0ee4",
      "parents": [
        "97b0f6f9cd73ff8285835c5e295d3c4b0e2dbf78"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:24:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:10 2013 -0700"
      },
      "message": "vmcore: introduce remap_oldmem_pfn_range()\n\nFor zfcpdump we can\u0027t map the HSA storage because it is only available via\na read interface.  Therefore, for the new vmcore mmap feature we have\nintroduce a new mechanism to create mappings on demand.\n\nThis patch introduces a new architecture function remap_oldmem_pfn_range()\nthat should be used to create mappings with remap_pfn_range() for oldmem\nareas that can be directly mapped.  For zfcpdump this is everything\nbesides of the HSA memory.  For the areas that are not mapped by\nremap_oldmem_pfn_range() a generic vmcore a new generic vmcore fault\nhandler mmap_vmcore_fault() is called.\n\nThis handler works as follows:\n\n* Get already available or new page from page cache (find_or_create_page)\n* Check if /proc/vmcore page is filled with data (PageUptodate)\n* If yes:\n  Return that page\n* If no:\n  Fill page using __vmcore_read(), set PageUptodate, and return page\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: HATAYAMA Daisuke \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: Jan Willeke \u003cwilleke@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": "be8a8d069e508d4408125e2b1471f549e7813d25",
      "tree": "d69d792fdefbaebc9346f7c3bad36ee4383ef659",
      "parents": [
        "80c74f6a40284c5c5d49f3b3289172bbce0b30b8"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:24:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:10 2013 -0700"
      },
      "message": "vmcore: introduce ELF header in new memory feature\n\nFor s390 we want to use /proc/vmcore for our SCSI stand-alone dump\n(zfcpdump).  We have support where the first HSA_SIZE bytes are saved into\na hypervisor owned memory area (HSA) before the kdump kernel is booted.\nWhen the kdump kernel starts, it is restricted to use only HSA_SIZE bytes.\n\nThe advantages of this mechanism are:\n\n * No crashkernel memory has to be defined in the old kernel.\n * Early boot problems (before kexec_load has been done) can be dumped\n * Non-Linux systems can be dumped.\n\nWe modify the s390 copy_oldmem_page() function to read from the HSA memory\nif memory below HSA_SIZE bytes is requested.\n\nSince we cannot use the kexec tool to load the kernel in this scenario,\nwe have to build the ELF header in the 2nd (kdump/new) kernel.\n\nSo with the following patch set we would like to introduce the new\nfunction that the ELF header for /proc/vmcore can be created in the 2nd\nkernel memory.\n\nThe following steps are done during zfcpdump execution:\n\n1.  Production system crashes\n2.  User boots a SCSI disk that has been prepared with the zfcpdump tool\n3.  Hypervisor saves CPU state of boot CPU and HSA_SIZE bytes of memory into HSA\n4.  Boot loader loads kernel into low memory area\n5.  Kernel boots and uses only HSA_SIZE bytes of memory\n6.  Kernel saves registers of non-boot CPUs\n7.  Kernel does memory detection for dump memory map\n8.  Kernel creates ELF header for /proc/vmcore\n9.  /proc/vmcore uses this header for initialization\n10. The zfcpdump user space reads /proc/vmcore to write dump to SCSI disk\n    - copy_oldmem_page() copies from HSA for memory below HSA_SIZE\n    - copy_oldmem_page() copies from real memory for memory above HSA_SIZE\n\nCurrently for s390 we create the ELF core header in the 2nd kernel with a\nsmall trick.  We relocate the addresses in the ELF header in a way that\nfor the /proc/vmcore code it seems to be in the 1st kernel (old) memory\nand the read_from_oldmem() returns the correct data.  This allows the\n/proc/vmcore code to use the ELF header in the 2nd kernel.\n\nThis patch:\n\nExchange the old mechanism with the new and much cleaner function call\noverride feature that now offcially allows to create the ELF core header\nin the 2nd kernel.\n\nTo use the new feature the following function have to be defined\nby the architecture backend code to read from new memory:\n\n * elfcorehdr_alloc: Allocate ELF header\n * elfcorehdr_free: Free the memory of the ELF header\n * elfcorehdr_read: Read from ELF header\n * elfcorehdr_read_notes: Read from ELF notes\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: HATAYAMA Daisuke \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: Jan Willeke \u003cwilleke@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": "131b2f9f1214f338f0bf7c0d9760019f2b1d0c20",
      "tree": "b60a498414e259fe4e81f210378538f90ada9224",
      "parents": [
        "5d1baf3b63bfc8c709dc44df85ff1475c7ef489d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:04 2013 -0700"
      },
      "message": "exec: kill \"int depth\" in search_binary_handler()\n\nNobody except search_binary_handler() should touch -\u003erecursion_depth, \"int\ndepth\" buys nothing but complicates the code, kill it.\n\nProbably we should also kill \"fn\" and the !NULL check, -\u003eload_binary\nshould be always defined.  And it can not go away after read_unlock() or\nthis code is buggy anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af96397de8600232effbff43dc8b4ca20ddc02b1",
      "tree": "d236fe3b4d37d5439ee41497a0d179a0b7614883",
      "parents": [
        "c802d64a356b5cf349121ac4c5e005f037ce548d"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Sep 11 14:24:13 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:52 2013 -0700"
      },
      "message": "kprobes: allow to specify custom allocator for insn caches\n\nThe current two insn slot caches both use module_alloc/module_free to\nallocate and free insn slot cache pages.\n\nFor s390 this is not sufficient since there is the need to allocate insn\nslots that are either within the vmalloc module area or within dma memory.\n\nTherefore add a mechanism which allows to specify an own allocator for an\nown insn slot cache.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@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": "c802d64a356b5cf349121ac4c5e005f037ce548d",
      "tree": "654c5af4d00a40eeaa576acc1aee238e7c8a8a87",
      "parents": [
        "ae79744975cb0b3b9c469fe1a05db37d2943c863"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Sep 11 14:24:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:52 2013 -0700"
      },
      "message": "kprobes: unify insn caches\n\nThe current kpropes insn caches allocate memory areas for insn slots\nwith module_alloc().  The assumption is that the kernel image and module\narea are both within the same +/- 2GB memory area.\n\nThis however is not true for s390 where the kernel image resides within\nthe first 2GB (DMA memory area), but the module area is far away in the\nvmalloc area, usually somewhere close below the 4TB area.\n\nFor new pc relative instructions s390 needs insn slots that are within\n+/- 2GB of each area.  That way we can patch displacements of\npc-relative instructions within the insn slots just like x86 and\npowerpc.\n\nThe module area works already with the normal insn slot allocator,\nhowever there is currently no way to get insn slots that are within the\nfirst 2GB on s390 (aka DMA area).\n\nTherefore this patch set modifies the kprobes insn slot cache code in\norder to allow to specify a custom allocator for the insn slot cache\npages.  In addition architecure can now have private insn slot caches\nwithhout the need to modify common code.\n\nPatch 1 unifies and simplifies the current insn and optinsn caches\n        implementation. This is a preparation which allows to add more\n        insn caches in a simple way.\n\nPatch 2 adds the possibility to specify a custom allocator.\n\nPatch 3 makes s390 use the new insn slot mechanisms and adds support for\n        pc-relative instructions with long displacements.\n\nThis patch (of 3):\n\nThe two insn caches (insn, and optinsn) each have an own mutex and\nalloc/free functions (get_[opt]insn_slot() / free_[opt]insn_slot()).\n\nSince there is the need for yet another insn cache which satifies dma\nallocations on s390, unify and simplify the current implementation:\n\n- Move the per insn cache mutex into struct kprobe_insn_cache.\n- Move the alloc/free functions to kprobe.h so they are simply\n  wrappers for the generic __get_insn_slot/__free_insn_slot functions.\n  The implementation is done with a DEFINE_INSN_CACHE_OPS() macro\n  which provides the alloc/free functions for each cache if needed.\n- move the struct kprobe_insn_cache to kprobe.h which allows to generate\n  architecture specific insn slot caches outside of the core kprobes\n  code.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@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": "f9597f24c089dcbddbd2d9e99fbf00df57fb70c6",
      "tree": "c7aa5c1ab542839a07bafff202dc4c68e8f3486f",
      "parents": [
        "e656a634118285142063527b2cd40c749036de82"
      ],
      "author": {
        "name": "Sergei Trofimovich",
        "email": "slyfox@gentoo.org",
        "time": "Wed Sep 11 14:23:28 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:25 2013 -0700"
      },
      "message": "syscalls.h: add forward declarations for inplace syscall wrappers\n\nUnclutter -Wmissing-prototypes warning types (enabled at make W\u003d1)\n\n    linux/include/linux/syscalls.h:190:18: warning: no previous prototype for \u0027SyS_semctl\u0027 [-Wmissing-prototypes]\n      asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \\\n                      ^\n    linux/include/linux/syscalls.h:183:2: note: in expansion of macro \u0027__SYSCALL_DEFINEx\u0027\n      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)\n      ^\nby adding forward declarations right before definitions.\n\nSigned-off-by: Sergei Trofimovich \u003cslyfox@gentoo.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bff2dc42bcafdd75c0296987747f782965d691a0",
      "tree": "3e921a8fc93d7bff9a5ac1d5221be9f9938447e4",
      "parents": [
        "081192b25c2d4620b5f5838620624d3daee94b66"
      ],
      "author": {
        "name": "David Daney",
        "email": "david.daney@cavium.com",
        "time": "Wed Sep 11 14:23:26 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:25 2013 -0700"
      },
      "message": "smp.h: move !SMP version of on_each_cpu() out-of-line\n\nAll of the other non-trivial !SMP versions of functions in smp.h are\nout-of-line in up.c.  Move on_each_cpu() there as well.\n\nThis allows us to get rid of the #include \u003clinux/irqflags.h\u003e.  The\ndrawback is that this makes both the x86_64 and i386 defconfig !SMP\nkernels about 200 bytes larger each.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa688207c9db48b64ab6538abc3fcdf26110b9ec",
      "tree": "47fff6ebaa5b0b7d3feca64010051899e29db475",
      "parents": [
        "c14c338cb05c700a260480c197cfd6da8f8b7d2e"
      ],
      "author": {
        "name": "David Daney",
        "email": "david.daney@cavium.com",
        "time": "Wed Sep 11 14:23:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:23 2013 -0700"
      },
      "message": "smp: quit unconditionally enabling irq in on_each_cpu_mask and on_each_cpu_cond\n\nAs in commit f21afc25f9ed (\"smp.h: Use local_irq_{save,restore}() in\n!SMP version of on_each_cpu()\"), we don\u0027t want to enable irqs if they\nare not already enabled.  There are currently no known problematical\ncallers of these functions, but since it is a known failure pattern, we\npreemptively fix them.\n\nSince they are not trivial functions, make them non-inline by moving\nthem to up.c.  This also makes it so we don\u0027t have to fix #include\ndependancies for preempt_{disable,enable}.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9121153fdfbfaa930bf65077a5597e20d3ac608",
      "tree": "a72e82c0c3394cf84b3ff8698134ff124a61b491",
      "parents": [
        "841fcc583f81c632d20a27e17beccb20320530a1"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwanp@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:22:52 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:08 2013 -0700"
      },
      "message": "mm/hwpoison: don\u0027t need to hold compound lock for hugetlbfs page\n\ncompound lock is introduced by commit e9da73d67(\"thp: compound_lock.\"), it\nis used to serialize put_page against __split_huge_page_refcount().  In\naddition, transparent hugepages will be splitted in hwpoison handler and\njust one subpage will be poisoned.  There is unnecessary to hold compound\nlock for hugetlbfs page.  This patch replace compound_trans_order by\ncompond_order in the place where the page is hugetlbfs page.\n\nSigned-off-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nReviewed-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\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a53748568f79641eaf40e41081a2f4987f005c2",
      "tree": "929e07be4f378f96398110dce35a64b61e1505d7",
      "parents": [
        "4c3bffc272755c98728c2b58b1a8148cf9e9fd1f"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Wed Sep 11 14:22:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:04 2013 -0700"
      },
      "message": "mm/page-writeback.c: add strictlimit feature\n\nThe feature prevents mistrusted filesystems (ie: FUSE mounts created by\nunprivileged users) to grow a large number of dirty pages before\nthrottling.  For such filesystems balance_dirty_pages always check bdi\ncounters against bdi limits.  I.e.  even if global \"nr_dirty\" is under\n\"freerun\", it\u0027s not allowed to skip bdi checks.  The only use case for now\nis fuse: it sets bdi max_ratio to 1% by default and system administrators\nare supposed to expect that this limit won\u0027t be exceeded.\n\nThe feature is on if a BDI is marked by BDI_CAP_STRICTLIMIT flag.  A\nfilesystem may set the flag when it initializes its BDI.\n\nThe problematic scenario comes from the fact that nobody pays attention to\nthe NR_WRITEBACK_TEMP counter (i.e.  number of pages under fuse\nwriteback).  The implementation of fuse writeback releases original page\n(by calling end_page_writeback) almost immediately.  A fuse request queued\nfor real processing bears a copy of original page.  Hence, if userspace\nfuse daemon doesn\u0027t finalize write requests in timely manner, an\naggressive mmap writer can pollute virtually all memory by those temporary\nfuse page copies.  They are carefully accounted in NR_WRITEBACK_TEMP, but\nnobody cares.\n\nTo make further explanations shorter, let me use \"NR_WRITEBACK_TEMP\nproblem\" as a shortcut for \"a possibility of uncontrolled grow of amount\nof RAM consumed by temporary pages allocated by kernel fuse to process\nwriteback\".\n\nThe problem was very easy to reproduce.  There is a trivial example\nfilesystem implementation in fuse userspace distribution: fusexmp_fh.c.  I\nadded \"sleep(1);\" to the write methods, then recompiled and mounted it.\nThen created a huge file on the mount point and run a simple program which\nmmap-ed the file to a memory region, then wrote a data to the region.  An\nhour later I observed almost all RAM consumed by fuse writeback.  Since\nthen some unrelated changes in kernel fuse made it more difficult to\nreproduce, but it is still possible now.\n\nPutting this theoretical happens-in-the-lab thing aside, there is another\nthing that really hurts real world (FUSE) users.  This is write-through\npage cache policy FUSE currently uses.  I.e.  handling write(2), kernel\nfuse populates page cache and flushes user data to the server\nsynchronously.  This is excessively suboptimal.  Pavel Emelyanov\u0027s patches\n(\"writeback cache policy\") solve the problem, but they also make resolving\nNR_WRITEBACK_TEMP problem absolutely necessary.  Otherwise, simply copying\na huge file to a fuse mount would result in memory starvation.  Miklos,\nthe maintainer of FUSE, believes strictlimit feature the way to go.\n\nAnd eventually putting FUSE topics aside, there is one more use-case for\nstrictlimit feature.  Using a slow USB stick (mass storage) in a machine\nwith huge amount of RAM installed is a well-known pain.  Let\u0027s make simple\ncomputations.  Assuming 64GB of RAM installed, existing implementation of\nbalance_dirty_pages will start throttling only after 9.6GB of RAM becomes\ndirty (freerun \u003d\u003d 15% of total RAM).  So, the command \"cp 9GB_file\n/media/my-usb-storage/\" may return in a few seconds, but subsequent\n\"umount /media/my-usb-storage/\" will take more than two hours if effective\nthroughput of the storage is, to say, 1MB/sec.\n\nAfter inclusion of strictlimit feature, it will be trivial to add a knob\n(e.g.  /sys/devices/virtual/bdi/x:y/strictlimit) to enable it on demand.\nManually or via udev rule.  May be I\u0027m wrong, but it seems to be quite a\nnatural desire to limit the amount of dirty memory for some devices we are\nnot fully trust (in the sense of sustainable throughput).\n\n[akpm@linux-foundation.org: fix warning in page-writeback.c]\nSigned-off-by: Maxim Patlasov \u003cMPatlasov@parallels.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\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": "7d9f073b8da45a894bb7148433bd84d21eed6757",
      "tree": "513aa8ce5502ba3f1c167c7b63774136fafaac8f",
      "parents": [
        "187320932dcece9c4b93f38f56d1f888bd5c325f"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwanp@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:22:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:02 2013 -0700"
      },
      "message": "mm/writeback: make writeback_inodes_wb static\n\nIt\u0027s not used globally and could be static.\n\nSigned-off-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e543d5780e36ff5ee56c44d7e2e30db3457a7ed",
      "tree": "094208c4caad9d0d766137c243d0cfe97a1ce0b9",
      "parents": [
        "7a8010cd36273ff5f6fea5201ef9232f30cebbd9"
      ],
      "author": {
        "name": "Lisa Du",
        "email": "cldu@marvell.com",
        "time": "Wed Sep 11 14:22:36 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:01 2013 -0700"
      },
      "message": "mm: vmscan: fix do_try_to_free_pages() livelock\n\nThis patch is based on KOSAKI\u0027s work and I add a little more description,\nplease refer https://lkml.org/lkml/2012/6/14/74.\n\nCurrently, I found system can enter a state that there are lots of free\npages in a zone but only order-0 and order-1 pages which means the zone is\nheavily fragmented, then high order allocation could make direct reclaim\npath\u0027s long stall(ex, 60 seconds) especially in no swap and no compaciton\nenviroment.  This problem happened on v3.4, but it seems issue still lives\nin current tree, the reason is do_try_to_free_pages enter live lock:\n\nkswapd will go to sleep if the zones have been fully scanned and are still\nnot balanced.  As kswapd thinks there\u0027s little point trying all over again\nto avoid infinite loop.  Instead it changes order from high-order to\n0-order because kswapd think order-0 is the most important.  Look at\n73ce02e9 in detail.  If watermarks are ok, kswapd will go back to sleep\nand may leave zone-\u003eall_unreclaimable \u003d3D 0.  It assume high-order users\ncan still perform direct reclaim if they wish.\n\nDirect reclaim continue to reclaim for a high order which is not a\nCOSTLY_ORDER without oom-killer until kswapd turn on\nzone-\u003eall_unreclaimble\u003d .  This is because to avoid too early oom-kill.\nSo it means direct_reclaim depends on kswapd to break this loop.\n\nIn worst case, direct-reclaim may continue to page reclaim forever when\nkswapd sleeps forever until someone like watchdog detect and finally kill\nthe process.  As described in:\nhttp://thread.gmane.org/gmane.linux.kernel.mm/103737\n\nWe can\u0027t turn on zone-\u003eall_unreclaimable from direct reclaim path because\ndirect reclaim path don\u0027t take any lock and this way is racy.  Thus this\npatch removes zone-\u003eall_unreclaimable field completely and recalculates\nzone reclaimable state every time.\n\nNote: we can\u0027t take the idea that direct-reclaim see zone-\u003epages_scanned\ndirectly and kswapd continue to use zone-\u003eall_unreclaimable.  Because, it\nis racy.  commit 929bea7c71 (vmscan: all_unreclaimable() use\nzone-\u003eall_unreclaimable as a name) describes the detail.\n\n[akpm@linux-foundation.org: uninline zone_reclaimable_pages() and zone_reclaimable()]\nCc: Aaditya Kumar \u003caaditya.kumar.30@gmail.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: Neil Zhang \u003czhangwm@marvell.com\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Lisa Du \u003ccldu@marvell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a8010cd36273ff5f6fea5201ef9232f30cebbd9",
      "tree": "3805f3d9a8a1f1c1c555ef31bc1bdb51fb51e33e",
      "parents": [
        "5b40998ae35cf64561868370e6c9f3d3e94b6bf7"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Wed Sep 11 14:22:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:01 2013 -0700"
      },
      "message": "mm: munlock: manual pte walk in fast path instead of follow_page_mask()\n\nCurrently munlock_vma_pages_range() calls follow_page_mask() to obtain\neach individual struct page.  This entails repeated full page table\ntranslations and page table lock taken for each page separately.\n\nThis patch avoids the costly follow_page_mask() where possible, by\niterating over ptes within single pmd under single page table lock.  The\nfirst pte is obtained by get_locked_pte() for non-THP page acquired by the\ninitial follow_page_mask().  The rest of the on-stack pagevec for munlock\nis filled up using pte_walk as long as pte_present() and vm_normal_page()\nare sufficient to obtain the struct page.\n\nAfter this patch, a 14% speedup was measured for munlocking a 56GB large\nmemory area with THP disabled.\n\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Jörn Engel \u003cjoern@logfs.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\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": "d9104d1ca9662498339c0de975b4666c30485f4e",
      "tree": "cb95c72dde19930ca985b9834d604958ef4eecde",
      "parents": [
        "3b11f0aaae830f0f569cb8fb7fd26f4133ebdabd"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Wed Sep 11 14:22:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:56 2013 -0700"
      },
      "message": "mm: track vma changes with VM_SOFTDIRTY bit\n\nPavel reported that in case if vma area get unmapped and then mapped (or\nexpanded) in-place, the soft dirty tracker won\u0027t be able to recognize this\nsituation since it works on pte level and ptes are get zapped on unmap,\nloosing soft dirty bit of course.\n\nSo to resolve this situation we need to track actions on vma level, there\nVM_SOFTDIRTY flag comes in.  When new vma area created (or old expanded)\nwe set this bit, and keep it here until application calls for clearing\nsoft dirty bit.\n\nThus when user space application track memory changes now it can detect if\nvma area is renewed.\n\nReported-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e76b63f80d938a1319eb5fb0ae7ea69bddfbae38",
      "tree": "4480ea31ebd4cbae35fcf7fa75c834ab06e39ffd",
      "parents": [
        "0bf598d863e3c741d47e3178d645f04c9d6c186c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Sep 11 14:22:17 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:51 2013 -0700"
      },
      "message": "memblock, numa: binary search node id\n\nCurrent early_pfn_to_nid() on arch that support memblock go over\nmemblock.memory one by one, so will take too many try near the end.\n\nWe can use existing memblock_search to find the node id for given pfn,\nthat could save some time on bigger system that have many entries\nmemblock.memory array.\n\nHere are the timing differences for several machines.  In each case with\nthe patch less time was spent in __early_pfn_to_nid().\n\n                        3.11-rc5        with patch      difference (%)\n                        --------        ----------      --------------\nUV1: 256 nodes  9TB:     411.66          402.47         -9.19 (2.23%)\nUV2: 255 nodes 16TB:    1141.02         1138.12         -2.90 (0.25%)\nUV2:  64 nodes  2TB:     128.15          126.53         -1.62 (1.26%)\nUV2:  32 nodes  2TB:     121.87          121.07         -0.80 (0.66%)\n                        Time in seconds.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Russ Anderson \u003crja@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83467efbdb7948146581a56cbd683a22a0684bbb",
      "tree": "8faaf4d713adcfd5875190ee23f0218212838f24",
      "parents": [
        "c8721bbbdd36382de51cd6b7a56322e0acca2414"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 11 14:22:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:49 2013 -0700"
      },
      "message": "mm: migrate: check movability of hugepage in unmap_and_move_huge_page()\n\nCurrently hugepage migration works well only for pmd-based hugepages\n(mainly due to lack of testing,) so we had better not enable migration of\nother levels of hugepages until we are ready for it.\n\nSome users of hugepage migration (mbind, move_pages, and migrate_pages) do\npage table walk and check pud/pmd_huge() there, so they are safe.  But the\nother users (softoffline and memory hotremove) don\u0027t do this, so without\nthis patch they can try to migrate unexpected types of hugepages.\n\nTo prevent this, we introduce hugepage_migration_support() as an\narchitecture dependent check of whether hugepage are implemented on a pmd\nbasis or not.  And on some architecture multiple sizes of hugepages are\navailable, so hugepage_migration_support() also checks hugepage size.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8721bbbdd36382de51cd6b7a56322e0acca2414",
      "tree": "8fb7b55974defcde9a4b07f571f0dd2dd1ad591f",
      "parents": [
        "71ea2efb1e936a127690a0a540b3a6162f95e48a"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 11 14:22:09 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:48 2013 -0700"
      },
      "message": "mm: memory-hotplug: enable memory hotplug to handle hugepage\n\nUntil now we can\u0027t offline memory blocks which contain hugepages because a\nhugepage is considered as an unmovable page.  But now with this patch\nseries, a hugepage has become movable, so by using hugepage migration we\ncan offline such memory blocks.\n\nWhat\u0027s different from other users of hugepage migration is that we need to\ndecompose all the hugepages inside the target memory block into free buddy\npages after hugepage migration, because otherwise free hugepages remaining\nin the memory block intervene the memory offlining.  For this reason we\nintroduce new functions dissolve_free_huge_page() and\ndissolve_free_huge_pages().\n\nOther than that, what this patch does is straightforwardly to add hugepage\nmigration code, that is, adding hugepage code to the functions which scan\nover pfn and collect hugepages to be migrated, and adding a hugepage\nallocation function to alloc_migrate_target().\n\nAs for larger hugepages (1GB for x86_64), it\u0027s not easy to do hotremove\nover them because it\u0027s larger than memory block.  So we now simply leave\nit to fail as it is.\n\n[yongjun_wei@trendmicro.com.cn: remove duplicated include]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71ea2efb1e936a127690a0a540b3a6162f95e48a",
      "tree": "a511e464a3c5efb48d7f31e38a97ea9f05660bfe",
      "parents": [
        "74060e4d78795c7c43805133cb717d82533d4e0d"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 11 14:22:08 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:48 2013 -0700"
      },
      "message": "mm: migrate: remove VM_HUGETLB from vma flag check in vma_migratable()\n\nEnable hugepage migration from migrate_pages(2), move_pages(2), and\nmbind(2).\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74060e4d78795c7c43805133cb717d82533d4e0d",
      "tree": "923febdc5b4565fbbcf05387d7cc423c72648695",
      "parents": [
        "e632a938d914d271bec26e570d36c755a1e35e4c"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 11 14:22:06 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:48 2013 -0700"
      },
      "message": "mm: mbind: add hugepage migration code to mbind()\n\nExtend do_mbind() to handle vma with VM_HUGETLB set.  We will be able to\nmigrate hugepage with mbind(2) after applying the enablement patch which\ncomes later in this series.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8ec1cee5a4375c1244b85709138a2eac2d89cb6",
      "tree": "c3c548949ac53e1a66d891171d4b176f1d11538d",
      "parents": [
        "31caf665e666b51fe36efd1e54031ed29e86c0b4"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 11 14:22:01 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:47 2013 -0700"
      },
      "message": "mm: soft-offline: use migrate_pages() instead of migrate_huge_page()\n\nCurrently migrate_huge_page() takes a pointer to a hugepage to be migrated\nas an argument, instead of taking a pointer to the list of hugepages to be\nmigrated.  This behavior was introduced in commit 189ebff28 (\"hugetlb:\nsimplify migrate_huge_page()\"), and was OK because until now hugepage\nmigration is enabled only for soft-offlining which migrates only one\nhugepage in a single call.\n\nBut the situation will change in the later patches in this series which\nenable other users of page migration to support hugepage migration.  They\ncan kick migration for both of normal pages and hugepages in a single\ncall, so we need to go back to original implementation which uses linked\nlists to collect the hugepages to be migrated.\n\nWith this patch, soft_offline_huge_page() switches to use migrate_pages(),\nand migrate_huge_page() is not used any more.  So let\u0027s remove it.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31caf665e666b51fe36efd1e54031ed29e86c0b4",
      "tree": "e17452c7c698aade9946cd5557e3d999663e3f76",
      "parents": [
        "07443a85ad90c7b62fbe11dcd3d6a1de1e10516f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 11 14:21:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:46 2013 -0700"
      },
      "message": "mm: migrate: make core migration code aware of hugepage\n\nCurrently hugepage migration is available only for soft offlining, but\nit\u0027s also useful for some other users of page migration (clearly because\nusers of hugepage can enjoy the benefit of mempolicy and memory hotplug.)\nSo this patchset tries to extend such users to support hugepage migration.\n\nThe target of this patchset is to enable hugepage migration for NUMA\nrelated system calls (migrate_pages(2), move_pages(2), and mbind(2)), and\nmemory hotplug.\n\nThis patchset does not add hugepage migration for memory compaction,\nbecause users of memory compaction mainly expect to construct thp by\narranging raw pages, and there\u0027s little or no need to compact hugepages.\nCMA, another user of page migration, can have benefit from hugepage\nmigration, but is not enabled to support it for now (just because of lack\nof testing and expertise in CMA.)\n\nHugepage migration of non pmd-based hugepage (for example 1GB hugepage in\nx86_64, or hugepages in architectures like ia64) is not enabled for now\n(again, because of lack of testing.)\n\nAs for how these are achived, I extended the API (migrate_pages()) to\nhandle hugepage (with patch 1 and 2) and adjusted code of each caller to\ncheck and collect movable hugepages (with patch 3-7).  Remaining 2 patches\nare kind of miscellaneous ones to avoid unexpected behavior.  Patch 8 is\nabout making sure that we only migrate pmd-based hugepages.  And patch 9\nis about choosing appropriate zone for hugepage allocation.\n\nMy test is mainly functional one, simply kicking hugepage migration via\neach entry point and confirm that migration is done correctly.  Test code\nis available here:\n\n  git://github.com/Naoya-Horiguchi/test_hugepage_migration_extension.git\n\nAnd I always run libhugetlbfs test when changing hugetlbfs\u0027s code.  With\nthis patchset, no regression was found in the test.\n\nThis patch (of 9):\n\nBefore enabling each user of page migration to support hugepage,\nthis patch enables the list of pages for migration to link not only\nLRU pages, but also hugepages. As a result, putback_movable_pages()\nand migrate_pages() can handle both of LRU pages and hugepages.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "674470d97958a0ec72f72caf7f6451da40159cc7",
      "tree": "5085abf683ef3ac3f2dcf745b0d214dc70031582",
      "parents": [
        "eee87e1726af8c746f0e15ae6c57a97675f5e960"
      ],
      "author": {
        "name": "Joonyoung Shim",
        "email": "jy0922.shim@samsung.com",
        "time": "Wed Sep 11 14:21:43 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:35 2013 -0700"
      },
      "message": "lib/genalloc.c: fix overflow of ending address of memory chunk\n\nIn struct gen_pool_chunk, end_addr means the end address of memory chunk\n(inclusive), but in the implementation it is treated as address + size of\nmemory chunk (exclusive), so it points to the address plus one instead of\ncorrect ending address.\n\nThe ending address of memory chunk plus one will cause overflow on the\nmemory chunk including the last address of memory map, e.g.  when starting\naddress is 0xFFF00000 and size is 0x100000 on 32bit machine, ending\naddress will be 0x100000000.\n\nUse correct ending address like starting address + size - 1.\n\n[akpm@linux-foundation.org: add comment to struct gen_pool_chunk:end_addr]\nSigned-off-by: Joonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bb921e526656556e68f99f5f15a4a1bf2691844",
      "tree": "91b009a59938d7713de0781df9d5c0c2eacfc51f",
      "parents": [
        "d2cf5ad6312ca9913464fac40fb47ba47ad945c4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Wed Sep 11 14:21:30 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:31 2013 -0700"
      },
      "message": "vmstat: create separate function to fold per cpu diffs into local counters\n\nThe main idea behind this patchset is to reduce the vmstat update overhead\nby avoiding interrupt enable/disable and the use of per cpu atomics.\n\nThis patch (of 3):\n\nIt is better to have a separate folding function because\nrefresh_cpu_vm_stats() also does other things like expire pages in the\npage allocator caches.\n\nIf we have a separate function then refresh_cpu_vm_stats() is only called\nfrom the local cpu which allows additional optimizations.\n\nThe folding function is only called when a cpu is being downed and\ntherefore no other processor will be accessing the counters.  Also\nsimplifies synchronization.\n\n[akpm@linux-foundation.org: fix UP build]\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCC: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "d2cf5ad6312ca9913464fac40fb47ba47ad945c4",
      "tree": "05590c6fed5ee9b86b65e1c23a899e921faeb040",
      "parents": [
        "bc4b4448dba660afc8df3790564320302d9709a1"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "iamjoonsoo.kim@lge.com",
        "time": "Wed Sep 11 14:21:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:31 2013 -0700"
      },
      "message": "swap: clean-up #ifdef in page_mapping()\n\nPageSwapCache() is always false when !CONFIG_SWAP, so compiler\nproperly discard related code. Therefore, we don\u0027t need #ifdef explicitly.\n\nSigned-off-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\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": "81c0a2bb515fd4daae8cab64352877480792b515",
      "tree": "5ef326d226fdd14332cd0e5382e6dd2759dd08e3",
      "parents": [
        "e085dbc52fad8d79fa2245339c84bf3ef0b3a802"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Sep 11 14:20:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:23 2013 -0700"
      },
      "message": "mm: page_alloc: fair zone allocator policy\n\nEach zone that holds userspace pages of one workload must be aged at a\nspeed proportional to the zone size.  Otherwise, the time an individual\npage gets to stay in memory depends on the zone it happened to be\nallocated in.  Asymmetry in the zone aging creates rather unpredictable\naging behavior and results in the wrong pages being reclaimed, activated\netc.\n\nBut exactly this happens right now because of the way the page allocator\nand kswapd interact.  The page allocator uses per-node lists of all zones\nin the system, ordered by preference, when allocating a new page.  When\nthe first iteration does not yield any results, kswapd is woken up and the\nallocator retries.  Due to the way kswapd reclaims zones below the high\nwatermark while a zone can be allocated from when it is above the low\nwatermark, the allocator may keep kswapd running while kswapd reclaim\nensures that the page allocator can keep allocating from the first zone in\nthe zonelist for extended periods of time.  Meanwhile the other zones\nrarely see new allocations and thus get aged much slower in comparison.\n\nThe result is that the occasional page placed in lower zones gets\nrelatively more time in memory, even gets promoted to the active list\nafter its peers have long been evicted.  Meanwhile, the bulk of the\nworking set may be thrashing on the preferred zone even though there may\nbe significant amounts of memory available in the lower zones.\n\nEven the most basic test -- repeatedly reading a file slightly bigger than\nmemory -- shows how broken the zone aging is.  In this scenario, no single\npage should be able stay in memory long enough to get referenced twice and\nactivated, but activation happens in spades:\n\n  $ grep active_file /proc/zoneinfo\n      nr_inactive_file 0\n      nr_active_file 0\n      nr_inactive_file 0\n      nr_active_file 8\n      nr_inactive_file 1582\n      nr_active_file 11994\n  $ cat data data data data \u003e/dev/null\n  $ grep active_file /proc/zoneinfo\n      nr_inactive_file 0\n      nr_active_file 70\n      nr_inactive_file 258753\n      nr_active_file 443214\n      nr_inactive_file 149793\n      nr_active_file 12021\n\nFix this with a very simple round robin allocator.  Each zone is allowed a\nbatch of allocations that is proportional to the zone\u0027s size, after which\nit is treated as full.  The batch counters are reset when all zones have\nbeen tried and the allocator enters the slowpath and kicks off kswapd\nreclaim.  Allocation and reclaim is now fairly spread out to all\navailable/allowable zones:\n\n  $ grep active_file /proc/zoneinfo\n      nr_inactive_file 0\n      nr_active_file 0\n      nr_inactive_file 174\n      nr_active_file 4865\n      nr_inactive_file 53\n      nr_active_file 860\n  $ cat data data data data \u003e/dev/null\n  $ grep active_file /proc/zoneinfo\n      nr_inactive_file 0\n      nr_active_file 0\n      nr_inactive_file 666622\n      nr_active_file 4988\n      nr_inactive_file 190969\n      nr_active_file 937\n\nWhen zone_reclaim_mode is enabled, allocations will now spread out to all\nzones on the local node, not just the first preferred zone (which on a 4G\nnode might be a tiny Normal zone).\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Paul Bolle \u003cpaul.bollee@gmail.com\u003e\nCc: Zlatko Calusic \u003czcalusic@bitsync.net\u003e\nTested-by: Kevin Hilman \u003ckhilman@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f92310c1877fc73470bdcd9228758fa3713c191b",
      "tree": "9178b722246f411a60986047784f85d4a83376a9",
      "parents": [
        "fef903efcf0cb9721f3f2da719daec9bbc26f12b"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:20:36 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:19 2013 -0700"
      },
      "message": "mm/page_alloc.c: fix the value of fallback_migratetype in alloc_extfrag tracepoint()\n\nIn the current code, the value of fallback_migratetype that is printed\nusing the mm_page_alloc_extfrag tracepoint, is the value of the\nmigratetype *after* it has been set to the preferred migratetype (if the\nownership was changed).  Obviously that wouldn\u0027t have been the original\nintent.  (We already have a separate \u0027change_ownership\u0027 field to tell\nwhether the ownership of the pageblock was changed from the\nfallback_migratetype to the preferred type.)\n\nThe intent of the fallback_migratetype field is to show the migratetype\nfrom which we borrowed pages in order to satisfy the allocation request.\nSo fix the code to print that value correctly.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebc2a1a69111eadfeda8487e577f1a5d42ef0dae",
      "tree": "8a1d08bc6c0a1eb7e1bcd93056141614c22a7d40",
      "parents": [
        "edfe23dac3e2981277087b05bec7fec7790d1835"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Wed Sep 11 14:20:32 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:17 2013 -0700"
      },
      "message": "swap: make cluster allocation per-cpu\n\nswap cluster allocation is to get better request merge to improve\nperformance.  But the cluster is shared globally, if multiple tasks are\ndoing swap, this will cause interleave disk access.  While multiple tasks\nswap is quite common, for example, each numa node has a kswapd thread\ndoing swap and multiple threads/processes doing direct page reclaim.\n\nioscheduler can\u0027t help too much here, because tasks don\u0027t send swapout IO\ndown to block layer in the meantime.  Block layer does merge some IOs, but\na lot not, depending on how many tasks are doing swapout concurrently.  In\npractice, I\u0027ve seen a lot of small size IO in swapout workloads.\n\nWe makes the cluster allocation per-cpu here.  The interleave disk access\nissue goes away.  All tasks swapout to their own cluster, so swapout will\nbecome sequential, which can be easily merged to big size IO.  If one CPU\ncan\u0027t get its per-cpu cluster (for example, there is no free cluster\nanymore in the swap), it will fallback to scan swap_map.  The CPU can\nstill continue swap.  We don\u0027t need recycle free swap entries of other\nCPUs.\n\nIn my test (swap to a 2-disk raid0 partition), this improves around 10%\nswapout throughput, and request size is increased significantly.\n\nHow does this impact swap readahead is uncertain though.  On one side,\npage reclaim always isolates and swaps several adjancent pages, this will\nmake page reclaim write the pages sequentially and benefit readahead.  On\nthe other side, several CPU write pages interleave means the pages don\u0027t\nlive _sequentially_ but relatively _near_.  In the per-cpu allocation\ncase, if adjancent pages are written by different cpus, they will live\nrelatively _far_.  So how this impacts swap readahead depends on how many\npages page reclaim isolates and swaps one time.  If the number is big,\nthis patch will benefit swap readahead.  Of course, this is about\nsequential access pattern.  The patch has no impact for random access\npattern, because the new cluster allocation algorithm is just for SSD.\n\nAlternative solution is organizing swap layout to be per-mm instead of\nthis per-cpu approach.  In the per-mm layout, we allocate a disk range for\neach mm, so pages of one mm live in swap disk adjacently.  per-mm layout\nhas potential issues of lock contention if multiple reclaimers are swap\npages from one mm.  For a sequential workload, per-mm layout is better to\nimplement swap readahead, because pages from the mm are adjacent in disk.\nBut per-cpu layout isn\u0027t very bad in this workload, as page reclaim always\nisolates and swaps several pages one time, such pages will still live in\ndisk sequentially and readahead can utilize this.  For a random workload,\nper-mm layout isn\u0027t beneficial of request merge, because it\u0027s quite\npossible pages from different mm are swapout in the meantime and IO can\u0027t\nbe merged in per-mm layout.  while with per-cpu layout we can merge\nrequests from any mm.  Considering random workload is more popular in\nworkloads with swap (and per-cpu approach isn\u0027t too bad for sequential\nworkload too), I\u0027m choosing per-cpu layout.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Kyungmin Park \u003ckmpark@infradead.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rafael Aquini \u003caquini@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": "815c2c543d3aeb914a361f981440ece552778724",
      "tree": "7d6f0de8493abbb08f0a42cb565087868b9eaeb4",
      "parents": [
        "2a8f9449343260373398d59228a62a4332ea513a"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Wed Sep 11 14:20:30 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:15 2013 -0700"
      },
      "message": "swap: make swap discard async\n\nswap can do cluster discard for SSD, which is good, but there are some\nproblems here:\n\n1. swap do the discard just before page reclaim gets a swap entry and\n   writes the disk sectors.  This is useless for high end SSD, because an\n   overwrite to a sector implies a discard to original sector too.  A\n   discard + overwrite \u003d\u003d overwrite.\n\n2. the purpose of doing discard is to improve SSD firmware garbage\n   collection.  Idealy we should send discard as early as possible, so\n   firmware can do something smart.  Sending discard just after swap entry\n   is freed is considered early compared to sending discard before write.\n   Of course, if workload is already bound to gc speed, sending discard\n   earlier or later doesn\u0027t make\n\n3. block discard is a sync API, which will delay scan_swap_map()\n   significantly.\n\n4. Write and discard command can be executed parallel in PCIe SSD.\n   Making swap discard async can make execution more efficiently.\n\nThis patch makes swap discard async and moves discard to where swap entry\nis freed.  Discard and write have no dependence now, so above issues can\nbe avoided.  Idealy we should do discard for any freed sectors, but some\nSSD discard is very slow.  This patch still does discard for a whole\ncluster.\n\nMy test does a several round of \u0027mmap, write, unmap\u0027, which will trigger a\nlot of swap discard.  In a fusionio card, with this patch, the test\nruntime is reduced to 18% of the time without it, so around 5.5x faster.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Kyungmin Park \u003ckmpark@infradead.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rafael Aquini \u003caquini@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "2a8f9449343260373398d59228a62a4332ea513a"
}
