All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: Joe Perches <joe@perches.com>, Jiri Kosina <trivial@kernel.org>
Cc: x86@kernel.org, jirislaby@gmail.com,
	linux-kernel@vger.kernel.org, Namhyung Kim <namhyung@gmail.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 1/1] dumpstack: fix printk_address for direct addresses
Date: Wed, 16 Oct 2013 11:52:25 +0200	[thread overview]
Message-ID: <525E61D9.10204@suse.cz> (raw)
In-Reply-To: <1381613710.8864.27.camel@joe-AO722>

On 10/12/2013 11:35 PM, Joe Perches wrote:
> On Sat, 2013-10-12 at 22:13 +0200, Jiri Slaby wrote:
> []
>> To fix that, we use %pS only for stack addresses printouts (via newly
>> added printk_stack_address) and %pB for regs->ip (via printk_address).
>> I.e. we revert to the old behaviour for all except call stacks. And
>> since from all those reliable is 1, we remove that parameter from
>> printk_address.
> 
> I'm still waiting for you to apply this:
> 
> https://lkml.org/lkml/2013/7/22/701
> https://lkml.org/lkml/2013/7/22/700
> 
> Oh wait, wrong Jiri... ;-)
> 
> Anyway, I'd rather your specific changes be done inline
> so it's less possible to have interleaved messages.

Why you are putting this here?

>> diff --git a/arch/x86/include/asm/kdebug.h b/arch/x86/include/asm/kdebug.h
> []
>> @@ -21,7 +21,7 @@ enum die_val {
>>  	DIE_NMIUNKNOWN,
>>  };
>>  
>> -extern void printk_address(unsigned long address, int reliable);
>> +extern void printk_address(unsigned long address);
> 
> I think this can be removed.

I'm waiting for an x86's guys input as to what do they prefer to be done?

>> diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
> []
>> @@ -25,12 +25,17 @@ unsigned int code_bytes = 64;
>>  int kstack_depth_to_print = 3 * STACKSLOTS_PER_LINE;
>>  static int die_counter;
>>  
>> -void printk_address(unsigned long address, int reliable)
>> +static void printk_stack_address(unsigned long address, int reliable)
>>  {
>>  	pr_cont(" [<%p>] %s%pB\n",
>>  		(void *)address, reliable ? "" : "? ", (void *)address);
>>  }
> 
> This is now used only once and could/should be done
> at the single use site.
> 
>> +void printk_address(unsigned long address)
>> +{
>> +	pr_cont(" [<%p>] %pS\n", (void *)address, (void *)address);
>> +}
>> +
> 
> And this could/should be done inline in the few
> places it's used.
> 
>>  #ifdef CONFIG_FUNCTION_GRAPH_TRACER
>>  static void
>>  print_ftrace_graph_addr(unsigned long addr, void *data,
>> @@ -151,7 +156,7 @@ static void print_trace_address(void *data, unsigned long addr, int reliable)
>>  {
>>  	touch_nmi_watchdog();
>>  	printk(data);
>> -	printk_address(addr, reliable);
>> +	printk_stack_address(addr, reliable);
> 
> 	printk("%s [<%p>] %s%pB\n",
> 	       data, (void *)addr, reliable ? "" : "? ", (void *)addr);
> 
>> @@ -281,7 +286,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)
>>  #else
>>  	/* Executive summary in case the oops scrolled away */
>>  	printk(KERN_ALERT "RIP ");
>> -	printk_address(regs->ip, 1);
>> +	printk_address(regs->ip);
> 
> 	printk(KERN_ALERT "RIP [<%p>] %pS\n",
> 	       (void *)regs->ip, (void *)regs->ip);
> 
>> diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
> []
>> @@ -63,7 +63,7 @@ void __show_regs(struct pt_regs *regs, int all)
>>  	unsigned int ds, cs, es;
>>  
>>  	printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
>> -	printk_address(regs->ip, 1);
>> +	printk_address(regs->ip);
> 
> 	printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] [<%p>] %pS\n",
> 	       regs->cs & 0xffff, regs->ip,
> 	       (void *)regs->ip, (void *)regs->ip);
> 
> This one looks ugly to me.
> It emits the address twice.
> 
>>  	printk(KERN_DEFAULT "RSP: %04lx:%016lx  EFLAGS: %08lx\n", regs->ss,
>>  			regs->sp, regs->flags);
>>  	printk(KERN_DEFAULT "RAX: %016lx RBX: %016lx RCX: %016lx\n",
>> diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
>> index 3aaeffc..18feeb3 100644
>> --- a/arch/x86/mm/fault.c
>> +++ b/arch/x86/mm/fault.c
>> @@ -596,7 +596,7 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
>>  
>>  	printk(KERN_CONT " at %p\n", (void *) address);
>>  	printk(KERN_ALERT "IP:");
>> -	printk_address(regs->ip, 1);
>> +	printk_address(regs->ip);
> 
> 	printk(KERN_ALERT "IP: [<%p>] %pS\n",
> 	       (void *)regs->ip, (void *)regs->ip);
>  
>>  	dump_pagetable(address);
>>  }
>> diff --git a/arch/x86/platform/uv/uv_nmi.c b/arch/x86/platform/uv/uv_nmi.c
>> index 9126dfb..019b6ec 100644
>> --- a/arch/x86/platform/uv/uv_nmi.c
>> +++ b/arch/x86/platform/uv/uv_nmi.c
>> @@ -402,7 +402,7 @@ static void uv_nmi_dump_cpu_ip(int cpu, struct pt_regs *regs)
>>  	printk(KERN_DEFAULT "UV: %4d %6d %-32.32s ",
>>  		cpu, current->pid, current->comm);
>>  
>> -	printk_address(regs->ip, 1);
>> +	printk_address(regs->ip);
> 
> 	printk(KERN_DEFAULT "UV: %4d %6d %-32.32s [<%p>] %pS\n",
> 	       cpu, current->pid, current->comm,
> 	       (void *)regs->ip, (void *)regs->ip);
> 
> 


-- 
js
suse labs

      reply	other threads:[~2013-10-16  9:52 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-12 20:13 [PATCH 1/1] dumpstack: fix printk_address for direct addresses Jiri Slaby
2013-10-12 21:35 ` Joe Perches
2013-10-16  9:52   ` Jiri Slaby [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=525E61D9.10204@suse.cz \
    --to=jslaby@suse.cz \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jirislaby@gmail.com \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=namhyung@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=trivial@kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.