lkml.org 
[lkml]   [2010]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: fadvise DONTNEED implementation (or lack thereof)
    Date
    > > I've recently been trying to track down the root cause of my server's
    > > persistent issue of thrashing horribly after being left inactive. It
    > > seems that the issue is likely my nightly backup schedule (using rsync)
    > > which traverses my entire 50GB home directory. I was surprised to find
    > > that rsync does not use fadvise to notify the kernel of its use-once
    > > data usage pattern.
    > >
    > > It looks like a patch[1] was written (although never merged, it seems)
    > > incorporating fadvise support, but I found its implementation rather
    > > odd, using mincore() and FADV_DONTNEED to kick out only regions brought
    > > in by rsync. It seemed to me the simpler and more appropriate solution
    > > would be to simply flag every touched file with FADV_NOREUSE and let the
    > > kernel manage automatically expelling used pages.
    > >
    > > After looking deeper into the kernel implementation[2] of fadvise() the
    > > reason for using DONTNEED became more apparant. It seems that the kernel
    > > implements NOREUSE as a noop. A little googling revealed[3] that I not
    > > the first person to encounter this limitation. It looks like a few
    > > folks[4] have discussed addressing the issue in the past, but nothing
    > > has happened as of 2.6.36. Are there plans to implement this
    > > functionality in the near future? It seems like the utility of fadvise
    > > is severely limited by lacking support for NOREUSE.
    >
    > btw, Other OSs seems to also don't implement it.
    > example,

    I've heared other OSs status of fadvise() from private mail.

    NetBSD: no-op (as linux)
    FreeBSD/DragonflyBSD/OpenBSD: don't exist posix_fadvise(2)





    \
     
     \ /
      Last update: 2010-11-09 09:05    [W:3.533 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site