23/05/2023 12:12, Burakov, Anatoly: > On 5/23/2023 4:45 AM, Ruifeng Wang wrote: > >> -----Original Message----- > >> From: Burakov, Anatoly <anatoly.bura...@intel.com> > >> Sent: Monday, May 22, 2023 6:19 PM > >> To: Ruifeng Wang <ruifeng.w...@arm.com>; olivier.m...@6wind.com > >> Cc: dev@dpdk.org; sta...@dpdk.org; tho...@monjalon.net; > >> step...@networkplumber.org; Justin > >> He <justin...@arm.com>; Honnappa Nagarahalli > >> <honnappa.nagaraha...@arm.com>; nd > >> <n...@arm.com> > >> Subject: Re: [PATCH] test/mbuf: fix the forked process segment fault > >> > >> On 5/22/2023 10:55 AM, Ruifeng Wang wrote: > >>>> -----Original Message----- > >>>> From: Burakov, Anatoly <anatoly.bura...@intel.com> > >>>> Sent: Monday, May 22, 2023 5:24 PM > >>>> To: Ruifeng Wang <ruifeng.w...@arm.com>; olivier.m...@6wind.com > >>>> Cc: dev@dpdk.org; sta...@dpdk.org; tho...@monjalon.net; > >>>> step...@networkplumber.org; Justin He <justin...@arm.com>; Honnappa > >>>> Nagarahalli <honnappa.nagaraha...@arm.com>; nd <n...@arm.com> > >>>> 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: sta...@dpdk.org > >>>>> > >>>>> Signed-off-by: Jia He <justin...@arm.com> > >>>>> Signed-off-by: Ruifeng Wang <ruifeng.w...@arm.com> > >>>>> --- > >>>> > >>>> 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. > > > > Agree that intentionally crashing the test app is bad. > > In this patch, verification of mbuf is changed to use another API without > > rte_panic(). > > Then the verification can be done directly in the primary. And the > > indirectness of > > using a secondary process is removed. Because verification will not crash > > the process. > > > > Oh, > > My apologies, I did not notice that. In that case, > > Acked-by: Anatoly Burakov <anatoly.bura...@intel.com>
Applied, thanks.