[dpdk-dev] [PATCH v6 3/7] vhost: fix missing cache logging NUMA realloc
Maxime Coquelin
maxime.coquelin at redhat.com
Tue Jun 29 16:38:48 CEST 2021
On 6/25/21 4:50 AM, Xia, Chenbo wrote:
> Hi Maxime,
>
>> -----Original Message-----
>> From: Maxime Coquelin <maxime.coquelin at redhat.com>
>> Sent: Friday, June 18, 2021 10:04 PM
>> To: dev at dpdk.org; david.marchand at redhat.com; Xia, Chenbo <chenbo.xia at intel.com>
>> Cc: Maxime Coquelin <maxime.coquelin at redhat.com>
>> Subject: [PATCH v6 3/7] vhost: fix missing cache logging NUMA realloc
>>
>> When the guest allocates virtqueues on a different NUMA node
>> than the one the Vhost metadata are allocated, both the Vhost
>> device struct and the virtqueues struct are reallocated.
>>
>> However, reallocating the log cache on the new NUMA node was
>> not done. This patch fixes this by reallocating it if it has
>> been allocated already, which means a live-migration is
>> on-going.
>>
>> Fixes: 1818a63147fb ("vhost: move dirty logging cache out of virtqueue")
>
> This commit is of 21.05, although LTS maintainers don't maintain non-LTS stable
> releases now, I guess it's still better to add 'cc stable tag' in case anyone
> volunteers to do that?
I don't think that's what we do usually.
If someone wants to maintain v21.05 in the future, he can just look for
the Fixes tag in the git history.
Thanks,
Maxime
> Thanks,
> Chenbo
>
>>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
>> ---
>> lib/vhost/vhost_user.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c
>> index 5fb055ea2e..82adf80fe5 100644
>> --- a/lib/vhost/vhost_user.c
>> +++ b/lib/vhost/vhost_user.c
>> @@ -545,6 +545,16 @@ numa_realloc(struct virtio_net *dev, int index)
>> vq->batch_copy_elems = new_batch_copy_elems;
>> }
>>
>> + if (vq->log_cache) {
>> + struct log_cache_entry *log_cache;
>> +
>> + log_cache = rte_realloc_socket(vq->log_cache,
>> + sizeof(struct log_cache_entry) *
>> VHOST_LOG_CACHE_NR,
>> + 0, newnode);
>> + if (log_cache)
>> + vq->log_cache = log_cache;
>> + }
>> +
>> rte_free(old_vq);
>> }
>>
>> --
>> 2.31.1
>
More information about the dev
mailing list