[dpdk-dev] [PATCH] vhost: fix vhost interrupt support

Maxime Coquelin maxime.coquelin at redhat.com
Mon Sep 10 09:48:24 CEST 2018



On 09/10/2018 09:36 AM, Tiwei Bie wrote:
> Hi Maxime,
> 
> On Mon, Sep 10, 2018 at 09:22:00AM +0200, Maxime Coquelin wrote:
>> Hi Tiwei,
>>
>> On 09/05/2018 01:55 AM, Tiwei Bie wrote:
>>> When VIRTIO_RING_F_EVENT_IDX is negotiated, we need to
>>> update the avail event to enable the notification.
>>>
>>> Fixes: 3f8ff12821e4 ("vhost: support interrupt mode")
>>> Cc: stable at dpdk.org
>>>
>>> Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
>>> ---
>>>    lib/librte_vhost/Makefile |  1 +
>>>    lib/librte_vhost/vhost.c  | 18 ++++++++++++------
>>>    lib/librte_vhost/vhost.h  |  2 ++
>>>    3 files changed, 15 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
>>> index de431fbb7..531cf4832 100644
>>> --- a/lib/librte_vhost/Makefile
>>> +++ b/lib/librte_vhost/Makefile
>>> @@ -13,6 +13,7 @@ LIBABIVER := 4
>>>    CFLAGS += -DALLOW_EXPERIMENTAL_API
>>>    CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -D_FILE_OFFSET_BITS=64
>>>    CFLAGS += -I vhost_user
>>> +CFLAGS += -fno-strict-aliasing
>>
>> I'm not clear why this is needed looking at the code below,
>> could you please explain?
> 
> Without this, we will get below build error:
> 
> lib/librte_vhost/vhost.c: In function ‘vhost_enable_notify_split’:
> lib/librte_vhost/vhost.h:656:4: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
>    (*(volatile uint16_t*)&(vr)->used->ring[(vr)->size])
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> lib/librte_vhost/vhost.c:659:4: note: in expansion of macro ‘vhost_avail_event’
>      vhost_avail_event(vq) = vq->last_avail_idx;
>      ^~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors

OK, thanks for the info.

Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>

Maxime


More information about the dev mailing list