On Tue, 6 Oct 2015 10:37:26 +0200 Igor Mammedov <imamm...@redhat.com> wrote:
> v3->v4: > * rescan all vhost backends when checking for limit (Michael S. Tsirkin) > * check that used slots are less than limit of new backend (Michael S. > Tsirkin) ping > v2->v3: > * add refcounting of limit by # vhost devices, > and make vhost_has_free_slot() return true if no vhost devices > are present at current moment > * move limit initialization to vhost_dev_init() > * fail vhost backend intialization if memslots number is more than its > supported limit > > v1->v2: > * replace probbing with checking for > /sys/module/vhost/parameters/max_mem_regions and > if it's missing has non wrong value return > hardcoded legacy limit (64 slots). > > it's defensive patchset which helps to avoid QEMU crashing > at memory hotplug time by checking that vhost has free capacity > for an additional memory slot. > > Igor Mammedov (3): > vhost: add vhost_has_free_slot() interface > pc-dimm: add vhost slots limit check before commiting to hotplug > vhost: fail backend intialization if memslots number is more than its > supported limit > > hw/mem/pc-dimm.c | 7 +++++++ > hw/virtio/vhost-backend.c | 19 +++++++++++++++++++ > hw/virtio/vhost-user.c | 6 ++++++ > hw/virtio/vhost.c | 27 +++++++++++++++++++++++++++ > include/hw/virtio/vhost-backend.h | 2 ++ > include/hw/virtio/vhost.h | 2 ++ > stubs/Makefile.objs | 1 + > stubs/vhost.c | 6 ++++++ > 8 files changed, 70 insertions(+) > create mode 100644 stubs/vhost.c >