Try with CLIB_LOG2_CACHE_LINE_BYTES=6? vlib_get_buffer_index() has changed since v1704. Are you able to try the tip of tree?
From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On Behalf Of Saxena, Nitin Sent: Wednesday, September 20, 2017 3:03 PM To: vpp-dev@lists.fd.io Cc: Narayana, Prasad Athreya <prasadathreya.naray...@cavium.com> Subject: Re: [vpp-dev] [vhost-user][armv8][v1704]: VPP crashes while giving IP to VM interface Hi, I further debugged this issue. It turns out that vlib_buffer_get_buffer_free_list (vlib_main_t * vm, vlib_buffer_t * b,u32 * index) returns corrupted fl (free list) pointer. This is happening because ((vlib_buffer_t *) b)->free_list_index in function vlib_get_buffer_free_list() is corrupt. ((vlib_buffert_t *)b)->free_list_index or infact b comes from vlib_get_buffer(). I am thinking that the (vlib_buffer_t *)b returned by vlib_get_buffer() is incorrect. vlib_get_buffer() return offset using vm->physmem_main. I tried running same scenario with dbg binaries as above issue was with release binaries. With debug binaries I saw SIGABRT raised due to assert in vlib_get_buffer_index() called by fill_free_list() function. always_inline u32 vlib_get_buffer_index (vlib_main_t * vm, void *p) { uword offset = vlib_physmem_offset_of (&vm->physmem_main, p); ASSERT ((offset % (1 << CLIB_LOG2_CACHE_LINE_BYTES)) == 0); return offset >> CLIB_LOG2_CACHE_LINE_BYTES; } So I feel some how in both the cases vm->physmem_main is not properly setup for my vhost-driver. Both issues (with release binary and debug binary) occur only when I assign IP address to interface inside VM1 and each time VPP host process crashes. Attached crash dump with debug binaries. I have attached crash dumps with release binaries in earlier mail. Any pointer will be helpful. Thanks, Nitin On 15-Sep-2017, at 7:33 PM, Saxena, Nitin <nitin.sax...@cavium.com<mailto:nitin.sax...@cavium.com>> wrote: Hi All, I am trying vhost-user configuration on Cavium's aarch64 SoC using VPP v1704. I mainly followed steps provided at following https://wiki.fd.io/view/VPP/Use_VPP_to_connect_VMs_Using_Vhost-User_Interface I am able to launch two VM's using qemu-system-aarch64. The host and guest kernel version is 4.12.9. I am also able to configure two virtual interface described in above documentation link. However as soon as I provide IP address to first VM interface using ifconfig orip addr add command, the vpp process on host crashes. I was watching "vppctl show_interface" where I saw one packet received by vpp at Virtual1 interface and after then I think vpp process crashed so vppctl got hang. I have attached gdb crash dump "gdb_crash_log.txt". I have also attached command I used to launch VM1 and VM2: vm1_launch.sh, vm2_launch.sh. Any pointers will be really helpful. Thanks, Nitin <bridge_setup_vswitch.sh><gdb_crash_log.txt><startup.conf><vm1_launch.sh><vm2_launch.sh>_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> https://lists.fd.io/mailman/listinfo/vpp-dev IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev