Re: [RFC][PATCH] Implement perf_callchain_user for o32 ABI (on mipsel)

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

 



On 08/10/2011 12:24 AM, Holger Hans Peter Freyther wrote:
Hi all,

I wanted to use perf to profile my userspace application on MIPS but I saw
that there is no solution for that. I have written some code to scan the
prologue of the function to identify the stack size and where in the stack the
return address is stored.

    0:	27bdffd8 	addiu	sp,sp,-40<-- used to find prev. stack
    4:	afbf0024 	sw	ra,36(sp)<-- stored return addr.
    8:	afbe0020 	sw	s8,32(sp)
    c:	03a0f021 	move	s8,sp
   10:	3c1c0000 	lui	gp,0x0
   14:	279c0000 	addiu	gp,gp,0

The code appears to work in qemu-system-mipsel (not where I am going to do my
profiling) with my simple test application.

The code is missing a S-o-b because I would like to get feedback if something
like this would ever be accepted upstream. The other question is also about
security, other ABIs, 32/64 bit...

comments more than welcome
	holger

You need to reconcile your patches with these:

http://patchwork.linux-mips.org/patch/2579/
http://patchwork.linux-mips.org/patch/2376/
http://patchwork.linux-mips.org/patch/2375/

We probably could use some sort of backtrace code in the kernel, but three seperate implementations are too many.

Also separating most of the unwinder into a separate file would be preferable to mixing it into the perf counter driver.

David Daney



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux