[PATCH V2 8/9] tools/perf: Add support to find global register variables using find_data_type_global_reg

Athira Rajeev atrajeev at linux.vnet.ibm.com
Fri May 24 22:17:02 AEST 2024



> On 7 May 2024, at 3:33 PM, Christophe Leroy <christophe.leroy at csgroup.eu> wrote:
> 
> 
> 
> Le 06/05/2024 à 14:19, Athira Rajeev a écrit :
>> There are cases where define a global register variable and associate it
>> with a specified register. Example, in powerpc, two registers are
>> defined to represent variable:
>> 1. r13: represents local_paca
>> register struct paca_struct *local_paca asm("r13");
>> 
>> 2. r1: represents stack_pointer
>> register void *__stack_pointer asm("r1");
> 
> What about r2:
> 
> register struct task_struct *current asm ("r2");

Hi Christophe,

Referring to arch/powerpc/include/asm/current.h, “current” in powerpc 64 bit is from paca_struct which is handled with r13
R2 definition which you shared above is for 32 bit case.

Thanks
Athira
> 
>> 
>> These regs are present in dwarf debug as DW_OP_reg as part of variables
>> in the cu_die (compile unit). These are not present in die search done
>> in the list of nested scopes since these are global register variables.
>> 



More information about the Linuxppc-dev mailing list