From: Stephen Hemminger <stephen@networkplumber.org>
To: "Varghese, Vipin" <Vipin.Varghese@amd.com>
Cc: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk>,
"thomas@monjalon.net" <thomas@monjalon.net>,
"Yigit, Ferruh" <Ferruh.Yigit@amd.com>,
"andrew.rybchenko@oktetlabs.ru" <andrew.rybchenko@oktetlabs.ru>,
"dev@dpdk.org" <dev@dpdk.org>,
"stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [PATCH v7] app/testpmd: monitor state of primary process when using secondary
Date: Fri, 8 Aug 2025 09:10:42 -0700 [thread overview]
Message-ID: <20250808091042.74218aa2@hermes.local> (raw)
In-Reply-To: <PH7PR12MB8596A4A5CCC22A6B1584AE14822FA@PH7PR12MB8596.namprd12.prod.outlook.com>
On Fri, 8 Aug 2025 03:23:37 +0000
"Varghese, Vipin" <Vipin.Varghese@amd.com> wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> Hi Khadem,
>
> Thank you for sharing but few thoughts here
>
> > -----Original Message-----
> > From: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk>
> > Sent: Monday, August 4, 2025 5:03 PM
> > To: stephen@networkplumber.org; thomas@monjalon.net; Yigit, Ferruh
> > <Ferruh.Yigit@amd.com>; andrew.rybchenko@oktetlabs.ru
> > Cc: dev@dpdk.org; stable@dpdk.org; Khadem Ullah
> > <14pwcse1224@uetpeshawar.edu.pk>
> > Subject: [PATCH v7] app/testpmd: monitor state of primary process when using
> > secondary
> >
> > Caution: This message originated from an External Source. Use proper caution
> > when opening attachments, clicking links, or responding.
> >
> >
> > In secondary processes, accessing device after primary has exited will cause
> > crash.
> >
> > This patch adds a mechanism in testpmd to monitor the primary process from the
> > secondary process.
> > When primary process exits it forces secondary to exit avoiding issues from
> > cleanup logic.
> >
> > Fixes: a550baf24af9 ('app/testpmd: support multi-process')
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk>
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---
> > app/test-pmd/testpmd.c | 47
> > +++++++++++++++++++++++++++++++++++++++++-
> > 1 file changed, 46 insertions(+), 1 deletion(-)
> >
> > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> > bb88555328..b7affa6da9 100644
> > --- a/app/test-pmd/testpmd.c
> > +++ b/app/test-pmd/testpmd.c
> > @@ -101,13 +101,15 @@
> > uint16_t verbose_level = 0; /**< Silent by default. */ int testpmd_logtype; /**< Log
> > type for testpmd logs */
> >
> > +/* Maximum delay for exiting after primary process. */ #define
> > +MONITOR_INTERVAL (500 * 1000)
> > +
> > /* use main core for command line ? */
> > uint8_t interactive = 0;
> > uint8_t auto_start = 0;
> > uint8_t tx_first;
> > char cmdline_filename[PATH_MAX] = {0};
> > bool echo_cmdline_file;
> > -
> > /*
> > * NUMA support configuration.
> > * When set, the NUMA support attempts to dispatch the allocation of the @@ -
> > 4332,6 +4334,38 @@ signal_handler(int signum __rte_unused)
> > prompt_exit();
> > }
> >
> > +#ifndef RTE_EXEC_ENV_WINDOWS
> > +/* Alarm signal handler, used to check that primary process */ static
> > +void monitor_primary(void *arg __rte_unused) {
> > + if (rte_eal_primary_proc_alive(NULL)) {
> > + rte_eal_alarm_set(MONITOR_INTERVAL, monitor_primary, NULL);
> > + } else {
> > + /*
> > + * If primary process exits, then all the device information
> > + * is no longer valid. Calling any cleanup code is going to
> > + * run into use after free.
> > + */
> > + fprintf(stderr, "\nPrimary process is no longer active, exiting...\n");
> > + exit(EXIT_FAILURE);
>
> Indeed, the idea for monitoring and finding if primary is still alive.
> When we exit, should not we need graceful exit? If yes, we can not simply use `exit`, but need to use `eal_cleanup`.
>
> Hence I request for rework with cleanup.
>
> NACK: Vipin Varghese <Vipin.Varghese@amd.com>
Eal_cleanup will reference data that has already been freed by the primary.
That is the problem.
next prev parent reply other threads:[~2025-08-08 16:10 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-22 11:54 [PATCH] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Khadem Ullah
2025-07-22 13:39 ` Stephen Hemminger
2025-07-22 14:30 ` Khadem Ullah
2025-07-22 15:42 ` Stephen Hemminger
2025-07-22 16:01 ` Khadem Ullah
2025-07-22 16:13 ` Bruce Richardson
2025-07-22 17:04 ` Khadem Ullah
2025-07-22 17:38 ` Stephen Hemminger
2025-07-22 17:53 ` Khadem Ullah
2025-07-22 18:21 ` Stephen Hemminger
2025-07-22 19:03 ` Khadem Ullah
2025-07-22 19:05 ` Ivan Malov
2025-07-22 22:28 ` Stephen Hemminger
2025-07-23 4:29 ` Khadem Ullah
2025-07-23 4:50 ` [PATCH v2] " Khadem Ullah
2025-07-23 12:19 ` Khadem Ullah
2025-07-23 13:13 ` Khadem Ullah
2025-07-23 13:24 ` Ivan Malov
2025-07-23 13:26 ` Khadem Ullah
2025-07-23 13:31 ` Ivan Malov
2025-07-23 13:10 ` [PATCH] [PATCH v3] " Khadem Ullah
2025-07-23 13:19 ` Ivan Malov
2025-07-23 13:34 ` Khadem Ullah
2025-07-23 14:22 ` Stephen Hemminger
2025-07-24 5:49 ` Khadem Ullah
2025-07-25 13:00 ` Khadem Ullah
2025-07-25 12:55 ` [PATCH] [PATCH v4] " Khadem Ullah
2025-07-28 21:45 ` Stephen Hemminger
2025-07-29 5:42 ` Khadem Ullah
2025-07-29 21:34 ` Stephen Hemminger
2025-07-30 5:07 ` Khadem Ullah
2025-08-08 3:49 ` Varghese, Vipin
2025-08-08 15:32 ` Stephen Hemminger
2025-08-11 10:19 ` Varghese, Vipin
2025-08-11 10:28 ` Khadem Ullah
2025-08-11 10:39 ` Varghese, Vipin
2025-07-29 6:39 ` [PATCH] app/testpmd: fix segfault in secondary process by monitoring primary Khadem Ullah
2025-07-29 6:39 ` [PATCH] [PATCH v4] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Khadem Ullah
2025-07-29 6:39 ` [PATCH] [PATCH v5] app/testpmd: fix segfault in secondary process by monitoring primary Khadem Ullah
2025-07-29 14:48 ` Stephen Hemminger
2025-07-29 21:48 ` Stephen Hemminger
2025-07-30 5:24 ` Khadem Ullah
2025-08-08 3:44 ` Varghese, Vipin
2025-08-08 16:17 ` Stephen Hemminger
2025-08-11 10:23 ` Varghese, Vipin
2025-08-11 10:27 ` Khadem Ullah
2025-07-30 5:56 ` [PATCH] app/testpmd: monitor state of primary process when using secondary Khadem Ullah
2025-07-30 6:08 ` [PATCH v6] " Khadem Ullah
2025-08-01 22:50 ` Stephen Hemminger
2025-08-04 7:54 ` [PATCH v7] " Khadem Ullah
2025-08-04 11:33 ` Khadem Ullah
2025-08-04 15:44 ` Stephen Hemminger
2025-08-05 0:50 ` fengchengwen
2025-08-08 3:23 ` Varghese, Vipin
2025-08-08 5:44 ` Khadem Ullah
2025-08-08 10:59 ` Varghese, Vipin
2025-08-08 11:49 ` Khadem Ullah
2025-08-08 16:49 ` Stephen Hemminger
2025-08-08 17:01 ` Khadem Ullah
2025-08-11 10:37 ` Varghese, Vipin
2025-08-11 11:14 ` Khadem Ullah
2025-08-11 11:34 ` Varghese, Vipin
2025-08-11 11:55 ` Khadem Ullah
2025-08-11 14:44 ` Varghese, Vipin
2025-08-11 17:11 ` Khadem Ullah
2025-08-11 10:30 ` Varghese, Vipin
2025-08-11 10:51 ` Khadem Ullah
2025-08-11 11:07 ` Varghese, Vipin
2025-08-08 15:28 ` Stephen Hemminger
2025-08-08 15:50 ` Khadem Ullah
2025-08-08 16:10 ` Stephen Hemminger [this message]
2025-09-15 8:10 ` [PATCH v3] app/testpmd: stop secondary process fwd_lcores during primary teardown Khadem Ullah
2025-09-15 9:29 ` Khadem Ullah
2025-09-15 10:23 ` Khadem Ullah
2025-09-15 11:25 ` Khadem Ullah
2025-09-15 15:43 ` Stephen Hemminger
2025-09-17 11:36 ` [PATCH v4] " Khadem Ullah
2025-09-17 20:54 ` Stephen Hemminger
2025-09-18 6:47 ` [PATCH v5] " Khadem Ullah
2025-09-18 15:08 ` Stephen Hemminger
2025-09-18 16:45 ` Stephen Hemminger
2025-07-23 14:21 ` [PATCH v2] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250808091042.74218aa2@hermes.local \
--to=stephen@networkplumber.org \
--cc=14pwcse1224@uetpeshawar.edu.pk \
--cc=Ferruh.Yigit@amd.com \
--cc=Vipin.Varghese@amd.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=stable@dpdk.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.