On Mon, Mar 6, 2017 at 2:30 AM, Michal Hocko <mho...@kernel.org> wrote: > From: Michal Hocko <mho...@suse.com> > > vhost code uses __GFP_REPEAT when allocating vhost_virtqueue resp. > vhost_vsock because it would really like to prefer kmalloc to the > vmalloc fallback - see 23cc5a991c7a ("vhost-net: extend device > allocation to vmalloc") for more context. Michael Tsirkin has also > noted: > " > __GFP_REPEAT overhead is during allocation time. Using vmalloc means all > accesses are slowed down. Allocation is not on data path, accesses are. > " > > The similar applies to other vhost_kvzalloc users. > > Let's teach kvmalloc_node to handle __GFP_REPEAT properly. There are two > things to be careful about. First we should prevent from the OOM killer > and so have to involve __GFP_NORETRY by default and secondly override > __GFP_REPEAT for !costly order requests as the __GFP_REPEAT is ignored > for !costly orders. > > Supporting __GFP_REPEAT like semantic for !costly request is possible > it would require changes in the page allocator. This is out of scope of > this patch. > > This patch shouldn't introduce any functional change. > > Acked-by: Vlastimil Babka <vba...@suse.cz> > Acked-by: Michael S. Tsirkin <m...@redhat.com> > Signed-off-by: Michal Hocko <mho...@suse.com> > --- > drivers/vhost/net.c | 9 +++------ > drivers/vhost/vhost.c | 15 +++------------ > drivers/vhost/vsock.c | 9 +++------ > mm/util.c | 20 ++++++++++++++++---- > 4 files changed, 25 insertions(+), 28 deletions(-) >
There is a kzalloc/vzalloc call in drivers/vhost/scsi.c:vhost_scsi_open() which is not converted to kvzalloc(). Was that intentional?