[lkml]   [2009]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [patch 4/4 -mm] flex_array: add flex_array_shrink function
    On Fri, 21 Aug 2009, Andrew Morton wrote:

    > > +/**
    > > + * flex_array_shrink - free unused second-level pages
    > > + *
    > > + * Frees all second-level pages that consist solely of unused
    > > + * elements. Returns the number of pages freed.
    > > + *
    > > + * Locking must be provided by the caller.
    > > + */
    > > +int flex_array_shrink(struct flex_array *fa)
    > It's logical but afaik unconventional that none of the flex_array
    > kerneldoc actually documents the `struct flex_array *fa' argument.

    In the interest of completeness (vs. more doc clutter), we'd need to add
    seven or eight instances of "@fa: the flex array to manipulate," although
    that should be fairly obvious.

    More of a priority might be to document flex_array_free() which lacks any
    commentary or add kerneldoc lines for the gfp_t formal of the three
    functions that use them.

    > We're all waiting with bated breath to see who will be the first to use
    > flex_array in live code.

    Now that flex_array_shrink() is in -mm, the cgroup code to manipulate
    arrays of pids could probably now use them without losing any

    Beyond that, I don't know of any other users with enough incentive to
    immediately convert. Its scope is unfortunately limited because it's an
    array and not a list, the latter of which you can efficiently iterate,
    sort, eliminate upper bounds, etc.

    An alternative implementation, like a flex list, would probably find more
    users and could also be used by the cgroup code to manage pids. Flex
    lists would be unbounded and can dynamically expand with linkage through
    page->lru when additional elements are pushed.

     \ /
      Last update: 2009-08-22 23:31    [W:0.028 / U:1.820 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site