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