Message ID | 20220830031206.13449-7-jarkko@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | None | expand |
Hi Jarkko, On 8/29/2022 8:12 PM, Jarkko Sakkinen wrote: > Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org> > --- > tools/testing/selftests/sgx/alloc-error.bt | 7 +++++++ > 1 file changed, 7 insertions(+) > create mode 100644 tools/testing/selftests/sgx/alloc-error.bt > > diff --git a/tools/testing/selftests/sgx/alloc-error.bt b/tools/testing/selftests/sgx/alloc-error.bt > new file mode 100644 > index 000000000000..9268d50dea29 > --- /dev/null > +++ b/tools/testing/selftests/sgx/alloc-error.bt > @@ -0,0 +1,7 @@ > +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); > +} Could there be a snippet of comments in this new file to guide users on how to use this script? Reinette
On 8/29/22 20:12, Jarkko Sakkinen wrote: > diff --git a/tools/testing/selftests/sgx/alloc-error.bt b/tools/testing/selftests/sgx/alloc-error.bt > new file mode 100644 > index 000000000000..9268d50dea29 > --- /dev/null > +++ b/tools/testing/selftests/sgx/alloc-error.bt > @@ -0,0 +1,7 @@ > +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.
On Wed, Aug 31, 2022 at 11:23:55AM -0700, Dave Hansen wrote: > On 8/29/22 20:12, Jarkko Sakkinen wrote: > > diff --git a/tools/testing/selftests/sgx/alloc-error.bt b/tools/testing/selftests/sgx/alloc-error.bt > > new file mode 100644 > > index 000000000000..9268d50dea29 > > --- /dev/null > > +++ b/tools/testing/selftests/sgx/alloc-error.bt > > @@ -0,0 +1,7 @@ > > +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? BR, Jarkko
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.
diff --git a/tools/testing/selftests/sgx/alloc-error.bt b/tools/testing/selftests/sgx/alloc-error.bt new file mode 100644 index 000000000000..9268d50dea29 --- /dev/null +++ b/tools/testing/selftests/sgx/alloc-error.bt @@ -0,0 +1,7 @@ +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); +}
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org> --- tools/testing/selftests/sgx/alloc-error.bt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 tools/testing/selftests/sgx/alloc-error.bt