1. 29 4月, 2022 2 次提交
  2. 16 4月, 2022 1 次提交
  3. 23 3月, 2022 2 次提交
  4. 15 1月, 2022 1 次提交
  5. 07 11月, 2021 2 次提交
    • M
      mm/vmscan: centralise timeout values for reclaim_throttle · c3f4a9a2
      Mel Gorman 提交于
      Neil Brown raised concerns about callers of reclaim_throttle specifying
      a timeout value.  The original timeout values to congestion_wait() were
      probably pulled out of thin air or copy&pasted from somewhere else.
      This patch centralises the timeout values and selects a timeout based on
      the reason for reclaim throttling.  These figures are also pulled out of
      the same thin air but better values may be derived
      
      Running a workload that is throttling for inappropriate periods and
      tracing mm_vmscan_throttled can be used to pick a more appropriate
      value.  Excessive throttling would pick a lower timeout where as
      excessive CPU usage in reclaim context would select a larger timeout.
      Ideally a large value would always be used and the wakeups would occur
      before a timeout but that requires careful testing.
      
      Link: https://lkml.kernel.org/r/20211022144651.19914-7-mgorman@techsingularity.netSigned-off-by: NMel Gorman <mgorman@techsingularity.net>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Andreas Dilger <adilger.kernel@dilger.ca>
      Cc: "Darrick J . Wong" <djwong@kernel.org>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: NeilBrown <neilb@suse.de>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c3f4a9a2
    • M
      mm/vmscan: throttle reclaim and compaction when too may pages are isolated · d818fca1
      Mel Gorman 提交于
      Page reclaim throttles on congestion if too many parallel reclaim
      instances have isolated too many pages.  This makes no sense, excessive
      parallelisation has nothing to do with writeback or congestion.
      
      This patch creates an additional workqueue to sleep on when too many
      pages are isolated.  The throttled tasks are woken when the number of
      isolated pages is reduced or a timeout occurs.  There may be some false
      positive wakeups for GFP_NOIO/GFP_NOFS callers but the tasks will
      throttle again if necessary.
      
      [shy828301@gmail.com: Wake up from compaction context]
      [vbabka@suse.cz: Account number of throttled tasks only for writeback]
      
      Link: https://lkml.kernel.org/r/20211022144651.19914-3-mgorman@techsingularity.netSigned-off-by: NMel Gorman <mgorman@techsingularity.net>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Andreas Dilger <adilger.kernel@dilger.ca>
      Cc: "Darrick J . Wong" <djwong@kernel.org>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: NeilBrown <neilb@suse.de>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d818fca1
  6. 27 9月, 2021 2 次提交
  7. 09 9月, 2021 1 次提交
  8. 04 9月, 2021 3 次提交
  9. 01 7月, 2021 3 次提交
  10. 30 6月, 2021 1 次提交
  11. 18 6月, 2021 1 次提交
  12. 07 5月, 2021 1 次提交
  13. 06 5月, 2021 7 次提交
  14. 25 2月, 2021 7 次提交
  15. 06 2月, 2021 1 次提交
    • R
      mm, compaction: move high_pfn to the for loop scope · 74e21484
      Rokudo Yan 提交于
      In fast_isolate_freepages, high_pfn will be used if a prefered one (ie
      PFN >= low_fn) not found.
      
      But the high_pfn is not reset before searching an free area, so when it
      was used as freepage, it may from another free area searched before.  As
      a result move_freelist_head(freelist, freepage) will have unexpected
      behavior (eg corrupt the MOVABLE freelist)
      
        Unable to handle kernel paging request at virtual address dead000000000200
        Mem abort info:
          ESR = 0x96000044
          Exception class = DABT (current EL), IL = 32 bits
          SET = 0, FnV = 0
          EA = 0, S1PTW = 0
        Data abort info:
          ISV = 0, ISS = 0x00000044
          CM = 0, WnR = 1
        [dead000000000200] address between user and kernel address ranges
      
        -000|list_cut_before(inline)
        -000|move_freelist_head(inline)
        -000|fast_isolate_freepages(inline)
        -000|isolate_freepages(inline)
        -000|compaction_alloc(?, ?)
        -001|unmap_and_move(inline)
        -001|migrate_pages([NSD:0xFFFFFF80088CBBD0] from = 0xFFFFFF80088CBD88, [NSD:0xFFFFFF80088CBBC8] get_new_p
        -002|__read_once_size(inline)
        -002|static_key_count(inline)
        -002|static_key_false(inline)
        -002|trace_mm_compaction_migratepages(inline)
        -002|compact_zone(?, [NSD:0xFFFFFF80088CBCB0] capc = 0x0)
        -003|kcompactd_do_work(inline)
        -003|kcompactd([X19] p = 0xFFFFFF93227FBC40)
        -004|kthread([X20] _create = 0xFFFFFFE1AFB26380)
        -005|ret_from_fork(asm)
      
      The issue was reported on an smart phone product with 6GB ram and 3GB
      zram as swap device.
      
      This patch fixes the issue by reset high_pfn before searching each free
      area, which ensure freepage and freelist match when call
      move_freelist_head in fast_isolate_freepages().
      
      Link: http://lkml.kernel.org/r/20190118175136.31341-12-mgorman@techsingularity.net
      Link: https://lkml.kernel.org/r/20210112094720.1238444-1-wu-yan@tcl.com
      Fixes: 5a811889 ("mm, compaction: use free lists to quickly locate a migration target")
      Signed-off-by: NRokudo Yan <wu-yan@tcl.com>
      Acked-by: NMel Gorman <mgorman@techsingularity.net>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      74e21484
  16. 16 12月, 2020 5 次提交