[dpdk-users] segmentation fault after using rte_malloc()

曾懷恩 the at csie.io
Tue Apr 23 19:34:06 CEST 2019


Hi Keith,

Yes I ran this program as root 

However I ran it with DPDK 18.11 release.

I will try 19.05 later.

Besides, my cpu is E5-2650 v4.
NICs are Intel x520 DA2 and Mellanox connectx-3

thank you for reply

Best Regards,




> Wiles, Keith <keith.wiles at intel.com> 於 2019年4月22日 下午9:09 寫道:
> 
> 
> 
>> On Apr 22, 2019, at 1:43 AM, 曾懷恩 <the at csie.io> wrote:
>> 
>> Hi Wiles,
>> 
>> here is my sample code with just doing rte_eal_init() and rte_malloc() .
>> 
>> 
>> 
> 
> I tried the attached code and it works on my machine with something close to DPDK 19.05 release.
> 
> I only use 2 Meg pages, but I assumed it would not make any difference.
> 
> Did you run this example as root?
>> 
>> And my start eal cmdline option is ./build/test -l 0-1 -n 4
>> 
>> Thank you very much for your reply
>>> Wiles, Keith <keith.wiles at intel.com> 於 2019年4月21日 上午4:29 寫道:
>>> 
>>> 
>>> 
>>> Sent from my iPhone
>>> 
>>>> On Apr 18, 2019, at 11:31 PM, 曾懷恩 <the at csie.io> wrote:
>>>> 
>>>> HI, Stephen,
>>>> 
>>>> Yes, I set huge page in  default_hugepagesz=1G hugepagesz=1G hugepages=4
>>>> 
>>>> and also did rte_eal_init at the beginning of my program.
>>>> 
>>>> thanks for reply.
>>> 
>>> Is the core doing the rte_malloc one of the cores listed in the core list on the command line.  In other words the pthread doing the allocation should be the master lcore or one of the slave lcores.
>>> 
>>> Also I seems like a very simple test case, can you do the rte_eal_init() and then do the allocation as your sample code looks and then exit? Does this cause a segfault?
>>>> 
>>>> 
>>>>> Stephen Hemminger <stephen at networkplumber.org> 於 2019年4月19日 上午10:59 寫道:
>>>>> 
>>>>> On Fri, 19 Apr 2019 09:11:05 +0800
>>>>> 曾懷恩 <the at csie.io> wrote:
>>>>> 
>>>>>>  Hi all, 
>>>>>> 
>>>>>>  i have 1 problem while using rte_malloc
>>>>>> 
>>>>>>  Every time I use this function and use the memory it returns, it shows segmentation fault(core dump)
>>>>>> 
>>>>>>  Is something wrong?
>>>>>> 
>>>>>>  thanks.
>>>>>> 
>>>>>> 
>>>>>>  rte init …
>>>>>>  ………...
>>>>>>  unsigned char *str1;
>>>>>>  printf("str1 addr = %x\n", str1);
>>>>>>  str1 = rte_malloc(NULL,2,RTE_CACHE_LINE_SIZE);
>>>>>>  printf("str1 addr = %x\n", str1);
>>>>>>  str1[0] = 'a’; //segmentation fault here
>>>>>>  str1[1] = '\0';
>>>>> Do you have huge pages?
>>>>> Did you do eal_init?
>>>> 
>> 
>> <test.c><Makefile>
> 
> Regards,
> Keith
> 


More information about the users mailing list