On Tue, 26 Oct 2021, Michal Hocko wrote: > From: Michal Hocko <mhocko@xxxxxxxx> > > A support for GFP_NO{FS,IO} and __GFP_NOFAIL has been implemented > by previous patches so we can allow the support for kvmalloc. This > will allow some external users to simplify or completely remove > their helpers. > > GFP_NOWAIT semantic hasn't been supported so far but it hasn't been > explicitly documented so let's add a note about that. > > ceph_kvmalloc is the first helper to be dropped and changed to > kvmalloc. > > Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> > --- > include/linux/ceph/libceph.h | 1 - > mm/util.c | 15 ++++----------- > net/ceph/buffer.c | 4 ++-- > net/ceph/ceph_common.c | 27 --------------------------- > net/ceph/crypto.c | 2 +- > net/ceph/messenger.c | 2 +- > net/ceph/messenger_v2.c | 2 +- > net/ceph/osdmap.c | 12 ++++++------ > 8 files changed, 15 insertions(+), 50 deletions(-) > > diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h > index 409d8c29bc4f..309acbcb5a8a 100644 > --- a/include/linux/ceph/libceph.h > +++ b/include/linux/ceph/libceph.h > @@ -295,7 +295,6 @@ extern bool libceph_compatible(void *data); > > extern const char *ceph_msg_type_name(int type); > extern int ceph_check_fsid(struct ceph_client *client, struct ceph_fsid *fsid); > -extern void *ceph_kvmalloc(size_t size, gfp_t flags); > > struct fs_parameter; > struct fc_log; > diff --git a/mm/util.c b/mm/util.c > index bacabe446906..fdec6b4b1267 100644 > --- a/mm/util.c > +++ b/mm/util.c > @@ -549,13 +549,10 @@ EXPORT_SYMBOL(vm_mmap); > * Uses kmalloc to get the memory but if the allocation fails then falls back > * to the vmalloc allocator. Use kvfree for freeing the memory. > * > - * Reclaim modifiers - __GFP_NORETRY and __GFP_NOFAIL are not supported. > + * Reclaim modifiers - __GFP_NORETRY and GFP_NOWAIT are not supported. GFP_NOWAIT is not a modifier. It is a base value that can be modified. I think you mean that __GFP_NORETRY is not supported and __GFP_DIRECT_RECLAIM is required But I really cannot see why either of these statements are true. Before your patch, __GFP_NORETRY would have forced use of kmalloc, so that would mean it isn't really supported. But that doesn't happen any more. Thanks, NeilBrown