Re: [PATCH v2] riscv: add tracepoints for page fault

From: Zhu Hengbo
Date: Wed Jul 17 2024 - 21:34:44 EST



On 2024/7/17 22:55, Matthew Wilcox wrote:
> On Wed, Jul 17, 2024 at 08:27:19AM +0000, Zhu Hengbo wrote:
>> + TP_STRUCT__entry(
>> + __field(unsigned long, address)
>> + __field(unsigned long, epc)
>> + __field(unsigned long, cause)
>> + ),
>> +
>> + TP_fast_assign(
>> + __entry->address = regs->badaddr;
>> + __entry->epc = regs->epc;
>> + __entry->cause = regs->cause;
>> + ),
>> +
>> + TP_printk("user page fault, address=%ps epc=%ps cause=0x%lx",
>> + (void *)__entry->address, (void *)__entry->epc,
>> + __entry->cause)
> What is "epc"? You've made this gratuitously different from x86.
> Never do that. Always copy what somebody else has done unless you have
> a good reason to be different.
Yes, I have referred to the implementation in x86, but the fields in “struct pt_regs” are quite different between RISC-V and x86