vhost: extend memory regions allocation to vmalloc
authorIgor Mammedov <imammedo@redhat.com>
Wed, 1 Jul 2015 09:07:09 +0000 (11:07 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 13 Jul 2015 20:17:18 +0000 (23:17 +0300)
commit4de7255f7d2be5e51664c6ac6011ffd6e5463571
tree625b30fbabffe479856e066d83857011aebc64e0
parentea52bf8eda9832ad30e9f059c5ead8d44f882a53
vhost: extend memory regions allocation to vmalloc

with large number of memory regions we could end up with
high order allocations and kmalloc could fail if
host is under memory pressure.
Considering that memory regions array is used on hot path
try harder to allocate using kmalloc and if it fails resort
to vmalloc.
It's still better than just failing vhost_set_memory() and
causing guest crash due to it when a new memory hotplugged
to guest.

I'll still look at QEMU side solution to reduce amount of
memory regions it feeds to vhost to make things even better,
but it doesn't hurt for kernel to behave smarter and don't
crash older QEMU's which could use large amount of memory
regions.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vhost/vhost.c