Re: seg fault in InterVM communication using virtio
From: mitali <hidden>
Date: 2017-03-02 14:02:47
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:quoted
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? --yliuquoted
Mitali On Thursday 02 March 2017 05:53 PM, Yuanhan Liu wrote:quoted
On Wed, Mar 01, 2017 at 07:20:37PM +0530, mitali wrote:quoted
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. --yliuquoted
Thanks, Mitali On Thursday 23 February 2017 11:57 AM, Yuanhan Liu wrote:quoted
On Wed, Feb 22, 2017 at 02:25:29PM +0530, mitali wrote:quoted
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
Attachments
- gdb_error_call_stack.png [image/png] 213966 bytes
- vm_gdb_error.png [image/png] 304846 bytes