On 5/22/2023 10:55 AM, Ruifeng Wang wrote:
-----Original Message-----
From: Burakov, Anatoly <[email protected]>
Sent: Monday, May 22, 2023 5:24 PM
To: Ruifeng Wang <[email protected]>; [email protected]
Cc: [email protected]; [email protected]; [email protected]; 
[email protected]; Justin
He <[email protected]>; Honnappa Nagarahalli <[email protected]>; nd
<[email protected]>
Subject: Re: [PATCH] test/mbuf: fix the forked process segment fault

On 5/22/2023 7:01 AM, Ruifeng Wang wrote:
Access of any memory in the hugepage shared file-backed area will
trigger an unexpected forked child process segment fault. The root
cause is DPDK doesn't support fork model [1] (calling rte_eal_init() before 
fork()).
Forked child process can't be treated as a secondary process.

Hence fix it by avoiding fork and doing verification in the main process.

[1] https://mails.dpdk.org/archives/dev/2018-July/108106.html

Fixes: af75078fece3 ("first public release")
Cc: [email protected]

Signed-off-by: Jia He <[email protected]>
Signed-off-by: Ruifeng Wang <[email protected]>
---

Would this be something that a secondary process-based test could test?
That's how we test rte_panic() and other calls.

This case validates mbuf. IMO there is no need to do validation in a secondary 
process.
Unit test for rte_panic() also uses fork() and could have the same issue.


In that case, rte_panic() test should be fixed as well.

My concern is that ideally, we shouldn't intentionally crash the test app if something goes wrong, and calling rte_panic() accomplishes just that - which is why I suggested running them in secondary processes instead, so that any call into rte_panic happens inside a secondary process, and the main test process doesn't crash even if the test has failed.

--
Thanks,
Anatoly

Reply via email to