Re: [PATCH] tracing: add trace event for memory-failure

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

 



On 2015/3/14 3:32, Steven Rostedt wrote:
> On Fri, 13 Mar 2015 09:37:34 -0700
> Tony Luck <tony.luck@xxxxxxxxx> wrote:
> 
> 
>>>  int sysctl_memory_failure_early_kill __read_mostly = 0;
>>>
>>> @@ -837,6 +838,8 @@ static struct page_state {
>>>   */
>>>  static void action_result(unsigned long pfn, char *msg, int result)
>>>  {
>>> +       trace_memory_failure_event(pfn, msg, action_name[result]);
>>> +
>>>         pr_err("MCE %#lx: %s page recovery: %s\n",
>>>                 pfn, msg, action_name[result]);
>>>  }
>>> --
>>> 1.7.1
>>>
>>> --
>>
>> Concept looks good to me. Adding Steven Rostedt as we've historically had
>> challenges adding new trace points in the cleanest way.
> 
> Hehe, thank you :-) I actually do have a recommendation. How about just
> passing in "result" and doing:
> 
> 
> 	TP_printk("pfn %#lx: %s page recovery: %s",
> 		__entry->pfn,
> 		__get_str(action),
> 		__print_symbolic(result, 0, "Ignored",
> 				1, "Failed",
> 				2, "Delayed",
> 				3, "Recovered"))
> 
> 
> Now it is hard coded here because trace-cmd and perf do not have a way
> to process enums (yet, I need to fix that).

Hi Steve,

Thanks for you comments.

I'm not clearly why we need a hard coded here. As the strings or "result" have
defined in mm/memory-failure.c, so passing "action_name[result]" would be more
clean and more flexible here?

Thanks,
	Xie XiuQi

> 
> I also need a way to just submit print strings on module load and boot
> up such that you only need to pass in the address of the action field
> instead of the string. That is also a todo of mine that I may soon
> change.
> 
> -- Steve
> 
> 
> 
> .
> 


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]