eal: fix telemetry logtype registration
Checks
Commit Message
rte_log_register_type_and_pick_level() returns an int.
Casting to a uin32_t will make us miss the -1 passed in case of failure.
Fixes: 37b881a96194 ("telemetry: use log function from pointer")
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
lib/librte_eal/freebsd/eal.c | 4 +++-
lib/librte_eal/linux/eal.c | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
Comments
On Tue, Apr 06, 2021 at 11:25:45AM +0200, David Marchand wrote:
> rte_log_register_type_and_pick_level() returns an int.
> Casting to a uin32_t will make us miss the -1 passed in case of failure.
>
> Fixes: 37b881a96194 ("telemetry: use log function from pointer")
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
06/04/2021 12:18, Bruce Richardson:
> On Tue, Apr 06, 2021 at 11:25:45AM +0200, David Marchand wrote:
> > rte_log_register_type_and_pick_level() returns an int.
> > Casting to a uin32_t will make us miss the -1 passed in case of failure.
> >
> > Fixes: 37b881a96194 ("telemetry: use log function from pointer")
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Good catch, I missed it when doing the patch
"log: choose EAL log type on registration failure"
https://patches.dpdk.org/project/dpdk/patch/20210405100301.657768-2-thomas@monjalon.net/
About the title, I would not say it fixes the registration.
It is more about catching registration failure with a fallback.
On Tue, Apr 6, 2021 at 12:18 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Tue, Apr 06, 2021 at 11:25:45AM +0200, David Marchand wrote:
> > rte_log_register_type_and_pick_level() returns an int.
> > Casting to a uin32_t will make us miss the -1 passed in case of failure.
> >
> > Fixes: 37b881a96194 ("telemetry: use log function from pointer")
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
Applied, thanks.
@@ -941,8 +941,10 @@ rte_eal_init(int argc, char **argv)
return -1;
}
if (!internal_conf->no_telemetry) {
- uint32_t tlog = rte_log_register_type_and_pick_level(
+ int tlog = rte_log_register_type_and_pick_level(
"lib.telemetry", RTE_LOG_WARNING);
+ if (tlog < 0)
+ tlog = RTE_LOGTYPE_EAL;
if (rte_telemetry_init(rte_eal_get_runtime_dir(),
rte_version(),
&internal_conf->ctrl_cpuset, rte_log, tlog) != 0)
@@ -1314,8 +1314,10 @@ rte_eal_init(int argc, char **argv)
return -1;
}
if (!internal_conf->no_telemetry) {
- uint32_t tlog = rte_log_register_type_and_pick_level(
+ int tlog = rte_log_register_type_and_pick_level(
"lib.telemetry", RTE_LOG_WARNING);
+ if (tlog < 0)
+ tlog = RTE_LOGTYPE_EAL;
if (rte_telemetry_init(rte_eal_get_runtime_dir(),
rte_version(),
&internal_conf->ctrl_cpuset, rte_log, tlog) != 0)