lkml.org 
[lkml]   [2018]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] ib_srpt: use kvmalloc to allocate ring pointers
Date
On Tue, 2018-07-10 at 08:39 +0300, Leon Romanovsky wrote:
> On Mon, Jul 09, 2018 at 04:51:08PM +0300, Jan Dakinevich wrote:
> > An array of pointers to SRPT contexts in ib_device is over 30KiB even
> > in default case, in which an amount of contexts is 4095. The patch
> > is intended to weed out large contigous allocation for non-DMA memory.
>
> kvmalloc* doesn't "weed out" large contiguous allocations, but tries to
> allocate them and gracefully fallback to vmalloc if kmalloc fails.
>
> More on that, for allocations less than page (64KB for PowerPC), it will
> not call to vmalloc at all, which is fine too, because pages granularity.
>
> If you want to get rid of "contiguous allocations", use vmalloc instead.

vmalloc() has a very significant disadvantage compared to kvmalloc(): with
vmalloc() it is guaranteed that memory allocations will be slow. That's not
the case for kvmalloc() if the number of bytes that is allocated is small
enough.

Bart.




\
 
 \ /
  Last update: 2018-07-10 17:11    [W:0.110 / U:0.284 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site