Thread (23 messages) 23 messages, 9 authors, 2021-07-06

Re: [dpdk-dev] [RFC v2] porting AddressSanitizer feature to DPDK

From: Lin, Xueqin <hidden>
Date: 2021-07-01 06:48:19

-----Original Message-----
From: David Marchand <redacted>
Sent: Wednesday, June 30, 2021 4:34 PM
To: Burakov, Anatoly <redacted>
Cc: Lin, Xueqin <redacted>; Jerin Jacob <redacted>;
Peng, ZhihongX [off-list ref]; Ananyev, Konstantin
[off-list ref]; Stephen Hemminger
[off-list ref]; dpdk-dev [off-list ref]
Subject: Re: [dpdk-dev] [RFC v2] porting AddressSanitizer feature to DPDK

On Mon, Jun 28, 2021 at 4:22 PM Burakov, Anatoly
[off-list ref] wrote:
quoted
On 18-Jun-21 10:04 AM, David Marchand wrote:
quoted
On Fri, Jun 18, 2021 at 9:49 AM Lin, Xueqin [off-list ref] wrote:
quoted
quoted
quoted
Suggest listing demo code and tool capture information for user
to try if
tool works, also add this part into doc.
quoted
quoted
# Also, Please update the release note for this feature.
Sure, we can update the release note if code merge.
Probably you can send v1 version next i.e change the RFC status to
get merged.
Sure, we will send v1 patch if no obvious objection for that, hope patch
could receive some ACKs and could success to merge, thanks.
quoted
quoted
How did you test this work?

UNH recently started testing with ASAN and it reveals leaks just in
the unit test.

Merging these annotations will help catch more issues.
But users will hit the current issues that we must fix first.
As far as i can tell, the regular build is not affected by this patch,
so no issues will be hit until someone actually runs the test. IMO
it's better to merge it early to catch more issues than to gate the
feature on the condition that we fix all bugs unrelated to this feature first.
- This is affecting more than unit tests.

$ meson setup build-asan -Db_lundef=false -Db_sanitize=address ...

$ ninja-build -C build-asan
ninja: Entering directory `build-asan'
[2801/2801] Linking target app/test/dpdk-test

$ ./devtools/test-null.sh build-asan
EAL: Detected 28 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Detected static linkage of DPDK
EAL: WARNING! Base virtual address hint (0x100005000 !=
0x7fb31c632000) not respected!
EAL:    This may cause issues with mapping memory into secondary processes
EAL: Multi-process socket /run/user/1001/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: VFIO support initialized
EAL: WARNING! Base virtual address hint (0x10000b000 !=
0x7fb31c3b2000) not respected!
EAL:    This may cause issues with mapping memory into secondary processes
EAL: WARNING! Base virtual address hint (0x100011000 !=
0x7fb31c375000) not respected!
EAL:    This may cause issues with mapping memory into secondary processes
EAL: WARNING! Base virtual address hint (0x100017000 !=
0x7fb319bfe000) not respected!
EAL:    This may cause issues with mapping memory into secondary processes
Interactive-mode selected
Auto-start selected
[...]
Bye...
EAL: recvmsg failed, Bad file descriptor
EAL: recvmsg failed, Bad file descriptor
EAL: recvmsg failed, Bad file descriptor
EAL: recvmsg failed, Bad file descriptor
EAL: recvmsg failed, Bad file descriptor
EAL: recvmsg failed, Bad file descriptor

Infinite loop of those messages.
In the thread with Owen, we also noticed what looks like a deadlock with
multiprocess when ASAN is enabled.


- Adding a new feature on top of something that does not work yet seems at
best premature to me.
This patch does not seem that much tested, since those issues above are
fairly easy to catch.
Great that you have tried the patch and capture the issue. It is DPDK issue not this patch issue.
We also captured this type issues and selected one, reported in internal system JARA and bugzilla in May. 
Pls check https://bugs.dpdk.org/show_bug.cgi?id=722 for detail, some developers are analysis this issue in JIRA but not resolved so far, Anatoly should also know this.
It is DPDK issue, not this patch issue, it doesn't mean we not do much test. 
We put all of thousands of regression cases as case list for this patch test, some issues still are tracking. 
Anyway, the memory allocator is your stuff, so your call.

Prefix for the title of such a patch should be mem:


--
David Marchand
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help