vhost: fix NUMA reallocation with multi-queue
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Tue, 29 Jun 2021 16:11:30 +0000 (18:11 +0200)
committerChenbo Xia <chenbo.xia@intel.com>
Wed, 30 Jun 2021 11:32:13 +0000 (13:32 +0200)
commit6305dfeff4c4644f1091a5e270cdbf989f48e15e
tree76fd01857e8a4cb1311888e5d613d2a4e0435af2
parenteb40c50c17df418a6aeb09ac3c13e4d5ef259aa5
vhost: fix NUMA reallocation with multi-queue

Since the Vhost-user device initialization has been reworked,
enabling the application to start using the device as soon as
the first queue pair is ready, NUMA reallocation no more
happened on queue pairs other than the first one since
numa_realloc() was returning early if the device was running.

This patch fixes this issue by reallocating the device metadata
only if the device is running. For the virtqueues, a vring state
change notification is sent to notify the application of its
disablement. Since the callback is supposed to be blocking, it
is safe to reallocate it afterwards.

Fixes: d0fcc38f5fa4 ("vhost: improve device readiness notifications")
Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
lib/vhost/vhost_user.c