* [PATCH] net/ice: improve log messages for DDP loading @ 2026-05-16 10:19 David Marchand 2026-05-19 17:58 ` Bruce Richardson 2026-05-20 15:52 ` Bruce Richardson 0 siblings, 2 replies; 6+ messages in thread From: David Marchand @ 2026-05-16 10:19 UTC (permalink / raw) To: dev; +Cc: patrick.mahan, Bruce Richardson, Anatoly Burakov Some nics may not provide a serial number (PCI capability RTE_PCI_EXT_CAP_ID_DSN). This results in a confusing ERROR log: ICE_INIT: ice_dev_init(): Failed to read device serial number This is confusing as DDP loading does *not* require the serial number to be present for the port to be functional afterwards. Besides, after trying various path, if the default DDP is not present on the runtime system, the port initialisation ends up with a vague error: ICE_INIT: ice_load_pkg(): failed to search file path Improve the situation with adjusting the log level when reading the SN fails, then add more debug context to DDP file loading and end up with a ERROR log mentioning the expected file. ICE_INIT: ice_firmware_read(): Cannot read DDP file /lib/firmware/updates/intel/ice/ddp/ice-b49691ffffe6e69c.pkg ICE_INIT: ice_firmware_read(): Cannot read DDP file /lib/firmware/intel/ice/ddp/ice-b49691ffffe6e69c.pkg ICE_INIT: ice_firmware_read(): Cannot read DDP file /lib/firmware/updates/intel/ice/ddp/ice.pkg ICE_INIT: ice_firmware_read(): Cannot read DDP file /lib/firmware/intel/ice/ddp/ice.pkg ICE_INIT: ice_load_pkg(): Failed to load default DDP package /lib/firmware/intel/ice/ddp/ice.pkg Signed-off-by: David Marchand <david.marchand@redhat.com> --- drivers/net/intel/ice/ice_ethdev.c | 31 ++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/net/intel/ice/ice_ethdev.c b/drivers/net/intel/ice/ice_ethdev.c index 0f2e7aee14..e065581ccf 100644 --- a/drivers/net/intel/ice/ice_ethdev.c +++ b/drivers/net/intel/ice/ice_ethdev.c @@ -2003,6 +2003,17 @@ static int ice_read_customized_path(char *pkg_file, uint16_t buff_len) return n; } +static int +ice_firmware_read(const char *file, void *buf, size_t *bufsz) +{ + int ret = rte_firmware_read(file, buf, bufsz); + + if (ret < 0) + PMD_INIT_LOG(DEBUG, "Cannot read DDP file %s", file); + + return ret; +} + int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) { struct ice_hw *hw = &adapter->hw; @@ -2016,7 +2027,7 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) /* first read any explicitly referenced DDP file*/ if (adapter->devargs.ddp_filename != NULL) { strlcpy(pkg_file, adapter->devargs.ddp_filename, sizeof(pkg_file)); - if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) { + if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) { goto load_fw; } else { PMD_INIT_LOG(ERR, "Cannot load DDP file: %s", pkg_file); @@ -2032,11 +2043,11 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) if (use_dsn) { snprintf(pkg_file, RTE_DIM(pkg_file), "%s/%s", customized_path, opt_ddp_filename); - if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) goto load_fw; } snprintf(pkg_file, RTE_DIM(pkg_file), "%s/%s", customized_path, "ice.pkg"); - if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) goto load_fw; } @@ -2046,23 +2057,23 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) strncpy(pkg_file, ICE_PKG_FILE_SEARCH_PATH_UPDATES, ICE_MAX_PKG_FILENAME_SIZE); strcat(pkg_file, opt_ddp_filename); - if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) goto load_fw; strncpy(pkg_file, ICE_PKG_FILE_SEARCH_PATH_DEFAULT, ICE_MAX_PKG_FILENAME_SIZE); strcat(pkg_file, opt_ddp_filename); - if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) goto load_fw; no_dsn: strncpy(pkg_file, ICE_PKG_FILE_UPDATES, ICE_MAX_PKG_FILENAME_SIZE); - if (rte_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) goto load_fw; strncpy(pkg_file, ICE_PKG_FILE_DEFAULT, ICE_MAX_PKG_FILENAME_SIZE); - if (rte_firmware_read(pkg_file, &buf, &bufsz) < 0) { - PMD_INIT_LOG(ERR, "failed to search file path"); + if (ice_firmware_read(pkg_file, &buf, &bufsz) < 0) { + PMD_INIT_LOG(ERR, "Failed to load default DDP package " ICE_PKG_FILE_DEFAULT); return -1; } @@ -2658,13 +2669,13 @@ ice_dev_init(struct rte_eth_dev *dev) if (pos) { if (rte_pci_read_config(pci_dev, &dsn_low, 4, pos + 4) < 0 || rte_pci_read_config(pci_dev, &dsn_high, 4, pos + 8) < 0) { - PMD_INIT_LOG(ERR, "Failed to read pci config space"); + PMD_INIT_LOG(WARNING, "Failed to read pci config space"); } else { use_dsn = true; dsn = (uint64_t)dsn_high << 32 | dsn_low; } } else { - PMD_INIT_LOG(ERR, "Failed to read device serial number"); + PMD_INIT_LOG(INFO, "Failed to read device serial number"); } ret = ice_load_pkg(pf->adapter, use_dsn, dsn); -- 2.53.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] net/ice: improve log messages for DDP loading 2026-05-16 10:19 [PATCH] net/ice: improve log messages for DDP loading David Marchand @ 2026-05-19 17:58 ` Bruce Richardson 2026-05-20 15:44 ` David Marchand 2026-05-20 15:52 ` Bruce Richardson 1 sibling, 1 reply; 6+ messages in thread From: Bruce Richardson @ 2026-05-19 17:58 UTC (permalink / raw) To: David Marchand; +Cc: dev, patrick.mahan, Anatoly Burakov On Sat, May 16, 2026 at 12:19:41PM +0200, David Marchand wrote: > Some nics may not provide a serial number (PCI capability > RTE_PCI_EXT_CAP_ID_DSN). > > This results in a confusing ERROR log: > ICE_INIT: ice_dev_init(): Failed to read device serial number > > This is confusing as DDP loading does *not* require the serial number to > be present for the port to be functional afterwards. > > Besides, after trying various path, if the default DDP is not present on > the runtime system, the port initialisation ends up with a vague error: > ICE_INIT: ice_load_pkg(): failed to search file path > > Improve the situation with adjusting the log level when reading the > SN fails, then add more debug context to DDP file loading and end up > with a ERROR log mentioning the expected file. > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/updates/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/updates/intel/ice/ddp/ice.pkg > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/intel/ice/ddp/ice.pkg > ICE_INIT: ice_load_pkg(): Failed to load default DDP package > /lib/firmware/intel/ice/ddp/ice.pkg > > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > drivers/net/intel/ice/ice_ethdev.c | 31 ++++++++++++++++++++---------- > 1 file changed, 21 insertions(+), 10 deletions(-) > On top of the changes made in this patch, how about something like the below to extend things? Rather than just debug logging the failed paths, we change the debug logs to always log each load attempt. We also record the path as it's attempted, and then on failure to load any path we use that record to print out an error message for each failure, so the user can see in the error logs ALL the failed paths, rather than having to re-run the app at debug level to find them. WDYT? /Bruce diff --git a/drivers/net/intel/ice/ice_ethdev.c b/drivers/net/intel/ice/ice_ethdev.c index e065581ccf..926b0febea 100644 --- a/drivers/net/intel/ice/ice_ethdev.c +++ b/drivers/net/intel/ice/ice_ethdev.c @@ -8,6 +8,7 @@ #include <ctype.h> #include <fcntl.h> #include <stdio.h> +#include <sys/queue.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> @@ -2003,15 +2004,23 @@ static int ice_read_customized_path(char *pkg_file, uint16_t buff_len) return n; } +struct ddp_path_list_entry { + TAILQ_ENTRY(ddp_path_list_entry) next; + char path[ICE_MAX_PKG_FILENAME_SIZE]; +}; +TAILQ_HEAD(ddp_paths_head, ddp_path_list_entry); + static int -ice_firmware_read(const char *file, void *buf, size_t *bufsz) +ice_firmware_read(const char *file, void *buf, size_t *bufsz, struct ddp_paths_head *searched_paths) { - int ret = rte_firmware_read(file, buf, bufsz); - - if (ret < 0) - PMD_INIT_LOG(DEBUG, "Cannot read DDP file %s", file); - - return ret; + /* record paths searched for DDP files */ + struct ddp_path_list_entry *path = malloc(sizeof(struct ddp_path_list_entry)); + if (path) { + strlcpy(path->path, file, sizeof(path->path)); + TAILQ_INSERT_TAIL(searched_paths, path, next); + } + PMD_INIT_LOG(DEBUG, "Trying to load DDP file from: %s", file); + return rte_firmware_read(file, buf, bufsz); } int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) @@ -2020,6 +2029,8 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) char pkg_file[ICE_MAX_PKG_FILENAME_SIZE]; char customized_path[ICE_MAX_PKG_FILENAME_SIZE]; char opt_ddp_filename[ICE_MAX_PKG_FILENAME_SIZE]; + struct ddp_paths_head searched_paths = TAILQ_HEAD_INITIALIZER(searched_paths); + struct ddp_path_list_entry *path, *tmp; /* used to free the paths list */ void *buf; size_t bufsz; int err; @@ -2027,9 +2038,14 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) /* first read any explicitly referenced DDP file*/ if (adapter->devargs.ddp_filename != NULL) { strlcpy(pkg_file, adapter->devargs.ddp_filename, sizeof(pkg_file)); - if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) { + if (ice_firmware_read(pkg_file, &buf, &bufsz, &searched_paths) == 0) { goto load_fw; } else { + /* free the searched paths list */ + RTE_TAILQ_FOREACH_SAFE(path, &searched_paths, next, tmp) { + TAILQ_REMOVE(&searched_paths, path, next); + free(path); + } PMD_INIT_LOG(ERR, "Cannot load DDP file: %s", pkg_file); return -1; } @@ -2043,11 +2059,11 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) if (use_dsn) { snprintf(pkg_file, RTE_DIM(pkg_file), "%s/%s", customized_path, opt_ddp_filename); - if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz, &searched_paths) == 0) goto load_fw; } snprintf(pkg_file, RTE_DIM(pkg_file), "%s/%s", customized_path, "ice.pkg"); - if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz, &searched_paths) == 0) goto load_fw; } @@ -2057,27 +2073,39 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) strncpy(pkg_file, ICE_PKG_FILE_SEARCH_PATH_UPDATES, ICE_MAX_PKG_FILENAME_SIZE); strcat(pkg_file, opt_ddp_filename); - if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz, &searched_paths) == 0) goto load_fw; strncpy(pkg_file, ICE_PKG_FILE_SEARCH_PATH_DEFAULT, ICE_MAX_PKG_FILENAME_SIZE); strcat(pkg_file, opt_ddp_filename); - if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz, &searched_paths) == 0) goto load_fw; no_dsn: strncpy(pkg_file, ICE_PKG_FILE_UPDATES, ICE_MAX_PKG_FILENAME_SIZE); - if (ice_firmware_read(pkg_file, &buf, &bufsz) == 0) + if (ice_firmware_read(pkg_file, &buf, &bufsz, &searched_paths) == 0) goto load_fw; strncpy(pkg_file, ICE_PKG_FILE_DEFAULT, ICE_MAX_PKG_FILENAME_SIZE); - if (ice_firmware_read(pkg_file, &buf, &bufsz) < 0) { - PMD_INIT_LOG(ERR, "Failed to load default DDP package " ICE_PKG_FILE_DEFAULT); + if (ice_firmware_read(pkg_file, &buf, &bufsz, &searched_paths) < 0) { + /* list out all the failed package reads, emptying the list */ + RTE_TAILQ_FOREACH_SAFE(path, &searched_paths, next, tmp) { + PMD_INIT_LOG(ERR, "Failed to load DDP package from: %s", path->path); + TAILQ_REMOVE(&searched_paths, path, next); + free(path); + } + PMD_INIT_LOG(ERR, "Error: Cannot load any DDP package"); return -1; } load_fw: + /* we have success opening a package, so clear the load list */ + RTE_TAILQ_FOREACH_SAFE(path, &searched_paths, next, tmp) { + TAILQ_REMOVE(&searched_paths, path, next); + free(path); + } + PMD_INIT_LOG(DEBUG, "DDP package name: %s", pkg_file); err = ice_copy_and_init_pkg(hw, buf, bufsz, adapter->devargs.ddp_load_sched); ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] net/ice: improve log messages for DDP loading 2026-05-19 17:58 ` Bruce Richardson @ 2026-05-20 15:44 ` David Marchand 2026-05-20 15:52 ` Bruce Richardson 0 siblings, 1 reply; 6+ messages in thread From: David Marchand @ 2026-05-20 15:44 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev, patrick.mahan, Anatoly Burakov On Tue, 19 May 2026 at 19:58, Bruce Richardson <bruce.richardson@intel.com> wrote: > > On Sat, May 16, 2026 at 12:19:41PM +0200, David Marchand wrote: > > Some nics may not provide a serial number (PCI capability > > RTE_PCI_EXT_CAP_ID_DSN). > > > > This results in a confusing ERROR log: > > ICE_INIT: ice_dev_init(): Failed to read device serial number > > > > This is confusing as DDP loading does *not* require the serial number to > > be present for the port to be functional afterwards. > > > > Besides, after trying various path, if the default DDP is not present on > > the runtime system, the port initialisation ends up with a vague error: > > ICE_INIT: ice_load_pkg(): failed to search file path > > > > Improve the situation with adjusting the log level when reading the > > SN fails, then add more debug context to DDP file loading and end up > > with a ERROR log mentioning the expected file. > > > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/updates/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/updates/intel/ice/ddp/ice.pkg > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/intel/ice/ddp/ice.pkg > > ICE_INIT: ice_load_pkg(): Failed to load default DDP package > > /lib/firmware/intel/ice/ddp/ice.pkg > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > > --- > > drivers/net/intel/ice/ice_ethdev.c | 31 ++++++++++++++++++++---------- > > 1 file changed, 21 insertions(+), 10 deletions(-) > > > On top of the changes made in this patch, how about something like the > below to extend things? > > Rather than just debug logging the failed paths, we change the debug logs > to always log each load attempt. We also record the path as it's attempted, > and then on failure to load any path we use that record to print out an > error message for each failure, so the user can see in the error logs ALL > the failed paths, rather than having to re-run the app at debug level to > find them. > > WDYT? That's a lot of code for something that is usually detected right at the first installation/run of your DPDK application. When you are at this point, restarting testpmd with the right debug level is the usual way. But let's say you can't restart your application, log levels can be changed dynamically (possible with testpmd, grout and OVS) before/after trying to probe the E810 device. -- David Marchand ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net/ice: improve log messages for DDP loading 2026-05-20 15:44 ` David Marchand @ 2026-05-20 15:52 ` Bruce Richardson 0 siblings, 0 replies; 6+ messages in thread From: Bruce Richardson @ 2026-05-20 15:52 UTC (permalink / raw) To: David Marchand; +Cc: dev, patrick.mahan, Anatoly Burakov On Wed, May 20, 2026 at 05:44:14PM +0200, David Marchand wrote: > On Tue, 19 May 2026 at 19:58, Bruce Richardson > <bruce.richardson@intel.com> wrote: > > > > On Sat, May 16, 2026 at 12:19:41PM +0200, David Marchand wrote: > > > Some nics may not provide a serial number (PCI capability > > > RTE_PCI_EXT_CAP_ID_DSN). > > > > > > This results in a confusing ERROR log: > > > ICE_INIT: ice_dev_init(): Failed to read device serial number > > > > > > This is confusing as DDP loading does *not* require the serial number to > > > be present for the port to be functional afterwards. > > > > > > Besides, after trying various path, if the default DDP is not present on > > > the runtime system, the port initialisation ends up with a vague error: > > > ICE_INIT: ice_load_pkg(): failed to search file path > > > > > > Improve the situation with adjusting the log level when reading the > > > SN fails, then add more debug context to DDP file loading and end up > > > with a ERROR log mentioning the expected file. > > > > > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > > /lib/firmware/updates/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > > /lib/firmware/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > > /lib/firmware/updates/intel/ice/ddp/ice.pkg > > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > > /lib/firmware/intel/ice/ddp/ice.pkg > > > ICE_INIT: ice_load_pkg(): Failed to load default DDP package > > > /lib/firmware/intel/ice/ddp/ice.pkg > > > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > > > --- > > > drivers/net/intel/ice/ice_ethdev.c | 31 ++++++++++++++++++++---------- > > > 1 file changed, 21 insertions(+), 10 deletions(-) > > > > > On top of the changes made in this patch, how about something like the > > below to extend things? > > > > Rather than just debug logging the failed paths, we change the debug logs > > to always log each load attempt. We also record the path as it's attempted, > > and then on failure to load any path we use that record to print out an > > error message for each failure, so the user can see in the error logs ALL > > the failed paths, rather than having to re-run the app at debug level to > > find them. > > > > WDYT? > > That's a lot of code for something that is usually detected right at > the first installation/run of your DPDK application. > When you are at this point, restarting testpmd with the right debug > level is the usual way. > > But let's say you can't restart your application, log levels can be > changed dynamically (possible with testpmd, grout and OVS) > before/after trying to probe the E810 device. > Yes, true. Probably not worth the effort at this point. /Bruce ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net/ice: improve log messages for DDP loading 2026-05-16 10:19 [PATCH] net/ice: improve log messages for DDP loading David Marchand 2026-05-19 17:58 ` Bruce Richardson @ 2026-05-20 15:52 ` Bruce Richardson 2026-05-22 14:53 ` Bruce Richardson 1 sibling, 1 reply; 6+ messages in thread From: Bruce Richardson @ 2026-05-20 15:52 UTC (permalink / raw) To: David Marchand; +Cc: dev, patrick.mahan, Anatoly Burakov On Sat, May 16, 2026 at 12:19:41PM +0200, David Marchand wrote: > Some nics may not provide a serial number (PCI capability > RTE_PCI_EXT_CAP_ID_DSN). > > This results in a confusing ERROR log: > ICE_INIT: ice_dev_init(): Failed to read device serial number > > This is confusing as DDP loading does *not* require the serial number to > be present for the port to be functional afterwards. > > Besides, after trying various path, if the default DDP is not present on > the runtime system, the port initialisation ends up with a vague error: > ICE_INIT: ice_load_pkg(): failed to search file path > > Improve the situation with adjusting the log level when reading the > SN fails, then add more debug context to DDP file loading and end up > with a ERROR log mentioning the expected file. > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/updates/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/updates/intel/ice/ddp/ice.pkg > ICE_INIT: ice_firmware_read(): Cannot read DDP file > /lib/firmware/intel/ice/ddp/ice.pkg > ICE_INIT: ice_load_pkg(): Failed to load default DDP package > /lib/firmware/intel/ice/ddp/ice.pkg > > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > drivers/net/intel/ice/ice_ethdev.c | 31 ++++++++++++++++++++---------- > 1 file changed, 21 insertions(+), 10 deletions(-) > Acked-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] net/ice: improve log messages for DDP loading 2026-05-20 15:52 ` Bruce Richardson @ 2026-05-22 14:53 ` Bruce Richardson 0 siblings, 0 replies; 6+ messages in thread From: Bruce Richardson @ 2026-05-22 14:53 UTC (permalink / raw) To: David Marchand; +Cc: dev, patrick.mahan, Anatoly Burakov On Wed, May 20, 2026 at 04:52:55PM +0100, Bruce Richardson wrote: > On Sat, May 16, 2026 at 12:19:41PM +0200, David Marchand wrote: > > Some nics may not provide a serial number (PCI capability > > RTE_PCI_EXT_CAP_ID_DSN). > > > > This results in a confusing ERROR log: > > ICE_INIT: ice_dev_init(): Failed to read device serial number > > > > This is confusing as DDP loading does *not* require the serial number to > > be present for the port to be functional afterwards. > > > > Besides, after trying various path, if the default DDP is not present on > > the runtime system, the port initialisation ends up with a vague error: > > ICE_INIT: ice_load_pkg(): failed to search file path > > > > Improve the situation with adjusting the log level when reading the > > SN fails, then add more debug context to DDP file loading and end up > > with a ERROR log mentioning the expected file. > > > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/updates/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/intel/ice/ddp/ice-b49691ffffe6e69c.pkg > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/updates/intel/ice/ddp/ice.pkg > > ICE_INIT: ice_firmware_read(): Cannot read DDP file > > /lib/firmware/intel/ice/ddp/ice.pkg > > ICE_INIT: ice_load_pkg(): Failed to load default DDP package > > /lib/firmware/intel/ice/ddp/ice.pkg > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > > --- > > drivers/net/intel/ice/ice_ethdev.c | 31 ++++++++++++++++++++---------- > > 1 file changed, 21 insertions(+), 10 deletions(-) > > > Acked-by: Bruce Richardson <bruce.richardson@intel.com> Applied to dpdk-next-net-intel. Thanks, /Bruce ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-05-22 14:53 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-16 10:19 [PATCH] net/ice: improve log messages for DDP loading David Marchand 2026-05-19 17:58 ` Bruce Richardson 2026-05-20 15:44 ` David Marchand 2026-05-20 15:52 ` Bruce Richardson 2026-05-20 15:52 ` Bruce Richardson 2026-05-22 14:53 ` Bruce Richardson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox