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 05C752E83 for ; Tue, 10 Nov 2015 11:05:20 +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 48D3C8E22F; Tue, 10 Nov 2015 10:05:19 +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 tAAA5HQL024568; Tue, 10 Nov 2015 05:05:18 -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> <564199B7.3010905@redhat.com> <5641BD54.3070700@igel.co.jp> From: Panu Matilainen Message-ID: <5641C15D.9060500@redhat.com> Date: Tue, 10 Nov 2015 12:05:17 +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: <5641BD54.3070700@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 10:05:20 -0000 On 11/10/2015 11:48 AM, Tetsuya Mukawa wrote: > On 2015/11/10 16:16, Panu Matilainen wrote: >> 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 - >> >> > > Hi Panu, > > Thank you so much. Let me make sure what you mean. > I guess I need to add RTE_NEXT_ABI tags where pmd_priv is used. This is > because we don't break DPDK-2.1 ABI. > Anyway, the tag will be removed when DPDK-2.2 is released, then we can > use vhost PMD. > Is this correct? Not quite. Because the ABI has already been broken between 2.1 and 2.2, you can ride the same wave without messing with NEXT_ABI and such. Like said, librte_vhost is pending a LIBABIVER bump to 2, but that is regardless of this patch. - Panu -