Re: [PATCH 5/7] printk: Make %pS and friends print module build ID
From: Stephen Boyd <hidden>
Date: 2021-03-03 11:02:23
Also in:
lkml
Quoting Steven Rostedt (2021-03-01 18:43:19)
On Mon, 1 Mar 2021 09:47:47 -0800 Stephen Boyd [off-list ref] wrote:quoted
The %pS printk format (among some others) is used to print kernel addresses symbolically. When the kernel prints an address inside of a module, the kernel prints the addresses' symbol name along with the module's name that contains the address. Let's make kernel stacktraces easier to identify on KALLSYMS builds by including the build ID of a module when we print the address.Please no! This kills the output of tracing with offset, and can possibly break scripts. I don't want to look at traces like this! <idle>-0 [004] ..s1 353.842577: ipv4_conntrack_in+0x0/0x10 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_hook_slow+0x40/0xb0 <idle>-0 [004] ..s1 353.842577: nf_conntrack_in+0x0/0x5c0 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_hook_slow+0x40/0xb0 <idle>-0 [004] ..s1 353.842577: get_l4proto+0x0/0x190 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_conntrack_in+0x92/0x5c0 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <idle>-0 [004] ..s1 353.842577: nf_ct_get_tuple+0x0/0x240 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_conntrack_in+0xec/0x5c0 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <idle>-0 [004] ..s1 353.842577: hash_conntrack_raw+0x0/0x170 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_conntrack_in+0x28c/0x5c0 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <idle>-0 [004] ..s1 353.842578: __nf_conntrack_find_get.isra.0+0x0/0x2f0 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_conntrack_in+0x29d/0x5c0 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <idle>-0 [004] ..s1 353.842578: nf_conntrack_tcp_packet+0x0/0x1760 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_conntrack_in+0x3c8/0x5c0 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <idle>-0 [004] ..s2 353.842578: nf_ct_seq_offset+0x0/0x40 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_conntrack_tcp_packet+0x26d/0x1760 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <idle>-0 [004] ..s1 353.842578: __nf_ct_refresh_acct+0x0/0x50 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) <-nf_conntrack_tcp_packet+0x558/0x1760 [nf_conntrack] (3b39eb771b2566331887f671c741f90bfba0b051) NACK!
Heh, OK. Would adding a new printk format work then? From after the cut:
Yet another alternative is to add a printk format like %pSB for backtrace prints. This would require a handful of architecture updates and I'm not sure it's worth the effort for that.
Or maybe take the approach of putting all the linked in module build IDs in the "Modules linked in:" section? But as I said in the commit text that can become quite verbose. Looking forward to your suggestions here.