Messages in this thread | | | Date | Mon, 1 Sep 2003 19:59:42 +0200 | From | Andrea Arcangeli <> | Subject | Re: Andrea VM changes |
| |
On Sat, Aug 30, 2003 at 04:11:49PM -0300, Marcelo Tosatti wrote: > > > On Sat, 30 Aug 2003, Marcelo Tosatti wrote: > > > > > > that's true for only one patch, the others are pretty orthogonal after > > > Andrew helped splitting them: > > > 05_vm_03_vm_tunables-4 > > > 05_vm_05_zone_accounting-2 > > > 05_vm_06_swap_out-3 > > > 05_vm_07_local_pages-4 > > > 05_vm_08_try_to_free_pages_nozone-4 > > > 05_vm_09_misc_junk-3 > > > 05_vm_10_read_write_tweaks-3 > > > 05_vm_13_activate_page_cleanup-1 > > > 05_vm_15_active_page_swapout-1 > > > 05_vm_16_active_free_zone_bhs-1 > > > 05_vm_17_rest-10 > > > 05_vm_18_buffer-page-uptodate-1 > > > 05_vm_20_cleanups-3 > > > 05_vm_21_rt-alloc-1 > > > 05_vm_22_vm-anon-lru-1 > > > 05_vm_23_per-cpu-pages-3 > > > 05_vm_24_accessed-ipi-only-smp-1 > > > 05_vm_25_try_to_free_buffers-invariant-1 > > > > Indeed, you are right. > > > > I'll start looking at them Monday. I'll keep you in touch. Thanks. > > Andrea, > > Would you mind to explain me 05_vm_06_swap_out-3 ? > > I see you change shrink_cache, try_to_free_pages_zone, etc.
that achieves multiple things. It avoids oom deadlocks by not wasting time in the pagetable walking anymore after we failed once, it protects init from being killed, and most important it avoids failed oom kills if a task has been killed under us (or if plenty of ram has been freed under us for whatever else reason). See the check_classzone_need_balance checks.
Then it gives classzone awareness to refill_inactive so we make sure to make progress for non highmem allocs too and to shrink stuff properly, the lists are global. Plus it checkpoints the point in the active list where it stopped the last time.
It also changes the shrink_cache function to shrink the vfs lists internally if needed.
The max_scan etc.. in shrink_cache are as well classzone aware, since the lists are global but we skip over the non interesting pages (like in refill_inactive).
Andrea - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |