From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 7A229559C for ; Tue, 10 Nov 2015 08:16:10 +0100 (CET) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 62E4314AA9; Tue, 10 Nov 2015 07:16:09 +0000 (UTC) Received: from dhcp195.koti.laiskiainen.org (vpn1-5-63.ams2.redhat.com [10.36.5.63]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tAA7G75K001705; Tue, 10 Nov 2015 02:16:07 -0500 To: Tetsuya Mukawa , Aaron Conole References: <1446436737-25606-2-git-send-email-mukawa@igel.co.jp> <1447046221-20811-1-git-send-email-mukawa@igel.co.jp> <1447046221-20811-2-git-send-email-mukawa@igel.co.jp> <564160F2.6030407@igel.co.jp> From: Panu Matilainen Message-ID: <564199B7.3010905@redhat.com> Date: Tue, 10 Nov 2015 09:16:07 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <564160F2.6030407@igel.co.jp> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 Cc: dev@dpdk.org, ann.zhuangyanying@huawei.com Subject: Re: [dpdk-dev] [PATCH v3 1/2] vhost: Add callback and private data for vhost PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Nov 2015 07:16:10 -0000 On 11/10/2015 05:13 AM, Tetsuya Mukawa wrote: > On 2015/11/10 3:16, Aaron Conole wrote: >> Greetings, >> >> Tetsuya Mukawa writes: >>> These variables are needed to be able to manage one of virtio devices >>> using both vhost library APIs and vhost PMD. >>> For example, if vhost PMD uses current callback handler and private data >>> provided by vhost library, A DPDK application that links vhost library >>> cannot use some of vhost library APIs. To avoid it, callback and private >>> data for vhost PMD are needed. >>> >>> Signed-off-by: Tetsuya Mukawa >>> --- >>> lib/librte_vhost/rte_vhost_version.map | 6 +++ >>> lib/librte_vhost/rte_virtio_net.h | 3 ++ >>> lib/librte_vhost/vhost_user/virtio-net-user.c | 13 +++---- >>> lib/librte_vhost/virtio-net.c | 56 +++++++++++++++++++++++++-- >>> lib/librte_vhost/virtio-net.h | 4 +- >>> 5 files changed, 70 insertions(+), 12 deletions(-) >>> >>> diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map >>> index 3d8709e..00a9ce5 100644 >>> --- a/lib/librte_vhost/rte_vhost_version.map >>> +++ b/lib/librte_vhost/rte_vhost_version.map >>> @@ -20,3 +20,9 @@ DPDK_2.1 { >>> rte_vhost_driver_unregister; >>> >>> } DPDK_2.0; >>> + >>> +DPDK_2.2 { >>> + global: >>> + >>> + rte_vhost_driver_pmd_callback_register; >>> +} DPDK_2.1; >>> diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h >>> index 5687452..3ef6e58 100644 >>> --- a/lib/librte_vhost/rte_virtio_net.h >>> +++ b/lib/librte_vhost/rte_virtio_net.h >>> @@ -128,6 +128,7 @@ struct virtio_net { >>> char ifname[IF_NAME_SZ]; /**< Name of the tap device or socket path. */ >>> uint32_t virt_qp_nb; /**< number of queue pair we have allocated */ >>> void *priv; /**< private context */ >>> + void *pmd_priv; /**< private context for vhost PMD */ >>> struct vhost_virtqueue *virtqueue[VHOST_MAX_QUEUE_PAIRS * 2]; /**< Contains all virtqueue information. */ >>> } __rte_cache_aligned; >> Sorry if I'm missing something, but this is an ABI breaker, isn't it? I >> think this needs the RTE_NEXT_ABI tag around it. > > Hi Aaron, > > Thanks for reviewing. Yes, your are correct. > I guess I can implement vhost PMD without this variable, so I will > remove it. No need to. The librte_vhost ABI has already been broken during the DPDK 2.2 cycle by the multiqueue changes, but that's okay since it was announced during 2.1 cycle (in commit 3c848bd7b1c6f4f681b833322a748fdefbb5fb2d). What is missing right now is bumping the library version, and that must happen before 2.2 is released. - Panu -