Re: [PATCH 2/7] usb: xhci: use '%pad' specifier for DMA address printing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 9 Sep 2025 22:44:16 +0200, Michal Pecio wrote:
> On Tue, 9 Sep 2025 14:29:20 +0300, Andy Shevchenko wrote:
> > Not really. It prints unnecessary long values on 32-bit machines
> > making an impression that something works somewhere in 64-bit
> > address space.  
> 
> The %016llx format you are alluding to is used in two error messages
> actually seen by users, that's an issue. My crazy personal preference
> would be %08llx, but I concede it's unprofessional, so %pad it seems.

Actually, I take this back.

I think that leading zeros are evil and I agree this message is bad.
But I don't understand why 64 bit users should put up with this:

[  140.106751] xhci_hcd 0000:07:00.0: Event dma 0x00000000ffeec7f0 for ep 2 status 13 not part of TD at 00000000ffeec800 - 00000000ffeec800
[  140.476573] xhci_hcd 0000:07:00.0: Event dma 0x00000000ffeec1a0 for ep 2 status 13 not part of TD at 00000000ffeec1b0 - 00000000ffeec1b0
[  140.502855] xhci_hcd 0000:07:00.0: Event dma 0x00000000ffeecd60 for ep 2 status 13 not part of TD at 00000000ffeecd70 - 00000000ffeecd70
[  141.225300] xhci_hcd 0000:07:00.0: Event dma 0x00000000ffeeb970 for ep 2 status 13 not part of TD at 00000000ffeeb980 - 00000000ffeeb980

when we can have this:

[  419.967755] xhci_hcd 0000:07:00.0: Event dma 0xffc34760 for ep 2 status 13 not part of TD at 0xffc34770 - 0xffc34770
[  420.100611] xhci_hcd 0000:07:00.0: Event dma 0xffc34bc0 for ep 2 status 13 not part of TD at 0xffc34bd0 - 0xffc34bd0
[  420.360917] xhci_hcd 0000:07:00.0: Event dma 0xffc34e70 for ep 2 status 13 not part of TD at 0xffc34e80 - 0xffc34e80
[  421.719530] xhci_hcd 0000:07:00.0: Event dma 0xffc35770 for ep 2 status 13 not part of TD at 0xffc35780 - 0xffc35780

with a simple change (anything wrong with u64 cast here?):

-       xhci_err(xhci, "Event dma %pad for ep %d status %d not part of TD at %016llx - %016llx\n",
-                &ep_trb_dma, ep_index, trb_comp_code,
+       xhci_err(xhci, "Event dma %#08llx for ep %d status %d not part of TD at %#08llx - %#08llx\n",
+                (u64) ep_trb_dma, ep_index, trb_comp_code,

These zeros only add noise, and in many cases make difference between
line wrapping or not because this is longer than 99% of kernel messages
and some people want their terminal window not to take the whole screen.

The main thing we care about here are the last 3-4 digits and we could
have made it little more than (ep_trb_dma & 0xffff) long ago, but then
Niklas asked "what about correlation with tracing/debugfs/dyndbg?", so
it was left the way it is.

Regards,
Michal




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux