On Fri, Mar 06, 2020 at 12:49:51AM -0800, Joe Perches wrote: > On Thu, 2020-03-05 at 13:16 -0800, Daniel Xu wrote: > > It's not really necessary to have contiguous physical memory for xattr > > values. We no longer need to worry about higher order allocations > > failing with kvmalloc, especially because the xattr size limit is at > > 64K. > > So why use vmalloc memory at all? > > > diff --git a/fs/xattr.c b/fs/xattr.c > '] > > @@ -817,7 +817,7 @@ struct simple_xattr *simple_xattr_alloc(const void *value, size_t size) > > if (len < sizeof(*new_xattr)) > > return NULL; > > > > - new_xattr = kmalloc(len, GFP_KERNEL); > > + new_xattr = kvmalloc(len, GFP_KERNEL); > > Why is this sensible? See the thread on v1 > vmalloc memory is a much more limited resource. Large chunks of "len" is much more limited :) thanks, greg k-h