[Intel-wired-lan] [PATCH iwl-next 4/7] ice: stop intermixing AQ commands/responses debug dumps
Pucha, HimasekharX Reddy
himasekharx.reddy.pucha at intel.com
Sun Aug 11 03:38:45 UTC 2024
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces at osuosl.org> On Behalf Of Jacob Keller
> Sent: Wednesday, August 7, 2024 2:16 AM
> To: Nguyen, Anthony L <anthony.l.nguyen at intel.com>; Intel Wired LAN <intel-wired-lan at lists.osuosl.org>; "netdev netdev"@vger.kernel.org
> Cc: Temerkhanov, Sergey <sergey.temerkhanov at intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel at intel.com>; Kolacinski, Karol <karol.kolacinski at intel.com>; Wierzbicki, Jacek <jacek.wierzbicki at intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next 4/7] ice: stop intermixing AQ commands/responses debug dumps
>
> From: Przemek Kitszel <przemyslaw.kitszel at 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.wierzbicki at intel.com>
> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel at intel.com>
> Signed-off-by: Jacob Keller <jacob.e.keller at 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.pucha at intel.com> (A Contingent worker at Intel)
More information about the Intel-wired-lan
mailing list