[lkml]   [2008]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 0/8][for -mm] mem_notify v6
    Hi Tom,

    Thank you very useful comment.
    that is very interesting.

    > I tried it with a real-world program that, among other things, mmaps
    > anonymous pages and touches them at a reasonable speed until it gets
    > notified via /dev/mem_notify, releases most of them with
    > madvise(MADV_DONTNEED), then loops to start the cycle again.
    > What tends to happen is that I do indeed get notifications via
    > /dev/mem_notify when the kernel would like to be swapping, at which
    > point I free memory. But the notifications come at a time when the
    > kernel needs memory, and it gets the memory by discarding some Cached
    > or Mapped memory (I can see these decreasing in /proc/meminfo with
    > each notification). With each mmap/notify/madvise cycle the Cached
    > and Mapped memory gets smaller, until eventually while I'm touching
    > pages the kernel can't find enough memory and will either invoke the
    > OOM killer or return ENOMEM from syscalls. This is precisely the
    > situation I'm trying to avoid by using /dev/mem_notify.

    Could you send your test program?
    I can't reproduce that now, sorry.

    > The criterion of "notify when the kernel would like to swap" feels
    > correct, but in addition I seem to need something like "notify when
    > cached+mapped+free memory is getting low".

    I think this idea is only useful when userland process call
    madvise(MADV_DONTNEED) periodically.

    but I hope improve my patch and solve your problem.
    if you don' mind, please help my testing ;)

     \ /
      Last update: 2008-04-02 09:33    [W:0.021 / U:4.456 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site