[dpdk-dev] [PATCH v8] app/pdump: add pudmp exits with primary support
Thomas Monjalon
thomas at monjalon.net
Wed May 8 12:22:30 CEST 2019
About the title, you can write: "app/pdump: exit with primary process"
08/05/2019 11:37, Suanming. Mou:
> On 2019/5/8 16:04, Thomas Monjalon wrote:
> > Hi,
> >
> > I try to suggest some rewording below.
>
> Thanks very much.
>
> First, let me explain what is the patch work for.
>
> As we all know, the pdump tool works as the secondary process.
>
> When the primary process exits, if the secondary process keeps running
> there, it will make the primary process can't start up again.
>
> Since the ex-fbarry files are still attached by the secondary process
> pdump, the 'new' primary process can't get these files locked.
>
> The patch is just to set up an alarm which runs every 0.5s periodically
> to monitor the primary process in the pdump.
>
> Once the primary exits, so will the pdump.
If you feel some explanation is missing,
feel free to add it in the commit log.
> > 03/05/2019 07:48, Suanming. Mou:
> >> +/* Enough to set it to 500ms for exiting. */
> >> +#define MONITOR_INTERVAL (500 * 1000)
> > What is "enough"?
>
> The 'enough' here means it will be fine to make the alarm to run
> periodically in every 500ms to check if the primary process exits.
>
> (Yes, someone can also suggest, "Well , I think xxxms will be better.")
So it looks like you reply to a ghost in the code comment :)
> > What is "it"?
>
> So, the "it" here means the MONITOR_INTERVAL...
>
> > What is the relation between MONITOR_INTERVAL and exiting?
>
> Once the primary exits, as the alarm runs every 500ms, the alarm will
> help the pdump to exit, the worst case will take 500ms for the pudmp to
> exit.
Let's write it in a simpler descriptive form:
/* Maximum delay for exiting after primary process. */
> > [...]
> >> + /*
> >> + * Don't worry about it is primary exit case. The alarm cancel
> >> + * function will take care about that. Ignore the ENOENT case.
> >> + */
> > I don't understand the comment.
> > Maybe you can explicit what is "it" and "that".
> > It would be probably simpler if you just describe why you cancel
> > this alarm.
> > How is it related to ENOENT?
>
> The 'it' and 'that' both means the pdump 'monitor_primary' recognises
> the primary process exited and set the 'quit_signal' case.
>
> In that case, the 'monitor_primary' is not readd to the alarm. I add the
> comment in case someone want to say that "You are canceling a
> non-existent alarm."
>
> It's OK to cancel a non-existent alarm. The 'rte_eal_alarm_cancel' just
> return 0 and set the ENOENT errno.
OK, so let's be more explicit:
"
Cancel monitoring of primary process.
There will be no error if no alarm is set
(in case primary process kill was detected earlier).
"
> >> + ret = rte_eal_alarm_cancel(monitor_primary, NULL);
> >> + if (ret < 0)
> >> + printf("Fail to disable monitor:%d\n", ret);
[...]
> And one more word, the 'app' in the git log means 'application'.
>
> Maybe it's better to change it to 'process' to make it describes more
> clearly.
Indeed, "process" is more correct in this context.
> Thanks again for the suggestions.
You're welcome.
More information about the dev
mailing list