)]}'
{
  "commit": "c42843f2f0bbc9d716a32caf667d18fc2bf3bc4c",
  "tree": "835b801d215dd70cbb5a282232ce23fa3167a880",
  "parents": [
    "7762741e3af69720186802e945229b6a5afd5c49"
  ],
  "author": {
    "name": "Wu Fengguang",
    "email": "fengguang.wu@intel.com",
    "time": "Wed Mar 02 15:54:09 2011 -0600"
  },
  "committer": {
    "name": "Wu Fengguang",
    "email": "fengguang.wu@intel.com",
    "time": "Sat Jul 09 22:09:02 2011 -0700"
  },
  "message": "writeback: introduce smoothed global dirty limit\n\nThe start of a heavy weight application (ie. KVM) may instantly knock\ndown determine_dirtyable_memory() if the swap is not enabled or full.\nglobal_dirty_limits() and bdi_dirty_limit() will in turn get global/bdi\ndirty thresholds that are _much_ lower than the global/bdi dirty pages.\n\nbalance_dirty_pages() will then heavily throttle all dirtiers including\nthe light ones, until the dirty pages drop below the new dirty thresholds.\nDuring this _deep_ dirty-exceeded state, the system may appear rather\nunresponsive to the users.\n\nAbout \"deep\" dirty-exceeded: task_dirty_limit() assigns 1/8 lower dirty\nthreshold to heavy dirtiers than light ones, and the dirty pages will\nbe throttled around the heavy dirtiers\u0027 dirty threshold and reasonably\nbelow the light dirtiers\u0027 dirty threshold. In this state, only the heavy\ndirtiers will be throttled and the dirty pages are carefully controlled\nto not exceed the light dirtiers\u0027 dirty threshold. However if the\nthreshold itself suddenly drops below the number of dirty pages, the\nlight dirtiers will get heavily throttled.\n\nSo introduce global_dirty_limit for tracking the global dirty threshold\nwith policies\n\n- follow downwards slowly\n- follow up in one shot\n\nglobal_dirty_limit can effectively mask out the impact of sudden drop of\ndirtyable memory. It will be used in the next patch for two new type of\ndirty limits. Note that the new dirty limits are not going to avoid\nthrottling the light dirtiers, but could limit their sleep time to 200ms.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5826992910e9b91907aad092c6c4e6df416368ae",
      "old_mode": 33188,
      "old_path": "fs/fs-writeback.c",
      "new_id": "227ff12257f360af7fec8f83f043ff9c650286fa",
      "new_mode": 33188,
      "new_path": "fs/fs-writeback.c"
    },
    {
      "type": "modify",
      "old_id": "66862f2d90c82b72dae5f90d344dd1d2728f16d9",
      "old_mode": 33188,
      "old_path": "include/linux/writeback.h",
      "new_id": "e9d371b6053b9061a2b3c4bfe4b74e5e5df90e74",
      "new_mode": 33188,
      "new_path": "include/linux/writeback.h"
    },
    {
      "type": "modify",
      "old_id": "5f3e1b46ace5820b24261f261ee8a6cd5e6155cc",
      "old_mode": 33188,
      "old_path": "mm/page-writeback.c",
      "new_id": "da959952b9f52dedee9dd7af28ed31d9b08ddda8",
      "new_mode": 33188,
      "new_path": "mm/page-writeback.c"
    }
  ]
}
