Messages in this thread | | | Date | Wed, 6 Dec 2017 10:36:57 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCH V11 4/5] vsprintf: add printk specifier %px |
| |
Hello,
On (12/05/17 13:22), Linus Torvalds wrote: [..] > It's not like those hex numbers were really helping people anyway. > We've turned off most of them on x86 oops reports long ago (and > entirely independently of the pointer hashing). Having stared at a lot > of oopses in my time, the only hex numbers that tend to be really > relevant are (a) the register contents (which aren't %p anyway), and > things like the faulting address (which is not, and never has been, %p > on x86, but might be on some other architecture).
I see some %p-s being used in _supposedly_ important output, like arch/x86/mm/fault.c
show_fault_oops(struct pt_regs *regs, unsigned long error_code, unsigned long address) ... printk(KERN_CONT " at %p\n", (void *) address); printk(KERN_ALERT "IP: %pS\n", (void *)regs->ip);
a quick %p grep gives me the following list:
arch/arm/mm/fault.c: pr_alert("pgd = %p\n", mm->pgd); arch/arm64/mm/fault.c: pr_alert("%s pgtable: %luk pages, %u-bit VAs, pgd = %p\n", arch/arm64/mm/fault.c: pr_info_ratelimited("%s[%d]: %s exception: pc=%p sp=%p\n", arch/m68k/mm/fault.c: pr_debug("send_fault_sig: %p,%d,%d\n", siginfo.si_addr, arch/m68k/mm/fault.c: pr_cont(" at virtual address %p\n", siginfo.si_addr); arch/m68k/mm/fault.c: pr_debug("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n", arch/microblaze/mm/fault.c: pr_emerg("Page fault in user mode with faulthandler_disabled(), mm = %p\n", arch/mn10300/mm/fault.c: printk(KERN_DEBUG "pgd entry %p: %016Lx\n", arch/mn10300/mm/fault.c: printk(KERN_DEBUG "pmd entry %p: %016Lx\n", arch/mn10300/mm/fault.c: printk(KERN_DEBUG "pte entry %p: %016Lx\n", arch/mn10300/mm/fault.c: printk(KERN_DEBUG "--- do_page_fault(%p,%s:%04lx,%08lx)\n", arch/powerpc/mm/fault.c: " mm=%p\n", arch/sh/mm/fault.c: printk(KERN_ALERT "pgd = %p\n", pgd); arch/unicore32/mm/fault.c: printk(KERN_ALERT "pgd = %p\n", mm->pgd); arch/x86/mm/fault.c: printk(KERN_CONT " at %p\n", (void *) address); arch/x86/mm/fault.c: printk(KERN_ALERT "IP: %pS\n", (void *)regs->ip); arch/x86/mm/fault.c: printk("%s%s[%d]: segfault at %lx ip %p sp %p error %lx",
or is it OK to show hashes instead of pgd or pmd pointers?
-ss
| |