> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of Jacob > Keller > Sent: Wednesday, August 7, 2024 2:16 AM > To: Nguyen, Anthony L <anthony.l.ngu...@intel.com>; Intel Wired LAN > <intel-wired-...@lists.osuosl.org>; "netdev netdev"@vger.kernel.org > Cc: Temerkhanov, Sergey <sergey.temerkha...@intel.com>; Kitszel, Przemyslaw > <przemyslaw.kits...@intel.com>; Kolacinski, Karol > <karol.kolacin...@intel.com>; Wierzbicki, Jacek <jacek.wierzbi...@intel.com> > Subject: [Intel-wired-lan] [PATCH iwl-next 4/7] ice: stop intermixing AQ > commands/responses debug dumps > > From: Przemek Kitszel <przemyslaw.kits...@intel.com> > > The ice_debug_cq() function is called to generate a debug log of control > queue messages both sent and received. It currently does this over a > potential total of 6 different printk invocations. > > The main logic prints over 4 calls to ice_debug(): > > 1. The metadata including opcode, flags, datalength and return value. > 2. The cookie in the descriptor. > 3. The parameter values. > 4. The address for the databuffer. > > In addition, if the descriptor has a data buffer, it can be logged with two > additional prints: > > 5. A message indicating the start of the data buffer. > 6. The actual data buffer, printed using print_hex_dump_debug. > > This can lead to trouble in the event that two different PFs are logging > messages. The messages become intermixed and it may not be possible to > determine which part of the output belongs to which control queue message. > > To fix this, it needs to be possible to unambiguously determine which > messages belong together. This is trivial for the messages that comprise the > main printing. Combine them together into a single invocation of ice_debug(). > > The message containing a hex-dump of the data buffer is a bit more > complicated. This is printed separately as part of print_hex_dump_debug. > This function takes a prefix, which is currently always set to > KBUILD_MODNAME. Extend this prefix to include the buffer address for the > databuffer, which is printed as part of the main print, and which is > guaranteed to be unique for each buffer. > > Refactor the ice_debug_array(), introducing an ice_debug_array_w_prefix(). > Build the prefix by combining KBUILD_MODNAME with the databuffer address > using snprintf(). > > These changes make it possible to unambiguously determine what data belongs > to what control queue message. > > Reported-by: Jacek Wierzbicki <jacek.wierzbi...@intel.com> > Signed-off-by: Przemek Kitszel <przemyslaw.kits...@intel.com> > Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_osdep.h | 24 ++++++++++++++---------- > drivers/net/ethernet/intel/ice/ice_controlq.c | 21 +++++++++++---------- > 2 files changed, 25 insertions(+), 20 deletions(-) >
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pu...@intel.com> (A Contingent worker at Intel)