> -----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)

Reply via email to