Freeing vnodes.

From: Jeff Roberson (jroberson_at_chesapeake.net)
Date: 03/15/05

  • Next message: Stephan Uphoff: "Re: Freeing vnodes."
    Date: Mon, 14 Mar 2005 21:38:49 -0500 (EST)
    To: arch@freebsd.org
    
    

    I have a patch at http://www.chesapeake.net/~jroberson/freevnodes.diff
    that allows us to start reclaiming vnodes from the free list and release
    their memory. It also changes the semantics of wantfreevnodes, and makes
    getnewvnode() much prettier.

    The changes attempt to keep some number of vnodes, currently 2.5% of
    desiredvnodes, that are free in memory. Free vnodes are vnodes which
    have no references or pages in memory. For example, if an application
    simply stat's a vnode, it will end up on the free list at the end of the
    operation. The algorithm that is currently in place will immediately
    recycle these vnodes once there is enough pressure, which will cause us to
    do a full lookup and reread the inode, etc. as soon as it is stat'd again.

    This also removes the recycling from the getnewvnode() path. Instead, it
    is done by a new helper function that is called from vnlru_proc(). This
    function just frees vnodes from the head of the list until we reach our
    wantfreevnodes target.

    I haven't perf tested this yet, but I have a box that is doing a
    buildworld with a fairly constant freevnodes count which shows that vnodes
    are actually being uma_zfree'd.

    Comments? Anyone willing to do some perf tests for me?

    Thanks,
    Jeff
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"


  • Next message: Stephan Uphoff: "Re: Freeing vnodes."

    Relevant Pages

    • Re: 5.x w/auto-maxusers has insane kern.maxvnodes
      ... The target number of vnodes was set to ... I ended up saving a good 100MB of memory just ... > switching from 4.x and seeing paging increase substantially. ...
      (freebsd-current)
    • Re: 5.x w/auto-maxusers has insane kern.maxvnodes
      ... The target number of vnodes was set to ... the default number of vnodes wasn't enough, and caching them in VMIO ... pages didn't work for some reason (either because I was testing a ... >> easy to determine other than the fact that I saved so much memory even ...
      (freebsd-current)
    • Re: Call for PRs: nullfs
      ... One is the direct overhead associated with stacking ... the maxvnodes bound, which causes vnodes to be recycled. ... "memory is no object" -- on other ... rate and disk I/O transaction rates during the benchmark. ...
      (freebsd-current)
    • Re: Freeing vnodes.
      ... On Mon, 14 Mar 2005, Stephan Uphoff wrote: ... >> that allows us to start reclaiming vnodes from the free list and release ... that are free in memory. ... >> recycle these vnodes once there is enough pressure, ...
      (freebsd-arch)
    • Re: Freeing vnodes.
      ... On Mon, 2005-03-14 at 21:38, Jeff Roberson wrote: ... > that allows us to start reclaiming vnodes from the free list and release ... that are free in memory. ... > is done by a new helper function that is called from vnlru_proc. ...
      (freebsd-arch)