)]}'
{
  "log": [
    {
      "commit": "a7c1120d2dcc83691bafa034d98f70285757e826",
      "tree": "56779f292c2dea78feff290c3ce26724d33b3f3e",
      "parents": [
        "6ec40b423032ca769c96fbf9a080db822821893d",
        "9b2ff35753c0512bc8c6adae9e9c87cbeee86f82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:33:21 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:33:21 2013 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 bug fixes from Ted Ts\u0027o:\n \"Various bug fixes for ext4.  The most important is a fix for the new\n  extent cache\u0027s slab shrinker which can cause significant, user-visible\n  pauses when the system is under memory pressure.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: enable quotas before orphan cleanup\n  ext4: don\u0027t allow quota mount options when quota feature enabled\n  ext4: fix a warning from sparse check for ext4_dir_llseek\n  ext4: convert number of blocks to clusters properly\n  ext4: fix possible memory leak in ext4_remount()\n  jbd2: fix ERR_PTR dereference in jbd2__journal_start\n  ext4: use percpu counter for extent cache count\n  ext4: optimize ext4_es_shrink()\n"
    },
    {
      "commit": "246307745c406379996e6ed6411f0e20f1ce1449",
      "tree": "71b78d765ba7406c6755cad807944da6a99e5980",
      "parents": [
        "8e919d13048cd5acaadb2b15b48acbfb8832d3c2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 28 23:58:56 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 28 23:58:56 2013 -0500"
      },
      "message": "ext4: optimize ext4_es_shrink()\n\nWhen the system is under memory pressure, ext4_es_srhink() will get\ncalled very often.  So optimize returning the number of items in the\nfile system\u0027s extent status cache by keeping a per-filesystem count,\ninstead of calculating it each time by scanning all of the inodes in\nthe extent status cache.\n\nAlso rename the slab used for the extent status cache to be\n\"ext4_extent_status\" so it\u0027s obviousl the slab in question is created\nby ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Zheng Liu \u003cgnehzuil.liu@gmail.com\u003e\n"
    },
    {
      "commit": "ee89f81252179dcbf6cd65bd48299f5e52292d88",
      "tree": "805846cd12821f84cfe619d44c9e3e36e0b0f9e6",
      "parents": [
        "21f3b24da9328415792efc780f50b9f434c12465",
        "de33127d8d3f1d570aad8c2223cd81b206636bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO core bits from Jens Axboe:\n \"Below are the core block IO bits for 3.9.  It was delayed a few days\n  since my workstation kept crashing every 2-8h after pulling it into\n  current -git, but turns out it is a bug in the new pstate code (divide\n  by zero, will report separately).  In any case, it contains:\n\n   - The big cfq/blkcg update from Tejun and and Vivek.\n\n   - Additional block and writeback tracepoints from Tejun.\n\n   - Improvement of the should sort (based on queues) logic in the plug\n     flushing.\n\n   - _io() variants of the wait_for_completion() interface, using\n     io_schedule() instead of schedule() to contribute to io wait\n     properly.\n\n   - Various little fixes.\n\n  You\u0027ll get two trivial merge conflicts, which should be easy enough to\n  fix up\"\n\nFix up the trivial conflicts due to hlist traversal cleanups (commit\nb67bfe0d42ca: \"hlist: drop the node parameter from iterators\").\n\n* \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block: (39 commits)\n  block: remove redundant check to bd_openers()\n  block: use i_size_write() in bd_set_size()\n  cfq: fix lock imbalance with failed allocations\n  drivers/block/swim3.c: fix null pointer dereference\n  block: don\u0027t select PERCPU_RWSEM\n  block: account iowait time when waiting for completion of IO request\n  sched: add wait_for_completion_io[_timeout]\n  writeback: add more tracepoints\n  block: add block_{touch|dirty}_buffer tracepoint\n  buffer: make touch_buffer() an exported function\n  block: add @req to bio_{front|back}_merge tracepoints\n  block: add missing block_bio_complete() tracepoint\n  block: Remove should_sort judgement when flush blk_plug\n  block,elevator: use new hashtable implementation\n  cfq-iosched: add hierarchical cfq_group statistics\n  cfq-iosched: collect stats from dead cfqgs\n  cfq-iosched: separate out cfqg_stats_reset() from cfq_pd_reset_stats()\n  blkcg: make blkcg_print_blkgs() grab q locks instead of blkcg lock\n  block: RCU free request_queue\n  blkcg: implement blkg_[rw]stat_recursive_sum() and blkg_[rw]stat_merge()\n  ...\n"
    },
    {
      "commit": "6515925b8259549b7f2187e25d3260306e3e85e5",
      "tree": "7d51487f308f8f0ac95d3113606c39ba592111ba",
      "parents": [
        "bbbd27e694ce2c5fde9c8fcedbea618dd9153fe7",
        "304e220f0879198b1f5309ad6f0be862b4009491"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 14:52:45 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 14:52:45 2013 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 updates from Theodore Ts\u0027o:\n \"The one new feature added in this patch series is the ability to use\n  the \"punch hole\" functionality for inodes that are not using extent\n  maps.\n\n  In the bug fix category, we fixed some races in the AIO and fstrim\n  code, and some potential NULL pointer dereferences and memory leaks in\n  error handling code paths.\n\n  In the optimization category, we fixed a performance regression in the\n  jbd2 layer introduced by commit d9b01934d56a (\"jbd: fix fsync() tid\n  wraparound bug\", introduced in v3.0) which shows up in the AIM7\n  benchmark.  We also further optimized jbd2 by minimize the amount of\n  time that transaction handles are held active.\n\n  This patch series also features some additional enhancement of the\n  extent status tree, which is now used to cache extent information in a\n  more efficient/compact form than what we use on-disk.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (65 commits)\n  ext4: fix free clusters calculation in bigalloc filesystem\n  ext4: no need to remove extent if len is 0 in ext4_es_remove_extent()\n  ext4: fix xattr block allocation/release with bigalloc\n  ext4: reclaim extents from extent status tree\n  ext4: adjust some functions for reclaiming extents from extent status tree\n  ext4: remove single extent cache\n  ext4: lookup block mapping in extent status tree\n  ext4: track all extent status in extent status tree\n  ext4: let ext4_ext_map_blocks return EXT4_MAP_UNWRITTEN flag\n  ext4: rename and improbe ext4_es_find_extent()\n  ext4: add physical block and status member into extent status tree\n  ext4: refine extent status tree\n  ext4: use ERR_PTR() abstraction for ext4_append()\n  ext4: refactor code to read directory blocks into ext4_read_dirblock()\n  ext4: add debugging context for warning in ext4_da_update_reserve_space()\n  ext4: use KERN_WARNING for warning messages\n  jbd2: use module parameters instead of debugfs for jbd_debug\n  ext4: use module parameters instead of debugfs for mballoc_debug\n  ext4: start handle at the last possible moment when creating inodes\n  ext4: fix the number of credits needed for acl ops with inline data\n  ...\n"
    },
    {
      "commit": "89f883372fa60f604d136924baf3e89ff1870e9e",
      "tree": "cb69b0a14957945ba00d3d392bf9ccbbef56f3b8",
      "parents": [
        "9e2d59ad580d590134285f361a0e80f0e98c0207",
        "6b73a96065e89dc9fa75ba4f78b1aa3a3bbd0470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 24 13:07:18 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 24 13:07:18 2013 -0800"
      },
      "message": "Merge tag \u0027kvm-3.9-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM updates from Marcelo Tosatti:\n \"KVM updates for the 3.9 merge window, including x86 real mode\n  emulation fixes, stronger memory slot interface restrictions, mmu_lock\n  spinlock hold time reduction, improved handling of large page faults\n  on shadow, initial APICv HW acceleration support, s390 channel IO\n  based virtio, amongst others\"\n\n* tag \u0027kvm-3.9-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (143 commits)\n  Revert \"KVM: MMU: lazily drop large spte\"\n  x86: pvclock kvm: align allocation size to page size\n  KVM: nVMX: Remove redundant get_vmcs12 from nested_vmx_exit_handled_msr\n  x86 emulator: fix parity calculation for AAD instruction\n  KVM: PPC: BookE: Handle alignment interrupts\n  booke: Added DBCR4 SPR number\n  KVM: PPC: booke: Allow multiple exception types\n  KVM: PPC: booke: use vcpu reference from thread_struct\n  KVM: Remove user_alloc from struct kvm_memory_slot\n  KVM: VMX: disable apicv by default\n  KVM: s390: Fix handling of iscs.\n  KVM: MMU: cleanup __direct_map\n  KVM: MMU: remove pt_access in mmu_set_spte\n  KVM: MMU: cleanup mapping-level\n  KVM: MMU: lazily drop large spte\n  KVM: VMX: cleanup vmx_set_cr0().\n  KVM: VMX: add missing exit names to VMX_EXIT_REASONS array\n  KVM: VMX: disable SMEP feature when guest is in non-paging mode\n  KVM: Remove duplicate text in api.txt\n  Revert \"KVM: MMU: split kvm_mmu_free_page\"\n  ...\n"
    },
    {
      "commit": "8793422fd9ac5037f5047f80473007301df3689f",
      "tree": "f5aa3b3a564f053e1b5604c45db80193abc734a4",
      "parents": [
        "b3cdda2b4f541439ca4205793040aa2e1c852e3b",
        "10baf04e95fbf7eb6089410220a547211dd2ffa7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:26:56 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:26:56 2013 -0800"
      },
      "message": "Merge tag \u0027pm+acpi-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull ACPI and power management updates from Rafael Wysocki:\n\n - Rework of the ACPI namespace scanning code from Rafael J.  Wysocki\n   with contributions from Bjorn Helgaas, Jiang Liu, Mika Westerberg,\n   Toshi Kani, and Yinghai Lu.\n\n - ACPI power resources handling and ACPI device PM update from Rafael\n   J Wysocki.\n\n - ACPICA update to version 20130117 from Bob Moore and Lv Zheng with\n   contributions from Aaron Lu, Chao Guan, Jesper Juhl, and Tim Gardner.\n\n - Support for Intel Lynxpoint LPSS from Mika Westerberg.\n\n - cpuidle update from Len Brown including Intel Haswell support, C1\n   state for intel_idle, removal of global pm_idle.\n\n - cpuidle fixes and cleanups from Daniel Lezcano.\n\n - cpufreq fixes and cleanups from Viresh Kumar and Fabio Baltieri with\n   contributions from Stratos Karafotis and Rickard Andersson.\n\n - Intel P-states driver for Sandy Bridge processors from Dirk\n   Brandewie.\n\n - cpufreq driver for Marvell Kirkwood SoCs from Andrew Lunn.\n\n - cpufreq fixes related to ordering issues between acpi-cpufreq and\n   powernow-k8 from Borislav Petkov and Matthew Garrett.\n\n - cpufreq support for Calxeda Highbank processors from Mark Langsdorf\n   and Rob Herring.\n\n - cpufreq driver for the Freescale i.MX6Q SoC and cpufreq-cpu0 update\n   from Shawn Guo.\n\n - cpufreq Exynos fixes and cleanups from Jonghwan Choi, Sachin Kamat,\n   and Inderpal Singh.\n\n - Support for \"lightweight suspend\" from Zhang Rui.\n\n - Removal of the deprecated power trace API from Paul Gortmaker.\n\n - Assorted updates from Andreas Fleig, Colin Ian King, Davidlohr Bueso,\n   Joseph Salisbury, Kees Cook, Li Fei, Nishanth Menon, ShuoX Liu,\n   Srinivas Pandruvada, Tejun Heo, Thomas Renninger, and Yasuaki\n   Ishimatsu.\n\n* tag \u0027pm+acpi-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (267 commits)\n  PM idle: remove global declaration of pm_idle\n  unicore32 idle: delete stray pm_idle comment\n  openrisc idle: delete pm_idle\n  mn10300 idle: delete pm_idle\n  microblaze idle: delete pm_idle\n  m32r idle: delete pm_idle, and other dead idle code\n  ia64 idle: delete pm_idle\n  cris idle: delete idle and pm_idle\n  ARM64 idle: delete pm_idle\n  ARM idle: delete pm_idle\n  blackfin idle: delete pm_idle\n  sparc idle: rename pm_idle to sparc_idle\n  sh idle: rename global pm_idle to static sh_idle\n  x86 idle: rename global pm_idle to static x86_idle\n  APM idle: register apm_cpu_idle via cpuidle\n  cpufreq / intel_pstate: Add kernel command line option disable intel_pstate.\n  cpufreq / intel_pstate: Change to disallow module build\n  tools/power turbostat: display SMI count by default\n  intel_idle: export both C1 and C1E\n  ACPI / hotplug: Fix concurrency issues and memory leaks\n  ...\n"
    },
    {
      "commit": "67cb104b4c30bd52292b6a7f526349aab2dd5cbd",
      "tree": "b7d2659f9c7bfe676016680339c0ffe47ef29afd",
      "parents": [
        "1eaec8212e35aef6606a4e8b40aa9ad9ba87672a",
        "1438ade5670b56d5386c220e1ad4b5a824a1e585"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 22:01:33 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 22:01:33 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue changes from Tejun Heo:\n \"A lot of reorganization is going on mostly to prepare for worker pools\n  with custom attributes so that workqueue can replace custom pool\n  implementations in places including writeback and btrfs and make CPU\n  assignment in crypto more flexible.\n\n  workqueue evolved from purely per-cpu design and implementation, so\n  there are a lot of assumptions regarding being bound to CPUs and even\n  unbound workqueues are implemented as an extension of the model -\n  workqueues running on the special unbound CPU.  Bulk of changes this\n  round are about promoting worker_pools as the top level abstraction\n  replacing global_cwq (global cpu workqueue).  At this point, I\u0027m\n  fairly confident about getting custom worker pools working pretty soon\n  and ready for the next merge window.\n\n  Lai\u0027s patches are replacing the convoluted mb() dancing workqueue has\n  been doing with much simpler mechanism which only depends on\n  assignment atomicity of long.  For details, please read the commit\n  message of 0b3dae68ac (\"workqueue: simplify is-work-item-queued-here\n  test\").  While the change ends up adding one pointer to struct\n  delayed_work, the inflation in percentage is less than five percent\n  and it decouples delayed_work logic a lot more cleaner from usual work\n  handling, removes the unusual memory barrier dancing, and allows for\n  further simplification, so I think the trade-off is acceptable.\n\n  There will be two more workqueue related pull requests and there are\n  some shared commits among them.  I\u0027ll write further pull requests\n  assuming this pull request is pulled first.\"\n\n* \u0027for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (37 commits)\n  workqueue: un-GPL function delayed_work_timer_fn()\n  workqueue: rename cpu_workqueue to pool_workqueue\n  workqueue: reimplement is_chained_work() using current_wq_worker()\n  workqueue: fix is_chained_work() regression\n  workqueue: pick cwq instead of pool in __queue_work()\n  workqueue: make get_work_pool_id() cheaper\n  workqueue: move nr_running into worker_pool\n  workqueue: cosmetic update in try_to_grab_pending()\n  workqueue: simplify is-work-item-queued-here test\n  workqueue: make work-\u003edata point to pool after try_to_grab_pending()\n  workqueue: add delayed_work-\u003ewq to simplify reentrancy handling\n  workqueue: make work_busy() test WORK_STRUCT_PENDING first\n  workqueue: replace WORK_CPU_NONE/LAST with WORK_CPU_END\n  workqueue: post global_cwq removal cleanups\n  workqueue: rename nr_running variables\n  workqueue: remove global_cwq\n  workqueue: remove worker_pool-\u003egcwq\n  workqueue: replace for_each_worker_pool() with for_each_std_worker_pool()\n  workqueue: make freezing/thawing per-pool\n  workqueue: make hotplug processing per-pool\n  ...\n"
    },
    {
      "commit": "8f55cea410dbc56114bb71a3742032070c8108d0",
      "tree": "59605f0ee961274b22f91add33f5c32459471a83",
      "parents": [
        "b7133a9a103655cda254987a3c0975fd9d8c443f",
        "e259514eef764a5286873618e34c560ecb6cff13"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf changes from Ingo Molnar:\n \"There are lots of improvements, the biggest changes are:\n\n  Main kernel side changes:\n\n   - Improve uprobes performance by adding \u0027pre-filtering\u0027 support, by\n     Oleg Nesterov.\n\n   - Make some POWER7 events available in sysfs, equivalent to what was\n     done on x86, from Sukadev Bhattiprolu.\n\n   - tracing updates by Steve Rostedt - mostly misc fixes and smaller\n     improvements.\n\n   - Use perf/event tracing to report PCI Express advanced errors, by\n     Tony Luck.\n\n   - Enable northbridge performance counters on AMD family 15h, by Jacob\n     Shin.\n\n   - This tracing commit:\n\n        tracing: Remove the extra 4 bytes of padding in events\n\n     changes the ABI.  All involved parties (PowerTop in particular)\n     seem to agree that it\u0027s safe to do now with the introduction of\n     libtraceevent, but the devil is in the details ...\n\n  Main tooling side changes:\n\n   - Add \u0027event group view\u0027, from Namyung Kim:\n\n     To use it, \u0027perf record\u0027 should group events when recording.  And\n     then perf report parses the saved group relation from file header\n     and prints them together if --group option is provided.  You can\n     use the \u0027perf evlist\u0027 command to see event group information:\n\n        $ perf record -e \u0027{ref-cycles,cycles}\u0027 noploop 1\n        [ perf record: Woken up 2 times to write data ]\n        [ perf record: Captured and wrote 0.385 MB perf.data (~16807 samples) ]\n\n        $ perf evlist --group\n        {ref-cycles,cycles}\n\n     With this example, default perf report will show you each event\n     separately.\n\n     You can use --group option to enable event group view:\n\n        $ perf report --group\n        ...\n        # group: {ref-cycles,cycles}\n        # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n        # Samples: 7K of event \u0027anon group { ref-cycles, cycles }\u0027\n        # Event count (approx.): 6876107743\n        #\n        #         Overhead  Command      Shared Object                      Symbol\n        # ................  .......  .................  ..........................\n            99.84%  99.76%  noploop  noploop            [.] main\n             0.07%   0.00%  noploop  ld-2.15.so         [.] strcmp\n             0.03%   0.00%  noploop  [kernel.kallsyms]  [k] timerqueue_del\n             0.03%   0.03%  noploop  [kernel.kallsyms]  [k] sched_clock_cpu\n             0.02%   0.00%  noploop  [kernel.kallsyms]  [k] account_user_time\n             0.01%   0.00%  noploop  [kernel.kallsyms]  [k] __alloc_pages_nodemask\n             0.00%   0.00%  noploop  [kernel.kallsyms]  [k] native_write_msr_safe\n             0.00%   0.11%  noploop  [kernel.kallsyms]  [k] _raw_spin_lock\n             0.00%   0.06%  noploop  [kernel.kallsyms]  [k] find_get_page\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] rcu_check_callbacks\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] __current_kernel_time\n\n     As you can see the Overhead column now contains both of ref-cycles\n     and cycles and header line shows group information also - \u0027anon\n     group { ref-cycles, cycles }\u0027.  The output is sorted by period of\n     group leader first.\n\n   - Initial GTK+ annotate browser, from Namhyung Kim.\n\n   - Add option for runtime switching perf data file in perf report,\n     just press \u0027s\u0027 and a menu with the valid files found in the current\n     directory will be presented, from Feng Tang.\n\n   - Add support to display whole group data for raw columns, from Jiri\n     Olsa.\n\n   - Add per processor socket count aggregation in perf stat, from\n     Stephane Eranian.\n\n   - Add interval printing in \u0027perf stat\u0027, from Stephane Eranian.\n\n   - \u0027perf test\u0027 improvements\n\n   - Add support for wildcards in tracepoint system name, from Jiri\n     Olsa.\n\n   - Add anonymous huge page recognition, from Joshua Zhu.\n\n   - perf build-id cache now can show DSOs present in a perf.data file\n     that are not in the cache, to integrate with build-id servers being\n     put in place by organizations such as Fedora.\n\n   - perf top now shares more of the evsel config/creation routines with\n     \u0027record\u0027, paving the way for further integration like \u0027top\u0027\n     snapshots, etc.\n\n   - perf top now supports DWARF callchains.\n\n   - Fix mmap limitations on 32-bit, fix from David Miller.\n\n   - \u0027perf bench numa mem\u0027 NUMA performance measurement suite\n\n   - ... and lots of fixes, performance improvements, cleanups and other\n     improvements I failed to list - see the shortlog and git log for\n     details.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (270 commits)\n  perf/x86/amd: Enable northbridge performance counters on AMD family 15h\n  perf/hwbp: Fix cleanup in case of kzalloc failure\n  perf tools: Fix build with bison 2.3 and older.\n  perf tools: Limit unwind support to x86 archs\n  perf annotate: Make it to be able to skip unannotatable symbols\n  perf gtk/annotate: Fail early if it can\u0027t annotate\n  perf gtk/annotate: Show source lines with gray color\n  perf gtk/annotate: Support multiple event annotation\n  perf ui/gtk: Implement basic GTK2 annotation browser\n  perf annotate: Fix warning message on a missing vmlinux\n  perf buildid-cache: Add --update option\n  uprobes/perf: Avoid uprobe_apply() whenever possible\n  uprobes/perf: Teach trace_uprobe/perf code to use UPROBE_HANDLER_REMOVE\n  uprobes/perf: Teach trace_uprobe/perf code to pre-filter\n  uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event\u0027s\n  uprobes: Introduce uprobe_apply()\n  perf: Introduce hw_perf_event-\u003etp_target and -\u003etp_list\n  uprobes/perf: Always increment trace_uprobe-\u003enhit\n  uprobes/tracing: Kill uprobe_trace_consumer, embed uprobe_consumer into trace_uprobe\n  uprobes/tracing: Introduce is_trace_uprobe_enabled()\n  ...\n"
    },
    {
      "commit": "74cd15cd02708c7188581f279f33a98b2ae8d322",
      "tree": "5d5c2380ffc7ddf1cd529127b89bf572c1798ffd",
      "parents": [
        "bdedbb7b8d5b960e1ff0d116f5d4935febe73183"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Mon Feb 18 00:32:55 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 18 00:32:55 2013 -0500"
      },
      "message": "ext4: reclaim extents from extent status tree\n\nAlthough extent status is loaded on-demand, we also need to reclaim\nextent from the tree when we are under a heavy memory pressure because\nin some cases fragmented extent tree causes status tree costs too much\nmemory.\n\nHere we maintain a lru list in super_block.  When the extent status of\nan inode is accessed and changed, this inode will be move to the tail\nof the list.  The inode will be dropped from this list when it is\ncleared.  In the inode, a counter is added to count the number of\ncached objects in extent status tree.  Here only written/unwritten/hole\nextent is counted because delayed extent doesn\u0027t be reclaimed due to\nfiemap, bigalloc and seek_data/hole need it.  The counter will be\nincreased as a new extent is allocated, and it will be decreased as a\nextent is freed.\n\nIn this commit we use normal shrinker framework to reclaim memory from\nthe status tree.  ext4_es_reclaim_extents_count() traverses the lru list\nto count the number of reclaimable extents.  ext4_es_shrink() tries to\nreclaim written/unwritten/hole extents from extent status tree.  The\ninode that has been shrunk is moved to the tail of lru list.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Jan kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d100eef2440fea13e4f09e88b1c8bcbca64beb9f",
      "tree": "2451dc4582b43a30b414c89108b75148d48c9b57",
      "parents": [
        "f7fec032aa782d3fd7e51fbdf08aa3a296c01500"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Mon Feb 18 00:29:59 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 18 00:29:59 2013 -0500"
      },
      "message": "ext4: lookup block mapping in extent status tree\n\nAfter tracking all extent status, we already have a extent cache in\nmemory.  Every time we want to lookup a block mapping, we can first\ntry to lookup it in extent status tree to avoid a potential disk I/O.\n\nA new function called ext4_es_lookup_extent is defined to finish this\nwork.  When we try to lookup a block mapping, we always call\next4_map_blocks and/or ext4_da_map_blocks.  So in these functions we\nfirst try to lookup a block mapping in extent status tree.\n\nA new flag EXT4_GET_BLOCKS_NO_PUT_HOLE is used in ext4_da_map_blocks\nin order not to put a hole into extent status tree because this hole\nwill be converted to delayed extent in the tree immediately.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Jan kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "be401363ac5ec652c706263a59b0bd0acc3612e8",
      "tree": "64a7f85c2e1a0157a3ca740e4afc99260d8938c9",
      "parents": [
        "fdc0212e86ca15c5cfed77088af7cc5eb79ccbc7"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Mon Feb 18 00:27:26 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 18 00:27:26 2013 -0500"
      },
      "message": "ext4: rename and improbe ext4_es_find_extent()\n\nThis commit renames ext4_es_find_extent with ext4_es_find_delayed_extent\nand improve this function.  First, we split input and output parameter.\nSecond, this function never return the first block of the next delayed\nextent after \u0027es\u0027.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Jan kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fdc0212e86ca15c5cfed77088af7cc5eb79ccbc7",
      "tree": "58919d4c7e42dc0edba714c3dcedd88135560c6b",
      "parents": [
        "06b0c886214a223dde7b21cbfc3008fd20a8ce16"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Mon Feb 18 00:26:51 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 18 00:26:51 2013 -0500"
      },
      "message": "ext4: add physical block and status member into extent status tree\n\nThis commit adds two members in extent_status structure to let it record\nphysical block and extent status.  Here es_pblk is used to record both\nof them because physical block only has 48 bits.  So extent status could\nbe stashed into it so that we can save some memory.  Now written,\nunwritten, delayed and hole are defined as status.\n\nDue to new member is added into extent status tree, all interfaces need\nto be adjusted.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "06b0c886214a223dde7b21cbfc3008fd20a8ce16",
      "tree": "c1d3c51622e2a885446e8d617b953405412fc3aa",
      "parents": [
        "0f70b40613ee14b0cadafeb461034cff81b4419a"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Mon Feb 18 00:26:51 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 18 00:26:51 2013 -0500"
      },
      "message": "ext4: refine extent status tree\n\nThis commit refines the extent status tree code.\n\n1) A prefix \u0027es_\u0027 is added to to the extent status tree structure\nmembers.\n\n2) Refactored es_remove_extent() so that __es_remove_extent() can be\nused by es_insert_extent() to remove the old extent entry(-ies) before\ninserting a new one.\n\n3) Rename extent_status_end() to ext4_es_end()\n\n4) ext4_es_can_be_merged() is define to check whether two extents can\nbe merged or not.\n\n5) Update and clarified comments.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "112202d9098aae2c36436e5178c0cf3ced423c7b",
      "tree": "2297f17b2ba0c556173566560f33fe7a1b20a904",
      "parents": [
        "8d03ecfe471802d6afe97da97722b6924533aa82"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 13 19:29:12 2013 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 13 19:29:12 2013 -0800"
      },
      "message": "workqueue: rename cpu_workqueue to pool_workqueue\n\nworkqueue has moved away from global_cwqs to worker_pools and with the\nscheduled custom worker pools, wforkqueues will be associated with\npools which don\u0027t have anything to do with CPUs.  The workqueue code\nwent through significant amount of changes recently and mass renaming\nisn\u0027t likely to hurt much additionally.  Let\u0027s replace \u0027cpu\u0027 with\n\u0027pool\u0027 so that it reflects the current design.\n\n* s/struct cpu_workqueue_struct/struct pool_workqueue/\n* s/cpu_wq/pool_wq/\n* s/cwq/pwq/\n\nThis patch is purely cosmetic.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "343d9c283c9847da043fda3e76e3197f27b667dd",
      "tree": "6c37b7cd1d9eeb711fa1aeffee1930e446c406f8",
      "parents": [
        "078d5039a13dedbd2ed14153a6d764fd75baae07"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Feb 08 13:00:22 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Feb 08 13:00:22 2013 -0500"
      },
      "message": "jbd2: add tracepoints which provide per-handle statistics \n\nHandles which stay open a long time are problematic when it comes time\nto close down a transaction so it can be committed.  These tracepoints\nwill help us determine which ones are the problematic ones, and to\nvalidate whether changes makes things better or worse.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "9fff24aa2c5c504aadead1ff9599e813604c2e53",
      "tree": "24bbb1691ec816aed648a895882526ce361ec92f",
      "parents": [
        "40ae3487628235e5f1eb27542cca0cdb6e5dbe16"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 06 22:30:23 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 06 22:30:23 2013 -0500"
      },
      "message": "jbd2: track request delay statistics\n\nTrack the delay between when we first request that the commit begin\nand when it actually begins, so we can see how much of a gap exists.\nIn theory, this should just be the remaining scheduling quantuum of\nthe thread which requested the commit (assuming it was not a\nsynchronous operation which triggered the commit request) plus\nscheduling overhead; however, it\u0027s possible that real time processes\nmight get in the way of letting the kjournald thread from executing.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "40393f525fe698e2b639cf1851ef0a40e7e158a8",
      "tree": "4067b416468413225a8ac8c75c43859fe3b03bb5",
      "parents": [
        "0e11c8e8a60f8591556d142c2e1e53eaf86ab528",
        "4eacdf18374e5d7d21a728b46dfec269ac8ef55c",
        "6d4b418c75a74eea1dd3701e106a9da8c335c451",
        "9fc52d832b5e7f6e175f3b20ae94504b780b9fd3"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 28 22:25:02 2013 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 28 22:25:21 2013 -0800"
      },
      "message": "Merge branches \u0027doctorture.2013.01.29a\u0027, \u0027fixes.2013.01.26a\u0027, \u0027tagcb.2013.01.24a\u0027 and \u0027tiny.2013.01.29b\u0027 into HEAD\n\ndoctorture.2013.01.11a: Changes to rcutorture and to RCU documentation.\n\nfixes.2013.01.26a: Miscellaneous fixes.\n\ntagcb.2013.01.24a: Tag RCU callbacks with grace-period number to\n\tsimplify callback advancement.\n\ntiny.2013.01.29b: Enhancements to uniprocessor handling in tiny RCU.\n"
    },
    {
      "commit": "43720bd6014327ac454434496cb953edcdb9f8d6",
      "tree": "be134a588abb3164b7c5f9093707e536f9c54a05",
      "parents": [
        "ed1ac6e91a3ff7c561008ba57747cd6cbc49385e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jan 11 13:43:45 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Jan 26 00:39:12 2013 +0100"
      },
      "message": "PM / tracing: remove deprecated power trace API\n\nThe text in Documentation said it would be removed in 2.6.41;\nthe text in the Kconfig said removal in the 3.1 release.  Either\nway you look at it, we are well past both, so push it off a cliff.\n\nNote that the POWER_CSTATE and the POWER_PSTATE are part of the\nlegacy tracing API.  Remove all tracepoints which use these flags.\nAs can be seen from context, most already have a trace entry via\ntrace_cpu_idle anyways.\n\nAlso, the cpufreq/cpufreq.c PSTATE one is actually unpaired, as\ncompared to the CSTATE ones which all have a clear start/stop.\nAs part of this, the trace_power_frequency also becomes orphaned,\nso it too is deleted.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "ec22ca5eab0bd225588c69ccd06b16504cb05adf",
      "tree": "3282a2b587235879c3f2d286896a003900ab6563",
      "parents": [
        "c9e7cf273fa1876dee8effdb201a6f65eefab3a7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 24 11:01:33 2013 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 24 11:01:33 2013 -0800"
      },
      "message": "workqueue: move global_cwq-\u003ecpu to worker_pool\n\nMove gcwq-\u003ecpu to pool-\u003ecpu.  This introduces a couple places where\ngcwq-\u003epools[0].cpu is used.  These will soon go away as gcwq is\nfurther reduced.\n\nThis is part of an effort to remove global_cwq and make worker_pool\nthe top level abstraction, which in turn will help implementing worker\npools with user-specified attributes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "aaddea812cb0a2dc38b55ba557b68999bc2f6203",
      "tree": "a0c351a893ee132fdb36a3693dd9af5e126f7546",
      "parents": [
        "7f5118629f74b82bd4ba5e47415d1b4dcb940241"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Wed Jan 16 20:21:26 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 16 20:21:26 2013 -0500"
      },
      "message": "ext4: add tracepoint in punching hole\n\nThis patch adds a tracepoint in ext4_punch_hole.\n\nCC: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9fb0a7da0c528d9bd49b597aa63b1fe2216c7203",
      "tree": "146b065709010fd41f4a48e8a494b65b965fc0e8",
      "parents": [
        "5305cb830834549b9203ad4d009ad5483c5e293f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 11 13:06:37 2013 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jan 14 15:00:36 2013 +0100"
      },
      "message": "writeback: add more tracepoints\n\nAdd tracepoints for page dirtying, writeback_single_inode start, inode\ndirtying and writeback.  For the latter two inode events, a pair of\nevents are defined to denote start and end of the operations (the\nstarting one has _start suffix and the one w/o suffix happens after\nthe operation is complete).  These inode ops are FS specific and can\nbe non-trivial and having enclosing tracepoints is useful for external\ntracers.\n\nThis is part of tracepoint additions to improve visiblity into\ndirtying / writeback operations for io tracer and userland.\n\nv2: writeback_dirty_inode[_start] TPs may be called for files on\n    pseudo FSes w/ unregistered bdi.  Check whether bdi-\u003edev is %NULL\n    before dereferencing.\n\nv3: buffer dirtying moved to a block TP.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "5305cb830834549b9203ad4d009ad5483c5e293f",
      "tree": "9781e0181cb1f3c8f6fa2c5ad2de445333383b87",
      "parents": [
        "f0059afd3e6e7aa1a0ffc23468b74c43d47660b8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 11 13:06:36 2013 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jan 14 15:00:36 2013 +0100"
      },
      "message": "block: add block_{touch|dirty}_buffer tracepoint\n\nThe former is triggered from touch_buffer() and the latter\nmark_buffer_dirty().\n\nThis is part of tracepoint additions to improve visiblity into\ndirtying / writeback operations for io tracer and userland.\n\nv2: Transformed writeback_dirty_buffer to block_dirty_buffer and made\n    it share TP definition with block_touch_buffer.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8c1cf6bb02fda79b0a4b9bd121f6be6d4ce7a15a",
      "tree": "e10008c7fb3c7b8cf832712dd6e7b55f149a49e6",
      "parents": [
        "3a366e614d0837d9fc23f78cdb1a1186ebc3387f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 11 13:06:34 2013 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jan 14 15:00:36 2013 +0100"
      },
      "message": "block: add @req to bio_{front|back}_merge tracepoints\n\nbio_{front|back}_merge tracepoints report a bio merging into an\nexisting request but didn\u0027t specify which request the bio is being\nmerged into.  Add @req to it.  This makes it impossible to share the\nevent template with block_bio_queue - split it out.\n\n@req isn\u0027t used or exported to userland at this point and there is no\nuserland visible behavior change.  Later changes will make use of the\nextra parameter.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3a366e614d0837d9fc23f78cdb1a1186ebc3387f",
      "tree": "5be6ec716687234ac1e6202db62c84ee1d2246be",
      "parents": [
        "ac9a19745196388ae5d828c0be7a1d6e472101f3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 11 13:06:33 2013 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jan 14 15:00:36 2013 +0100"
      },
      "message": "block: add missing block_bio_complete() tracepoint\n\nbio completion didn\u0027t kick block_bio_complete TP.  Only dm was\nexplicitly triggering the TP on IO completion.  This makes\nblock_bio_complete TP useless for tracers which want to know about\nbios, and all other bio based drivers skip generating blktrace\ncompletion events.\n\nThis patch makes all bio completions via bio_endio() generate\nblock_bio_complete TP.\n\n* Explicit trace_block_bio_complete() invocation removed from dm and\n  the trace point is unexported.\n\n* @rq dropped from trace_block_bio_complete().  bios may fly around\n  w/o queue associated.  Verifying and accessing the assocaited queue\n  belongs to TP probes.\n\n* blktrace now gets both request and bio completions.  Make it ignore\n  bio completions if request completion path is happening.\n\nThis makes all bio based drivers generate blktrace completion events\nproperly and makes the block_bio_complete TP actually useful.\n\nv2: With this change, block_bio_complete TP could be invoked on sg\n    commands which have bio\u0027s with %NULL bi_bdev.  Update TP\n    assignment code to check whether bio-\u003ebi_bdev is %NULL before\n    dereferencing.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nOriginal-patch-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Alasdair Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f79ed82da494bc2ea677c6fc28b5439eacf4f5cc",
      "tree": "2213b5259c5afbae0c4244c09469a8e21a98e193",
      "parents": [
        "7751babd3c6d365316e7a405f516bdd0bc7cec60"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue Jan 08 13:00:01 2013 +0100"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu Jan 10 15:51:11 2013 -0200"
      },
      "message": "KVM: trace: Fix exit decoding.\n\ntrace_kvm_userspace_exit has been missing the KVM_EXIT_WATCHDOG exit.\n\nCC: Bharat Bhushan \u003cr65777@freescale.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "6d4b418c75a74eea1dd3701e106a9da8c335c451",
      "tree": "7ca38828ff65ade20dbe9390ae2749a6bec7a308",
      "parents": [
        "dc35c8934eba959b690921615fcd987e8bc17e4a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Nov 27 16:55:44 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jan 08 14:15:57 2013 -0800"
      },
      "message": "rcu: Trace callback acceleration\n\nThis commit adds event tracing for callback acceleration to allow better\ntracking of callbacks through the system.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3aac7a8d574285be855450d103a421b8f8ec89d4",
      "tree": "49e734939e3514c05b93d92428c73f88e86f1f0d",
      "parents": [
        "1b0048a44c502c5ab850203e6e0a6498d7d8676d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Nov 14 14:37:29 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jan 08 14:15:25 2013 -0800"
      },
      "message": "rcu: Fix blimit type for trace_rcu_batch_start()\n\nWhen the type of global variable blimit changed from int to long, the\ntype of the blimit argument of trace_rcu_batch_start() needed to have\nchanged.  This commit fixes this issue.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "52494535103986dbbf689b44d8c2c7efe2132b16",
      "tree": "88dd5a9d064608e9711c36f05b3b4aab8e255a4f",
      "parents": [
        "dc975e94f322e60fa8fcc44dec1820fde4de174c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed Nov 14 16:26:40 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jan 08 14:14:55 2013 -0800"
      },
      "message": "rcu: Reduce rcutorture tracing\n\nCurrently, rcutorture traces every read-side access.  This can be\nproblematic because even a two-minute rcutorture run on a two-CPU system\ncan generate 28,853,363 reads.  Normally, only a failing read is of\ninterest, so this commit traces adjusts rcutorture\u0027s tracing to only\ntrace failing reads.  The resulting event tracing records the time\nand the -\u003ecompleted value captured at the beginning of the RCU read-side\ncritical section, allowing correlation with other event-tracing messages.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n[ paulmck: Add fix to build problem located by Randy Dunlap based on\n  diagnosis by Steven Rostedt. ]\n"
    },
    {
      "commit": "fa6b7fe9928d50444c29b29c8563746c6b0c6299",
      "tree": "0be284cf322eb82eefdb3df2743740e5578ba5c4",
      "parents": [
        "d6712df95bcfea597fc3ea2405ec13e8b69a7b8c"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Thu Dec 20 15:32:12 2012 +0100"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Mon Jan 07 19:53:43 2013 -0200"
      },
      "message": "KVM: s390: Add support for channel I/O instructions.\n\nAdd a new capability, KVM_CAP_S390_CSS_SUPPORT, which will pass\nintercepts for channel I/O instructions to userspace. Only I/O\ninstructions interacting with I/O interrupts need to be handled\nin-kernel:\n\n- TEST PENDING INTERRUPTION (tpi) dequeues and stores pending\n  interrupts entirely in-kernel.\n- TEST SUBCHANNEL (tsch) dequeues pending interrupts in-kernel\n  and exits via KVM_EXIT_S390_TSCH to userspace for subchannel-\n  related processing.\n\nReviewed-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nReviewed-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "1ca1d8d54f925ad0eb6d9806ecd4309738f25301",
      "tree": "6da893ddc4487da134c5018a8406359cea19294a",
      "parents": [
        "d1c3ed669a2d452cacfb48c2d171a1f364dae2ed"
      ],
      "author": {
        "name": "Lance Ortiz",
        "email": "lance.ortiz@hp.com",
        "time": "Thu Jan 03 15:34:01 2013 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jan 03 14:31:44 2013 -0800"
      },
      "message": "aerdrv: Trace Event for PCI Express Advanced Error Reporting\n\nThis header file will define a new trace event that will be triggered when\na AER event occurs.  The following data will be provided to the trace\nevent.\n\nchar * dev_name - The name of the slot where the device resides\n                  ([domain:]bus:device.function).\n\nu32 status - Either the correctable or uncorrectable register\n             indicating what error or errors have been see.\n\nu8 severity - error severity 0:NONFATAL 1:FATAL 2:CORRECTED\n\nThe trace event will also provide a trace string that may look like:\n\n\"0000:05:00.0 PCIe Bus Error:severity\u003dUncorrected (Non-Fatal), Poisoned\nTLP\"\n\nSigned-off-by: Lance Ortiz \u003clance.ortiz@hp.com\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Boris Petkov \u003cbp@alien8.de\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "5439ca6b8ff8cf8d758c19eb28b617a5912904ee",
      "tree": "676f9e0b25074d2d8c5ab29df30c962b3cb7311e",
      "parents": [
        "a7a88b23737095e6c18a20c5d4eef9e25ec5b829",
        "0e9a9a1ad619e7e987815d20262d36a2f95717ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 02 09:57:34 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 02 09:57:34 2013 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 bug fixes from Ted Ts\u0027o:\n \"Various bug fixes for ext4.  Perhaps the most serious bug fixed is one\n  which could cause file system corruptions when performing file punch\n  operations.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: avoid hang when mounting non-journal filesystems with orphan list\n  ext4: lock i_mutex when truncating orphan inodes\n  ext4: do not try to write superblock on ro remount w/o journal\n  ext4: include journal blocks in df overhead calcs\n  ext4: remove unaligned AIO warning printk\n  ext4: fix an incorrect comment about i_mutex\n  ext4: fix deadlock in journal_unmap_buffer()\n  ext4: split off ext4_journalled_invalidatepage()\n  jbd2: fix assertion failure in jbd2_journal_flush()\n  ext4: check dioread_nolock on remount\n  ext4: fix extent tree corruption caused by hole punch\n"
    },
    {
      "commit": "4520fb3c3690f2643006d85f09ecb74554c10e95",
      "tree": "2355adc52f5d861073e37ed9b4cb8ccc165cd519",
      "parents": [
        "d7961c7fa4d2e3c3f12be67e21ba8799b5a7238a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Dec 25 13:28:54 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 25 13:28:54 2012 -0500"
      },
      "message": "ext4: split off ext4_journalled_invalidatepage()\n\nIn data\u003djournal mode we don\u0027t need delalloc or DIO handling in invalidatepage\nand similarly in other modes we don\u0027t need the journal handling. So split\ninvalidatepage implementations.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7a64bf05b2a6fe3703062d13d389e3eb904741c6",
      "tree": "7de58cc32cd02f11de5a1695b650946e1d48023a",
      "parents": [
        "510fc4e11b772fd60f2c545c64d4c55abd07ce36"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:21:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "mm: add a __GFP_KMEMCG flag\n\nThis flag is used to indicate to the callees that this allocation is a\nkernel allocation in process context, and should be accounted to current\u0027s\nmemcg.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a22180d2666c018f4fef6818074d78bb76ff2bda",
      "tree": "a633aaf423ff39f94d00502d03dbbd99dab4b2ee",
      "parents": [
        "2d4dce0070448bcb5ccd04553a4be4635417f565",
        "213490b301773ea9c6fb89a86424a6901fcdd069"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:42:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:42:05 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs update from Chris Mason:\n \"A big set of fixes and features.\n\n  In terms of line count, most of the code comes from Stefan, who added\n  the ability to replace a single drive in place.  This is different\n  from how btrfs normally replaces drives, and is much much much faster.\n\n  Josef is plowing through our synchronous write performance.  This pull\n  request does not include the DIO_OWN_WAITING patch that was discussed\n  on the list, but it has a number of other improvements to cut down our\n  latencies and CPU time during fsync/O_DIRECT writes.\n\n  Miao Xie has a big series of fixes and is spreading out ordered\n  operations over more CPUs.  This improves performance and reduces\n  contention.\n\n  I\u0027ve put in fixes for error handling around hash collisions.  These\n  are going back to individual stable kernels as I test against them.\n\n  Otherwise we have a lot of fixes and cleanups, thanks everyone!\n  raid5/6 is being rebased against the device replacement code.  I\u0027ll\n  have it posted this Friday along with a nice series of benchmarks.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (115 commits)\n  Btrfs: fix a bug of per-file nocow\n  Btrfs: fix hash overflow handling\n  Btrfs: don\u0027t take inode delalloc mutex if we\u0027re a free space inode\n  Btrfs: fix autodefrag and umount lockup\n  Btrfs: fix permissions of empty files not affected by umask\n  Btrfs: put raid properties into global table\n  Btrfs: fix BUG() in scrub when first superblock reading gives EIO\n  Btrfs: do not call file_update_time in aio_write\n  Btrfs: only unlock and relock if we have to\n  Btrfs: use tokens where we can in the tree log\n  Btrfs: optimize leaf_space_used\n  Btrfs: don\u0027t memset new tokens\n  Btrfs: only clear dirty on the buffer if it is marked as dirty\n  Btrfs: move checks in set_page_dirty under DEBUG\n  Btrfs: log changed inodes based on the extent map tree\n  Btrfs: add path-\u003ereally_keep_locks\n  Btrfs: do not mark ems as prealloc if we are writing to them\n  Btrfs: keep track of the extents original block length\n  Btrfs: inline csums if we\u0027re fsyncing\n  Btrfs: don\u0027t bother copying if we\u0027re only logging the inode\n  ...\n"
    },
    {
      "commit": "fb57dc817c24d46b035320d871b7a3fcc778558d",
      "tree": "0cc379d4bdf7b4d84f1890d5410d21421377ba2c",
      "parents": [
        "960097622d48bf0ee8f6c0cf751a904066c4b45b"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "bo.li.liu@oracle.com",
        "time": "Fri Nov 30 11:24:22 2012 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sun Dec 16 20:46:18 2012 -0500"
      },
      "message": "Btrfs: parse parent 0 into correct value in tracepoint\n\nValue 0 is not a tree id, so besides an upper limit, a lower limit is\nnecessary as well while parsing root types of tracepoint.\n\nSigned-off-by: Liu Bo \u003cbo.li.liu@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "36cd5c19c3fe8291fac45a262c44c00bd14b531a",
      "tree": "77813e551c82546c9f6cddc8a3216ba5d02807ed",
      "parents": [
        "2a74dbb9a86e8102dcd07d284135b4530a84826e",
        "bd9926e80330d43f15b710c2935fa41b792d56fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 17:33:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 17:33:01 2012 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 update from Ted Ts\u0027o:\n \"There are two major features for this merge window.  The first is\n  inline data, which allows small files or directories to be stored in\n  the in-inode extended attribute area.  (This requires that the file\n  system use inodes which are at least 256 bytes or larger; 128 byte\n  inodes do not have any room for in-inode xattrs.)\n\n  The second new feature is SEEK_HOLE/SEEK_DATA support.  This is\n  enabled by the extent status tree patches, and this infrastructure\n  will be used to further optimize ext4 in the future.\n\n  Beyond that, we have the usual collection of code cleanups and bug\n  fixes.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (63 commits)\n  ext4: zero out inline data using memset() instead of empty_zero_page\n  ext4: ensure Inode flags consistency are checked at build time\n  ext4: Remove CONFIG_EXT4_FS_XATTR\n  ext4: remove unused variable from ext4_ext_in_cache()\n  ext4: remove redundant initialization in ext4_fill_super()\n  ext4: remove redundant code in ext4_alloc_inode()\n  ext4: use sync_inode_metadata() when syncing inode metadata\n  ext4: enable ext4 inline support\n  ext4: let fallocate handle inline data correctly\n  ext4: let ext4_truncate handle inline data correctly\n  ext4: evict inline data out if we need to strore xattr in inode\n  ext4: let fiemap work with inline data\n  ext4: let ext4_rename handle inline dir\n  ext4: let empty_dir handle inline dir\n  ext4: let ext4_delete_entry() handle inline data\n  ext4: make ext4_delete_entry generic\n  ext4: let ext4_find_entry handle inline data\n  ext4: create a new function search_dir\n  ext4: let ext4_readdir handle inline data\n  ext4: let add_dir_entry handle inline data properly\n  ...\n"
    },
    {
      "commit": "3d59eebc5e137bd89c6351e4c70e90ba1d0dc234",
      "tree": "b4ddfd0b057454a7437a3b4e3074a3b8b4b03817",
      "parents": [
        "11520e5e7c1855fc3bf202bb3be35a39d9efa034",
        "4fc3f1d66b1ef0d7b8dc11f4ff1cc510f78b37d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 14:33:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 15:18:08 2012 -0800"
      },
      "message": "Merge tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma\n\nPull Automatic NUMA Balancing bare-bones from Mel Gorman:\n \"There are three implementations for NUMA balancing, this tree\n  (balancenuma), numacore which has been developed in tip/master and\n  autonuma which is in aa.git.\n\n  In almost all respects balancenuma is the dumbest of the three because\n  its main impact is on the VM side with no attempt to be smart about\n  scheduling.  In the interest of getting the ball rolling, it would be\n  desirable to see this much merged for 3.8 with the view to building\n  scheduler smarts on top and adapting the VM where required for 3.9.\n\n  The most recent set of comparisons available from different people are\n\n    mel:    https://lkml.org/lkml/2012/12/9/108\n    mingo:  https://lkml.org/lkml/2012/12/7/331\n    tglx:   https://lkml.org/lkml/2012/12/10/437\n    srikar: https://lkml.org/lkml/2012/12/10/397\n\n  The results are a mixed bag.  In my own tests, balancenuma does\n  reasonably well.  It\u0027s dumb as rocks and does not regress against\n  mainline.  On the other hand, Ingo\u0027s tests shows that balancenuma is\n  incapable of converging for this workloads driven by perf which is bad\n  but is potentially explained by the lack of scheduler smarts.  Thomas\u0027\n  results show balancenuma improves on mainline but falls far short of\n  numacore or autonuma.  Srikar\u0027s results indicate we all suffer on a\n  large machine with imbalanced node sizes.\n\n  My own testing showed that recent numacore results have improved\n  dramatically, particularly in the last week but not universally.\n  We\u0027ve butted heads heavily on system CPU usage and high levels of\n  migration even when it shows that overall performance is better.\n  There are also cases where it regresses.  Of interest is that for\n  specjbb in some configurations it will regress for lower numbers of\n  warehouses and show gains for higher numbers which is not reported by\n  the tool by default and sometimes missed in treports.  Recently I\n  reported for numacore that the JVM was crashing with\n  NullPointerExceptions but currently it\u0027s unclear what the source of\n  this problem is.  Initially I thought it was in how numacore batch\n  handles PTEs but I\u0027m no longer think this is the case.  It\u0027s possible\n  numacore is just able to trigger it due to higher rates of migration.\n\n  These reports were quite late in the cycle so I/we would like to start\n  with this tree as it contains much of the code we can agree on and has\n  not changed significantly over the last 2-3 weeks.\"\n\n* tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma: (50 commits)\n  mm/rmap, migration: Make rmap_walk_anon() and try_to_unmap_anon() more scalable\n  mm/rmap: Convert the struct anon_vma::mutex to an rwsem\n  mm: migrate: Account a transhuge page properly when rate limiting\n  mm: numa: Account for failed allocations and isolations as migration failures\n  mm: numa: Add THP migration for the NUMA working set scanning fault case build fix\n  mm: numa: Add THP migration for the NUMA working set scanning fault case.\n  mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node\n  mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG\n  mm: sched: numa: Control enabling and disabling of NUMA balancing\n  mm: sched: Adapt the scanning rate if a NUMA hinting fault does not migrate\n  mm: numa: Use a two-stage filter to restrict pages being migrated for unlikely task\u003c-\u003enode relationships\n  mm: numa: migrate: Set last_nid on newly allocated page\n  mm: numa: split_huge_page: Transfer last_nid on tail page\n  mm: numa: Introduce last_nid to the page frame\n  sched: numa: Slowly increase the scanning period as NUMA faults are handled\n  mm: numa: Rate limit setting of pte_numa if node is saturated\n  mm: numa: Rate limit the amount of memory that is migrated between nodes\n  mm: numa: Structures for Migrate On Fault per NUMA migration rate limiting\n  mm: numa: Migrate pages handled during a pmd_numa hinting fault\n  mm: numa: Migrate on reference policy\n  ...\n"
    },
    {
      "commit": "37ea95a959d4a49846ecbf2dd45326b6b34bf049",
      "tree": "43791e1244ce06d8ca18ecbfd0b0f6dcb86ebb8b",
      "parents": [
        "de0c276b31538fcd56611132f20b63eae2891876",
        "630e1e0bcddfda9566462d4f9a0d58b31c29d467"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU update from Ingo Molnar:\n \"The major features of this tree are:\n\n     1. A first version of no-callbacks CPUs.  This version prohibits\n        offlining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU\u003dy.\n        Relaxing this constraint is in progress, but not yet ready\n        for prime time.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/724.\n\n     2. Changes to SRCU that allows statically initialized srcu_struct\n        structures.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/296.\n\n     3. Restructuring of RCU\u0027s debugfs output.  These commits were posted\n        to LKML at https://lkml.org/lkml/2012/10/30/341.\n\n     4. Additional CPU-hotplug/RCU improvements, posted to LKML at\n        https://lkml.org/lkml/2012/10/30/327.\n        Note that the commit eliminating __stop_machine() was judged to\n        be too-high of risk, so is deferred to 3.9.\n\n     5. Changes to RCU\u0027s idle interface, most notably a new module\n        parameter that redirects normal grace-period operations to\n        their expedited equivalents.  These were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/739.\n\n     6. Additional diagnostics for RCU\u0027s CPU stall warning facility,\n        posted to LKML at https://lkml.org/lkml/2012/10/30/315.\n        The most notable change reduces the\n        default RCU CPU stall-warning time from 60 seconds to 21 seconds,\n        so that it once again happens sooner than the softlockup timeout.\n\n     7. Documentation updates, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/280.\n        A couple of late-breaking changes were posted at\n        https://lkml.org/lkml/2012/11/16/634 and\n        https://lkml.org/lkml/2012/11/16/547.\n\n     8. Miscellaneous fixes, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/309.\n\n     9. Finally, a fix for an lockdep-RCU splat was posted to LKML\n        at https://lkml.org/lkml/2012/11/7/486.\"\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (49 commits)\n  context_tracking: New context tracking susbsystem\n  sched: Mark RCU reader in sched_show_task()\n  rcu: Separate accounting of callbacks from callback-free CPUs\n  rcu: Add callback-free CPUs\n  rcu: Add documentation for the new rcuexp debugfs trace file\n  rcu: Update documentation for TREE_RCU debugfs tracing\n  rcu: Reduce default RCU CPU stall warning timeout\n  rcu: Fix TINY_RCU rcu_is_cpu_rrupt_from_idle check\n  rcu: Clarify memory-ordering properties of grace-period primitives\n  rcu: Add new rcutorture module parameters to start/end test messages\n  rcu: Remove list_for_each_continue_rcu()\n  rcu: Fix batch-limit size problem\n  rcu: Add tracing for synchronize_sched_expedited()\n  rcu: Remove old debugfs interfaces and also RCU flavor name\n  rcu: split \u0027rcuhier\u0027 to each flavor\n  rcu: split \u0027rcugp\u0027 to each flavor\n  rcu: split \u0027rcuboost\u0027 to each flavor\n  rcu: split \u0027rcubarrier\u0027 to each flavor\n  rcu: Fix tracing formatting\n  rcu: Remove the interface \"rcudata.csv\"\n  ...\n"
    },
    {
      "commit": "a9c58b907dbc6821533dfc295b63caf111ff1f16",
      "tree": "e50714c48de89400a02a8e92ef4e240c5206bbcc",
      "parents": [
        "fa264375175a382621c5344a6508e02ec4d1c3c0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Dec 11 16:02:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm, oom: change type of oom_score_adj to short\n\nThe maximum oom_score_adj is 1000 and the minimum oom_score_adj is -1000,\nso this range can be represented by the signed short type with no\nfunctional change.  The extra space this frees up in struct signal_struct\nwill be used for per-thread oom kill flags in the next patch.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b2a2d4a18fffac3c4872021529b0657896db788",
      "tree": "a0f05be191f12711a774368f6feb15bcd2eebf1a",
      "parents": [
        "5647bc293ab15f66a7b1cda850c5e9d162a6c7c2"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Oct 19 14:07:31 2012 +0100"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:28:35 2012 +0000"
      },
      "message": "mm: migrate: Add a tracepoint for migrate_pages\n\nThe pgmigrate_success and pgmigrate_fail vmstat counters tells the user\nabout migration activity but not the type or the reason. This patch adds\na tracepoint to identify the type of page migration and why the page is\nbeing migrated.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "caf491916b1c1e939a2c7575efb7a77f11fc9bdf",
      "tree": "f6e62f0a4427c2ba860ad8cd40a31e50be29de15",
      "parents": [
        "31f8d42d44b48ba72b586ca03e810cbbd21ea16b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 10 10:51:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 10 11:03:05 2012 -0800"
      },
      "message": "Revert \"revert \"Revert \"mm: remove __GFP_NO_KSWAPD\"\"\" and associated damage\n\nThis reverts commits a50915394f1fc02c2861d3b7ce7014788aa5066e and\nd7c3b937bdf45f0b844400b7bf6fd3ed50bac604.\n\nThis is a revert of a revert of a revert.  In addition, it reverts the\neven older i915 change to stop using the __GFP_NO_KSWAPD flag due to the\noriginal commits in linux-next.\n\nIt turns out that the original patch really was bogus, and that the\noriginal revert was the correct thing to do after all.  We thought we\nhad fixed the problem, and then reverted the revert, but the problem\nreally is fundamental: waking up kswapd simply isn\u0027t the right thing to\ndo, and direct reclaim sometimes simply _is_ the right thing to do.\n\nWhen certain allocations fail, we simply should try some direct reclaim,\nand if that fails, fail the allocation.  That\u0027s the right thing to do\nfor THP allocations, which can easily fail, and the GPU allocations want\nto do that too.\n\nSo starting kswapd is sometimes simply wrong, and removing the flag that\nsaid \"don\u0027t start kswapd\" was a mistake.  Let\u0027s hope we never revisit\nthis mistake again - and certainly not this many times ;)\n\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "630e1e0bcddfda9566462d4f9a0d58b31c29d467",
      "tree": "b09a28cf7b9ff0fee53af2245a7e3f8d006ae091",
      "parents": [
        "7e5530af11be68f3109672aed59243f82e1272f0",
        "91d1aa43d30505b0b825db8898ffc80a8eca96c7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Dec 03 06:27:05 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Dec 03 06:27:05 2012 +0100"
      },
      "message": "Merge branch \u0027rcu/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu\n\nConflicts:\n\tarch/x86/kernel/ptrace.c\n\nPull the latest RCU tree from Paul E. McKenney:\n\n\"       The major features of this series are:\n\n  1.\tA first version of no-callbacks CPUs.  This version prohibits\n  \tofflining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU\u003dy.\n  \tRelaxing this constraint is in progress, but not yet ready\n  \tfor prime time.  These commits were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/724, and are at branch rcu/nocb.\n\n  2.\tChanges to SRCU that allows statically initialized srcu_struct\n  \tstructures.  These commits were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/296, and are at branch rcu/srcu.\n\n  3.\tRestructuring of RCU\u0027s debugfs output.  These commits were posted\n  \tto LKML at https://lkml.org/lkml/2012/10/30/341, and are at\n  \tbranch rcu/tracing.\n\n  4.\tAdditional CPU-hotplug/RCU improvements, posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/327, and are at branch rcu/hotplug.\n  \tNote that the commit eliminating __stop_machine() was judged to\n  \tbe too-high of risk, so is deferred to 3.9.\n\n  5.\tChanges to RCU\u0027s idle interface, most notably a new module\n  \tparameter that redirects normal grace-period operations to\n  \ttheir expedited equivalents.  These were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/739, and are at branch rcu/idle.\n\n  6.\tAdditional diagnostics for RCU\u0027s CPU stall warning facility,\n  \tposted to LKML at https://lkml.org/lkml/2012/10/30/315, and\n  \tare at branch rcu/stall.  The most notable change reduces the\n  \tdefault RCU CPU stall-warning time from 60 seconds to 21 seconds,\n  \tso that it once again happens sooner than the softlockup timeout.\n\n  7.\tDocumentation updates, which were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/280, and are at branch rcu/doc.\n  \tA couple of late-breaking changes were posted at\n  \thttps://lkml.org/lkml/2012/11/16/634 and\n  \thttps://lkml.org/lkml/2012/11/16/547.\n\n  8.\tMiscellaneous fixes, which were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/309, along with a late-breaking\n  \tchange posted at Fri, 16 Nov 2012 11:26:25 -0800 with message-ID\n  \t\u003c20121116192625.GA447@linux.vnet.ibm.com\u003e, but which lkml.org\n  \tseems to have missed.  These are at branch rcu/fixes.\n\n  9.\tFinally, a fix for an lockdep-RCU splat was posted to LKML\n  \tat https://lkml.org/lkml/2012/11/7/486.  This is at rcu/next. \"\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a50915394f1fc02c2861d3b7ce7014788aa5066e",
      "tree": "4b94679a29fb97db6b5163a4c1345d62dfa6a1e7",
      "parents": [
        "60cefed485a02bd99b6299dad70666fe49245da7"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Nov 29 13:54:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 30 08:51:17 2012 -0800"
      },
      "message": "revert \"Revert \"mm: remove __GFP_NO_KSWAPD\"\"\n\nIt apepars that this patch was innocent, and we hope that \"mm: avoid\nwaking kswapd for THP allocations when compaction is deferred or\ncontended\" will fix the final kswapd-spinning cause.\n\nCc: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nCc: Seth Jennings \u003csjenning@linux.vnet.ibm.com\u003e\nCc: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Robert Jennings \u003crcj@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82b212f40059bffd6808c07266a942d444d5558a",
      "tree": "bf0910ed6dade9445f2a8a7fc9d351565e0a45b1",
      "parents": [
        "05f564849d49499ced97913a0914b5950577d07d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Nov 26 16:29:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 26 17:41:24 2012 -0800"
      },
      "message": "Revert \"mm: remove __GFP_NO_KSWAPD\"\n\nWith \"mm: vmscan: scale number of pages reclaimed by reclaim/compaction\nbased on failures\" reverted, Zdenek Kabelac reported the following\n\n  Hmm,  so it\u0027s just took longer to hit the problem and observe\n  kswapd0 spinning on my CPU again - it\u0027s not as endless like before -\n  but still it easily eats minutes - it helps to\tturn off  Firefox\n  or TB  (memory hungry apps) so kswapd0 stops soon - and restart\n  those apps again.  (And I still have like \u003e1GB of cached memory)\n\n  kswapd0         R  running task        0    30      2 0x00000000\n  Call Trace:\n    preempt_schedule+0x42/0x60\n    _raw_spin_unlock+0x55/0x60\n    put_super+0x31/0x40\n    drop_super+0x22/0x30\n    prune_super+0x149/0x1b0\n    shrink_slab+0xba/0x510\n\nThe sysrq+m indicates the system has no swap so it\u0027ll never reclaim\nanonymous pages as part of reclaim/compaction.  That is one part of the\nproblem but not the root cause as file-backed pages could also be\nreclaimed.\n\nThe likely underlying problem is that kswapd is woken up or kept awake\nfor each THP allocation request in the page allocator slow path.\n\nIf compaction fails for the requesting process then compaction will be\ndeferred for a time and direct reclaim is avoided.  However, if there\nare a storm of THP requests that are simply rejected, it will still be\nthe the case that kswapd is awake for a prolonged period of time as\npgdat-\u003ekswapd_max_order is updated each time.  This is noticed by the\nmain kswapd() loop and it will not call kswapd_try_to_sleep().  Instead\nit will loopp, shrinking a small number of pages and calling\nshrink_slab() on each iteration.\n\nThe temptation is to supply a patch that checks if kswapd was woken for\nTHP and if so ignore pgdat-\u003ekswapd_max_order but it\u0027ll be a hack and not\nbacked up by proper testing.  As 3.7 is very close to release and this\nis not a bug we should release with, a safer path is to revert \"mm:\nremove __GFP_NO_KSWAPD\" for now and revisit it with the view to ironing\nout the balance_pgdat() logic in general.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nCc: Seth Jennings \u003csjenning@linux.vnet.ibm.com\u003e\nCc: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Robert Jennings \u003crcj@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": "3fbfbf7a3b66ec424042d909f14ba2ddf4372ea8",
      "tree": "cc364c320a6e23927ecc154a8ef8021dc7d1a9e8",
      "parents": [
        "aac1cda34b84a9411d6b8d18c3658f094c834911"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Aug 19 21:35:53 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 16 10:05:56 2012 -0800"
      },
      "message": "rcu: Add callback-free CPUs\n\nRCU callback execution can add significant OS jitter and also can\ndegrade both scheduling latency and, in asymmetric multiprocessors,\nenergy efficiency.  This commit therefore adds the ability for selected\nCPUs (\"rcu_nocbs\u003d\" boot parameter) to have their callbacks offloaded\nto kthreads.  If the \"rcu_nocb_poll\" boot parameter is also specified,\nthese kthreads will do polling, removing the need for the offloaded\nCPUs to do wakeups.  At least one CPU must be doing normal callback\nprocessing: currently CPU 0 cannot be selected as a no-CBs CPU.\nIn addition, attempts to offline the last normal-CBs CPU will fail.\n\nThis feature was inspired by Jim Houston\u0027s and Joe Korty\u0027s JRCU, and\nthis commit includes fixes to problems located by Fengguang Wu\u0027s\nkbuild test robot.\n\n[ paulmck: Added gfp.h include file as suggested by Fengguang Wu. ]\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "992e9fdd7b3f656ab8aea895f0038336950774ed",
      "tree": "ac01802bc117516b111d1a3bd5f88617618bd8ca",
      "parents": [
        "51865fda28e585bdcc164474ff6438a9ccdbfada"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Thu Nov 08 21:57:33 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 08 21:57:33 2012 -0500"
      },
      "message": "ext4: add some tracepoints in extent status tree\n\nThis patch adds some tracepoints in extent status tree.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "19b303d8b5a0e8150a4697c01ca03e75a0a17469",
      "tree": "1b9ea24684bb2f1be1682c95170846e21857fc0b",
      "parents": [
        "b5645534ce84c21695c2f82d4d4f67cf2a67229a"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Thu Nov 08 14:34:04 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 08 14:34:04 2012 -0500"
      },
      "message": "ext4: print map-\u003em_flags in trace_ext4_ext/ind_map_blocks_exit\n\nWhen we use trace_ext4_ext/ind_map_blocks_exit, print the value of\nmap-\u003em_flags in order that we can understand the extent\u0027s current\nstatus.\n\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b5645534ce84c21695c2f82d4d4f67cf2a67229a",
      "tree": "c91238383a6348c46640071e33c2fe6a899ce55f",
      "parents": [
        "d71c1ae23aa3e7822715c63dc242de6d73002541"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Thu Nov 08 14:33:43 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 08 14:33:43 2012 -0500"
      },
      "message": "ext4: print \u0027flags\u0027 in ext4_ext_handle_uninitialized_extents\n\nIn trace_ext4_ext_handle_uninitialized_extents we don\u0027t care about the\nvalue of map-\u003em_flags because this value is probably 0, and we prefer\nto get the value of flags because we can know how to handle this\nextent in this function.\n\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "95a7d76897c1e7243d4137037c66d15cbf2cce76",
      "tree": "d70ce3f79c8c5f7824ff277b2ab424ab975fdf2c",
      "parents": [
        "c8d258a7b2b6633b79cad4464e8dfb3dc328d897"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Wed Oct 31 12:38:31 2012 -0400"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Wed Oct 31 12:38:31 2012 -0400"
      },
      "message": "xen/mmu: Use Xen specific TLB flush instead of the generic one.\n\nAs Mukesh explained it, the MMUEXT_TLB_FLUSH_ALL allows the\nhypervisor to do a TLB flush on all active vCPUs. If instead\nwe were using the generic one (which ends up being xen_flush_tlb)\nwe end up making the MMUEXT_TLB_FLUSH_LOCAL hypercall. But\nbefore we make that hypercall the kernel will IPI all of the\nvCPUs (even those that were asleep from the hypervisor\nperspective). The end result is that we needlessly wake them\nup and do a TLB flush when we can just let the hypervisor\ndo it correctly.\n\nThis patch gives around 50% speed improvement when migrating\nidle guest\u0027s from one host to another.\n\nOracle-bug: 14630170\n\nCC: stable@vger.kernel.org\nTested-by:  Jingjie Jiang \u003cjingjie.jiang@oracle.com\u003e\nSuggested-by:  Mukesh Rathor \u003cmukesh.rathor@oracle.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "72055425e53540d9d0e59a57ac8c9b8ce77b62d5",
      "tree": "8033d7d7bfdf8725eed785d02f7121d201052d2e",
      "parents": [
        "fc81c038c2d61d4fcd8150f383fec1ce23087597",
        "f46dbe3dee853f8a860f889cb2b7ff4c624f2a7a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 10:49:20 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 10:49:20 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs update from Chris Mason:\n \"This is a large pull, with the bulk of the updates coming from:\n\n   - Hole punching\n\n   - send/receive fixes\n\n   - fsync performance\n\n   - Disk format extension allowing more hardlinks inside a single\n     directory (btrfs-progs patch required to enable the compat bit for\n     this one)\n\n  I\u0027m cooking more unrelated RAID code, but I wanted to make sure this\n  original batch makes it in.  The largest updates here are relatively\n  old and have been in testing for some time.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (121 commits)\n  btrfs: init ref_index to zero in add_inode_ref\n  Btrfs: remove repeated eb-\u003epages check in, disk-io.c/csum_dirty_buffer\n  Btrfs: fix page leakage\n  Btrfs: do not warn_on when we cannot alloc a page for an extent buffer\n  Btrfs: don\u0027t bug on enomem in readpage\n  Btrfs: cleanup pages properly when ENOMEM in compression\n  Btrfs: make filesystem read-only when submitting barrier fails\n  Btrfs: detect corrupted filesystem after write I/O errors\n  Btrfs: make compress and nodatacow mount options mutually exclusive\n  btrfs: fix message printing\n  Btrfs: don\u0027t bother committing delayed inode updates when fsyncing\n  btrfs: move inline function code to header file\n  Btrfs: remove unnecessary IS_ERR in bio_readpage_error()\n  btrfs: remove unused function btrfs_insert_some_items()\n  Btrfs: don\u0027t commit instead of overcommitting\n  Btrfs: confirmation of value is added before trace_btrfs_get_extent() is called\n  Btrfs: be smarter about dropping things from the tree log\n  Btrfs: don\u0027t lookup csums for prealloc extents\n  Btrfs: cache extent state when writing out dirty metadata pages\n  Btrfs: do not hold the file extent leaf locked when adding extent item\n  ...\n"
    },
    {
      "commit": "c654345924f7cce87bb221b89db91cba890421ba",
      "tree": "980c9a496ac0e2497ef156ff5b83701295d1ecf8",
      "parents": [
        "075663d19885eb3738fd2d7dbdb8947e12563b68"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Oct 08 16:28:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:15 2012 +0900"
      },
      "message": "mm: remove __GFP_NO_KSWAPD\n\nWhen transparent huge pages were introduced, memory compaction and swap\nstorms were an issue, and the kernel had to be careful to not make THP\nallocations cause pageout or compaction.\n\nNow that we have working compaction deferral, kswapd is smart enough to\ninvoke compaction and the quadratic behaviour around isolate_free_pages\nhas been fixed, it should be safe to remove __GFP_NO_KSWAPD.\n\n[minchan@kernel.org: Comment fix]\n[mgorman@suse.de: Avoid direct reclaim for deferred compaction]\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6432f2128414edbea5fd4f6c4fa4c28d0e1c6151",
      "tree": "d3c63c5f2f043ce52d98d8dfd3c9c0a7bc76ed95",
      "parents": [
        "1b033447bf847ba49c3816c564c9191c97456b36",
        "c278531d39f3158bfee93dc67da0b77e09776de2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 08 06:36:39 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 08 06:36:39 2012 +0900"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 updates from Ted Ts\u0027o:\n \"The big new feature added this time is supporting online resizing\n  using the meta_bg feature.  This allows us to resize file systems\n  which are greater than 16TB.  In addition, the speed of online\n  resizing has been improved in general.\n\n  We also fix a number of races, some of which could lead to deadlocks,\n  in ext4\u0027s Asynchronous I/O and online defrag support, thanks to good\n  work by Dmitry Monakhov.\n\n  There are also a large number of more minor bug fixes and cleanups\n  from a number of other ext4 contributors, quite of few of which have\n  submitted fixes for the first time.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (69 commits)\n  ext4: fix ext4_flush_completed_IO wait semantics\n  ext4: fix mtime update in nodelalloc mode\n  ext4: fix ext_remove_space for punch_hole case\n  ext4: punch_hole should wait for DIO writers\n  ext4: serialize truncate with owerwrite DIO workers\n  ext4: endless truncate due to nonlocked dio readers\n  ext4: serialize unlocked dio reads with truncate\n  ext4: serialize dio nonlocked reads with defrag workers\n  ext4: completed_io locking cleanup\n  ext4: fix unwritten counter leakage\n  ext4: give i_aiodio_unwritten a more appropriate name\n  ext4: ext4_inode_info diet\n  ext4: convert to use leXX_add_cpu()\n  ext4: ext4_bread usage audit\n  fs: reserve fallocate flag codepoint\n  ext4: remove redundant offset check in mext_check_arguments()\n  ext4: don\u0027t clear orphan list on ro mount with errors\n  jbd2: fix assertion failure in commit code due to lacking transaction credits\n  ext4: release donor reference when EXT4_IOC_MOVE_EXT ioctl fails\n  ext4: enable FITRIM ioctl on bigalloc file system\n  ...\n"
    },
    {
      "commit": "a1ce39288e6fbefdd8d607021d02384eb4a20b99",
      "tree": "c72e67f0c9d828420788f9086a19df1b9a7e39ae",
      "parents": [
        "760285e7e7ab282c25b5e90816f7c47000557f4f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 02 18:01:25 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 02 18:01:25 2012 +0100"
      },
      "message": "UAPI: (Scripted) Convert #include \"...\" to #include \u003cpath/...\u003e in kernel system headers\n\nConvert #include \"...\" to #include \u003cpath/...\u003e in kernel system headers.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "dea7d76ecbfb53cda6aadd9bed33e87d255c5b02",
      "tree": "4869d75ed1804607ea4a2e449ad3506a1fb529e5",
      "parents": [
        "0647d6bd16c03c928a22d1b90c4c8684c5908f08"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "bo.li.liu@oracle.com",
        "time": "Fri Sep 07 20:01:27 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Oct 01 15:19:17 2012 -0400"
      },
      "message": "Btrfs: update delayed ref\u0027s tracepoints to show sequence\n\nWe\u0027ve added a new field \u0027sequence\u0027 to delayed ref node, so update related\ntracepoints.\n\nSigned-off-by: Liu Bo \u003cbo.li.liu@oracle.com\u003e\n"
    },
    {
      "commit": "85f2a2ef1d0ab99523e0b947a2b723f5650ed6aa",
      "tree": "be9256de42d2f2411355858fccb3c58aac8c5381",
      "parents": [
        "20a36e39d59757252edbbdcf9574ae2998733ce9"
      ],
      "author": {
        "name": "Wen Congyang",
        "email": "wency@cn.fujitsu.com",
        "time": "Thu Sep 20 14:04:47 2012 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 20 15:51:16 2012 -0400"
      },
      "message": "tracing: Don\u0027t call page_to_pfn() if page is NULL\n\nWhen allocating memory fails, page is NULL. page_to_pfn() will\ncause the kernel panicked if we don\u0027t use sparsemem vmemmap.\n\nLink: http://lkml.kernel.org/r/505AB1FF.8020104@cn.fujitsu.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "81370291722ac1e0ec95234a0ea91a5bc76b6185",
      "tree": "cea806d89ff429779fbf2e04f85118b4975200c3",
      "parents": [
        "210c05264d46ddf688bc26861ffb8e2323fb25cb"
      ],
      "author": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Fri Aug 17 09:52:17 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 17 09:52:17 2012 -0400"
      },
      "message": "ext4: add missing space to trace message\n\nSigned-off-by: Anatol Pomozov \u003canatol.pomozov@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "210c05264d46ddf688bc26861ffb8e2323fb25cb",
      "tree": "98a1faad4b5dfdd5d4c8443136fcaeaa47bbab66",
      "parents": [
        "df981d03eeff7971ac7e6ff37000bfa702327ef1"
      ],
      "author": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Fri Aug 17 09:50:17 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 17 09:50:17 2012 -0400"
      },
      "message": "ext4: realign trace events structs to make it smaller\n\nMost hardware architectures require that data (including struct fields)\nhave to be aligned in memory. To make it happen compiler inserts padding\nbetween struct fields if they are not aligned correctly.\n\nReorder fields to remove paddings and make structures denser. Making data\nsmaller saves some memory that is very important for trace events.\nTracing buffer has limited size and making objects smaller we can put more\nof them without overflowing the tracing buffer.\n\nTo find data struct holes I used \u0027pahole -H 1 -E -I vmlinux.o\u0027 from\n\u0027dwarves\u0027 package.\n\nSigned-off-by: Anatol Pomozov \u003canatol.pomozov@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bd463a06064c4bc8497f6aa6dfb4437be8f07a3b",
      "tree": "3499f105c565d977d0ae9486f0a4572cd5fcbd2e",
      "parents": [
        "148311d2ade909a79afb85a853c7979eb499563f",
        "e6dab5ffab59e910ec0e3355f4a6f29f7a7be474"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 03 10:57:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 03 10:57:20 2012 -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 \"Fix merge window fallout and fix sleep profiling (this was always\n  broken, so it\u0027s not a fix for the merge window - we can skip this one\n  from the head of the tree).\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/trace: Add ability to set a target task for events\n  perf/x86: Fix USER/KERNEL tagging of samples properly\n  perf/x86/intel/uncore: Make UNCORE_PMU_HRTIMER_INTERVAL 64-bit\n"
    },
    {
      "commit": "ac694dbdbc403c00e2c14d10bc7b8412cc378259",
      "tree": "e37328cfbeaf43716dd5914cad9179e57e84df76",
      "parents": [
        "a40a1d3d0a2fd613fdec6d89d3c053268ced76ed",
        "437ea90cc3afdca5229b41c6b1d38c4842756cb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge Andrew\u0027s second set of patches:\n - MM\n - a few random fixes\n - a couple of RTC leftovers\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (120 commits)\n  rtc/rtc-88pm80x: remove unneed devm_kfree\n  rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails\n  mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables\n  tmpfs: distribute interleave better across nodes\n  mm: remove redundant initialization\n  mm: warn if pg_data_t isn\u0027t initialized with zero\n  mips: zero out pg_data_t when it\u0027s allocated\n  memcg: gix memory accounting scalability in shrink_page_list\n  mm/sparse: remove index_init_lock\n  mm/sparse: more checks on mem_section number\n  mm/sparse: optimize sparse_index_alloc\n  memcg: add mem_cgroup_from_css() helper\n  memcg: further prevent OOM with too many dirty pages\n  memcg: prevent OOM with too many dirty pages\n  mm: mmu_notifier: fix freed page still mapped in secondary MMU\n  mm: memcg: only check anon swapin page charges for swap cache\n  mm: memcg: only check swap cache pages for repeated charging\n  mm: memcg: split swapin charge function into private and public part\n  mm: memcg: remove needless !mm fixup to init_mm when charging\n  mm: memcg: remove unneeded shmem charge type\n  ...\n"
    },
    {
      "commit": "3e9a97082fa639394e905e1fc4a0a7f719ca7644",
      "tree": "9985cfa26e0597128eae03a2ee7e4614efea571f",
      "parents": [
        "941c8726e4e737e74d418ccec3d8e7b946a65541",
        "d2e7c96af1e54b507ae2a6a7dd2baf588417a7e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "message": "Merge tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random\n\nPull random subsystem patches from Ted Ts\u0027o:\n \"This patch series contains a major revamp of how we collect entropy\n  from interrupts for /dev/random and /dev/urandom.\n\n  The goal is to addresses weaknesses discussed in the paper \"Mining\n  your Ps and Qs: Detection of Widespread Weak Keys in Network Devices\",\n  by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J.  Alex Halderman,\n  which will be published in the Proceedings of the 21st Usenix Security\n  Symposium, August 2012.  (See https://factorable.net for more\n  information and an extended version of the paper.)\"\n\nFix up trivial conflicts due to nearby changes in\ndrivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c}\n\n* tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits)\n  random: mix in architectural randomness in extract_buf()\n  dmi: Feed DMI table to /dev/random driver\n  random: Add comment to random_initialize()\n  random: final removal of IRQF_SAMPLE_RANDOM\n  um: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  [ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out\n  uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  ...\n"
    },
    {
      "commit": "b37f1dd0f543d9714f96c2f9b9f74f7bdfdfdf31",
      "tree": "4d01913bd950d60c65605cd14e0ff88b74f5f716",
      "parents": [
        "5091b74a95d447e34530e713a8971450a45498b3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm: introduce __GFP_MEMALLOC to allow access to emergency reserves\n\n__GFP_MEMALLOC will allow the allocation to disregard the watermarks, much\nlike PF_MEMALLOC.  It allows one to pass along the memalloc state in\nobject related allocation flags as opposed to task related flags, such as\nsk-\u003esk_allocation.  This removes the need for ALLOC_PFMEMALLOC as callers\nusing __GFP_MEMALLOC can get the ALLOC_NO_WATERMARK flag which is now\nenough to identify allocations related to page reclaim.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6dab5ffab59e910ec0e3355f4a6f29f7a7be474",
      "tree": "87acf0fb071b8d09794ac7d834cb256de030cceb",
      "parents": [
        "d07bdfd322d307789f15b427dbcc39257665356f"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Wed Jul 11 18:14:58 2012 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 31 17:02:05 2012 +0200"
      },
      "message": "perf/trace: Add ability to set a target task for events\n\nA few events are interesting not only for a current task.\nFor example, sched_stat_* events are interesting for a task\nwhich wakes up. For this reason, it will be good if such\nevents will be delivered to a target task too.\n\nNow a target task can be set by using __perf_task().\n\nThe original idea and a draft patch belongs to Peter Zijlstra.\n\nI need these events for profiling sleep times. sched_switch is used for\ngetting callchains and sched_stat_* is used for getting time periods.\nThese events are combined in user space, then it can be analyzed by\nperf tools.\n\nInspired-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1342016098-213063-1-git-send-email-avagin@openvz.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "4cb38750d49010ae72e718d46605ac9ba5a851b4",
      "tree": "8c991a900fd176288f4acbc340512b90d604374d",
      "parents": [
        "0a2fe19ccc4bc552a8083a595a3aa737b8bea727",
        "7efa1c87963d23cc57ba40c07316d3e28cc75a3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 13:17:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 13:17:17 2012 -0700"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/mm changes from Peter Anvin:\n \"The big change here is the patchset by Alex Shi to use INVLPG to flush\n  only the affected pages when we only need to flush a small page range.\n\n  It also removes the special INVALIDATE_TLB_VECTOR interrupts (32\n  vectors!) and replace it with an ordinary IPI function call.\"\n\nFix up trivial conflicts in arch/x86/include/asm/apic.h (added code next\nto changed line)\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/tlb: Fix build warning and crash when building for !SMP\n  x86/tlb: do flush_tlb_kernel_range by \u0027invlpg\u0027\n  x86/tlb: replace INVALIDATE_TLB_VECTOR by CALL_FUNCTION_VECTOR\n  x86/tlb: enable tlb flush range support for x86\n  mm/mmu_gather: enable tlb flush range in generic mmu_gather\n  x86/tlb: add tlb_flushall_shift knob into debugfs\n  x86/tlb: add tlb_flushall_shift for specific CPU\n  x86/tlb: fall back to flush all when meet a THP large page\n  x86/flush_tlb: try flush_tlb_single one by one in flush_tlb_range\n  x86/tlb_info: get last level TLB entry number of CPU\n  x86: Add read_mostly declaration/definition to variables from smp.h\n  x86: Define early read-mostly per-cpu macros\n"
    },
    {
      "commit": "a08489c569dc174cff97d2cb165aa81e3f1501cc",
      "tree": "c583700a11bab82ea864425004dd5bb03bf8a987",
      "parents": [
        "08d9329c29ec98477e8ac2f7a513f2bfa3e9f3c5",
        "6fec10a1a5866dda3cd6a825a521fc7c2f226ba5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 17:46:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 17:46:16 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue changes from Tejun Heo:\n \"There are three major changes.\n\n   - WQ_HIGHPRI has been reimplemented so that high priority work items\n     are served by worker threads with -20 nice value from dedicated\n     highpri worker pools.\n\n   - CPU hotplug support has been reimplemented such that idle workers\n     are kept across CPU hotplug events.  This makes CPU hotplug cheaper\n     (for PM) and makes the code simpler.\n\n   - flush_kthread_work() has been reimplemented so that a work item can\n     be freed while executing.  This removes an annoying behavior\n     difference between kthread_worker and workqueue.\"\n\n* \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix spurious CPU locality WARN from process_one_work()\n  kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed\n  kthread_worker: reorganize to prepare for flush_kthread_work() reimplementation\n  workqueue: simplify CPU hotplug code\n  workqueue: remove CPU offline trustee\n  workqueue: don\u0027t butcher idle workers on an offline CPU\n  workqueue: reimplement CPU online rebinding to handle idle workers\n  workqueue: drop @bind from create_worker()\n  workqueue: use mutex for global_cwq manager exclusion\n  workqueue: ROGUE workers are UNBOUND workers\n  workqueue: drop CPU_DYING notifier operation\n  workqueue: perform cpu down operations from low priority cpu_notifier()\n  workqueue: reimplement WQ_HIGHPRI using a separate worker_pool\n  workqueue: introduce NR_WORKER_POOLS and for_each_worker_pool()\n  workqueue: separate out worker_pool flags\n  workqueue: use @pool instead of @gcwq or @cpu where applicable\n  workqueue: factor out worker_pool from global_cwq\n  workqueue: don\u0027t use WQ_HIGHPRI for unbound workqueues\n"
    },
    {
      "commit": "5fecc9d8f59e765c2a48379dd7c6f5cf88c7d75a",
      "tree": "d1fc25d9650d3ac24591bba6f5e2e7a1afc54796",
      "parents": [
        "3c4cfadef6a1665d9cd02a543782d03d3e6740c6",
        "1a577b72475d161b6677c05abe57301362023bb2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 12:01:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 12:01:20 2012 -0700"
      },
      "message": "Merge tag \u0027kvm-3.6-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM updates from Avi Kivity:\n \"Highlights include\n  - full big real mode emulation on pre-Westmere Intel hosts (can be\n    disabled with emulate_invalid_guest_state\u003d0)\n  - relatively small ppc and s390 updates\n  - PCID/INVPCID support in guests\n  - EOI avoidance; 3.6 guests should perform better on 3.6 hosts on\n    interrupt intensive workloads)\n  - Lockless write faults during live migration\n  - EPT accessed/dirty bits support for new Intel processors\"\n\nFix up conflicts in:\n - Documentation/virtual/kvm/api.txt:\n\n   Stupid subchapter numbering, added next to each other.\n\n - arch/powerpc/kvm/booke_interrupts.S:\n\n   PPC asm changes clashing with the KVM fixes\n\n - arch/s390/include/asm/sigp.h, arch/s390/kvm/sigp.c:\n\n   Duplicated commits through the kvm tree and the s390 tree, with\n   subsequent edits in the KVM tree.\n\n* tag \u0027kvm-3.6-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (93 commits)\n  KVM: fix race with level interrupts\n  x86, hyper: fix build with !CONFIG_KVM_GUEST\n  Revert \"apic: fix kvm build on UP without IOAPIC\"\n  KVM guest: switch to apic_set_eoi_write, apic_write\n  apic: add apic_set_eoi_write for PV use\n  KVM: VMX: Implement PCID/INVPCID for guests with EPT\n  KVM: Add x86_hyper_kvm to complete detect_hypervisor_platform check\n  KVM: PPC: Critical interrupt emulation support\n  KVM: PPC: e500mc: Fix tlbilx emulation for 64-bit guests\n  KVM: PPC64: booke: Set interrupt computation mode for 64-bit host\n  KVM: PPC: bookehv: Add ESR flag to Data Storage Interrupt\n  KVM: PPC: bookehv64: Add support for std/ld emulation.\n  booke: Added crit/mc exception handler for e500v2\n  booke/bookehv: Add host crit-watchdog exception support\n  KVM: MMU: document mmu-lock and fast page fault\n  KVM: MMU: fix kvm_mmu_pagetable_walk tracepoint\n  KVM: MMU: trace fast page fault\n  KVM: MMU: fast path of handling guest page fault\n  KVM: MMU: introduce SPTE_MMU_WRITEABLE bit\n  KVM: MMU: fold tlb flush judgement into mmu_spte_update\n  ...\n"
    },
    {
      "commit": "00ce1db1a634746040ace24c09a4e3a7949a3145",
      "tree": "a9c97eab912d149ebaaab3dc3393d75416b5c6b4",
      "parents": [
        "c2557a303ab6712bb6e09447df828c557c710ac9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 04 16:19:30 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 14 20:17:48 2012 -0400"
      },
      "message": "random: add tracepoints for easier debugging and verification\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bd7bdd43dcb81bb08240b9401b36a104f77dc135",
      "tree": "4d12a15e7e72f2d64fb6e58a145e56b4da1a341a",
      "parents": [
        "974271c485a4d8bb801decc616748f90aafb07ec"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 12 14:46:37 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 12 14:46:37 2012 -0700"
      },
      "message": "workqueue: factor out worker_pool from global_cwq\n\nMove worklist and all worker management fields from global_cwq into\nthe new struct worker_pool.  worker_pool points back to the containing\ngcwq.  worker and cpu_workqueue_struct are updated to point to\nworker_pool instead of gcwq too.\n\nThis change is mechanical and doesn\u0027t introduce any functional\ndifference other than rearranging of fields and an added level of\nindirection in some places.  This is to prepare for multiple pools per\ngcwq.\n\nv2: Comment typo fixes as suggested by Namhyung.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\n"
    },
    {
      "commit": "a83eff0a82a7f3f14fea477fd41e6c082e7fc96a",
      "tree": "9fb65b061716c622962c42b8318f06fd0d2919cd",
      "parents": [
        "cf3a9c4842b1e097dbe0854933c471d43dd24f69"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed May 23 18:47:05 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jul 02 12:33:23 2012 -0700"
      },
      "message": "rcu: Add tracing for _rcu_barrier()\n\nThis commit adds event tracing for _rcu_barrier() execution.  This\nis defined only if RCU_TRACE\u003dy.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "e7b52ffd45a6d834473f43b349e7d86593d763c7",
      "tree": "12a930bdf1c43608e932f422505bf228afaf9880",
      "parents": [
        "e0ba94f14f747c2661c4d21f8c44e5b0b8cd8e48"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Thu Jun 28 09:02:17 2012 +0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jun 27 19:29:07 2012 -0700"
      },
      "message": "x86/flush_tlb: try flush_tlb_single one by one in flush_tlb_range\n\nx86 has no flush_tlb_range support in instruction level. Currently the\nflush_tlb_range just implemented by flushing all page table. That is not\nthe best solution for all scenarios. In fact, if we just use \u0027invlpg\u0027 to\nflush few lines from TLB, we can get the performance gain from later\nremain TLB lines accessing.\n\nBut the \u0027invlpg\u0027 instruction costs much of time. Its execution time can\ncompete with cr3 rewriting, and even a bit more on SNB CPU.\n\nSo, on a 512 4KB TLB entries CPU, the balance points is at:\n\t(512 - X) * 100ns(assumed TLB refill cost) \u003d\n\t\tX(TLB flush entries) * 100ns(assumed invlpg cost)\n\nHere, X is 256, that is 1/2 of 512 entries.\n\nBut with the mysterious CPU pre-fetcher and page miss handler Unit, the\nassumed TLB refill cost is far lower then 100ns in sequential access. And\n2 HT siblings in one core makes the memory access more faster if they are\naccessing the same memory. So, in the patch, I just do the change when\nthe target entries is less than 1/16 of whole active tlb entries.\nActually, I have no data support for the percentage \u00271/16\u0027, so any\nsuggestions are welcomed.\n\nAs to hugetlb, guess due to smaller page table, and smaller active TLB\nentries, I didn\u0027t see benefit via my benchmark, so no optimizing now.\n\nMy micro benchmark show in ideal scenarios, the performance improves 70\npercent in reading. And in worst scenario, the reading/writing\nperformance is similar with unpatched 3.4-rc4 kernel.\n\nHere is the reading data on my 2P * 4cores *HT NHM EP machine, with THP\n\u0027always\u0027:\n\nmulti thread testing, \u0027-t\u0027 paramter is thread number:\n\t       \t        with patch   unpatched 3.4-rc4\n./mprotect -t 1           14ns\t\t24ns\n./mprotect -t 2           13ns\t\t22ns\n./mprotect -t 4           12ns\t\t19ns\n./mprotect -t 8           14ns\t\t16ns\n./mprotect -t 16          28ns\t\t26ns\n./mprotect -t 32          54ns\t\t51ns\n./mprotect -t 128         200ns\t\t199ns\n\nSingle process with sequencial flushing and memory accessing:\n\n\t\t       \twith patch   unpatched 3.4-rc4\n./mprotect\t\t    7ns\t\t\t11ns\n./mprotect -p 4096  -l 8 -n 10240\n\t\t\t    21ns\t\t21ns\n\n[ hpa: http://lkml.kernel.org/r/1B4B44D9196EFF41AE41FDA404FC0A100BFF94@SHSMSX101.ccr.corp.intel.com\n  has additional performance numbers. ]\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nLink: http://lkml.kernel.org/r/1340845344-27557-3-git-send-email-alex.shi@intel.com\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "a1e4ccb990447df0fe83d164d9a7bc2e6c4b7db7",
      "tree": "2068a67dbcf1d34455956c9ecd416aa2a3e2b1e1",
      "parents": [
        "9900b4b48b095895cf962054e45aafa49ef70f74"
      ],
      "author": {
        "name": "Christoffer Dall",
        "email": "c.dall@virtualopensystems.com",
        "time": "Fri Jun 15 15:07:13 2012 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Jun 18 16:06:35 2012 +0300"
      },
      "message": "KVM: Introduce __KVM_HAVE_IRQ_LINE\n\nThis is a preparatory patch for the KVM/ARM implementation. KVM/ARM will use\nthe KVM_IRQ_LINE ioctl, which is currently conditional on\n__KVM_HAVE_IOAPIC, but ARM obviously doesn\u0027t have any IOAPIC support and we\nneed a separate define.\n\nSigned-off-by: Christoffer Dall \u003cc.dall@virtualopensystems.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "dcce0489477f07ac1331aee71f18d6274e19a9c1",
      "tree": "263b8b2f706a95857f7bc9cb6119d987c1075600",
      "parents": [
        "cd1834591fe9564720ac4b0193bf1c790fe89f0d"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Jun 11 18:39:50 2012 +0200"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Wed Jun 13 20:53:46 2012 -0300"
      },
      "message": "KVM: trace events: update list of exit reasons\n\nThe list of exit reasons for the kvm_userspace_exit event was\nmissing recent additions; bring it into sync again.\n\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "fd4b352687fd8604d49c190c4c9ea9e369fd42d5",
      "tree": "1e20de9090f7d74eef642ac263dd71da0b494d7d",
      "parents": [
        "8f5af6f1f2d09fe5eac86a5dc1731a5917c1503a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sat May 05 19:10:35 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 06 20:43:27 2012 -0700"
      },
      "message": "rcu: Update RCU_FAST_NO_HZ tracing for lazy callbacks\n\nIn the current code, a short dyntick-idle interval (where there is\nat least one non-lazy callback on the CPU) and a long dyntick-idle\ninterval (where there are only lazy callbacks on the CPU) are traced\nidentically, which can be less than helpful.  This commit therefore\nemits different event traces in these two cases.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nTested-by: Pascal Chapperon \u003cpascal.chapperon@wanadoo.fr\u003e\n"
    },
    {
      "commit": "23b9da55c5b0feb484bd5e8615f4eb1ce4169453",
      "tree": "84ce2cce4aca6c5e5ca4b7066faa21db1148b370",
      "parents": [
        "41ac1999c3e3563e1810b14878a869c79c9368bb"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: remove reclaim_mode_t\n\nThere is little motiviation for reclaim_mode_t once RECLAIM_MODE_[A]SYNC\nand lumpy reclaim have been removed.  This patch gets rid of\nreclaim_mode_t as well and improves the documentation about what\nreclaim/compaction is and when it is triggered.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41ac1999c3e3563e1810b14878a869c79c9368bb",
      "tree": "3ee7d3778dd638ae1f429444af4ea0360cca191f",
      "parents": [
        "c53919adc045bf803252e912f23028a68525753d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: do not stall on writeback during memory compaction\n\nThis patch stops reclaim/compaction entering sync reclaim as this was\nonly intended for lumpy reclaim and an oversight.  Page migration has\nits own logic for stalling on writeback pages if necessary and memory\ncompaction is already using it.\n\nWaiting on page writeback is bad for a number of reasons but the primary\none is that waiting on writeback to a slow device like USB can take a\nconsiderable length of time.  Page reclaim instead uses\nwait_iff_congested() to throttle if too many dirty pages are being\nscanned.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c53919adc045bf803252e912f23028a68525753d",
      "tree": "352361d84125b06ca890f3a2b3568512cc14c458",
      "parents": [
        "e709ffd6169ccd259eb5874e853303e91e94e829"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: remove lumpy reclaim\n\nThis series removes lumpy reclaim and some stalling logic that was\nunintentionally being used by memory compaction.  The end result is that\nstalling on dirty pages during page reclaim now depends on\nwait_iff_congested().\n\nFour kernels were compared\n\n  3.3.0     vanilla\n  3.4.0-rc2 vanilla\n  3.4.0-rc2 lumpyremove-v2 is patch one from this series\n  3.4.0-rc2 nosync-v2r3 is the full series\n\nRemoving lumpy reclaim saves almost 900 bytes of text whereas the full\nseries removes 1200 bytes.\n\n     text     data      bss       dec     hex  filename\n  6740375  1927944  2260992  10929311  a6c49f  vmlinux-3.4.0-rc2-vanilla\n  6739479  1927944  2260992  10928415  a6c11f  vmlinux-3.4.0-rc2-lumpyremove-v2\n  6739159  1927944  2260992  10928095  a6bfdf  vmlinux-3.4.0-rc2-nosync-v2\n\nThere are behaviour changes in the series and so tests were run with\nmonitoring of ftrace events.  This disrupts results so the performance\nresults are distorted but the new behaviour should be clearer.\n\nfs-mark running in a threaded configuration showed little of interest as\nit did not push reclaim aggressively\n\n  FS-Mark Multi Threaded\n                          3.3.0-vanilla       rc2-vanilla       lumpyremove-v2r3       nosync-v2r3\n  Files/s  min           3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Files/s  mean          3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Files/s  stddev        0.00 ( 0.00%)        0.00 ( 0.00%)        0.00 ( 0.00%)        0.00 ( 0.00%)\n  Files/s  max           3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Overhead min      508667.00 ( 0.00%)   521350.00 (-2.49%)   544292.00 (-7.00%)   547168.00 (-7.57%)\n  Overhead mean     551185.00 ( 0.00%)   652690.73 (-18.42%)   991208.40 (-79.83%)   570130.53 (-3.44%)\n  Overhead stddev    18200.69 ( 0.00%)   331958.29 (-1723.88%)  1579579.43 (-8578.68%)     9576.81 (47.38%)\n  Overhead max      576775.00 ( 0.00%)  1846634.00 (-220.17%)  6901055.00 (-1096.49%)   585675.00 (-1.54%)\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             309.90    300.95    307.33    298.95\n  User+Sys Time Running Test (seconds)        319.32    309.67    315.69    307.51\n  Total Elapsed Time (seconds)               1187.85   1193.09   1191.98   1193.73\n\n  MMTests Statistics: vmstat\n  Page Ins                                       80532       82212       81420       79480\n  Page Outs                                  111434984   111456240   111437376   111582628\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                           44881       27889       27453       34843\n  Kswapd pages scanned                        25841428    25860774    25861233    25843212\n  Kswapd pages reclaimed                      25841393    25860741    25861199    25843179\n  Direct pages reclaimed                         44881       27889       27453       34843\n  Kswapd efficiency                                99%         99%         99%         99%\n  Kswapd velocity                            21754.791   21675.460   21696.029   21649.127\n  Direct efficiency                               100%        100%        100%        100%\n  Direct velocity                               37.783      23.375      23.031      29.188\n  Percentage direct scans                           0%          0%          0%          0%\n\nftrace showed that there was no stalling on writeback or pages submitted\nfor IO from reclaim context.\n\npostmark was similar and while it was more interesting, it also did not\npush reclaim heavily.\n\n  POSTMARK\n                                       3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  Transactions per second:               16.00 ( 0.00%)    20.00 (25.00%)    18.00 (12.50%)    17.00 ( 6.25%)\n  Data megabytes read per second:        18.80 ( 0.00%)    24.27 (29.10%)    22.26 (18.40%)    20.54 ( 9.26%)\n  Data megabytes written per second:     35.83 ( 0.00%)    46.25 (29.08%)    42.42 (18.39%)    39.14 ( 9.24%)\n  Files created alone per second:        28.00 ( 0.00%)    38.00 (35.71%)    34.00 (21.43%)    30.00 ( 7.14%)\n  Files create/transact per second:       8.00 ( 0.00%)    10.00 (25.00%)     9.00 (12.50%)     8.00 ( 0.00%)\n  Files deleted alone per second:       556.00 ( 0.00%)  1224.00 (120.14%)  3062.00 (450.72%)  6124.00 (1001.44%)\n  Files delete/transact per second:       8.00 ( 0.00%)    10.00 (25.00%)     9.00 (12.50%)     8.00 ( 0.00%)\n\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             113.34    107.99    109.73    108.72\n  User+Sys Time Running Test (seconds)        145.51    139.81    143.32    143.55\n  Total Elapsed Time (seconds)               1159.16    899.23    980.17   1062.27\n\n  MMTests Statistics: vmstat\n  Page Ins                                    13710192    13729032    13727944    13760136\n  Page Outs                                   43071140    42987228    42733684    42931624\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                               0           0           0           0\n  Kswapd pages scanned                         9941613     9937443     9939085     9929154\n  Kswapd pages reclaimed                       9940926     9936751     9938397     9928465\n  Direct pages reclaimed                             0           0           0           0\n  Kswapd efficiency                                99%         99%         99%         99%\n  Kswapd velocity                             8576.567   11051.058   10140.164    9347.109\n  Direct efficiency                               100%        100%        100%        100%\n  Direct velocity                                0.000       0.000       0.000       0.000\n\nIt looks like here that the full series regresses performance but as\nftrace showed no usage of wait_iff_congested() or sync reclaim I am\nassuming it\u0027s a disruption due to monitoring.  Other data such as memory\nusage, page IO, swap IO all looked similar.\n\nRunning a benchmark with a plain DD showed nothing very interesting.\nThe full series stalled in wait_iff_congested() slightly less but stall\ntimes on vanilla kernels were marginal.\n\nRunning a benchmark that hammered on file-backed mappings showed stalls\ndue to congestion but not in sync writebacks\n\n  MICRO\n                                       3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             308.13    294.50    298.75    299.53\n  User+Sys Time Running Test (seconds)        330.45    316.28    318.93    320.79\n  Total Elapsed Time (seconds)               1814.90   1833.88   1821.14   1832.91\n\n  MMTests Statistics: vmstat\n  Page Ins                                      108712      120708       97224      110344\n  Page Outs                                  155514576   156017404   155813676   156193256\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                         2599253     1550480     2512822     2414760\n  Kswapd pages scanned                        69742364    71150694    68839041    69692533\n  Kswapd pages reclaimed                      34824488    34773341    34796602    34799396\n  Direct pages reclaimed                         53693       94750       61792       75205\n  Kswapd efficiency                                49%         48%         50%         49%\n  Kswapd velocity                            38427.662   38797.901   37799.972   38022.889\n  Direct efficiency                                 2%          6%          2%          3%\n  Direct velocity                             1432.174     845.464    1379.807    1317.446\n  Percentage direct scans                           3%          2%          3%          3%\n  Page writes by reclaim                             0           0           0           0\n  Page writes file                                   0           0           0           0\n  Page writes anon                                   0           0           0           0\n  Page reclaim immediate                             0           0           0        1218\n  Page rescued immediate                             0           0           0           0\n  Slabs scanned                                  15360       16384       13312       16384\n  Direct inode steals                                0           0           0           0\n  Kswapd inode steals                             4340        4327        1630        4323\n\n  FTrace Reclaim Statistics: congestion_wait\n  Direct number congest     waited                 0          0          0          0\n  Direct time   congest     waited               0ms        0ms        0ms        0ms\n  Direct full   congest     waited                 0          0          0          0\n  Direct number conditional waited               900        870        754        789\n  Direct time   conditional waited               0ms        0ms        0ms       20ms\n  Direct full   conditional waited                 0          0          0          0\n  KSwapd number congest     waited              2106       2308       2116       1915\n  KSwapd time   congest     waited          139924ms   157832ms   125652ms   132516ms\n  KSwapd full   congest     waited              1346       1530       1202       1278\n  KSwapd number conditional waited             12922      16320      10943      14670\n  KSwapd time   conditional waited               0ms        0ms        0ms        0ms\n  KSwapd full   conditional waited                 0          0          0          0\n\nReclaim statistics are not radically changed.  The stall times in kswapd\nare massive but it is clear that it is due to calls to congestion_wait()\nand that is almost certainly the call in balance_pgdat().  Otherwise\nstalls due to dirty pages are non-existant.\n\nI ran a benchmark that stressed high-order allocation.  This is very\nartifical load but was used in the past to evaluate lumpy reclaim and\ncompaction.  Generally I look at allocation success rates and latency\nfigures.\n\n  STRESS-HIGHALLOC\n                   3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  Pass 1          81.00 ( 0.00%)    28.00 (-53.00%)    24.00 (-57.00%)    28.00 (-53.00%)\n  Pass 2          82.00 ( 0.00%)    39.00 (-43.00%)    38.00 (-44.00%)    43.00 (-39.00%)\n  while Rested    88.00 ( 0.00%)    87.00 (-1.00%)    88.00 ( 0.00%)    88.00 ( 0.00%)\n\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             740.93    681.42    685.14    684.87\n  User+Sys Time Running Test (seconds)       2922.65   3269.52   3281.35   3279.44\n  Total Elapsed Time (seconds)               1161.73   1152.49   1159.55   1161.44\n\n  MMTests Statistics: vmstat\n  Page Ins                                     4486020     2807256     2855944     2876244\n  Page Outs                                    7261600     7973688     7975320     7986120\n  Swap Ins                                       31694           0           0           0\n  Swap Outs                                      98179           0           0           0\n  Direct pages scanned                           53494       57731       34406      113015\n  Kswapd pages scanned                         6271173     1287481     1278174     1219095\n  Kswapd pages reclaimed                       2029240     1281025     1260708     1201583\n  Direct pages reclaimed                          1468       14564       16649       92456\n  Kswapd efficiency                                32%         99%         98%         98%\n  Kswapd velocity                             5398.133    1117.130    1102.302    1049.641\n  Direct efficiency                                 2%         25%         48%         81%\n  Direct velocity                               46.047      50.092      29.672      97.306\n  Percentage direct scans                           0%          4%          2%          8%\n  Page writes by reclaim                       1616049           0           0           0\n  Page writes file                             1517870           0           0           0\n  Page writes anon                               98179           0           0           0\n  Page reclaim immediate                        103778       27339        9796       17831\n  Page rescued immediate                             0           0           0           0\n  Slabs scanned                                1096704      986112      980992      998400\n  Direct inode steals                              223      215040      216736      247881\n  Kswapd inode steals                           175331       61548       68444       63066\n  Kswapd skipped wait                            21991           0           1           0\n  THP fault alloc                                    1         135         125         134\n  THP collapse alloc                               393         311         228         236\n  THP splits                                        25          13           7           8\n  THP fault fallback                                 0           0           0           0\n  THP collapse fail                                  3           5           7           7\n  Compaction stalls                                865        1270        1422        1518\n  Compaction success                               370         401         353         383\n  Compaction failures                              495         869        1069        1135\n  Compaction pages moved                        870155     3828868     4036106     4423626\n  Compaction move failure                        26429       23865       29742       27514\n\nSuccess rates are completely hosed for 3.4-rc2 which is almost certainly\ndue to commit fe2c2a106663 (\"vmscan: reclaim at order 0 when compaction\nis enabled\").  I expected this would happen for kswapd and impair\nallocation success rates (https://lkml.org/lkml/2012/1/25/166) but I did\nnot anticipate this much a difference: 80% less scanning, 37% less\nreclaim by kswapd\n\nIn comparison, reclaim/compaction is not aggressive and gives up easily\nwhich is the intended behaviour.  hugetlbfs uses __GFP_REPEAT and would\nbe much more aggressive about reclaim/compaction than THP allocations\nare.  The stress test above is allocating like neither THP or hugetlbfs\nbut is much closer to THP.\n\nMainline is now impaired in terms of high order allocation under heavy\nload although I do not know to what degree as I did not test with\n__GFP_REPEAT.  Keep this in mind for bugs related to hugepage pool\nresizing, THP allocation and high order atomic allocation failures from\nnetwork devices.\n\nIn terms of congestion throttling, I see the following for this test\n\n  FTrace Reclaim Statistics: congestion_wait\n  Direct number congest     waited                 3          0          0          0\n  Direct time   congest     waited               0ms        0ms        0ms        0ms\n  Direct full   congest     waited                 0          0          0          0\n  Direct number conditional waited               957        512       1081       1075\n  Direct time   conditional waited               0ms        0ms        0ms        0ms\n  Direct full   conditional waited                 0          0          0          0\n  KSwapd number congest     waited                36          4          3          5\n  KSwapd time   congest     waited            3148ms      400ms      300ms      500ms\n  KSwapd full   congest     waited                30          4          3          5\n  KSwapd number conditional waited             88514        197        332        542\n  KSwapd time   conditional waited            4980ms        0ms        0ms        0ms\n  KSwapd full   conditional waited                49          0          0          0\n\nThe \"conditional waited\" times are the most interesting as this is\ndirectly impacted by the number of dirty pages encountered during scan.\nAs lumpy reclaim is no longer scanning contiguous ranges, it is finding\nfewer dirty pages.  This brings wait times from about 5 seconds to 0.\nkswapd itself is still calling congestion_wait() so it\u0027ll still stall but\nit\u0027s a lot less.\n\nIn terms of the type of IO we were doing, I see this\n\n  FTrace Reclaim Statistics: mm_vmscan_writepage\n  Direct writes anon  sync                         0          0          0          0\n  Direct writes anon  async                        0          0          0          0\n  Direct writes file  sync                         0          0          0          0\n  Direct writes file  async                        0          0          0          0\n  Direct writes mixed sync                         0          0          0          0\n  Direct writes mixed async                        0          0          0          0\n  KSwapd writes anon  sync                         0          0          0          0\n  KSwapd writes anon  async                    91682          0          0          0\n  KSwapd writes file  sync                         0          0          0          0\n  KSwapd writes file  async                   822629          0          0          0\n  KSwapd writes mixed sync                         0          0          0          0\n  KSwapd writes mixed async                        0          0          0          0\n\nIn 3.2, kswapd was doing a bunch of async writes of pages but\nreclaim/compaction was never reaching a point where it was doing sync\nIO.  This does not guarantee that reclaim/compaction was not calling\nwait_on_page_writeback() but I would consider it unlikely.  It indicates\nthat merging patches 2 and 3 to stop reclaim/compaction calling\nwait_on_page_writeback() should be safe.\n\nThis patch:\n\nLumpy reclaim had a purpose but in the mind of some, it was to kick the\nsystem so hard it trashed.  For others the purpose was to complicate\nvmscan.c.  Over time it was giving softer shoes and a nicer attitude but\nmemory compaction needs to step up and replace it so this patch sends\nlumpy reclaim to the farm.\n\nThe tracepoint format changes for isolating LRU pages with this patch\napplied.  Furthermore reclaim/compaction can no longer queue dirty pages\nin pageout() if the underlying BDI is congested.  Lumpy reclaim used\nthis logic and reclaim/compaction was using it in error.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e709ffd6169ccd259eb5874e853303e91e94e829",
      "tree": "796b56c2507b8581492da73e354d651c9dd7076b",
      "parents": [
        "edad9d2c337d43278a9d5aeb0ed531c2e838f8a6"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue May 29 15:06:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: remove swap token code\n\nThe swap token code no longer fits in with the current VM model.  It\ndoes not play well with cgroups or the better NUMA placement code in\ndevelopment, since we have only one swap token globally.\n\nIt also has the potential to mess with scalability of the system, by\nincreasing the number of non-reclaimable pages on the active and\ninactive anon LRU lists.\n\nLast but not least, the swap token code has been broken for a year\nwithout complaints, as reported by Konstantin Khlebnikov.  This suggests\nwe no longer have much use for it.\n\nThe days of sub-1G memory systems with heavy use of swap are over.  If\nwe ever need thrashing reducing code in the future, we will have to\nimplement something that does scale.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Bob Picco \u003cbpicco@meloft.net\u003e\nAcked-by: 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": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "ece78b7df734726e790dcab207f463401ff80440",
      "tree": "4a0b23c28c6a727d5eebc8a88a22fe3720c425fd",
      "parents": [
        "07acfc2a9349a8ce45b236c2624dad452001966b",
        "0324876628a9c7faf8127e20af29373dc6dec876"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:14:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:14:59 2012 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull ext2, ext3 and quota fixes from Jan Kara:\n \"Interesting bits are:\n   - removal of a special i_mutex locking subclass (I_MUTEX_QUOTA) since\n     quota code does not need i_mutex anymore in any unusual way.\n   - backport (from ext4) of a fix of a checkpointing bug (missing cache\n     flush) that could lead to fs corruption on power failure\n\n  The rest are just random small fixes \u0026 cleanups.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext2: trivial fix to comment for ext2_free_blocks\n  ext2: remove the redundant comment for ext2_export_ops\n  ext3: return 32/64-bit dir name hash according to usage type\n  quota: Get rid of nested I_MUTEX_QUOTA locking subclass\n  quota: Use precomputed value of sb_dqopt in dquot_quota_sync\n  ext2: Remove i_mutex use from ext2_quota_write()\n  reiserfs: Remove i_mutex use from reiserfs_quota_write()\n  ext4: Remove i_mutex use from ext4_quota_write()\n  ext3: Remove i_mutex use from ext3_quota_write()\n  quota: Fix double lock in add_dquot_ref() with CONFIG_QUOTA_DEBUG\n  jbd: Write journal superblock with WRITE_FUA after checkpointing\n  jbd: protect all log tail updates with j_checkpoint_mutex\n  jbd: Split updating of journal superblock and marking journal empty\n  ext2: do not register write_super within VFS\n  ext2: Remove s_dirt handling\n  ext2: write superblock only once on unmount\n  ext3: update documentation with barrier\u003d1 default\n  ext3: remove max_debt in find_group_orlov()\n  jbd: Refine commit writeout logic\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "468f4d1a855f8039dabf441b8bf68cae264033ff",
      "tree": "303ac5bc1ac3f86f136a30f9356e84f20dcbf13f",
      "parents": [
        "eb2689e06b3526c7684b09beecf26070f05ee825",
        "8714c8d74d313c3ba27bf9c2aaacb1ad71c644f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 14:07:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 14:07:06 2012 -0700"
      },
      "message": "Merge tag \u0027pm-for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management updates from Rafael Wysocki:\n\n - Implementation of opportunistic suspend (autosleep) and user space\n   interface for manipulating wakeup sources.\n\n - Hibernate updates from Bojan Smojver and Minho Ban.\n\n - Updates of the runtime PM core and generic PM domains framework\n   related to PM QoS.\n\n - Assorted fixes.\n\n* tag \u0027pm-for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (25 commits)\n  epoll: Fix user space breakage related to EPOLLWAKEUP\n  PM / Domains: Make it possible to add devices to inactive domains\n  PM / Hibernate: Use get_gendisk to verify partition if resume_file is integer format\n  PM / Domains: Fix computation of maximum domain off time\n  PM / Domains: Fix link checking when add subdomain\n  PM / Sleep: User space wakeup sources garbage collector Kconfig option\n  PM / Sleep: Make the limit of user space wakeup sources configurable\n  PM / Documentation: suspend-and-cpuhotplug.txt: Fix typo\n  PM / Domains: Cache device stop and domain power off governor results, v3\n  PM / Domains: Make device removal more straightforward\n  PM / Sleep: Fix a mistake in a conditional in autosleep_store()\n  epoll: Add a flag, EPOLLWAKEUP, to prevent suspend while epoll events are ready\n  PM / QoS: Create device constraints objects on notifier registration\n  PM / Runtime: Remove device fields related to suspend time, v2\n  PM / Domains: Rework default domain power off governor function, v2\n  PM / Domains: Rework default device stop governor function, v2\n  PM / Sleep: Add user space interface for manipulating wakeup sources, v3\n  PM / Sleep: Add \"prevent autosleep time\" statistics to wakeup sources\n  PM / Sleep: Implement opportunistic sleep, v2\n  PM / Sleep: Add wakeup_source_activate and wakeup_source_deactivate tracepoints\n  ...\n"
    },
    {
      "commit": "2e341ca686042aa464efa755447e7bcee91d1eb6",
      "tree": "c6b16b6b6a6e871fa04396cb2c7eb759bcad5be3",
      "parents": [
        "927ad551031798d4cba49766549600bbb33872d7",
        "85e184e4c3cd3e2285ceab91ff8f0cac094e8a85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 13:05:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 13:05:43 2012 -0700"
      },
      "message": "Merge tag \u0027sound-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\nPull sound updates from Takashi Iwai:\n \"This is the first big chunk for 3.5 merges of sound stuff.\n\n  There are a few big changes in different areas.  First off, the\n  streaming logic of USB-audio endpoints has been largely rewritten for\n  the better support of \"implicit feedback\".  If anything about USB got\n  broken, this change has to be checked.\n\n  For HD-audio, the resume procedure was changed; instead of delaying\n  the resume of the hardware until the first use, now waking up\n  immediately at resume.  This is for buggy BIOS.\n\n  For ASoC, dynamic PCM support and the improved support for digital\n  links between off-SoC devices are major framework changes.\n\n  Some highlights are below:\n\n  * HD-audio\n   - Avoid accesses of invalid pin-control bits that may stall the codec\n   - V-ref setup cleanups\n   - Fix the races in power-saving code\n   - Fix the races in codec cache hashes and connection lists\n   - Split some common codes for BIOS auto-parser to hda_auto_parser.c\n   - Changed the PM resume code to wake up immediately for buggy BIOS\n   - Creative SoundCore3D support\n   - Add Conexant CX20751/2/3/4 codec support\n\n  * ASoC\n   - Dynamic PCM support, allowing support for SoCs with internal\n     routing through components with tight sequencing and formatting\n     constraints within their internal paths or where there are multiple\n     components connected with CPU managed DMA controllers inside the\n     SoC.\n   - Greatly improved support for direct digital links between off-SoC\n     devices, providing a much simpler way of connecting things like\n     digital basebands to CODECs.\n   - Much more fine grained and robust locking, cleaning up some of the\n     confusion that crept in with multi-component.\n   - CPU support for nVidia Tegra 30 I2S and audio hub controllers and\n     ST-Ericsson MSP I2S controolers\n   - New CODEC drivers for Cirrus CS42L52, LAPIS Semiconductor ML26124,\n     Texas Instruments LM49453.\n   - Some regmap changes needed by the Tegra I2S driver.\n   - mc13783 audio support.\n\n  * Misc\n   - Rewrite with module_pci_driver()\n   - Xonar DGX support for snd-oxygen\n   - Improvement of packet handling in snd-firewire driver\n   - New USB-endpoint streaming logic\n   - Enhanced M-audio FTU quirks and relevant cleanups\n   - Increment the support of OSS devices to 256\n   - snd-aloop accuracy improvement\n\n  There are a few more pending changes for 3.5, but they will be sent\n  slightly later as partly depending on the changes of DRM.\"\n\nFix up conflicts in regmap (due to duplicate patches, with some further\nupdates then having already come in from the regmap tree).  Also some\nfairly trivial context conflicts in the imx and mcx soc drivers.\n\n* tag \u0027sound-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (280 commits)\n  ALSA: snd-usb: fix stream info output in /proc\n  ALSA: pcm - Add proper state checks to snd_pcm_drain()\n  ALSA: sh: Fix up namespace collision in sh_dac_audio.\n  ALSA: hda/realtek - Fix unused variable compile warning\n  ASoC: sh: fsi: enable chip specific data transfer mode\n  ASoC: sh: fsi: call fsi_hw_startup/shutdown from fsi_dai_trigger()\n  ASoC: sh: fsi: use same format for IN/OUT\n  ASoC: sh: fsi: add fsi_version() and removed meaningless version check\n  ASoC: sh: fsi: use register field macro name on IN/OUT_DMAC\n  ASoC: tegra: Add machine driver for WM8753 codec\n  ALSA: hda - Fix possible races of accesses to connection list array\n  ASoC: OMAP: HDMI: Introduce codec\n  ARM: mx31_3ds: Add sound support\n  ASoC: imx-mc13783 cleanup\n  mx31moboard: Add sound support\n  ASoC: mc13783 codec cleanups\n  ASoC: add imx-mc13783 sound support\n  ASoC: Add mc13783 codec\n  mfd: mc13xxx: add codec platform data\n  ASoC: don\u0027t flip master of DT-instantiated DAI links\n  ...\n"
    },
    {
      "commit": "e8650a08232e75274304b812ff04cfce9af9671c",
      "tree": "0609c942e6ca99016e788ff2ee2bbed1bb9215a4",
      "parents": [
        "3c2c4b73aa79e4a1b601710b59e092441175f4bb",
        "f70d4a95edc7da87f39cd8b603ba131df2c198ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 19:22:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 19:22:50 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial updates from Jiri Kosina:\n \"As usual, it\u0027s mostly typo fixes, redundant code elimination and some\n  documentation updates.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (57 commits)\n  edac, mips: don\u0027t change code that has been removed in edac/mips tree\n  xtensa: Change mail addresses of Hannes Weiner and Oskar Schirmer\n  lib: Change mail address of Oskar Schirmer\n  net: Change mail address of Oskar Schirmer\n  arm/m68k: Change mail address of Sebastian Hess\n  i2c: Change mail address of Oskar Schirmer\n  net: Fix tcp_build_and_update_options comment in struct tcp_sock\n  atomic64_32.h: fix parameter naming mismatch\n  Kconfig: replace \"--- help ---\" with \"---help---\"\n  c2port: fix bogus Kconfig \"default no\"\n  edac: Fix spelling errors.\n  qla1280: Remove redundant NULL check before release_firmware() call\n  remoteproc: remove redundant NULL check before release_firmware()\n  qla2xxx: Remove redundant NULL check before release_firmware() call.\n  aic94xx: Get rid of redundant NULL check before release_firmware() call\n  tehuti: delete redundant NULL check before release_firmware()\n  qlogic: get rid of a redundant test for NULL before call to release_firmware()\n  bna: remove redundant NULL test before release_firmware()\n  tg3: remove redundant NULL test before release_firmware() call\n  typhoon: get rid of redundant conditional before all to release_firmware()\n  ...\n"
    },
    {
      "commit": "08cefc7ab839cf3ece44b8033968a4732eac06d8",
      "tree": "7264efb33cb3d1249f7be3a7ea6dd12d30c313c1",
      "parents": [
        "1523299d5817773e344d135d4b1c485f269400bc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 15:41:49 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 15 14:59:27 2012 -0700"
      },
      "message": "userns: Convert ext4 to user kuid/kgid where appropriate\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "1523299d5817773e344d135d4b1c485f269400bc",
      "tree": "eef0768f5418facb1d37dbe99f346b9d77223f9f",
      "parents": [
        "b8a9f9e183229d163d8ace855cbbb63c209fba3c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 15:41:24 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 15 14:59:27 2012 -0700"
      },
      "message": "userns: Convert ext3 to use kuid/kgid where appropriate\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "fd2cbd4dfa3db477dd6226d387d3f1911d36a6a9",
      "tree": "b0ada946d14cdcf5db6da2d177be9590a3449e9a",
      "parents": [
        "1ce8486dcc00c1e095af8d155fa4451936b89013"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Apr 07 11:05:19 2012 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 15 23:34:37 2012 +0200"
      },
      "message": "jbd: Write journal superblock with WRITE_FUA after checkpointing\n\nIf journal superblock is written only in disk\u0027s caches and other transaction\nstarts reusing space of the transaction cleaned from the log, it can happen\nblocks of a new transaction reach the disk before journal superblock. When\npower failure happens in such case, subsequent journal replay would still try\nto replay the old transaction but some of it\u0027s blocks may be already\noverwritten by the new transaction. For this reason we must use WRITE_FUA when\nupdating log tail and we must first write new log tail to disk and update\nin-memory information only after that.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9754e39c7bc51328f145e933bfb0df47cd67b6e9",
      "tree": "d2fa043f74939d049d6934aea6ab7b1c272be8a5",
      "parents": [
        "f72cf5e223a28d3b3ea7dc9e40464fd534e359e8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Apr 07 12:33:03 2012 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 15 23:34:36 2012 +0200"
      },
      "message": "jbd: Split updating of journal superblock and marking journal empty\n\nThere are three case of updating journal superblock. In the first case, we want\nto mark journal as empty (setting s_sequence to 0), in the second case we want\nto update log tail, in the third case we want to update s_errno. Split these\ncases into separate functions. It makes the code slightly more straightforward\nand later patches will make the distinction even more important.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "21e52e15666323078b8517a4312712579176b56f",
      "tree": "6e9e75c6e1400e0426a7c7985a3f986fea5a7782",
      "parents": [
        "f511fc624642f0bb8cf65aaa28979737514d4746"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Apr 30 14:16:19 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed May 09 14:26:56 2012 -0700"
      },
      "message": "rcu: Make RCU_FAST_NO_HZ handle timer migration\n\nThe current RCU_FAST_NO_HZ assumes that timers do not migrate unless a\nCPU goes offline, in which case it assumes that the CPU will have to come\nout of dyntick-idle mode (cancelling the timer) in order to go offline.\nThis is important because when RCU_FAST_NO_HZ permits a CPU to enter\ndyntick-idle mode despite having RCU callbacks pending, it posts a timer\non that CPU to force a wakeup on that CPU.  This wakeup ensures that the\nCPU will eventually handle the end of the grace period, including invoking\nits RCU callbacks.\n\nHowever, Pascal Chapperon\u0027s test setup shows that the timer handler\nrcu_idle_gp_timer_func() really does get invoked in some cases.  This is\nproblematic because this can cause the CPU that entered dyntick-idle\nmode despite still having RCU callbacks pending to remain in\ndyntick-idle mode indefinitely, which means that its RCU callbacks might\nnever be invoked.  This situation can result in grace-period delays or\neven system hangs, which matches Pascal\u0027s observations of slow boot-up\nand shutdown (https://lkml.org/lkml/2012/4/5/142).  See also the bugzilla:\n\n\thttps://bugzilla.redhat.com/show_bug.cgi?id\u003d806548\n\nThis commit therefore causes the \"should never be invoked\" timer handler\nrcu_idle_gp_timer_func() to use smp_call_function_single() to wake up\nthe CPU for which the timer was intended, allowing that CPU to invoke\nits RCU callbacks in a timely manner.\n\nReported-by: Pascal Chapperon \u003cpascal.chapperon@wanadoo.fr\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "cc1676d917f32504dbadc858fa790bc524c9f0da",
      "tree": "d665d5ad0a844a6b1aff74deb4c8aa01c7596135",
      "parents": [
        "365b94ae67d2915d412b593d47449a6bffed9d37"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:47:56 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:38 2012 +0800"
      },
      "message": "writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n\nWhen writeback_single_inode() is called on inode which has I_SYNC already\nset while doing WB_SYNC_NONE, inode is moved to b_more_io list. However\nthis makes sense only if the caller is flusher thread. For other callers of\nwriteback_single_inode() it doesn\u0027t really make sense and may be even wrong\n- flusher thread may be doing WB_SYNC_ALL writeback in parallel.\n\nSo we move requeueing from writeback_single_inode() to writeback_sb_inodes().\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "6791e36c4a40e8930e08669e60077eea6770c429",
      "tree": "880d7255cc13a270d513e4fb6c4219f85d9536d0",
      "parents": [
        "30e3ce6dcbe3fc29c343b17e768b07d4a795de21"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Sun Apr 29 22:53:02 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:25:25 2012 +0200"
      },
      "message": "PM / Sleep: Add wakeup_source_activate and wakeup_source_deactivate tracepoints\n\nAdd tracepoints to wakeup_source_activate and wakeup_source_deactivate.\nUseful for checking that specific wakeup sources overlap as expected.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2fdbb31b662787f78bb78b3e4e18f1a072058ffc",
      "tree": "c8dbe70ab53102acf7f802eb50c5262c82cd45aa",
      "parents": [
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Feb 23 15:58:29 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Apr 24 20:55:19 2012 -0700"
      },
      "message": "rcu: Add RCU_FAST_NO_HZ tracing for idle exit\n\nTraces of rcu_prep_idle events can be confusing because\nrcu_cleanup_after_idle() does no tracing.  This commit therefore adds\nthis tracing.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c97f3bdd26080c2cb2a648c37b6dcb8eac2f91e7",
      "tree": "b35a0e006486995ce7d18028f9bdbd3f1d803c66",
      "parents": [
        "fde39a6b15612943673555aec7237f9e7228f27d"
      ],
      "author": {
        "name": "Liam Girdwood",
        "email": "lrg@ti.com",
        "time": "Mon Apr 23 10:31:15 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Apr 23 13:15:35 2012 +0100"
      },
      "message": "ASoC: dapm: Fix x86_64 build warning.\n\nFixes the following build warning on x86_64.\n\nIn file included from include/trace/ftrace.h:567:0,\n                 from include/trace/define_trace.h:86,\n                 from include/trace/events/asoc.h:410,\n                 from sound/soc/soc-core.c:45:\ninclude/trace/events/asoc.h: In function \u0027ftrace_raw_event_snd_soc_dapm_output_path\u0027:\ninclude/trace/events/asoc.h:246:1: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]\ninclude/trace/events/asoc.h: In function \u0027ftrace_raw_event_snd_soc_dapm_input_path\u0027:\ninclude/trace/events/asoc.h:275:1: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]\n\nSigned-off-by: Liam Girdwood \u003clrg@ti.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "ec2e3031b65f23f66840b5c89c4b83076831a435",
      "tree": "b85d6a5590fc0eaa3a5e7ca1a67e97b673629e65",
      "parents": [
        "0cbe4b36b075e80f3149a91ef640bc7930aa94c7"
      ],
      "author": {
        "name": "Liam Girdwood",
        "email": "lrg@ti.com",
        "time": "Wed Apr 18 11:41:11 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Apr 18 18:23:00 2012 +0100"
      },
      "message": "ASoC: dapm: Add API call to query valid DAPM paths\n\nIn preparation for ASoC DSP support.\n\nAdd a DAPM API call to determine whether a DAPM audio path is valid between\nsource and sink widgets. This also takes into account all kcontrol mux and mixer\nsettings in between the source and sink widgets to validate the audio path.\n\nThis will be used by the DSP core to determine the runtime DAI mappings\nbetween FE and BE DAIs in order to run PCM operations.\n\nSigned-off-by: Liam Girdwood \u003clrg@ti.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "2db938bee32e7469ca8ed9bfb3a05535f28c680d",
      "tree": "7d175a486c2e02270839ba18da61455603c2205e",
      "parents": [
        "923e9a1399b620d063cd88537c64561bc3d5f905"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Feb 21 17:25:37 2011 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Apr 11 11:12:44 2012 +0200"
      },
      "message": "jbd: Refine commit writeout logic\n\nCurrently we write out all journal buffers in WRITE_SYNC mode. This improves\nperformance for fsync heavy workloads but hinders performance when writes\nare mostly asynchronous, most noticably it slows down readers and users\ncomplain about slow desktop response etc.\n\nSo submit writes as asynchronous in the normal case and only submit writes as\nWRITE_SYNC if we detect someone is waiting for current transaction commit.\n\nI\u0027ve gathered some numbers to back this change. The first is the read latency\ntest. It measures time to read 1 MB after several seconds of sleeping in\npresence of streaming writes.\n\nTop 10 times (out of 90) in us:\nBefore\t\tAfter\n2131586\t\t697473\n1709932\t\t557487\n1564598\t\t535642\n1480462\t\t347573\n1478579\t\t323153\n1408496\t\t222181\n1388960\t\t181273\n1329565\t\t181070\n1252486\t\t172832\n1223265\t\t172278\n\nAverage:\n619377\t\t82180\n\nSo the improvement in both maximum and average latency is massive.\n\nI\u0027ve measured fsync throughput by:\nfs_mark -n 100 -t 1 -s 16384 -d /mnt/fsync/ -S 1 -L 4\n\nin presence of streaming reader. The numbers (fsyncs/s) are:\nBefore\t\tAfter\n9.9\t\t6.3\n6.8\t\t6.0\n6.3\t\t6.2\n5.8\t\t6.1\n\nSo fsync performance seems unharmed by this change.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b3aa1584e9f3449b0669ab2beb9b9bf99874e1d6",
      "tree": "4bcbf6af794bc00ff949b9b519f6dd5f205bb37c",
      "parents": [
        "e75d660672ddd11704b7f0fdb8ff21968587b266"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Apr 09 10:44:57 2012 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 10 10:49:47 2012 +0200"
      },
      "message": "workqueue: Fix workqueue_execute_end() comment\n\nworkqueue_execute_end() is called after the callback function,\nnot before.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "66cfb32772495068fbb5627b2dc88649ad66c3e5",
      "tree": "4ce3537afdbd9be92a7a3e6ef4e8e8519ee11543",
      "parents": [
        "6742259866d03d5bc19815441ba928e8378343dc",
        "7b8e6da46b921d30ac1553cac56d8fb74f0b431d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 04 10:04:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 04 10:04:42 2012 -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\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/x86/p4: Add format attributes\n  tracing, sched, vfs: Fix \u0027old_pid\u0027 usage in trace_sched_process_exec()\n"
    },
    {
      "commit": "6308191f6f55d3629c7dbe72dfb856ad9fa560fd",
      "tree": "d3f073b0e522fc7dbee52ca6c25d92f28059f2fd",
      "parents": [
        "8ebfdf2babcda5a3b06cc67523bca1f9aed46009"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 30 18:26:36 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Mar 31 11:53:22 2012 +0200"
      },
      "message": "tracing, sched, vfs: Fix \u0027old_pid\u0027 usage in trace_sched_process_exec()\n\n1. TRACE_EVENT(sched_process_exec) forgets to actually use the\n   old pid argument, it sets -\u003eold_pid \u003d p-\u003epid.\n\n2. search_binary_handler() uses the wrong pid number. tracepoint\n   needs the global pid_t from the root namespace, while old_pid\n   is the virtual pid number as it seen by the tracer/parent.\n\nWith this patch we have two pid_t\u0027s in search_binary_handler(),\nnot really nice. Perhaps we should switch to \"struct pid*\", but\nin this case it would be better to cleanup the current code\nfirst and move the \"depth \u003d\u003d 0\" code outside.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Smith \u003cdsmith@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120330162636.GA4857@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9613bebb223dea3179c265dc31e1bb41ae39f321",
      "tree": "39bf883573d23775a53be3172323c0237fef5630",
      "parents": [
        "40380f1c7841a5dcbf0b20f0b6da11969211ef77",
        "bc3f116fec194f1d7329b160c266fe16b9266a1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 12:44:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 12:44:29 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs fixes and features from Chris Mason:\n \"We\u0027ve merged in the error handling patches from SuSE.  These are\n  already shipping in the sles kernel, and they give btrfs the ability\n  to abort transactions and go readonly on errors.  It involves a lot of\n  churn as they clarify BUG_ONs, and remove the ones we now properly\n  deal with.\n\n  Josef reworked the way our metadata interacts with the page cache.\n  page-\u003eprivate now points to the btrfs extent_buffer object, which\n  makes everything faster.  He changed it so we write an whole extent\n  buffer at a time instead of allowing individual pages to go down,,\n  which will be important for the raid5/6 code (for the 3.5 merge\n  window ;)\n\n  Josef also made us more aggressive about dropping pages for metadata\n  blocks that were freed due to COW.  Overall, our metadata caching is\n  much faster now.\n\n  We\u0027ve integrated my patch for metadata bigger than the page size.\n  This allows metadata blocks up to 64KB in size.  In practice 16K and\n  32K seem to work best.  For workloads with lots of metadata, this cuts\n  down the size of the extent allocation tree dramatically and fragments\n  much less.\n\n  Scrub was updated to support the larger block sizes, which ended up\n  being a fairly large change (thanks Stefan Behrens).\n\n  We also have an assortment of fixes and updates, especially to the\n  balancing code (Ilya Dryomov), the back ref walker (Jan Schmidt) and\n  the defragging code (Liu Bo).\"\n\nFixed up trivial conflicts in fs/btrfs/scrub.c that were just due to\nremoval of the second argument to k[un]map_atomic() in commit\n7ac687d9e047.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (75 commits)\n  Btrfs: update the checks for mixed block groups with big metadata blocks\n  Btrfs: update to the right index of defragment\n  Btrfs: do not bother to defrag an extent if it is a big real extent\n  Btrfs: add a check to decide if we should defrag the range\n  Btrfs: fix recursive defragment with autodefrag option\n  Btrfs: fix the mismatch of page-\u003emapping\n  Btrfs: fix race between direct io and autodefrag\n  Btrfs: fix deadlock during allocating chunks\n  Btrfs: show useful info in space reservation tracepoint\n  Btrfs: don\u0027t use crc items bigger than 4KB\n  Btrfs: flush out and clean up any block device pages during mount\n  btrfs: disallow unequal data/metadata blocksize for mixed block groups\n  Btrfs: enhance superblock sanity checks\n  Btrfs: change scrub to support big blocks\n  Btrfs: minor cleanup in scrub\n  Btrfs: introduce common define for max number of mirrors\n  Btrfs: fix infinite loop in btrfs_shrink_device()\n  Btrfs: fix memory leak in resolver code\n  Btrfs: allow dup for data chunks in mixed mode\n  Btrfs: validate target profiles only if we are going to use them\n  ...\n"
    },
    {
      "commit": "69e1aaddd63104f37021d0b0f6abfd9623c9134c",
      "tree": "14ad49741b428d270b681694bb2df349465455b9",
      "parents": [
        "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
        "9d547c35799a4ddd235f1565cec2fff6c9263504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 updates for 3.4 from Ted Ts\u0027o:\n \"Ext4 commits for 3.3 merge window; mostly cleanups and bug fixes\n\n  The changes to export dirty_writeback_interval are from Artem\u0027s s_dirt\n  cleanup patch series.  The same is true of the change to remove the\n  s_dirt helper functions which never got used by anyone in-tree.  I\u0027ve\n  run these changes by Al Viro, and am carrying them so that Artem can\n  more easily fix up the rest of the file systems during the next merge\n  window.  (Originally we had hopped to remove the use of s_dirt from\n  ext4 during this merge window, but his patches had some bugs, so I\n  ultimately ended dropping them from the ext4 tree.)\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (66 commits)\n  vfs: remove unused superblock helpers\n  mm: export dirty_writeback_interval\n  ext4: remove useless s_dirt assignment\n  ext4: write superblock only once on unmount\n  ext4: do not mark superblock as dirty unnecessarily\n  ext4: correct ext4_punch_hole return codes\n  ext4: remove restrictive checks for EOFBLOCKS_FL\n  ext4: always set then trimmed blocks count into len\n  ext4: fix trimmed block count accunting\n  ext4: fix start and len arguments handling in ext4_trim_fs()\n  ext4: update s_free_{inodes,blocks}_count during online resize\n  ext4: change some printk() calls to use ext4_msg() instead\n  ext4: avoid output message interleaving in ext4_error_\u003cfoo\u003e()\n  ext4: remove trailing newlines from ext4_msg() and ext4_error() messages\n  ext4: add no_printk argument validation, fix fallout\n  ext4: remove redundant \"EXT4-fs: \" from uses of ext4_msg\n  ext4: give more helpful error message in ext4_ext_rm_leaf()\n  ext4: remove unused code from ext4_ext_map_blocks()\n  ext4: rewrite punch hole to use ext4_ext_remove_space()\n  jbd2: cleanup journal tail after transaction commit\n  ...\n"
    },
    {
      "commit": "250f6715a4112d6686670c5a62ceb9305da94616",
      "tree": "ee1c9b41ed1fed8174efb312421902f19c877e8c",
      "parents": [
        "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
        "313162d0b83836e2f57e51b9b8650fb4b9c396ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "message": "Merge tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/device.h\u003e avoidance patches from Paul Gortmaker:\n \"Nearly every subsystem has some kind of header with a proto like:\n\n\tvoid foo(struct device *dev);\n\n  and yet there is no reason for most of these guys to care about the\n  sub fields within the device struct.  This allows us to significantly\n  reduce the scope of headers including headers.  For this instance, a\n  reduction of about 40% is achieved by replacing the include with the\n  simple fact that the device is some kind of a struct.\n\n  Unlike the much larger module.h cleanup, this one is simply two\n  commits.  One to fix the implicit \u003clinux/device.h\u003e users, and then one\n  to delete the device.h includes from the linux/include/ dir wherever\n  possible.\"\n\n* tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  device.h: audit and cleanup users in main include dir\n  device.h: cleanup users outside of linux/include (C files)\n"
    },
    {
      "commit": "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
      "tree": "3448a14ae965802adb963762cadeb9989ce4caa2",
      "parents": [
        "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates for Linux 3.4 from Trond Myklebust:\n \"New features include:\n   - Add NFS client support for containers.\n\n     This should enable most of the necessary functionality, including\n     lockd support, and support for rpc.statd, NFSv4 idmapper and\n     RPCSEC_GSS upcalls into the correct network namespace from which\n     the mount system call was issued.\n\n   - NFSv4 idmapper scalability improvements\n\n     Base the idmapper cache on the keyring interface to allow\n     concurrent access to idmapper entries.  Start the process of\n     migrating users from the single-threaded daemon-based approach to\n     the multi-threaded request-key based approach.\n\n   - NFSv4.1 implementation id.\n\n     Allows the NFSv4.1 client and server to mutually identify each\n     other for logging and debugging purposes.\n\n   - Support the \u0027vers\u003d4.1\u0027 mount option for mounting NFSv4.1 instead of\n     having to use the more counterintuitive \u0027vers\u003d4,minorversion\u003d1\u0027.\n\n   - SUNRPC tracepoints.\n\n     Start the process of adding tracepoints in order to improve\n     debugging of the RPC layer.\n\n   - pNFS object layout support for autologin.\n\n  Important bugfixes include:\n\n   - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to\n     fail to wake up all tasks when applied to priority waitqueues.\n\n   - Ensure that we handle read delegations correctly, when we try to\n     truncate a file.\n\n   - A number of fixes for NFSv4 state manager loops (mostly to do with\n     delegation recovery).\"\n\n* tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)\n  NFS: fix sb-\u003es_id in nfs debug prints\n  xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n  xprtrdma: The transport should not bug-check when a dup reply is received\n  pnfs-obj: autologin: Add support for protocol autologin\n  NFS: Remove nfs4_setup_sequence from generic rename code\n  NFS: Remove nfs4_setup_sequence from generic unlink code\n  NFS: Remove nfs4_setup_sequence from generic read code\n  NFS: Remove nfs4_setup_sequence from generic write code\n  NFS: Fix more NFS debug related build warnings\n  SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n  nfs: non void functions must return a value\n  SUNRPC: Kill compiler warning when RPC_DEBUG is unset\n  SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n  NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n  NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n  NFS: ncommit count is being double decremented\n  SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n  Try using machine credentials for RENEW calls\n  NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n  NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n  ...\n"
    }
  ],
  "next": "9586c959bfc917695893bef0102433a7d0675691"
}
