On Mon, Mar 6, 2017 at 2:30 AM, Michal Hocko <mhocko@xxxxxxxxxx> wrote: > From: Michal Hocko <mhocko@xxxxxxxx> > > 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 <vbabka@xxxxxxx> > Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> > --- > 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? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>