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

Reply via email to