[dpdk-dev] eal: move runtime dir creation after args parse
Checks
Commit Message
The intention of the original code was to create runtime data
directory as early as possible, however it was moved too early,
before the arguments were parsed, resulting in --file-prefix
option essentially not working.
Fix this by moving eal_create_runtime_dir() to after command
line arguments parsing.
Fixes: 56236363b481 ("eal: add directory for runtime data")
Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/librte_eal/bsdapp/eal/eal.c | 14 +++++++-------
lib/librte_eal/linuxapp/eal/eal.c | 14 +++++++-------
2 files changed, 14 insertions(+), 14 deletions(-)
Comments
On 05/15/2018 01:44 PM, Anatoly Burakov wrote:
> The intention of the original code was to create runtime data
> directory as early as possible, however it was moved too early,
> before the arguments were parsed, resulting in --file-prefix
> option essentially not working.
>
> Fix this by moving eal_create_runtime_dir() to after command
> line arguments parsing.
>
> Fixes: 56236363b481 ("eal: add directory for runtime data")
>
> Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
I've tested it quickly and it solves the problem I observe.
I suppose it is OK that the directory remains after application exit.
On 15-May-18 12:36 PM, Andrew Rybchenko wrote:
> On 05/15/2018 01:44 PM, Anatoly Burakov wrote:
>> The intention of the original code was to create runtime data
>> directory as early as possible, however it was moved too early,
>> before the arguments were parsed, resulting in --file-prefix
>> option essentially not working.
>>
>> Fix this by moving eal_create_runtime_dir() to after command
>> line arguments parsing.
>>
>> Fixes: 56236363b481 ("eal: add directory for runtime data")
>>
>> Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>
> Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
>
> I've tested it quickly and it solves the problem I observe.
> I suppose it is OK that the directory remains after application exit.
>
Previously, all of the files that we were creating during runtime
remained, so having a directory where all the files are is better than
having a scattering of files :)
Thanks for testing!
15/05/2018 14:16, Burakov, Anatoly:
> On 15-May-18 12:36 PM, Andrew Rybchenko wrote:
> > On 05/15/2018 01:44 PM, Anatoly Burakov wrote:
> >> The intention of the original code was to create runtime data
> >> directory as early as possible, however it was moved too early,
> >> before the arguments were parsed, resulting in --file-prefix
> >> option essentially not working.
> >>
> >> Fix this by moving eal_create_runtime_dir() to after command
> >> line arguments parsing.
> >>
> >> Fixes: 56236363b481 ("eal: add directory for runtime data")
> >>
> >> Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
> >>
> >> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> >
> > Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
> >
> > I've tested it quickly and it solves the problem I observe.
> > I suppose it is OK that the directory remains after application exit.
> >
>
> Previously, all of the files that we were creating during runtime
> remained, so having a directory where all the files are is better than
> having a scattering of files :)
>
> Thanks for testing!
Applied, thanks
@@ -586,13 +586,6 @@ rte_eal_init(int argc, char **argv)
/* set log level as early as possible */
eal_log_level_parse(argc, argv);
- /* create runtime data directory */
- if (eal_create_runtime_dir() < 0) {
- rte_eal_init_alert("Cannot create runtime directory\n");
- rte_errno = EACCES;
- return -1;
- }
-
if (rte_eal_cpu_init() < 0) {
rte_eal_init_alert("Cannot detect lcores.");
rte_errno = ENOTSUP;
@@ -607,6 +600,13 @@ rte_eal_init(int argc, char **argv)
return -1;
}
+ /* create runtime data directory */
+ if (eal_create_runtime_dir() < 0) {
+ rte_eal_init_alert("Cannot create runtime directory\n");
+ rte_errno = EACCES;
+ return -1;
+ }
+
/* FreeBSD always uses legacy memory model */
internal_config.legacy_mem = true;
@@ -803,13 +803,6 @@ rte_eal_init(int argc, char **argv)
/* set log level as early as possible */
eal_log_level_parse(argc, argv);
- /* create runtime data directory */
- if (eal_create_runtime_dir() < 0) {
- rte_eal_init_alert("Cannot create runtime directory\n");
- rte_errno = EACCES;
- return -1;
- }
-
if (rte_eal_cpu_init() < 0) {
rte_eal_init_alert("Cannot detect lcores.");
rte_errno = ENOTSUP;
@@ -824,6 +817,13 @@ rte_eal_init(int argc, char **argv)
return -1;
}
+ /* create runtime data directory */
+ if (eal_create_runtime_dir() < 0) {
+ rte_eal_init_alert("Cannot create runtime directory\n");
+ rte_errno = EACCES;
+ return -1;
+ }
+
if (eal_plugins_init() < 0) {
rte_eal_init_alert("Cannot init plugins\n");
rte_errno = EINVAL;