• Andrea Arcangeli's avatar
    mm: compaction: minimise the time IRQs are disabled while isolating pages for migration · b2eef8c0
    Andrea Arcangeli authored
    compaction_alloc() isolates pages for migration in isolate_migratepages.
    While it's scanning, IRQs are disabled on the mistaken assumption the
    scanning should be short.  Tests show this to be true for the most part
    but contention times on the LRU lock can be increased.  Before this patch,
    the IRQ disabled times for a simple test looked like
    
      Total sampled time IRQs off (not real total time): 5493
      Event shrink_inactive_list..shrink_zone                  1596 us count 1
      Event shrink_inactive_list..shrink_zone                  1530 us count 1
      Event shrink_inactive_list..shrink_zone                   956 us count 1
      Event shrink_inactive_list..shrink_zone                   541 us count 1
      Event shrink_inactive_list..shrink_zone                   531 us count 1
      Event split_huge_page..add_to_swap                        232 us count 1
      Event save_args..call_softirq                              36 us count 1
      Eve...
    b2eef8c0
compaction.c 19.1 KB