lkml.org 
[lkml]   [2017]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 5/6] treewide: use kv[mz]alloc* rather than opencoded variants
    Date

    > On Jan 12, 2017, at 08:37, Michal Hocko <mhocko@kernel.org> wrote:
    >
    > From: Michal Hocko <mhocko@suse.com>
    >
    > There are many code paths opencoding kvmalloc. Let's use the helper
    > instead. The main difference to kvmalloc is that those users are usually
    > not considering all the aspects of the memory allocator. E.g. allocation
    > requests < 64kB are basically never failing and invoke OOM killer to
    > satisfy the allocation. This sounds too disruptive for something that
    > has a reasonable fallback - the vmalloc. On the other hand those
    > requests might fallback to vmalloc even when the memory allocator would
    > succeed after several more reclaim/compaction attempts previously. There
    > is no guarantee something like that happens though.
    >
    > This patch converts many of those places to kv[mz]alloc* helpers because
    > they are more conservative.
    >
    > Signed-off-by: Michal Hocko <mhocko@suse.com>

    Lustre part can be
    Acked-by: Andreas Dilger <andreas.dilger@intel.com>

    [snip]

    > diff --git a/drivers/staging/lustre/lnet/libcfs/linux/linux-mem.c b/drivers/staging/lustre/lnet/libcfs/linux/linux-mem.c
    > index a6a76a681ea9..8f638267e704 100644
    > --- a/drivers/staging/lustre/lnet/libcfs/linux/linux-mem.c
    > +++ b/drivers/staging/lustre/lnet/libcfs/linux/linux-mem.c
    > @@ -45,15 +45,6 @@ EXPORT_SYMBOL(libcfs_kvzalloc);
    > void *libcfs_kvzalloc_cpt(struct cfs_cpt_table *cptab, int cpt, size_t size,
    > gfp_t flags)
    > {
    > - void *ret;
    > -
    > - ret = kzalloc_node(size, flags | __GFP_NOWARN,
    > - cfs_cpt_spread_node(cptab, cpt));
    > - if (!ret) {
    > - WARN_ON(!(flags & (__GFP_FS | __GFP_HIGH)));
    > - ret = vmalloc_node(size, cfs_cpt_spread_node(cptab, cpt));
    > - }
    > -
    > - return ret;
    > + return kvzalloc_node(size, flags, cfs_cpt_spread_node(cptab, cpt));
    > }
    > EXPORT_SYMBOL(libcfs_kvzalloc_cpt);



    \
     
     \ /
      Last update: 2017-01-13 02:12    [W:3.934 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site