)]}'
{
  "log": [
    {
      "commit": "bf7ec5bb6114b2f086e536e24486fdacd1c0d339",
      "tree": "8f42b40fed799332e94142a084fed158f56a4d1a",
      "parents": [
        "220d0b1dbf78c6417a658c96e571415552d3abac"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Dec 03 13:49:43 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 13:49:43 2009 +0100"
      },
      "message": "flusher: Fix PF_FROZEN race\n\nTo touch task-\u003eflags directly is racy. thaw_process() still has race\n(changing non_current-\u003eflags, but this is another issue) though, I think\nit\u0027s much better off.\n\nSo, use thaw_process() instead.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c62b17a58ab5e97534ff6487241addd5fcc606de",
      "tree": "577c41e145d934d5fc39b6bd0b623ff508a6159d",
      "parents": [
        "aa021baa3295fa6e3f367d80f8955dd5176656eb"
      ],
      "author": {
        "name": "Romit Dasgupta",
        "email": "romit@ti.com",
        "time": "Thu Nov 12 13:08:11 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 12 13:08:11 2009 +0100"
      },
      "message": "Thaw refrigerated bdi flusher threads before invoking kthread_stop on them\n\nUnfreezes the bdi flusher task when the said task needs to exit.\n\nSteps to reproduce this.\n1) Mount a file system from MMC/SD card.\n2) Unmount the file system. This creates a flusher task.\n3) Attempt suspend to RAM. System is unresponsive.\n\nThis is because the bdi flusher thread is already in the refrigerator and will\nremain so until it is thawed. The MMC driver suspend routine call stack will\nultimately issue a \u0027kthread_stop\u0027 on the bdi flusher thread and will block\nuntil the flusher thread is exited. Since the bdi flusher thread is in the\nrefrigerator it never cleans up until thawed.\n\nSigned-off-by: Romit Dasgupta \u003cromit@ti.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8c4db3355b0fcc9ad77431f15b955efa0645b5d0",
      "tree": "59182683545e9ca548d0e17e52d6326bb24b44cf",
      "parents": [
        "5f04eeb8a76521dec371ceb05e8263889a8af2bc"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 20:18:44 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 20:18:44 2009 +0100"
      },
      "message": "backing-dev: bdi sb prune should be in the unregister path, not destroy\n\nCommit 592b09a42fc3ae6737a0f3ecf4fee42ecd0296f8 was different from\nthe tested path, in that it moved the bdi super_block prune from\nunregister to destroy context. This doesn\u0027t fully fix the sync hang\nbug on unexpected device removal, as need to prune the bdi cache\npointer before killing flusher thread.\n\nTested-by: Artur Skawina \u003cart.08.09@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "592b09a42fc3ae6737a0f3ecf4fee42ecd0296f8",
      "tree": "d06ca7165c5dfc5224910993b36a50e54a896831",
      "parents": [
        "960cc0f4fef607baabc2232fbd7cce5368a9dcfd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 29 11:46:12 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 29 11:46:12 2009 +0100"
      },
      "message": "backing-dev: ensure that a removed bdi no longer has super_block referencing it\n\nWhen the bdi is being removed, we have to ensure that no super_blocks\ncurrently have that cached in sb-\u003es_bdi. Normally this is ensured by\nthe sb having a longer life span than the bdi, but if the device is\nsuddenly yanked, we have to kill this reference. sb-\u003es_bdi is pointed\nto freed memory at that point.\n\nThis fixes a problem with sync(1) hanging when a USB stick is pulled\nwithout cleanly umounting it first.\n\nReported-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "961515f613f26b7958c56c5c71061a8231e02be7",
      "tree": "136d6cc71141a66368bfd121f4ab84a47ad715cc",
      "parents": [
        "d25105e8911bff1dbd68e387f12901c5b1a15fe8"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Fri Oct 09 13:01:27 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Oct 09 13:01:27 2009 +0200"
      },
      "message": "writeback: kill space in debugfs item name\n\nThe space is not script friendly, kill it.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ce5f8e7795195edb6f84f74aa9d72e739df38486",
      "tree": "f8d5a3a18d70b49b2c9bbe47f62c908e8eda9c64",
      "parents": [
        "b6e51316daede0633e9274e1e30391cfa4747877"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 12:57:56 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:18:52 2009 +0200"
      },
      "message": "writeback: splice dirty inode entries to default bdi on bdi_destroy()\n\nWe cannot safely ensure that the inodes are all gone at this point\nin time, and we must not destroy this bdi with inodes having off it.\nSo just splice our entries to the default bdi since that one will\nalways persist.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cfc4ba5365449cb6b5c9f68d755a142f17da1e47",
      "tree": "08770de9bb0e658f2e65abd4d10187b3e9f6bb1b",
      "parents": [
        "f11fcae8401a3175f528e2f7917362645d570111"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 13:12:40 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:18:51 2009 +0200"
      },
      "message": "writeback: use RCU to protect bdi_list\n\nNow that bdi_writeback_all() no longer handles integrity writeback,\nit doesn\u0027t have to block anymore. This means that we can switch\nbdi_list reader side protection to RCU.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "500b067c5e6ceea49cf280a02597b1169320e08c",
      "tree": "5e2e9bfd66f825f845fdf395b6303b884769ff6d",
      "parents": [
        "d993831fa7ffeb89e994f046f93eeb09ec91df08"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 09 09:10:25 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: check for registered bdi in flusher add and inode dirty\n\nAlso a debugging aid. We want to catch dirty inodes being added to\nbacking devices that don\u0027t do writeback.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb",
      "tree": "9451d5cfb8d52f2aa9987d93e420ecb505d09ba5",
      "parents": [
        "d0bceac747b547c0b4769b91fec7d3c15600153f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 25 09:08:21 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add some debug inode list counters to bdi stats\n\nAdd some debug entries to be able to inspect the internal state of\nthe writeback details.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "03ba3782e8dcc5b0e1efe440d33084f066e38cae",
      "tree": "e5a6513b411de16a46199530ec98ef9b7f1efc50",
      "parents": [
        "66f3b8e2e103a0b93b945764d98e9ba46cb926dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 09 09:08:54 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: switch to per-bdi threads for flushing data\n\nThis gets rid of pdflush for bdi writeout and kupdated style cleaning.\npdflush writeout suffers from lack of locality and also requires more\nthreads to handle the same workload, since it has to work in a\nnon-blocking fashion against each queue. This also introduces lumpy\nbehaviour and potential request starvation, since pdflush can be starved\nfor queue access if others are accessing it. A sample ffsb workload that\ndoes random writes to files is about 8% faster here on a simple SATA drive\nduring the benchmark phase. File layout also seems a LOT more smooth in\nvmstat:\n\n r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa\n 0  1      0 608848   2652 375372    0    0     0 71024  604    24  1 10 48 42\n 0  1      0 549644   2712 433736    0    0     0 60692  505    27  1  8 48 44\n 1  0      0 476928   2784 505192    0    0     4 29540  553    24  0  9 53 37\n 0  1      0 457972   2808 524008    0    0     0 54876  331    16  0  4 38 58\n 0  1      0 366128   2928 614284    0    0     4 92168  710    58  0 13 53 34\n 0  1      0 295092   3000 684140    0    0     0 62924  572    23  0  9 53 37\n 0  1      0 236592   3064 741704    0    0     4 58256  523    17  0  8 48 44\n 0  1      0 165608   3132 811464    0    0     0 57460  560    21  0  8 54 38\n 0  1      0 102952   3200 873164    0    0     4 74748  540    29  1 10 48 41\n 0  1      0  48604   3252 926472    0    0     0 53248  469    29  0  7 47 45\n\nwhere vanilla tends to fluctuate a lot in the creation phase:\n\n r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa\n 1  1      0 678716   5792 303380    0    0     0 74064  565    50  1 11 52 36\n 1  0      0 662488   5864 319396    0    0     4   352  302   329  0  2 47 51\n 0  1      0 599312   5924 381468    0    0     0 78164  516    55  0  9 51 40\n 0  1      0 519952   6008 459516    0    0     4 78156  622    56  1 11 52 37\n 1  1      0 436640   6092 541632    0    0     0 82244  622    54  0 11 48 41\n 0  1      0 436640   6092 541660    0    0     0     8  152    39  0  0 51 49\n 0  1      0 332224   6200 644252    0    0     4 102800  728    46  1 13 49 36\n 1  0      0 274492   6260 701056    0    0     4 12328  459    49  0  7 50 43\n 0  1      0 211220   6324 763356    0    0     0 106940  515    37  1 10 51 39\n 1  0      0 160412   6376 813468    0    0     0  8224  415    43  0  6 49 45\n 1  1      0  85980   6452 886556    0    0     4 113516  575    39  1 11 54 34\n 0  2      0  85968   6452 886620    0    0     0  1640  158   211  0  0 46 54\n\nA 10 disk test with btrfs performs 26% faster with per-bdi flushing. A\nSSD based writeback test on XFS performs over 20% better as well, with\nthe throughput being very stable around 1GB/sec, where pdflush only\nmanages 750MB/sec and fluctuates wildly while doing so. Random buffered\nwrites to many files behave a lot better as well, as does random mmap\u0027ed\nwrites.\n\nA separate thread is added to sync the super blocks. In the long term,\nadding sync_supers_bdi() functionality could get rid of this thread again.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "66f3b8e2e103a0b93b945764d98e9ba46cb926dd",
      "tree": "442bf5664214f0a1448e4010b09868cc58fdd3d1",
      "parents": [
        "d8a8559cd7a9ccac98d5f6f13297a2ff68a43627"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 02 09:19:46 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: move dirty inodes from super_block to backing_dev_info\n\nThis is a first step at introducing per-bdi flusher threads. We should\nhave no change in behaviour, although sb_has_dirty_inodes() is now\nridiculously expensive, as there\u0027s no easy way to answer that question.\nNot a huge problem, since it\u0027ll be deleted in subsequent patches.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8aa7e847d834ed937a9ad37a0f2ad5b8584c1ab0",
      "tree": "76c8b4f1362a928d426f2201790ab5d128f57724",
      "parents": [
        "c2cc49a2f8a479dde96a599646d30b6cc9dbed78"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 09 14:52:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "Fix congestion_wait() sync/async vs read/write confusion\n\nCommit 1faa16d22877f4839bd433547d770c676d1d964c accidentally broke\nthe bdi congestion wait queue logic, causing us to wait on congestion\nfor WRITE (\u003d\u003d 1) when we really wanted BLK_RW_ASYNC (\u003d\u003d 0) instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1faa16d22877f4839bd433547d770c676d1d964c",
      "tree": "9a0d50be1ef0358c1f53d7107413100904e7d526",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 06 14:48:01 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 08:04:53 2009 -0700"
      },
      "message": "block: change the request allocation/congestion logic to be sync/async based\n\nThis makes sure that we never wait on async IO for sync requests, instead\nof doing the split on writes vs reads.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26160158d3d3df548f4ee046cc6147fe048cfa9c",
      "tree": "19affc0b08f00ac22e8881d6ec73061a8764cc5d",
      "parents": [
        "07e86f405addc6436eb969b8279bb14a6dcacce4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 17 09:35:06 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Mar 26 11:01:33 2009 +0100"
      },
      "message": "Move the default_backing_dev_info out of readahead.c and into backing-dev.c\n\nIt really makes no sense to have it in readahead.c, so move it where\nit belongs.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f94181da7192f4ed8ccb1b633ea4ce56954df130",
      "tree": "2e28785f2df447573a11fbdd611dc19eb3fcb794",
      "parents": [
        "932adbed6d99cc373fc3433d701b3a594fea872c",
        "fdbc0450df12cc9cb397f3497db4b0cad7c1a8ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:04 2009 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: fix rcutorture bug\n  rcu: eliminate synchronize_rcu_xxx macro\n  rcu: make treercu safe for suspend and resume\n  rcu: fix rcutree grace-period-latency bug on small systems\n  futex: catch certain assymetric (get|put)_futex_key calls\n  futex: make futex_(get|put)_key() calls symmetric\n  locking, percpu counters: introduce separate lock classes\n  swiotlb: clean up EXPORT_SYMBOL usage\n  swiotlb: remove unnecessary declaration\n  swiotlb: replace architecture-specific swiotlb.h with linux/swiotlb.h\n  swiotlb: add support for systems with highmem\n  swiotlb: store phys address in io_tlb_orig_addr array\n  swiotlb: add hwdev to swiotlb_phys_to_bus() / swiotlb_sg_to_bus()\n"
    },
    {
      "commit": "364aeb2849789b51bf4b9af2ddd02fee7285c54e",
      "tree": "4a24ea43a2a76ae744571f3c7b5022aa1107599e",
      "parents": [
        "58a01a45721bf7bd3a41a86248c3cb02a6b0c501"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: change dirty limit type specifiers to unsigned long\n\nThe background dirty and dirty limits are better defined with type\nspecifiers of unsigned long since negative writeback thresholds are not\npossible.\n\nThese values, as returned by get_dirty_limits(), are normally compared\nwith ZVC values to determine whether writeback shall commence or be\nthrottled.  Such page counts cannot be negative, so declaring the page\nlimits as signed is unnecessary.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andrea Righi \u003crighi.andrea@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": "fdbc0450df12cc9cb397f3497db4b0cad7c1a8ff",
      "tree": "3d266bd156f140f06b22f27784a7487bba6d6da5",
      "parents": [
        "46483d10e5123d78cf9abf37577aa8e75f18b8a4",
        "90621c40cc4ab7b0a414311ce37e7cc7173403b6",
        "ea319518ba3de282c13ae1cf4bf2215c5e03e67e",
        "238c6d54830c624f34ac9cf123ac04aebfca5013"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 06 09:32:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 06 09:32:11 2009 +0100"
      },
      "message": "Merge branches \u0027core/futexes\u0027, \u0027core/locking\u0027, \u0027core/rcu\u0027 and \u0027linus\u0027 into core/urgent\n"
    },
    {
      "commit": "ea319518ba3de282c13ae1cf4bf2215c5e03e67e",
      "tree": "72eea2b8e5d8926e95ade18d610d59b13df5dae5",
      "parents": [
        "00ef9f7348dfd2fc223ec42aceb30836e86b367f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Dec 26 15:08:55 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 29 13:43:00 2008 +0100"
      },
      "message": "locking, percpu counters: introduce separate lock classes\n\nImpact: fix lockdep false positives\n\nClassify percpu_counter instances similar to regular lock objects --\nthat is, per instantiation site.\n\nThe networking code has increased its use of percpu_counters, which\nleads to false positives if they are treated as a single class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69fc208be5b7eb18d22d1eca185b201400fd5ffc",
      "tree": "2f3961f9f74ed8b136d7550291367fa80f4b54ea",
      "parents": [
        "437f2f91d6597c67662f847d9ed4c99cb3c440cd"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "mm/backing-dev.c: remove recently-added WARN_ON()\n\nOn second thoughts, this is just going to disturb people while telling us\nthings which we already knew.\n\nCc: Peter Korsgaard \u003cjacmet@sunsite.dk\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1d0b063d993527754f062c589b73f125024d216",
      "tree": "65abf0c262ea1c8cf3931ea328329c82a049d341",
      "parents": [
        "1b79cd04fab80be61dcd2732e2423aafde9a4c1c"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Dec 02 10:31:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:50:40 2008 -0800"
      },
      "message": "bdi: register sysfs bdi device only once per queue\n\nDevices which share the same queue, like floppies and mtd devices, get\nregistered multiple times in the bdi interface, but bdi accounts only the\nlast registered device of the devices sharing one queue.\n\nOn remove, all earlier registered devices leak, stay around in sysfs, and\ncause \"duplicate filename\" errors if the devices are re-created.\n\nThis prevents the creation of multiple bdi interfaces per queue, and the\nbdi device will carry the dev_t name of the block device which is the\nfirst one registered, of the pool of devices using the same queue.\n\n[akpm@linux-foundation.org: add a WARN_ON so we know which drivers are misbehaving]\nTested-by: Peter Korsgaard \u003cjacmet@sunsite.dk\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19051c5035d217e572672a2ca9db06c1cef50e9b",
      "tree": "9fef0047e070c977463a85d5cbd0f9479694d286",
      "parents": [
        "8882b39421bae317e3ee864edd845e994307ce16"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 15 13:44:08 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 20 13:31:53 2008 -0700"
      },
      "message": "mm: bdi: fix race in bdi_class device creation\n\nThere is a race from when a device is created with device_create() and\nthen the drvdata is set with a call to dev_set_drvdata() in which a\nsysfs file could be open, yet the drvdata will be NULL, causing all\nsorts of bad things to happen.\n\nThis patch fixes the problem by using the new function,\ndevice_create_vargs().\n\nMany thanks to Arthur Jones \u003cajones@riverbed.com\u003e for reporting the bug,\nand testing patches out.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Arthur Jones \u003cajones@riverbed.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "76f1418b485da2707531178e517bbb5cf06b3c76",
      "tree": "138a012d965ebc284163f42e0ff5786c6de1cda5",
      "parents": [
        "a42dde04152750426cc620fd277e80fffae2f65a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: move statistics to debugfs\n\nMove BDI statistics to debugfs:\n\n   /sys/kernel/debug/bdi/\u003cbdi\u003e/stats\n\nUse postcore_initcall() to initialize the sysfs class and debugfs,\nbecause debugfs is initialized in core_initcall().\n\nUpdate descriptions in ABI documentation.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a42dde04152750426cc620fd277e80fffae2f65a",
      "tree": "98cdf246280c59e0bf044ae6d2c229fc27b73203",
      "parents": [
        "189d3c4a94ef19fca2a71a6a336e9fda900e25e7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 30 00:54:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: allow setting a maximum for the bdi dirty limit\n\nAdd \"max_ratio\" to /sys/class/bdi.  This indicates the maximum percentage of\nthe global dirty threshold allocated to this bdi.\n\n[mszeredi@suse.cz]\n\n - fix parsing in max_ratio_store().\n - export bdi_set_max_ratio() to modules\n - limit bdi_dirty with bdi-\u003emax_ratio\n - document new sysfs attribute\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "189d3c4a94ef19fca2a71a6a336e9fda900e25e7",
      "tree": "75c0de871fe9922885a2fa073f15806d829342fa",
      "parents": [
        "b6f2fcbcfca9db2bd7aa24940224fcd3bbdbb8aa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 30 00:54:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: allow setting a minimum for the bdi dirty limit\n\nUnder normal circumstances each device is given a part of the total write-back\ncache that relates to its current avg writeout speed in relation to the other\ndevices.\n\nmin_ratio - allows one to assign a minimum portion of the write-back cache to\na particular device.  This is useful in situations where you might want to\nprovide a minimum QoS.  (One request for this feature came from flash based\nstorage people who wanted to avoid writing out at all costs - they of course\nneeded some pdflush hacks as well)\n\nmax_ratio - allows one to assign a maximum portion of the dirty limit to a\nparticular device.  This is useful in situations where you want to avoid one\ndevice taking all or most of the write-back cache.  Eg.  an NFS mount that is\nprone to get stuck, or a FUSE mount which you don\u0027t trust to play fair.\n\nAdd \"min_ratio\" to /sys/class/bdi.  This indicates the minimum percentage of\nthe global dirty threshold allocated to this bdi.\n\n[mszeredi@suse.cz]\n\n - fix parsing in min_ratio_store()\n - document new sysfs attribute\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf0ca9fe5dd9e3693d935757a7b2fc50fc576554",
      "tree": "c795c5271eda9fc67579fa3176c646b892dfdb41",
      "parents": [
        "caafa4324335aeb11bc233d5f87aca8cce30beba"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 30 00:54:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:49 2008 -0700"
      },
      "message": "mm: bdi: export BDI attributes in sysfs\n\nProvide a place in sysfs (/sys/class/bdi) for the backing_dev_info object.\nThis allows us to see and set the various BDI specific variables.\n\nIn particular this properly exposes the read-ahead window for all relevant\nusers and /sys/block/\u003cblock\u003e/queue/read_ahead_kb should be deprecated.\n\nWith patient help from Kay Sievers and Greg KH\n\n[mszeredi@suse.cz]\n\n - split off NFS and FUSE changes into separate patches\n - document new sysfs attributes under Documentation/ABI\n - do bdi_class_init as a core_initcall, otherwise the \"default\" BDI\n   won\u0027t be initialized\n - remove bdi_init_fmt macro, it\u0027s not used very much\n\n[akpm@linux-foundation.org: fix ia64 warning]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b01a0b1613beeb01e12c78feb69e98f0da0a69a",
      "tree": "d92ae6d43c8f3b18c8ae785dc322ad9e2e3fae36",
      "parents": [
        "0c664f974269bb4c3d38ba900c91a9a5d4cee5b1"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Dec 04 23:45:07 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Dec 05 09:21:18 2007 -0800"
      },
      "message": "mm/backing-dev.c: fix percpu_counter_destroy call bug in bdi_init\n\nthis call should use the array index j, not i.  But with this approach, just\none int i is enough, int j is not needed.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04fbfdc14e5f48463820d6b9807daa5e9c92c51f",
      "tree": "c62905212c8c6373b2258c7f528398d3c831b075",
      "parents": [
        "145ca25eb2fbd20d4faf1bad4628c7650332058f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 23:25:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "mm: per device dirty threshold\n\nScale writeback cache per backing device, proportional to its writeout speed.\n\nBy decoupling the BDI dirty thresholds a number of problems we currently have\nwill go away, namely:\n\n - mutual interference starvation (for any number of BDIs);\n - deadlocks with stacked BDIs (loop, FUSE and local NFS mounts).\n\nIt might be that all dirty pages are for a single BDI while other BDIs are\nidling. By giving each BDI a \u0027fair\u0027 share of the dirty limit, each one can have\ndirty pages outstanding and make progress.\n\nA global threshold also creates a deadlock for stacked BDIs; when A writes to\nB, and A generates enough dirty pages to get throttled, B will never start\nwriteback until the dirty pages go away. Again, by giving each BDI its own\n\u0027independent\u0027 dirty limit, this problem is avoided.\n\nSo the problem is to determine how to distribute the total dirty limit across\nthe BDIs fairly and efficiently. A DBI that has a large dirty limit but does\nnot have any dirty pages outstanding is a waste.\n\nWhat is done is to keep a floating proportion between the DBIs based on\nwriteback completions. This way faster/more active devices get a larger share\nthan slower/idle devices.\n\n[akpm@linux-foundation.org: fix warnings]\n[hugh@veritas.com: Fix occasional hang when a task couldn\u0027t get out of balance_dirty_pages]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2e8fb6efa209c82203c79b491b5bc952d44aa57",
      "tree": "e4c82e3f2c70a188ced7126435bf153f5f6c4a1c",
      "parents": [
        "e0bf68ddec4f4f90e5871404be4f1854c17f3120"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 23:25:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "mm: scalable bdi statistics counters\n\nProvide scalable per backing_dev_info statistics counters.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4dc4beed23827e155d7cbc2a1ffa3949eddd194",
      "tree": "b7f115c159fe26b90b7e5b7d5dcf2f9318b69bf1",
      "parents": [
        "1f7d6668c29b1dfa307a44844f9bb38356fc989b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 23:25:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:44 2007 -0700"
      },
      "message": "nfs: remove congestion_end()\n\nThese patches aim to improve balance_dirty_pages() and directly address three\nissues:\n  1) inter device starvation\n  2) stacked device deadlocks\n  3) inter process starvation\n\n1 and 2 are a direct result from removing the global dirty limit and using\nper device dirty limits. By giving each device its own dirty limit is will\nno longer starve another device, and the cyclic dependancy on the dirty limit\nis broken.\n\nIn order to efficiently distribute the dirty limit across the independant\ndevices a floating proportion is used, this will allocate a share of the total\nlimit proportional to the device\u0027s recent activity.\n\n3 is done by also scaling the dirty limit proportional to the current task\u0027s\nrecent dirty rate.\n\nThis patch:\n\nnfs: remove congestion_end().  It\u0027s redundant, clear_bdi_congested() already\nwakes the waiters.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f8a68ee486e1c81eaead3c521822bf86142d380",
      "tree": "8435b491a52ea22918f621892970536957352fa0",
      "parents": [
        "1492192b4a0bb84dd9b792cc0bd30583220a28a7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Jul 15 23:41:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:52 2007 -0700"
      },
      "message": "remove mm/backing-dev.c:congestion_wait_interruptible()\n\ncongestion_wait_interruptible() is no longer used.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89a09141df6ac1c3821fbe44ca8384eb37692965",
      "tree": "ccb21055fca86ac2657b3262ac37eb3e5c44bea0",
      "parents": [
        "b74a2f0913694556a027795d2954d30523fac4c5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Mar 16 13:38:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:05 2007 -0700"
      },
      "message": "[PATCH] nfs: fix congestion control\n\nThe current NFS client congestion logic is severly broken, it marks the\nbacking device congested during each nfs_writepages() call but doesn\u0027t\nmirror this in nfs_writepage() which makes for deadlocks.  Also it\nimplements its own waitqueue.\n\nReplace this by a more regular congestion implementation that puts a cap on\nthe number of active writeback pages and uses the bdi congestion waitqueue.\n\nAlso always use an interruptible wait since it makes sense to be able to\nSIGKILL the process even for mounts without \u0027intr\u0027.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fcfab16c5b86eaa3db3a9a31adba550c5b67141",
      "tree": "bd348fa081b8fbec2c79fbf8f173a306d70b2b2c",
      "parents": [
        "79e2de4bc53d7ca2a8eedee49e4a92479b4b530e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Oct 19 23:28:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:35 2006 -0700"
      },
      "message": "[PATCH] separate bdi congestion functions from queue congestion functions\n\nSeparate out the concept of \"queue congestion\" from \"backing-dev congestion\".\nCongestion is a backing-dev concept, not a queue concept.\n\nThe blk_* congestion functions are retained, as wrappers around the core\nbacking-dev congestion functions.\n\nThis proper layering is needed so that NFS can cleanly use the congestion\nfunctions, and so that CONFIG_BLOCK\u003dn actually links.\n\nCc: \"Thomas Maier\" \u003cbalagi@justmail.de\u003e\nCc: \"Jens Axboe\" \u003cjens.axboe@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
