Re: [PATCH 6/6] selftests/sgx: Add a bpftrace script for tracking allocation errors

From: Dave Hansen
Date: Thu Sep 01 2022 - 18:35:03 EST


On 9/1/22 15:20, Jarkko Sakkinen wrote:
>>> +kr:sgx_alloc_epc_page /(uint64)retval >= (uint64)(-4095)/ {
>>> + printf("sgx_alloc_epc_page: retval=%d\n", (int64)retval);
>>> +}
>>> +
>>> +kr:sgx_encl_page_alloc /(uint64)retval >= (uint64)(-4095)/ {
>>> + printf("sgx_encl_page_alloc: retval=%d\n", (int64)retval);
>>> +}
>> I guess this doesn't _hurt_, but it's also not exactly the easiest way
>> to get this done. You need a whole bpf toolchain. You could also just do:
>>
>> perf probe 'sgx_encl_page_alloc%return $retval'
>>
>> Even *that* can be replicated in a few scant lines of shell code echoing
>> into /sys/kernel/debug/tracing.
> Thanks, I have not used perf that much. What if I replace
> this with a shell script using perf? How do you use that
> for two kretprobes?

The manpage is pretty good.

But, I'd proably be doing something along these lines:

perf probe 'sgx_encl_page_alloc%return ret=$retval'
perf record -e probe:sgx_encl_page_alloc -aR \
--filter='ret >= 0xwhatever' sleep 1
perf script

There are probably shorter ways to do it, but I'm pretty sure that works.