* [dpdk-users] seg fault in InterVM communication using virtio
@ 2017-02-20 10:30 Priyanka
2017-02-22 8:43 ` [dpdk-users] [dpdk-dev] " Yuanhan Liu
0 siblings, 1 reply; 10+ messages in thread
From: Priyanka @ 2017-02-20 10:30 UTC (permalink / raw)
To: users, dev; +Cc: mitaliyada
Hi All,
We have 2 VM running on qemu-kvm hypervisor. We have provided vNIC to
the VMs using macvtap device and virtio as the device model in bridge
mode. We are running DPDK applications (udp client and server) on the
VMs. We observe that the inter-VM communication is not happening using
drivers i.e igb_uio and uio_pci_generic. We were able to communicate
between the VMs properly using SRIOV. But we were not getting
performance as expected so we switched to virtio. But using virtio the
DPDK communication hangs after sending 128 packets. We also observe a
seg fault in the dmesg of the VM.
Please provide us some guideline to do the inter-VM communication using
virtio. Are we correct if we are using rte_eth_tx/rx_burst to send and
receive packets from the vNIC.
Thanks,
Priyanka
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-02-20 10:30 [dpdk-users] seg fault in InterVM communication using virtio Priyanka
@ 2017-02-22 8:43 ` Yuanhan Liu
2017-02-22 8:55 ` mitali
0 siblings, 1 reply; 10+ messages in thread
From: Yuanhan Liu @ 2017-02-22 8:43 UTC (permalink / raw)
To: Priyanka; +Cc: users, dev, mitaliyada
On Mon, Feb 20, 2017 at 04:00:12PM +0530, Priyanka wrote:
> Hi All,
>
> We have 2 VM running on qemu-kvm hypervisor. We have provided vNIC to the
> VMs using macvtap device and virtio as the device model in bridge mode. We
> are running DPDK applications (udp client and server) on the VMs. We observe
> that the inter-VM communication is not happening using drivers i.e igb_uio
> and uio_pci_generic. We were able to communicate between the VMs properly
> using SRIOV. But we were not getting performance as expected so we switched
> to virtio. But using virtio the DPDK communication hangs after sending 128
> packets. We also observe a seg fault in the dmesg of the VM.
>
> Please provide us some guideline to do the inter-VM communication using
> virtio. Are we correct if we are using rte_eth_tx/rx_burst to send and
> receive packets from the vNIC.
Would you provide more info, say how do you start the vm, and how do you
run the dpdk apps? Providing all the commands that could reproduce your
issue will be better.
--yliu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-02-22 8:43 ` [dpdk-users] [dpdk-dev] " Yuanhan Liu
@ 2017-02-22 8:55 ` mitali
2017-02-23 6:27 ` Yuanhan Liu
0 siblings, 1 reply; 10+ messages in thread
From: mitali @ 2017-02-22 8:55 UTC (permalink / raw)
To: Yuanhan Liu, Priyanka; +Cc: users, dev
Hi Yuanhan,
We are using virt-manager to start the VMs. We are attaching the image
which shows the vNIC setup for the VMs.
We have written our own dpdk application to send and receive UDP
packets. The command we are using is
*./build/app/dpdkapi -c 1 -- -p 1* where dpdkapi is our application.
Inside the application we are sending and receiving packets from vNIC
using rte_eth_tx_burst() and rte_eth_rx_burst().
At the sender side after 127 packets the application stops and we
observe a seg fault in dmesg. Using the print statements we observed
that it faults in rte_eth_tx_burst(). All the 127 were received at the
receiving VM.
Thanks,
Mitali
On Wednesday 22 February 2017 02:13 PM, Yuanhan Liu wrote:
> On Mon, Feb 20, 2017 at 04:00:12PM +0530, Priyanka wrote:
>> Hi All,
>>
>> We have 2 VM running on qemu-kvm hypervisor. We have provided vNIC to the
>> VMs using macvtap device and virtio as the device model in bridge mode. We
>> are running DPDK applications (udp client and server) on the VMs. We observe
>> that the inter-VM communication is not happening using drivers i.e igb_uio
>> and uio_pci_generic. We were able to communicate between the VMs properly
>> using SRIOV. But we were not getting performance as expected so we switched
>> to virtio. But using virtio the DPDK communication hangs after sending 128
>> packets. We also observe a seg fault in the dmesg of the VM.
>>
>> Please provide us some guideline to do the inter-VM communication using
>> virtio. Are we correct if we are using rte_eth_tx/rx_burst to send and
>> receive packets from the vNIC.
> Would you provide more info, say how do you start the vm, and how do you
> run the dpdk apps? Providing all the commands that could reproduce your
> issue will be better.
>
> --yliu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: VM_virtio.png
Type: image/png
Size: 149226 bytes
Desc: not available
URL: <http://dpdk.org/ml/archives/users/attachments/20170222/2dbaeb06/attachment.png>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-02-22 8:55 ` mitali
@ 2017-02-23 6:27 ` Yuanhan Liu
2017-03-01 13:50 ` mitali
2017-03-02 11:13 ` ppnaik
0 siblings, 2 replies; 10+ messages in thread
From: Yuanhan Liu @ 2017-02-23 6:27 UTC (permalink / raw)
To: mitali; +Cc: Priyanka, users, dev
On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:
> Hi Yuanhan,
>
> We are using virt-manager to start the VMs. We are attaching the image which
> shows the vNIC setup for the VMs.
>
> We have written our own dpdk application to send and receive UDP packets. The
> command we are using is
>
> ./build/app/dpdkapi -c 1 -- -p 1 where dpdkapi is our application.
>
> Inside the application we are sending and receiving packets from vNIC using
> rte_eth_tx_burst() and rte_eth_rx_burst().
>
> At the sender side after 127 packets the application stops and we observe a seg
> fault in dmesg. Using the print statements we observed that it faults in
> rte_eth_tx_burst(). All the 127 were received at the receiving VM.
Would you recompile dpdk with debug info enaled, which could be done by:
make ... EXTRA_CFLAGS='-g3 -O0'
And run it with gdb then dump the call stack?
--yliu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-02-23 6:27 ` Yuanhan Liu
@ 2017-03-01 13:50 ` mitali
2017-03-02 12:23 ` Yuanhan Liu
2017-03-02 11:13 ` ppnaik
1 sibling, 1 reply; 10+ messages in thread
From: mitali @ 2017-03-01 13:50 UTC (permalink / raw)
To: Yuanhan Liu; +Cc: Priyanka, users, dev
Hi,
We have some doubt regarding virtio front end. As we are running dpdk
application inside VM with virtio setup, do we need to use virtio
specific functions like virtio_recv_pkts() and virtio_xmit_pkts() to
receive and transmit packets, functions for port initialization like
virtio_dev_queue_setup()? If yes, we are unable to find any application
which uses these functions. Can you provide us some pointers on examples
which uses these functions.
Thanks,
Mitali
On Thursday 23 February 2017 11:57 AM, Yuanhan Liu wrote:
> On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:
>> Hi Yuanhan,
>>
>> We are using virt-manager to start the VMs. We are attaching the image which
>> shows the vNIC setup for the VMs.
>>
>> We have written our own dpdk application to send and receive UDP packets. The
>> command we are using is
>>
>> ./build/app/dpdkapi -c 1 -- -p 1 where dpdkapi is our application.
>>
>> Inside the application we are sending and receiving packets from vNIC using
>> rte_eth_tx_burst() and rte_eth_rx_burst().
>>
>> At the sender side after 127 packets the application stops and we observe a seg
>> fault in dmesg. Using the print statements we observed that it faults in
>> rte_eth_tx_burst(). All the 127 were received at the receiving VM.
> Would you recompile dpdk with debug info enaled, which could be done by:
>
> make ... EXTRA_CFLAGS='-g3 -O0'
>
> And run it with gdb then dump the call stack?
>
> --yliu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-02-23 6:27 ` Yuanhan Liu
2017-03-01 13:50 ` mitali
@ 2017-03-02 11:13 ` ppnaik
1 sibling, 0 replies; 10+ messages in thread
From: ppnaik @ 2017-03-02 11:13 UTC (permalink / raw)
To: Yuanhan Liu; +Cc: mitali, users, dev
Hi,
We have some doubt regarding virtio front end. As we are running dpdk
application inside VM with virtio setup, do we need to use virtio
specific functions like virtio_recv_pkts() and virtio_xmit_pkts() to
receive and transmit packets, functions for port initialization like
virtio_dev_queue_setup()? If yes, we are unable to find any application
which uses these functions. Can you provide us some pointers on examples
which uses these functions.
Thanks,
Priyanka
On 2017-02-23 11:57, Yuanhan Liu wrote:
> On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:
>> Hi Yuanhan,
>>
>> We are using virt-manager to start the VMs. We are attaching the
>> image which
>> shows the vNIC setup for the VMs.
>>
>> We have written our own dpdk application to send and receive UDP
>> packets. The
>> command we are using is
>>
>> ./build/app/dpdkapi -c 1 -- -p 1 where dpdkapi is our application.
>>
>> Inside the application we are sending and receiving packets from
>> vNIC using
>> rte_eth_tx_burst() and rte_eth_rx_burst().
>>
>> At the sender side after 127 packets the application stops and we
>> observe a seg
>> fault in dmesg. Using the print statements we observed that it
>> faults in
>> rte_eth_tx_burst(). All the 127 were received at the receiving VM.
>
> Would you recompile dpdk with debug info enaled, which could be done
> by:
>
> make ... EXTRA_CFLAGS='-g3 -O0'
>
> And run it with gdb then dump the call stack?
>
> --yliu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-03-01 13:50 ` mitali
@ 2017-03-02 12:23 ` Yuanhan Liu
2017-03-02 12:32 ` mitali
0 siblings, 1 reply; 10+ messages in thread
From: Yuanhan Liu @ 2017-03-02 12:23 UTC (permalink / raw)
To: mitali; +Cc: Priyanka, users, dev
On Wed, Mar 01, 2017 at 07:20:37PM +0530, mitali wrote:
> Hi,
>
> We have some doubt regarding virtio front end. As we are running dpdk
> application inside VM with virtio setup, do we need to use virtio specific
> functions like virtio_recv_pkts() and virtio_xmit_pkts() to receive and
> transmit packets, functions for port initialization like
> virtio_dev_queue_setup()? If yes, we are unable to find any application
> which uses these functions. Can you provide us some pointers on examples
> which uses these functions.
If you are running DPDK inside guest (with virtio), then the virtio is
yet another PMD, meaning you should program it with the normal DPDK
ethdev APIs, something like rte_eth_dev_configure, rte_eth_rx/tx_queue_setup,
etc.
--yliu
>
> Thanks,
> Mitali
>
> On Thursday 23 February 2017 11:57 AM, Yuanhan Liu wrote:
> >On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:
> >>Hi Yuanhan,
> >>
> >>We are using virt-manager to start the VMs. We are attaching the image which
> >>shows the vNIC setup for the VMs.
> >>
> >>We have written our own dpdk application to send and receive UDP packets. The
> >>command we are using is
> >>
> >>./build/app/dpdkapi -c 1 -- -p 1 where dpdkapi is our application.
> >>
> >>Inside the application we are sending and receiving packets from vNIC using
> >>rte_eth_tx_burst() and rte_eth_rx_burst().
> >>
> >>At the sender side after 127 packets the application stops and we observe a seg
> >>fault in dmesg. Using the print statements we observed that it faults in
> >>rte_eth_tx_burst(). All the 127 were received at the receiving VM.
> >Would you recompile dpdk with debug info enaled, which could be done by:
> >
> > make ... EXTRA_CFLAGS='-g3 -O0'
> >
> >And run it with gdb then dump the call stack?
> >
> > --yliu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-03-02 12:23 ` Yuanhan Liu
@ 2017-03-02 12:32 ` mitali
2017-03-02 12:59 ` Yuanhan Liu
0 siblings, 1 reply; 10+ messages in thread
From: mitali @ 2017-03-02 12:32 UTC (permalink / raw)
To: Yuanhan Liu; +Cc: Priyanka, users, dev
Hi,
Ok. But with other PMDs like igb, when we are providing sriov vf to VM
and running our client/server dpdk application then there is no issue in
communication between VMs.
As soon as we use virtio setup for VMs and running same dpdk
application, it stops after sending 127 packet and seg fault comes while
executing rte_eth_tx_burst(). We are still not clear why with virtio its
creating this issue but not with any other PMD.
Mitali
On Thursday 02 March 2017 05:53 PM, Yuanhan Liu wrote:
> On Wed, Mar 01, 2017 at 07:20:37PM +0530, mitali wrote:
>> Hi,
>>
>> We have some doubt regarding virtio front end. As we are running dpdk
>> application inside VM with virtio setup, do we need to use virtio specific
>> functions like virtio_recv_pkts() and virtio_xmit_pkts() to receive and
>> transmit packets, functions for port initialization like
>> virtio_dev_queue_setup()? If yes, we are unable to find any application
>> which uses these functions. Can you provide us some pointers on examples
>> which uses these functions.
> If you are running DPDK inside guest (with virtio), then the virtio is
> yet another PMD, meaning you should program it with the normal DPDK
> ethdev APIs, something like rte_eth_dev_configure, rte_eth_rx/tx_queue_setup,
> etc.
>
> --yliu
>> Thanks,
>> Mitali
>>
>> On Thursday 23 February 2017 11:57 AM, Yuanhan Liu wrote:
>>> On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:
>>>> Hi Yuanhan,
>>>>
>>>> We are using virt-manager to start the VMs. We are attaching the image which
>>>> shows the vNIC setup for the VMs.
>>>>
>>>> We have written our own dpdk application to send and receive UDP packets. The
>>>> command we are using is
>>>>
>>>> ./build/app/dpdkapi -c 1 -- -p 1 where dpdkapi is our application.
>>>>
>>>> Inside the application we are sending and receiving packets from vNIC using
>>>> rte_eth_tx_burst() and rte_eth_rx_burst().
>>>>
>>>> At the sender side after 127 packets the application stops and we observe a seg
>>>> fault in dmesg. Using the print statements we observed that it faults in
>>>> rte_eth_tx_burst(). All the 127 were received at the receiving VM.
>>> Would you recompile dpdk with debug info enaled, which could be done by:
>>>
>>> make ... EXTRA_CFLAGS='-g3 -O0'
>>>
>>> And run it with gdb then dump the call stack?
>>>
>>> --yliu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-03-02 12:32 ` mitali
@ 2017-03-02 12:59 ` Yuanhan Liu
2017-03-02 14:00 ` mitali
0 siblings, 1 reply; 10+ messages in thread
From: Yuanhan Liu @ 2017-03-02 12:59 UTC (permalink / raw)
To: mitali; +Cc: Priyanka, users, dev
On Thu, Mar 02, 2017 at 06:02:28PM +0530, mitali wrote:
> Hi,
>
> Ok. But with other PMDs like igb, when we are providing sriov vf to VM and
> running our client/server dpdk application then there is no issue in
> communication between VMs.
> As soon as we use virtio setup for VMs and running same dpdk application, it
> stops after sending 127 packet and seg fault comes while executing
> rte_eth_tx_burst(). We are still not clear why with virtio its creating this
> issue but not with any other PMD.
No idea. You don't provide any further details. Please, would you just
enable the debug info, rebuild, run it with gdb and then dump the call
stack after crash?
--yliu
>
> Mitali
>
> On Thursday 02 March 2017 05:53 PM, Yuanhan Liu wrote:
> >On Wed, Mar 01, 2017 at 07:20:37PM +0530, mitali wrote:
> >>Hi,
> >>
> >>We have some doubt regarding virtio front end. As we are running dpdk
> >>application inside VM with virtio setup, do we need to use virtio specific
> >>functions like virtio_recv_pkts() and virtio_xmit_pkts() to receive and
> >>transmit packets, functions for port initialization like
> >>virtio_dev_queue_setup()? If yes, we are unable to find any application
> >>which uses these functions. Can you provide us some pointers on examples
> >>which uses these functions.
> >If you are running DPDK inside guest (with virtio), then the virtio is
> >yet another PMD, meaning you should program it with the normal DPDK
> >ethdev APIs, something like rte_eth_dev_configure, rte_eth_rx/tx_queue_setup,
> >etc.
> >
> > --yliu
> >>Thanks,
> >>Mitali
> >>
> >>On Thursday 23 February 2017 11:57 AM, Yuanhan Liu wrote:
> >>>On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:
> >>>>Hi Yuanhan,
> >>>>
> >>>>We are using virt-manager to start the VMs. We are attaching the image which
> >>>>shows the vNIC setup for the VMs.
> >>>>
> >>>>We have written our own dpdk application to send and receive UDP packets. The
> >>>>command we are using is
> >>>>
> >>>>./build/app/dpdkapi -c 1 -- -p 1 where dpdkapi is our application.
> >>>>
> >>>>Inside the application we are sending and receiving packets from vNIC using
> >>>>rte_eth_tx_burst() and rte_eth_rx_burst().
> >>>>
> >>>>At the sender side after 127 packets the application stops and we observe a seg
> >>>>fault in dmesg. Using the print statements we observed that it faults in
> >>>>rte_eth_tx_burst(). All the 127 were received at the receiving VM.
> >>>Would you recompile dpdk with debug info enaled, which could be done by:
> >>>
> >>> make ... EXTRA_CFLAGS='-g3 -O0'
> >>>
> >>>And run it with gdb then dump the call stack?
> >>>
> >>> --yliu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-users] [dpdk-dev] seg fault in InterVM communication using virtio
2017-03-02 12:59 ` Yuanhan Liu
@ 2017-03-02 14:00 ` mitali
0 siblings, 0 replies; 10+ messages in thread
From: mitali @ 2017-03-02 14:00 UTC (permalink / raw)
To: Yuanhan Liu; +Cc: Priyanka, users, dev
Hi,
I rebuild dpdk with debug enabled and running the same dpdk application.
Please go through the attached images showing the error as well as call
stack.
Mitali
On Thursday 02 March 2017 06:29 PM, Yuanhan Liu wrote:
> On Thu, Mar 02, 2017 at 06:02:28PM +0530, mitali wrote:
>> Hi,
>>
>> Ok. But with other PMDs like igb, when we are providing sriov vf to VM and
>> running our client/server dpdk application then there is no issue in
>> communication between VMs.
>> As soon as we use virtio setup for VMs and running same dpdk application, it
>> stops after sending 127 packet and seg fault comes while executing
>> rte_eth_tx_burst(). We are still not clear why with virtio its creating this
>> issue but not with any other PMD.
> No idea. You don't provide any further details. Please, would you just
> enable the debug info, rebuild, run it with gdb and then dump the call
> stack after crash?
>
> --yliu
>> Mitali
>>
>> On Thursday 02 March 2017 05:53 PM, Yuanhan Liu wrote:
>>> On Wed, Mar 01, 2017 at 07:20:37PM +0530, mitali wrote:
>>>> Hi,
>>>>
>>>> We have some doubt regarding virtio front end. As we are running dpdk
>>>> application inside VM with virtio setup, do we need to use virtio specific
>>>> functions like virtio_recv_pkts() and virtio_xmit_pkts() to receive and
>>>> transmit packets, functions for port initialization like
>>>> virtio_dev_queue_setup()? If yes, we are unable to find any application
>>>> which uses these functions. Can you provide us some pointers on examples
>>>> which uses these functions.
>>> If you are running DPDK inside guest (with virtio), then the virtio is
>>> yet another PMD, meaning you should program it with the normal DPDK
>>> ethdev APIs, something like rte_eth_dev_configure, rte_eth_rx/tx_queue_setup,
>>> etc.
>>>
>>> --yliu
>>>> Thanks,
>>>> Mitali
>>>>
>>>> On Thursday 23 February 2017 11:57 AM, Yuanhan Liu wrote:
>>>>> On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:
>>>>>> Hi Yuanhan,
>>>>>>
>>>>>> We are using virt-manager to start the VMs. We are attaching the image which
>>>>>> shows the vNIC setup for the VMs.
>>>>>>
>>>>>> We have written our own dpdk application to send and receive UDP packets. The
>>>>>> command we are using is
>>>>>>
>>>>>> ./build/app/dpdkapi -c 1 -- -p 1 where dpdkapi is our application.
>>>>>>
>>>>>> Inside the application we are sending and receiving packets from vNIC using
>>>>>> rte_eth_tx_burst() and rte_eth_rx_burst().
>>>>>>
>>>>>> At the sender side after 127 packets the application stops and we observe a seg
>>>>>> fault in dmesg. Using the print statements we observed that it faults in
>>>>>> rte_eth_tx_burst(). All the 127 were received at the receiving VM.
>>>>> Would you recompile dpdk with debug info enaled, which could be done by:
>>>>>
>>>>> make ... EXTRA_CFLAGS='-g3 -O0'
>>>>>
>>>>> And run it with gdb then dump the call stack?
>>>>>
>>>>> --yliu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdb_error_call_stack.png
Type: image/png
Size: 213966 bytes
Desc: not available
URL: <http://dpdk.org/ml/archives/users/attachments/20170302/20fd6b7a/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vm_gdb_error.png
Type: image/png
Size: 304846 bytes
Desc: not available
URL: <http://dpdk.org/ml/archives/users/attachments/20170302/20fd6b7a/attachment-0001.png>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-03-02 14:02 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-20 10:30 [dpdk-users] seg fault in InterVM communication using virtio Priyanka
2017-02-22 8:43 ` [dpdk-users] [dpdk-dev] " Yuanhan Liu
2017-02-22 8:55 ` mitali
2017-02-23 6:27 ` Yuanhan Liu
2017-03-01 13:50 ` mitali
2017-03-02 12:23 ` Yuanhan Liu
2017-03-02 12:32 ` mitali
2017-03-02 12:59 ` Yuanhan Liu
2017-03-02 14:00 ` mitali
2017-03-02 11:13 ` ppnaik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).