eal: add log to print dpdk version at start

Message ID 20210901061821.5259-1-aman.deep.singh@intel.com (mailing list archive)
State Rejected, archived
Delegated to: David Marchand
Headers
Series eal: add log to print dpdk version at start |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot: build success github build: passed
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Singh, Aman Deep Sept. 1, 2021, 6:18 a.m. UTC
  From the logs it is difficult to get the DPDK version
that was used. So added a debug log to print the same.
The log has been added in eal_init so it gets printed
at startup for any application.

Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
---
 lib/eal/freebsd/eal.c | 2 +-
 lib/eal/linux/eal.c   | 2 +-
 lib/eal/windows/eal.c | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)
  

Comments

Andrew Rybchenko Sept. 1, 2021, 6:55 a.m. UTC | #1
On 9/1/21 9:18 AM, Aman Singh wrote:
>>From the logs it is difficult to get the DPDK version
> that was used. So added a debug log to print the same.
> The log has been added in eal_init so it gets printed
> at startup for any application.
> 
> Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
> ---
>  lib/eal/freebsd/eal.c | 2 +-
>  lib/eal/linux/eal.c   | 2 +-
>  lib/eal/windows/eal.c | 1 +
>  3 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
> index 6cee5ae369..a14a205f4d 100644
> --- a/lib/eal/freebsd/eal.c
> +++ b/lib/eal/freebsd/eal.c
> @@ -958,7 +958,7 @@ rte_eal_init(int argc, char **argv)
>  	}
>  
>  	eal_mcfg_complete();
> -
> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());

I'd say that it should be logged as the very first message.

I'd consider INFO or even NOTICE level for the message.
INFO if we don't want to see it by default.
NOTICE if we want. I'd vote for the notice.

May be a bit out of topic, but I'm a bit surprised that
there is no common entry point for all OS and it is required
to make it in 3 places.

>  	return fctret;
>  }
>  
> diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
> index 3577eaeaa4..a50960cc78 100644
> --- a/lib/eal/linux/eal.c
> +++ b/lib/eal/linux/eal.c
> @@ -1332,7 +1332,7 @@ rte_eal_init(int argc, char **argv)
>  	}
>  
>  	eal_mcfg_complete();
> -
> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>  	return fctret;
>  }
>  
> diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
> index 3d8c520412..5e6d5d8930 100644
> --- a/lib/eal/windows/eal.c
> +++ b/lib/eal/windows/eal.c
> @@ -419,6 +419,7 @@ rte_eal_init(int argc, char **argv)
>  	 */
>  	rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);
>  	rte_eal_mp_wait_lcore();
> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>  	return fctret;
>  }
>  
>
  
Bruce Richardson Sept. 1, 2021, 9:14 a.m. UTC | #2
On Wed, Sep 01, 2021 at 11:48:21AM +0530, Aman Singh wrote:
> From the logs it is difficult to get the DPDK version
> that was used. So added a debug log to print the same.
> The log has been added in eal_init so it gets printed
> at startup for any application.
> 
> Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
> ---
>  lib/eal/freebsd/eal.c | 2 +-
>  lib/eal/linux/eal.c   | 2 +-
>  lib/eal/windows/eal.c | 1 +
>  3 files changed, 3 insertions(+), 2 deletions(-)
>
Note: EAL already has the "-v" flag which prints the version number at startup.
  
Stephen Hemminger Sept. 1, 2021, 5:12 p.m. UTC | #3
On Wed,  1 Sep 2021 11:48:21 +0530
Aman Singh <aman.deep.singh@intel.com> wrote:

> From the logs it is difficult to get the DPDK version
> that was used. So added a debug log to print the same.
> The log has been added in eal_init so it gets printed
> at startup for any application.
> 
> Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
> ---
>  lib/eal/freebsd/eal.c | 2 +-
>  lib/eal/linux/eal.c   | 2 +-
>  lib/eal/windows/eal.c | 1 +
>  3 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
> index 6cee5ae369..a14a205f4d 100644
> --- a/lib/eal/freebsd/eal.c
> +++ b/lib/eal/freebsd/eal.c
> @@ -958,7 +958,7 @@ rte_eal_init(int argc, char **argv)
>  	}
>  
>  	eal_mcfg_complete();
> -
> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>  	return fctret;
>  }
>  
> diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
> index 3577eaeaa4..a50960cc78 100644
> --- a/lib/eal/linux/eal.c
> +++ b/lib/eal/linux/eal.c
> @@ -1332,7 +1332,7 @@ rte_eal_init(int argc, char **argv)
>  	}
>  
>  	eal_mcfg_complete();
> -
> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>  	return fctret;
>  }
>  
> diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
> index 3d8c520412..5e6d5d8930 100644
> --- a/lib/eal/windows/eal.c
> +++ b/lib/eal/windows/eal.c
> @@ -419,6 +419,7 @@ rte_eal_init(int argc, char **argv)
>  	 */
>  	rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);
>  	rte_eal_mp_wait_lcore();
> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>  	return fctret;
>  }
>  

NAK
DPDK is already too chatty at startup.

If your application needs it then do-it-yourself.
  
Ferruh Yigit Sept. 2, 2021, 10:02 a.m. UTC | #4
On 9/1/2021 10:14 AM, Bruce Richardson wrote:
> On Wed, Sep 01, 2021 at 11:48:21AM +0530, Aman Singh wrote:
>> From the logs it is difficult to get the DPDK version
>> that was used. So added a debug log to print the same.
>> The log has been added in eal_init so it gets printed
>> at startup for any application.
>>
>> Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
>> ---
>>  lib/eal/freebsd/eal.c | 2 +-
>>  lib/eal/linux/eal.c   | 2 +-
>>  lib/eal/windows/eal.c | 1 +
>>  3 files changed, 3 insertions(+), 2 deletions(-)
>>
> Note: EAL already has the "-v" flag which prints the version number at startup.
> 

More common usage is when -v (--version) is provided app prints the version and
exits.

No strong opinion but it is possible to have the version output always as debug,
and convert '-v' to log and exit.
  
Ferruh Yigit Sept. 2, 2021, 10:11 a.m. UTC | #5
On 9/1/2021 6:12 PM, Stephen Hemminger wrote:
> On Wed,  1 Sep 2021 11:48:21 +0530
> Aman Singh <aman.deep.singh@intel.com> wrote:
> 
>> From the logs it is difficult to get the DPDK version
>> that was used. So added a debug log to print the same.
>> The log has been added in eal_init so it gets printed
>> at startup for any application.
>>
>> Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
>> ---
>>  lib/eal/freebsd/eal.c | 2 +-
>>  lib/eal/linux/eal.c   | 2 +-
>>  lib/eal/windows/eal.c | 1 +
>>  3 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
>> index 6cee5ae369..a14a205f4d 100644
>> --- a/lib/eal/freebsd/eal.c
>> +++ b/lib/eal/freebsd/eal.c
>> @@ -958,7 +958,7 @@ rte_eal_init(int argc, char **argv)
>>  	}
>>  
>>  	eal_mcfg_complete();
>> -
>> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>>  	return fctret;
>>  }
>>  
>> diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
>> index 3577eaeaa4..a50960cc78 100644
>> --- a/lib/eal/linux/eal.c
>> +++ b/lib/eal/linux/eal.c
>> @@ -1332,7 +1332,7 @@ rte_eal_init(int argc, char **argv)
>>  	}
>>  
>>  	eal_mcfg_complete();
>> -
>> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>>  	return fctret;
>>  }
>>  
>> diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
>> index 3d8c520412..5e6d5d8930 100644
>> --- a/lib/eal/windows/eal.c
>> +++ b/lib/eal/windows/eal.c
>> @@ -419,6 +419,7 @@ rte_eal_init(int argc, char **argv)
>>  	 */
>>  	rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);
>>  	rte_eal_mp_wait_lcore();
>> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>>  	return fctret;
>>  }
>>  
> 
> NAK
> DPDK is already too chatty at startup.
> 
Is it better if the log is 'debug', so it won't be visible by default?
This can be useful to support customers, sometimes when there are multiple
binaries around, it is hard to say version of them.
As Bruce reminded, '-v' eal option provides this feature, which is better than
nothing, but it is not as useful if you are looking to an old log without actual
binary.

> If your application needs it then do-it-yourself.
> 

Application may have its own versioning, which can be unrelated to the DPDK
version numbers, this can be useful to get just DPDK version.
  
Bruce Richardson Sept. 2, 2021, 10:27 a.m. UTC | #6
On Thu, Sep 02, 2021 at 11:11:39AM +0100, Ferruh Yigit wrote:
> On 9/1/2021 6:12 PM, Stephen Hemminger wrote:
> > On Wed,  1 Sep 2021 11:48:21 +0530
> > Aman Singh <aman.deep.singh@intel.com> wrote:
> > 
> >> From the logs it is difficult to get the DPDK version
> >> that was used. So added a debug log to print the same.
> >> The log has been added in eal_init so it gets printed
> >> at startup for any application.
> >>
> >> Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
> >> ---
> >>  lib/eal/freebsd/eal.c | 2 +-
> >>  lib/eal/linux/eal.c   | 2 +-
> >>  lib/eal/windows/eal.c | 1 +
> >>  3 files changed, 3 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
> >> index 6cee5ae369..a14a205f4d 100644
> >> --- a/lib/eal/freebsd/eal.c
> >> +++ b/lib/eal/freebsd/eal.c
> >> @@ -958,7 +958,7 @@ rte_eal_init(int argc, char **argv)
> >>  	}
> >>  
> >>  	eal_mcfg_complete();
> >> -
> >> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
> >>  	return fctret;
> >>  }
> >>  
> >> diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
> >> index 3577eaeaa4..a50960cc78 100644
> >> --- a/lib/eal/linux/eal.c
> >> +++ b/lib/eal/linux/eal.c
> >> @@ -1332,7 +1332,7 @@ rte_eal_init(int argc, char **argv)
> >>  	}
> >>  
> >>  	eal_mcfg_complete();
> >> -
> >> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
> >>  	return fctret;
> >>  }
> >>  
> >> diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
> >> index 3d8c520412..5e6d5d8930 100644
> >> --- a/lib/eal/windows/eal.c
> >> +++ b/lib/eal/windows/eal.c
> >> @@ -419,6 +419,7 @@ rte_eal_init(int argc, char **argv)
> >>  	 */
> >>  	rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);
> >>  	rte_eal_mp_wait_lcore();
> >> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
> >>  	return fctret;
> >>  }
> >>  
> > 
> > NAK
> > DPDK is already too chatty at startup.
> > 
> Is it better if the log is 'debug', so it won't be visible by default?
> This can be useful to support customers, sometimes when there are multiple
> binaries around, it is hard to say version of them.
> As Bruce reminded, '-v' eal option provides this feature, which is better than
> nothing, but it is not as useful if you are looking to an old log without actual
> binary.
> 
> > If your application needs it then do-it-yourself.
> > 
> 
> Application may have its own versioning, which can be unrelated to the DPDK
> version numbers, this can be useful to get just DPDK version.

I'd also point out that if you have a currently running DPDK binary and
want to know the DPDK version number, just connect to the telemetry socket
and it will tell you e.g. 

   $ echo "quit" | sudo ./usertools/dpdk-telemetry.py
   Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2
   {"version": "DPDK 21.11.0-rc0", "pid": 134894, "max_output_len": 16384}
   -->

   $


/Bruce
  
Singh, Aman Deep Sept. 6, 2021, 1:28 p.m. UTC | #7
On 9/2/2021 3:57 PM, Bruce Richardson wrote:
> On Thu, Sep 02, 2021 at 11:11:39AM +0100, Ferruh Yigit wrote:
>> On 9/1/2021 6:12 PM, Stephen Hemminger wrote:
>>> On Wed,  1 Sep 2021 11:48:21 +0530
>>> Aman Singh <aman.deep.singh@intel.com> wrote:
>>>
>>>>  From the logs it is difficult to get the DPDK version
>>>> that was used. So added a debug log to print the same.
>>>> The log has been added in eal_init so it gets printed
>>>> at startup for any application.
>>>>
>>>> Signed-off-by: Aman Singh <aman.deep.singh@intel.com>
>>>> ---
>>>>   lib/eal/freebsd/eal.c | 2 +-
>>>>   lib/eal/linux/eal.c   | 2 +-
>>>>   lib/eal/windows/eal.c | 1 +
>>>>   3 files changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
>>>> index 6cee5ae369..a14a205f4d 100644
>>>> --- a/lib/eal/freebsd/eal.c
>>>> +++ b/lib/eal/freebsd/eal.c
>>>> @@ -958,7 +958,7 @@ rte_eal_init(int argc, char **argv)
>>>>   	}
>>>>   
>>>>   	eal_mcfg_complete();
>>>> -
>>>> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>>>>   	return fctret;
>>>>   }
>>>>   
>>>> diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
>>>> index 3577eaeaa4..a50960cc78 100644
>>>> --- a/lib/eal/linux/eal.c
>>>> +++ b/lib/eal/linux/eal.c
>>>> @@ -1332,7 +1332,7 @@ rte_eal_init(int argc, char **argv)
>>>>   	}
>>>>   
>>>>   	eal_mcfg_complete();
>>>> -
>>>> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>>>>   	return fctret;
>>>>   }
>>>>   
>>>> diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
>>>> index 3d8c520412..5e6d5d8930 100644
>>>> --- a/lib/eal/windows/eal.c
>>>> +++ b/lib/eal/windows/eal.c
>>>> @@ -419,6 +419,7 @@ rte_eal_init(int argc, char **argv)
>>>>   	 */
>>>>   	rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);
>>>>   	rte_eal_mp_wait_lcore();
>>>> +	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
>>>>   	return fctret;
>>>>   }
>>>>   
>>> NAK
>>> DPDK is already too chatty at startup.
>>>
>> Is it better if the log is 'debug', so it won't be visible by default?
>> This can be useful to support customers, sometimes when there are multiple
>> binaries around, it is hard to say version of them.
>> As Bruce reminded, '-v' eal option provides this feature, which is better than
>> nothing, but it is not as useful if you are looking to an old log without actual
>> binary.
>>
>>> If your application needs it then do-it-yourself.
>>>
>> Application may have its own versioning, which can be unrelated to the DPDK
>> version numbers, this can be useful to get just DPDK version.
> I'd also point out that if you have a currently running DPDK binary and
> want to know the DPDK version number, just connect to the telemetry socket
> and it will tell you e.g.
>
>     $ echo "quit" | sudo ./usertools/dpdk-telemetry.py
>     Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2
>     {"version": "DPDK 21.11.0-rc0", "pid": 134894, "max_output_len": 16384}
>     -->
>
>     $
>
>
> /Bruce

Considering the EAL "-v" option which does the same job as this patch.
Planning to drop this change for now.

Thanks
Aman
  

Patch

diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
index 6cee5ae369..a14a205f4d 100644
--- a/lib/eal/freebsd/eal.c
+++ b/lib/eal/freebsd/eal.c
@@ -958,7 +958,7 @@  rte_eal_init(int argc, char **argv)
 	}
 
 	eal_mcfg_complete();
-
+	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
 	return fctret;
 }
 
diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
index 3577eaeaa4..a50960cc78 100644
--- a/lib/eal/linux/eal.c
+++ b/lib/eal/linux/eal.c
@@ -1332,7 +1332,7 @@  rte_eal_init(int argc, char **argv)
 	}
 
 	eal_mcfg_complete();
-
+	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
 	return fctret;
 }
 
diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
index 3d8c520412..5e6d5d8930 100644
--- a/lib/eal/windows/eal.c
+++ b/lib/eal/windows/eal.c
@@ -419,6 +419,7 @@  rte_eal_init(int argc, char **argv)
 	 */
 	rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MAIN);
 	rte_eal_mp_wait_lcore();
+	rte_log(RTE_LOG_DEBUG, RTE_LOGTYPE_EAL, "DPDK version: %s\n", rte_version());
 	return fctret;
 }