{"shas":[["2965852059e40aef1df07130d18d8a26d4b51753","18a61e072c740da2592b9b1334ff23e0586484a8@couttstech.com","Add SLQB slab allocator","Steven Coutts"],["499d484087ea4f456d2e2f439f2c26f8f4c1b1e8","18a61e072c740da2592b9b1334ff23e0586484a8@couttstech.com","sched: rename struct task in_iowait field to sched_in_iowait\n\nRename task struct in_iowait to sched_in_iowait, since it's only scheduler-specific.\n\nExtracted from a patch originally from Peter Zijlstra.\nSigned-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>\nCC: Peter Zijlstra <a.p.zijlstra@chello.nl>\nSigned-off-by: Brandon Berhent <bbedward@gmail.com>","Steven Coutts"],["fcb92be3ac61938655e1774e6419c7092222186f","ba2c03e7e1018b274dd4cc632ea2a86caa45d3c7@zen-kernel.org","fix slab.h","Dominic Duklas"],["1169daa4a0c9871088e0eddfae5666bf14425c9c","e7599f058eb333bbde8ca2e2d0738155eec20f63@liquorix.net","Revert \"sched: rename struct task in_iowait field to sched_in_iowait\"\n\nThis is completely random and belongs in zen-tune, if it even matters","Steven Barrett"],["45fb99e4fe3554dc7cd1e4a8f6f295cfb41f60fc","e7599f058eb333bbde8ca2e2d0738155eec20f63@liquorix.net","slqb: add missing || condition to new ifdef statement","Steven Barrett"],["9a205423dcb8805b23333889b290a9263284dcc7","12330474acf818c36105a159b1ab0efedce0665c@gmail.com","deactivate invalidated pages\n\nRecently, there are reported problem about thrashing.\n(http://marc.info/?l=rsync&m=128885034930933&w=2)\nIt happens by backup workloads(ex, nightly rsync).\nThat's because the workload makes just use-once pages\nand touches pages twice. It promotes the page into\nactive list so that it results in working set page eviction.\n\nSome app developer want to support POSIX_FADV_NOREUSE.\nBut other OSes don't support it, either.\n(http://marc.info/?l=linux-mm&m=128928979512086&w=2)\n\nBy other approach, app developers use POSIX_FADV_DONTNEED.\nBut it has a problem. If kernel meets page is writing\nduring invalidate_mapping_pages, it can't work.\nIt makes for application programmer to use it since they always\nhave to sync data before calling fadivse(..POSIX_FADV_DONTNEED) to\nmake sure the pages could be discardable. At last, they can't use\ndeferred write of kernel so that they could see performance loss.\n(http://insights.oetiker.ch/linux/fadvise.html)\n\nIn fact, invalidation is very big hint to reclaimer.\nIt means we don't use the page any more. So let's move\nthe writing page into inactive list's head if we can't truncate\nit right now.\n\nWhy I move page to head of lru on this patch, Dirty/Writeback page\nwould be flushed sooner or later. It can prevent writeout of pageout\nwhich is less effective than flusher's writeout.\n\nOriginally, I reused lru_demote of Peter with some change so added\nhis Signed-off-by.\n\nReported-by: Ben Gamari <bgamari.foss@gmail.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nAcked-by: Rik van Riel <riel@redhat.com>\nAcked-by: Mel Gorman <mel@csn.ul.ie>\nReviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Wu Fengguang <fengguang.wu@intel.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: Nick Piggin <npiggin@kernel.dk>\nSigned-off-by: Minchan Kim <minchan.kim@gmail.com>","Minchan Kim"],["429460b79dcc8a2157837c1a9f9e26c53f5c9657","12330474acf818c36105a159b1ab0efedce0665c@gmail.com","memcg: move memcg reclaimable page into tail of inactive list\n\nThe rotate_reclaimable_page function moves just written out\npages, which the VM wanted to reclaim, to the end of the\ninactive list.  That way the VM will find those pages first\nnext time it needs to free memory.\nThis patch apply the rule in memcg.\nIt can help to prevent unnecessary working page eviction of memcg.\n\nAcked-by: Balbir Singh <balbir@linux.vnet.ibm.com>\nAcked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nReviewed-by: Rik van Riel <riel@redhat.com>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nSigned-off-by: Minchan Kim <minchan.kim@gmail.com>","Minchan Kim"],["0b626831fbf91635c432234c25f8d20866641b14","12330474acf818c36105a159b1ab0efedce0665c@gmail.com","Reclaim invalidated page ASAP\n\ninvalidate_mapping_pages is very big hint to reclaimer.\nIt means user doesn't want to use the page any more.\nSo in order to prevent working set page eviction, this patch\nmove the page into tail of inactive list by PG_reclaim.\n\nPlease, remember that pages in inactive list are working set\nas well as active list. If we don't move pages into inactive list's\ntail, pages near by tail of inactive list can be evicted although\nwe have a big clue about useless pages. It's totally bad.\n\nNow PG_readahead/PG_reclaim is shared.\nfe3cba17 added ClearPageReclaim into clear_page_dirty_for_io for\npreventing fast reclaiming readahead marker page.\n\nIn this series, PG_reclaim is used by invalidated page, too.\nIf VM find the page is invalidated and it's dirty, it sets PG_reclaim\nto reclaim asap. Then, when the dirty page will be writeback,\nclear_page_dirty_for_io will clear PG_reclaim unconditionally.\nIt disturbs this serie's goal.\n\nI think it's okay to clear PG_readahead when the page is dirty, not\nwriteback time. So this patch moves ClearPageReadahead.\nIn v4, ClearPageReadahead in set_page_dirty has a problem which is reported\nby Steven Barrett. It's due to compound page. Some driver(ex, audio) calls\nset_page_dirty with compound page which isn't on LRU. but my patch does\nClearPageRelcaim on compound page. In non-CONFIG_PAGEFLAGS_EXTENDED, it breaks\nPageTail flag.\n\nI think it doesn't affect THP and pass my test with THP enabling\nbut Cced Andrea for double check.\n\nReported-by: Steven Barrett <damentz@liquorix.net>\nReviewed-by: Johannes Weiner <hannes@cmpxchg.org>\nAcked-by: Rik van Riel <riel@redhat.com>\nAcked-by: Mel Gorman <mel@csn.ul.ie>\nCc: Wu Fengguang <fengguang.wu@intel.com>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Nick Piggin <npiggin@kernel.dk>\nCc: Andrea Arcangeli <aarcange@redhat.com>\nSigned-off-by: Minchan Kim <minchan.kim@gmail.com>","Minchan Kim"],["44be71dbc933b719a91d7369df1a23daf4972e3c","d4d774cda8be684d59f72959e20afdd63aff83f9@gmail.com","Get it to build\n\nmm/memcontrol.c: In function ‘mem_cgroup_rotate_reclaimable_page’:\nmm/memcontrol.c:855:2: warning: passing argument 1 of ‘page_cgroup_zoneinfo’ from incompatible pointer type\nmm/memcontrol.c:375:1: note: expected ‘struct page_cgroup *’ but argument is of type ‘struct mem_cgroup *’\nmm/memcontrol.c:855:2: error: too many arguments to function ‘page_cgroup_zoneinfo’\nmm/memcontrol.c:375:1: note: declared here","Jan Steffens"],["b3c2a8cd45420c61124326fe80e51ec351b0bb37","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","writeback: add bdi_dirty_limit() kernel-doc\n\nClarify the bdi_dirty_limit() comment.\n\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["0b811cd5f2449a9d1bc090d58dae619a507d881f","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","writeback: avoid duplicate balance_dirty_pages_ratelimited() calls\n\nWhen dd in 512bytes, balance_dirty_pages_ratelimited() could be called 8\ntimes for the same page, but obviously the page is only dirtied once.\n\nFix it with a (slightly racy) PageDirty() test.\n\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["33cdc8d12e8b9b64fc833388d4609b8048514040","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","writeback: skip balance_dirty_pages() for in-memory fs\n\nThis avoids unnecessary checks and dirty throttling on tmpfs/ramfs.\n\nIt can also prevent\n\n[  388.126563] BUG: unable to handle kernel NULL pointer dereference at 0000000000000050\n\nin the balance_dirty_pages tracepoint, which will call\n\n\tdev_name(mapping->backing_dev_info->dev)\n\nbut shmem_backing_dev_info.dev is NULL.\n\nSummary notes about the tmpfs/ramfs behavior changes:\n\nAs for 2.6.36 and older kernels, the tmpfs writes will sleep inside\nbalance_dirty_pages() as long as we are over the (dirty+background)/2\nglobal throttle threshold.  This is because both the dirty pages and\nthreshold will be 0 for tmpfs/ramfs. Hence this test will always\nevaluate to TRUE:\n\n                dirty_exceeded =\n                        (bdi_nr_reclaimable + bdi_nr_writeback >= bdi_thresh)\n                        || (nr_reclaimable + nr_writeback >= dirty_thresh);\n\nFor 2.6.37, someone complained that the current logic does not allow the\nusers to set vm.dirty_ratio=0.  So commit 4cbec4c8b9 changed the test to\n\n                dirty_exceeded =\n                        (bdi_nr_reclaimable + bdi_nr_writeback > bdi_thresh)\n                        || (nr_reclaimable + nr_writeback > dirty_thresh);\n\nSo 2.6.37 will behave differently for tmpfs/ramfs: it will never get\nthrottled unless the global dirty threshold is exceeded (which is very\nunlikely to happen; once happen, will block many tasks).\n\nI'd say that the 2.6.36 behavior is very bad for tmpfs/ramfs. It means\nfor a busy writing server, tmpfs write()s may get livelocked! The\n\"inadvertent\" throttling can hardly bring help to any workload because\nof its \"either no throttling, or get throttled to death\" property.\n\nSo based on 2.6.37, this patch won't bring more noticeable changes.\n\nCC: Hugh Dickins <hughd@google.com>\nCC: Peter Zijlstra <a.p.zijlstra@chello.nl>\nAcked-by: Rik van Riel <riel@redhat.com>\nReviewed-by: Minchan Kim <minchan.kim@gmail.com>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["ee4bfc4d4353172a3a19843867cff66a5a50f8a8","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","writeback: reduce per-bdi dirty threshold ramp up time\n\nReduce the dampening for the control system, yielding faster\nconvergence. The change is a bit conservative, as smaller values may\nlead to noticeable bdi threshold fluctuates in low memory JBOD setup.\n\nCC: Peter Zijlstra <a.p.zijlstra@chello.nl>\nCC: Richard Kennedy <richard@rsk.demon.co.uk>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["1984bd8f1559a1a76529f4fe94a081a105908e14","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","btrfs: avoid duplicate balance_dirty_pages_ratelimited() calls\n\nWhen doing 1KB sequential writes to the same page,\nbalance_dirty_pages_ratelimited() should be called once instead of 4\ntimes. Failing to do so will make all tasks throttled much too heavy.\n\nCC: Chris Mason <chris.mason@oracle.com>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["a338fd302c42b21781a479ae6e760ce4f9fe41a9","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","btrfs: lower the dirty balance poll interval\n\nCall balance_dirty_pages_ratelimit_nr() on every 32 pages dirtied.\n\nTests show that original larger intervals can easily make the bdi\ndirty limit exceeded on 100 concurrent dd.\n\nCC: Chris Mason <chris.mason@oracle.com>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["e94e79b68a198720727ce4edd3997903d53aa279","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","btrfs: wait on too many nr_async_bios\n\nTests show that btrfs is repeatedly moving _all_ PG_dirty pages into\nPG_writeback state. It's desirable to have some limit on the number of\nwriteback pages.\n\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["a67a1af6f7570dc40a23d976ba2874f692a7124f","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","nfs: dirty livelock prevention is now done in VFS\n\nThis reverts commit 72cb77f4a5 (\"NFS: Throttle page dirtying while we're\nflushing to disk\"). The two problems it tries to address\n\n- sync live lock\n- out of order writes\n\nare now all addressed in the VFS\n\n- PAGECACHE_TAG_TOWRITE prevents sync live lock\n- IO-less balance_dirty_pages() avoids concurrent writes\n\nCC: Trond Myklebust <Trond.Myklebust@netapp.com>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["032cd747ff057dd97418168ce3e9faa876d5bbf0","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","nfs: writeback pages wait queue\n\nThe generic writeback routines are departing from congestion_wait()\nin preference of get_request_wait(), aka. waiting on the block queues.\n\nIntroduce the missing writeback wait queue for NFS, otherwise its\nwriteback pages will grow out of control, exhausting all PG_dirty pages.\n\nCC: Jens Axboe <axboe@kernel.dk>\nCC: Chris Mason <chris.mason@oracle.com>\nCC: Peter Zijlstra <a.p.zijlstra@chello.nl>\nCC: Trond Myklebust <Trond.Myklebust@netapp.com>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["8bf6de588d915d60c5c513e965eacea13a9f82f3","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","nfs: limit the commit size to reduce fluctuations\n\nLimit the commit size to 1/8 dirty control scope, so that the arrival of\none commit will not knock the overall dirty pages off the scope.\n\nCC: Trond Myklebust <Trond.Myklebust@netapp.com>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"],["75a59d63db3f07638f864f57bd689323822c0e5e","24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","nfs: limit the commit range\n\nHopefully this will help limit the number of unstable pages to be synced\nat one time, more timely return of the commit request and reduce dirty\nthrottle fluctuations.\n\nCC: Trond Myklebust <Trond.Myklebust@netapp.com>\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>","Wu Fengguang"]],"repo":"intersectRaven/ir-kernel","actor":"intersectRaven","ref":"refs/heads/ir-kernel-2.6.38","size":71,"head":"7c9bb9aa64a9fa67eef53f799fb75fe8700b60f2","actor_gravatar":"dcef1f2a704cdd34b9779657b913cd69","push_id":31377468}