Hi all: We are implementing qemu official vhost-user interface into DPDK vhost library, so there would be two coexisting implementations for user space vhost backend. Pro and cons in my mind: Existing solution: Pros: works with qemu version before 2.1; Cons: depends on eventfd proxy kernel module and extra maintenance effort Qemu vhost-user: Pros: qemu official us-vhost interface; Cons: only available after qemu 2.1 BR. huawei
Do we have performance comparison between both implementation? Thanks Changchun -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei Sent: Tuesday, August 26, 2014 7:06 PM To: dev@dpdk.org Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into DPDK vhost library Hi all: We are implementing qemu official vhost-user interface into DPDK vhost library, so there would be two coexisting implementations for user space vhost backend. Pro and cons in my mind: Existing solution: Pros: works with qemu version before 2.1; Cons: depends on eventfd proxy kernel module and extra maintenance effort Qemu vhost-user: Pros: qemu official us-vhost interface; Cons: only available after qemu 2.1 BR. huawei
(2014/08/27 9:43), Ouyang, Changchun wrote: > Do we have performance comparison between both implementation? Hi Changchun, If DPDK applications are running on both guest and host side, the performance should be almost same, because while transmitting data virt queues are accessed by virtio-net PMD and libvhost. In libvhost, the existing vhost implementation and a vhost-user implementation will shares or uses same code to access virt queues. So I guess the performance will be almost same. Thanks, Tetsuya > Thanks > Changchun > > > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei > Sent: Tuesday, August 26, 2014 7:06 PM > To: dev@dpdk.org > Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into DPDK vhost library > > Hi all: > We are implementing qemu official vhost-user interface into DPDK vhost library, so there would be two coexisting implementations for user space vhost backend. > Pro and cons in my mind: > Existing solution: > Pros: works with qemu version before 2.1; Cons: depends on eventfd proxy kernel module and extra maintenance effort Qemu vhost-user: > Pros: qemu official us-vhost interface; Cons: only available after qemu 2.1 > > BR. > huawei
Hi Tetsuya
Thanks for your response.
Agree with you, the performance should be same as the data path (RX/TX) is not affected,
The difference between implementation only exists in the virtio device creation and destroy stage.
Regards,
Changchun
> -----Original Message-----
> From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp]
> Sent: Wednesday, August 27, 2014 12:39 PM
> To: Ouyang, Changchun; dev@dpdk.org
> Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp;
> Hitoshi Masutani
> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into
> DPDK vhost library
>
>
> (2014/08/27 9:43), Ouyang, Changchun wrote:
> > Do we have performance comparison between both implementation?
> Hi Changchun,
>
> If DPDK applications are running on both guest and host side, the
> performance should be almost same, because while transmitting data virt
> queues are accessed by virtio-net PMD and libvhost. In libvhost, the existing
> vhost implementation and a vhost-user implementation will shares or uses
> same code to access virt queues. So I guess the performance will be almost
> same.
>
> Thanks,
> Tetsuya
>
>
> > Thanks
> > Changchun
> >
> >
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei
> > Sent: Tuesday, August 26, 2014 7:06 PM
> > To: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user
> > support into DPDK vhost library
> >
> > Hi all:
> > We are implementing qemu official vhost-user interface into DPDK vhost
> library, so there would be two coexisting implementations for user space
> vhost backend.
> > Pro and cons in my mind:
> > Existing solution:
> > Pros: works with qemu version before 2.1; Cons: depends on eventfd
> proxy kernel module and extra maintenance effort Qemu vhost-user:
> > Pros: qemu official us-vhost interface; Cons: only available after
> qemu 2.1
> >
> > BR.
> > huawei
Hi Changchun, (2014/08/27 14:01), Ouyang, Changchun wrote: > Agree with you, the performance should be same as the data path (RX/TX) is not affected, > The difference between implementation only exists in the virtio device creation and destroy stage. Yes, I agree. Also There may be the difference, if a virtio-net driver on a guest isn't poll mode like a virtio-net device driver in the kernel. In the case, existing vhost implementation uses the eventfd kernel module, and vhost-user implementation uses eventfd to kick the driver. So I guess there will be the difference. Anyway, about device creation and destruction, the difference will come from transmission speed between unix domain socket and CUSE. I am not sure which is faster. Thanks, Tetsuya > > Regards, > Changchun > >> -----Original Message----- >> From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] >> Sent: Wednesday, August 27, 2014 12:39 PM >> To: Ouyang, Changchun; dev@dpdk.org >> Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; >> Hitoshi Masutani >> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into >> DPDK vhost library >> >> >> (2014/08/27 9:43), Ouyang, Changchun wrote: >>> Do we have performance comparison between both implementation? >> Hi Changchun, >> >> If DPDK applications are running on both guest and host side, the >> performance should be almost same, because while transmitting data virt >> queues are accessed by virtio-net PMD and libvhost. In libvhost, the existing >> vhost implementation and a vhost-user implementation will shares or uses >> same code to access virt queues. So I guess the performance will be almost >> same. >> >> Thanks, >> Tetsuya >> >> >>> Thanks >>> Changchun >>> >>> >>> -----Original Message----- >>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei >>> Sent: Tuesday, August 26, 2014 7:06 PM >>> To: dev@dpdk.org >>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user >>> support into DPDK vhost library >>> >>> Hi all: >>> We are implementing qemu official vhost-user interface into DPDK vhost >> library, so there would be two coexisting implementations for user space >> vhost backend. >>> Pro and cons in my mind: >>> Existing solution: >>> Pros: works with qemu version before 2.1; Cons: depends on eventfd >> proxy kernel module and extra maintenance effort Qemu vhost-user: >>> Pros: qemu official us-vhost interface; Cons: only available after >> qemu 2.1 >>> BR. >>> huawei
> -----Original Message----- > From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] > Sent: Wednesday, August 27, 2014 1:28 PM > To: Ouyang, Changchun; dev@dpdk.org > Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; > Hitoshi Masutani > Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into > DPDK vhost library > > Hi Changchun, > > (2014/08/27 14:01), Ouyang, Changchun wrote: > > Agree with you, the performance should be same as the data path (RX/TX) is > not affected, > > The difference between implementation only exists in the virtio device > creation and destroy stage. > Yes, I agree. Also There may be the difference, if a virtio-net driver > on a guest isn't poll mode like a virtio-net device driver in the > kernel. In the case, existing vhost implementation uses the eventfd > kernel module, and vhost-user implementation uses eventfd to kick the > driver. So I guess there will be the difference. For virtio-net device driver, there is still no difference. Existing solution creates an eventfd module to install a fd in DPDK process pointing to the eventfd in qemu process. In vhost-user, the UNIX domain socket will do that work, create a new fd, install it in target DPDK server process, and make it point to the eventfd in qemu process. > > Anyway, about device creation and destruction, the difference will come > from transmission speed between unix domain socket and CUSE. I am not > sure which is faster. > > Thanks, > Tetsuya > > > > > > Regards, > > Changchun > > > >> -----Original Message----- > >> From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] > >> Sent: Wednesday, August 27, 2014 12:39 PM > >> To: Ouyang, Changchun; dev@dpdk.org > >> Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; > >> Hitoshi Masutani > >> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into > >> DPDK vhost library > >> > >> > >> (2014/08/27 9:43), Ouyang, Changchun wrote: > >>> Do we have performance comparison between both implementation? > >> Hi Changchun, > >> > >> If DPDK applications are running on both guest and host side, the > >> performance should be almost same, because while transmitting data virt > >> queues are accessed by virtio-net PMD and libvhost. In libvhost, the existing > >> vhost implementation and a vhost-user implementation will shares or uses > >> same code to access virt queues. So I guess the performance will be almost > >> same. > >> > >> Thanks, > >> Tetsuya > >> > >> > >>> Thanks > >>> Changchun > >>> > >>> > >>> -----Original Message----- > >>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei > >>> Sent: Tuesday, August 26, 2014 7:06 PM > >>> To: dev@dpdk.org > >>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user > >>> support into DPDK vhost library > >>> > >>> Hi all: > >>> We are implementing qemu official vhost-user interface into DPDK vhost > >> library, so there would be two coexisting implementations for user space > >> vhost backend. > >>> Pro and cons in my mind: > >>> Existing solution: > >>> Pros: works with qemu version before 2.1; Cons: depends on eventfd > >> proxy kernel module and extra maintenance effort Qemu vhost-user: > >>> Pros: qemu official us-vhost interface; Cons: only available after > >> qemu 2.1 > >>> BR. > >>> huawei
(2014/08/27 14:27), Tetsuya.Mukawa wrote: > Hi Changchun, > > (2014/08/27 14:01), Ouyang, Changchun wrote: >> Agree with you, the performance should be same as the data path (RX/TX) is not affected, >> The difference between implementation only exists in the virtio device creation and destroy stage. > Yes, I agree. Also There may be the difference, if a virtio-net driver > on a guest isn't poll mode like a virtio-net device driver in the > kernel. In the case, existing vhost implementation uses the eventfd > kernel module, and vhost-user implementation uses eventfd to kick the > driver. So I guess there will be the difference. > > Anyway, about device creation and destruction, the difference will come > from transmission speed between unix domain socket and CUSE. I am not > sure which is faster. Thank for pointing out my misleading expression. Correct: transmission latency Incorrect: transmission speed Tetsuya, > > Thanks, > Tetsuya > > >> Regards, >> Changchun >> >>> -----Original Message----- >>> From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] >>> Sent: Wednesday, August 27, 2014 12:39 PM >>> To: Ouyang, Changchun; dev@dpdk.org >>> Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; >>> Hitoshi Masutani >>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into >>> DPDK vhost library >>> >>> >>> (2014/08/27 9:43), Ouyang, Changchun wrote: >>>> Do we have performance comparison between both implementation? >>> Hi Changchun, >>> >>> If DPDK applications are running on both guest and host side, the >>> performance should be almost same, because while transmitting data virt >>> queues are accessed by virtio-net PMD and libvhost. In libvhost, the existing >>> vhost implementation and a vhost-user implementation will shares or uses >>> same code to access virt queues. So I guess the performance will be almost >>> same. >>> >>> Thanks, >>> Tetsuya >>> >>> >>>> Thanks >>>> Changchun >>>> >>>> >>>> -----Original Message----- >>>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei >>>> Sent: Tuesday, August 26, 2014 7:06 PM >>>> To: dev@dpdk.org >>>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user >>>> support into DPDK vhost library >>>> >>>> Hi all: >>>> We are implementing qemu official vhost-user interface into DPDK vhost >>> library, so there would be two coexisting implementations for user space >>> vhost backend. >>>> Pro and cons in my mind: >>>> Existing solution: >>>> Pros: works with qemu version before 2.1; Cons: depends on eventfd >>> proxy kernel module and extra maintenance effort Qemu vhost-user: >>>> Pros: qemu official us-vhost interface; Cons: only available after >>> qemu 2.1 >>>> BR. >>>> huawei
> -----Original Message----- > From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] > Sent: Wednesday, August 27, 2014 1:28 PM > To: Ouyang, Changchun; dev@dpdk.org > Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; > Hitoshi Masutani > Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into > DPDK vhost library > > Hi Changchun, > > (2014/08/27 14:01), Ouyang, Changchun wrote: > > Agree with you, the performance should be same as the data path > > (RX/TX) is not affected, The difference between implementation only > exists in the virtio device creation and destroy stage. > Yes, I agree. Also There may be the difference, if a virtio-net driver on a > guest isn't poll mode like a virtio-net device driver in the kernel. In the case, > existing vhost implementation uses the eventfd kernel module, and vhost- > user implementation uses eventfd to kick the driver. So I guess there will be > the difference. > > Anyway, about device creation and destruction, the difference will come > from transmission speed between unix domain socket and CUSE. I am not > sure which is faster. Yes, it doesn't matter which one is faster for virtio device creation and destroy, as it is not in data path. > Thanks, > Tetsuya > > > > > > Regards, > > Changchun > > > >> -----Original Message----- > >> From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] > >> Sent: Wednesday, August 27, 2014 12:39 PM > >> To: Ouyang, Changchun; dev@dpdk.org > >> Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; > >> Hitoshi Masutani > >> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user > >> support into DPDK vhost library > >> > >> > >> (2014/08/27 9:43), Ouyang, Changchun wrote: > >>> Do we have performance comparison between both implementation? > >> Hi Changchun, > >> > >> If DPDK applications are running on both guest and host side, the > >> performance should be almost same, because while transmitting data > >> virt queues are accessed by virtio-net PMD and libvhost. In libvhost, > >> the existing vhost implementation and a vhost-user implementation > >> will shares or uses same code to access virt queues. So I guess the > >> performance will be almost same. > >> > >> Thanks, > >> Tetsuya > >> > >> > >>> Thanks > >>> Changchun > >>> > >>> > >>> -----Original Message----- > >>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei > >>> Sent: Tuesday, August 26, 2014 7:06 PM > >>> To: dev@dpdk.org > >>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user > >>> support into DPDK vhost library > >>> > >>> Hi all: > >>> We are implementing qemu official vhost-user interface into DPDK > >>> vhost > >> library, so there would be two coexisting implementations for user > >> space vhost backend. > >>> Pro and cons in my mind: > >>> Existing solution: > >>> Pros: works with qemu version before 2.1; Cons: depends on eventfd > >> proxy kernel module and extra maintenance effort Qemu vhost-user: > >>> Pros: qemu official us-vhost interface; Cons: only available > after > >> qemu 2.1 > >>> BR. > >>> huawei
Hi Xie, (2014/08/27 14:56), Xie, Huawei wrote: > For virtio-net device driver, there is still no difference. Existing > solution creates an eventfd module to install a fd in DPDK process > pointing to the eventfd in qemu process. In vhost-user, the UNIX > domain socket will do that work, create a new fd, install it in target > DPDK server process, and make it point to the eventfd in qemu process. Thank you for explanation. I can understand clearly. Thanks, Tetsuya >> Anyway, about device creation and destruction, the difference will come >> from transmission speed between unix domain socket and CUSE. I am not >> sure which is faster. >> >> Thanks, >> Tetsuya >> >> >>> Regards, >>> Changchun >>> >>>> -----Original Message----- >>>> From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] >>>> Sent: Wednesday, August 27, 2014 12:39 PM >>>> To: Ouyang, Changchun; dev@dpdk.org >>>> Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; >>>> Hitoshi Masutani >>>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support into >>>> DPDK vhost library >>>> >>>> >>>> (2014/08/27 9:43), Ouyang, Changchun wrote: >>>>> Do we have performance comparison between both implementation? >>>> Hi Changchun, >>>> >>>> If DPDK applications are running on both guest and host side, the >>>> performance should be almost same, because while transmitting data virt >>>> queues are accessed by virtio-net PMD and libvhost. In libvhost, the existing >>>> vhost implementation and a vhost-user implementation will shares or uses >>>> same code to access virt queues. So I guess the performance will be almost >>>> same. >>>> >>>> Thanks, >>>> Tetsuya >>>> >>>> >>>>> Thanks >>>>> Changchun >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei >>>>> Sent: Tuesday, August 26, 2014 7:06 PM >>>>> To: dev@dpdk.org >>>>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user >>>>> support into DPDK vhost library >>>>> >>>>> Hi all: >>>>> We are implementing qemu official vhost-user interface into DPDK vhost >>>> library, so there would be two coexisting implementations for user space >>>> vhost backend. >>>>> Pro and cons in my mind: >>>>> Existing solution: >>>>> Pros: works with qemu version before 2.1; Cons: depends on eventfd >>>> proxy kernel module and extra maintenance effort Qemu vhost-user: >>>>> Pros: qemu official us-vhost interface; Cons: only available after >>>> qemu 2.1 >>>>> BR. >>>>> huawei
Hi Ouyang, (2014/08/27 15:00), Ouyang, Changchun wrote: > Yes, it doesn't matter which one is faster for virtio device creation > and destroy, as it is not in data path. I agree with you. Thanks, Tetsuya >> Thanks, >> Tetsuya >> >> >>> Regards, >>> Changchun >>> >>>> -----Original Message----- >>>> From: Tetsuya.Mukawa [mailto:mukawa@igel.co.jp] >>>> Sent: Wednesday, August 27, 2014 12:39 PM >>>> To: Ouyang, Changchun; dev@dpdk.org >>>> Cc: Xie, Huawei; Katsuya MATSUBARA; nakajima.yoshihiro@lab.ntt.co.jp; >>>> Hitoshi Masutani >>>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user >>>> support into DPDK vhost library >>>> >>>> >>>> (2014/08/27 9:43), Ouyang, Changchun wrote: >>>>> Do we have performance comparison between both implementation? >>>> Hi Changchun, >>>> >>>> If DPDK applications are running on both guest and host side, the >>>> performance should be almost same, because while transmitting data >>>> virt queues are accessed by virtio-net PMD and libvhost. In libvhost, >>>> the existing vhost implementation and a vhost-user implementation >>>> will shares or uses same code to access virt queues. So I guess the >>>> performance will be almost same. >>>> >>>> Thanks, >>>> Tetsuya >>>> >>>> >>>>> Thanks >>>>> Changchun >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xie, Huawei >>>>> Sent: Tuesday, August 26, 2014 7:06 PM >>>>> To: dev@dpdk.org >>>>> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user >>>>> support into DPDK vhost library >>>>> >>>>> Hi all: >>>>> We are implementing qemu official vhost-user interface into DPDK >>>>> vhost >>>> library, so there would be two coexisting implementations for user >>>> space vhost backend. >>>>> Pro and cons in my mind: >>>>> Existing solution: >>>>> Pros: works with qemu version before 2.1; Cons: depends on eventfd >>>> proxy kernel module and extra maintenance effort Qemu vhost-user: >>>>> Pros: qemu official us-vhost interface; Cons: only available >> after >>>> qemu 2.1 >>>>> BR. >>>>> huawei
when will publish ?
On 2014/8/26 19:05, Xie, Huawei wrote:
> Hi all:
> We are implementing qemu official vhost-user interface into DPDK vhost library, so there would be two coexisting implementations for user space vhost backend.
> Pro and cons in my mind:
> Existing solution:
> Pros: works with qemu version before 2.1; Cons: depends on eventfd proxy kernel module and extra maintenance effort
> Qemu vhost-user:
> Pros: qemu official us-vhost interface; Cons: only available after qemu 2.1
>
> BR.
> huawei
>
>
Hi Haifeng:
Might be in the release after 1.8.
> -----Original Message-----
> From: Linhaifeng [mailto:haifeng.lin@huawei.com]
> Sent: Saturday, September 13, 2014 1:28 PM
> To: Xie, Huawei; dev@dpdk.org
> Subject: Re: [dpdk-dev] [RFC] lib/librte_vhost: qemu vhost-user support
> into DPDK vhost library
>
> when will publish ?
>
> On 2014/8/26 19:05, Xie, Huawei wrote:
> > Hi all:
> > We are implementing qemu official vhost-user interface into DPDK vhost
> library, so there would be two coexisting implementations for user space
> vhost backend.
> > Pro and cons in my mind:
> > Existing solution:
> > Pros: works with qemu version before 2.1; Cons: depends on eventfd
> proxy kernel module and extra maintenance effort
> > Qemu vhost-user:
> > Pros: qemu official us-vhost interface; Cons: only available
> after qemu 2.1
> >
> > BR.
> > huawei
> >
> >