[dpdk-dev] Valgrind and DPDK - does it work ?

Morten Jagd Christensen mjc at xenanetworks.com
Tue Sep 16 13:42:47 CEST 2014


Hi all,

 

I am interested to hear if anyone here have had any luck running Valgrind on
DPDK applications?

 

I tried to use this some time ago, but Valgrind does not seem to work
together with hugepages – or 

I am doing something wrong ;-)

 

I would like to hear form anyone having success or failure with Valgrind and
DPDK.

 

Best regards

 

/Morten

 

This is an extract of a printout from running my application normally

>sudo ./build/l47app –c 0xffffffff –n 4

EAL: Detected a total of 32 lcores

EAL: Setting up memory...

EAL: Ask a virtual area of 0x280000000 bytes

EAL: Virtual area found at 0x7f7b80000000 (size = 0x280000000)

EAL: Ask a virtual area of 0x280000000 bytes

EAL: Virtual area found at 0x7f78c0000000 (size = 0x280000000)

EAL: Requesting 10 pages of size 1024MB from socket 0

EAL: Requesting 10 pages of size 1024MB from socket 1

 

This is what I get when running Valgrind

>sudo valgrind --leak-check=full ./build/l47server

EAL: Detected a total of 32 lcores

EAL: Setting up memory...

EAL: map_all_hugepages(): mmap failed: Invalid argument

EAL: Failed to mmap 1024 MB hugepages

 

And here is an strace of the above command 

rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE KILL SEGV STOP], NULL, 8) = 0

gettid()                                = 29696

read(1028, "C", 1)                      = 1

close(6)                                = 0

gettid()                                = 29696

write(1029, "D", 1)                     = 1

rt_sigprocmask(SIG_SETMASK, [], ~[ILL TRAP BUS FPE KILL SEGV STOP], 8) = 0

write(1, "EAL: Setting up memory...\n", 26EAL: Setting up memory...

) = 26

rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE KILL SEGV STOP], NULL, 8) = 0

gettid()                                = 29696

read(1028, "D", 1)                      = 1

mmap(0x805b51000, 16384, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 0, 0) = 0x805b51000

getpid()                                = 29696

getpid()                                = 29696

gettid()                                = 29696

write(1029, "E", 1)                     = 1

rt_sigprocmask(SIG_SETMASK, [], ~[ILL TRAP BUS FPE KILL SEGV STOP], 8) = 0

open("/dev/hugepages/rtemap_0", O_RDWR|O_CREAT, 0755) = 6

rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE KILL SEGV STOP], NULL, 8) = 0

gettid()                                = 29696

read(1028, "E", 1)                      = 1

mmap(0x39fe0000, 1073741824, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, 6,
0) = -1 EINVAL (Invalid argument)

gettid()                                = 29696

write(1029, "F", 1)                     = 1

rt_sigprocmask(SIG_SETMASK, [], ~[ILL TRAP BUS FPE KILL SEGV STOP], 8) = 0

write(1, "EAL: map_all_hugepages(): mmap f"..., 56EAL: map_all_hugepages():
mmap failed: Invalid argument

) = 56

rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE KILL SEGV STOP], NULL, 8) = 0

gettid()                                = 29696

read(1028, "F", 1)                      = 1

close(6)                                = 0

gettid()                                = 29696

write(1029, "G", 1)                     = 1

rt_sigprocmask(SIG_SETMASK, [], ~[ILL TRAP BUS FPE KILL SEGV STOP], 8) = 0

write(1, "EAL: Failed to mmap 1024 MB huge"..., 38EAL: Failed to mmap 1024
MB hugepages

 

 

Morten Jagd Christensen
VP Product Management
Xena Networks
Læderstræde 34, 3rd Floor
1201 Copenhagen K
Denmark

Ph: (+45) 51 54 51 87
 <mailto:mjc at xenanetworks.com> mjc at xenanetworks.com

 



More information about the dev mailing list