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

Jarkko Sakkinen
2022-09-01T23:55:53Z

On Thu, Sep 01, 2022 at 03:34:49PM -0700, Dave Hansen wrote:
> 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.

Thanks, will give it a shot.

BR, Jarkko