Message ID | 20220830031206.13449-7-jarkko@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86/sgx: Test and fixes | 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 Tue, Aug 30, 2022 at 03:57:24PM -0700, Reinette Chatre wrote: > 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? Do not mean to be rude but I'm not sure what there is to guide but I'm open for ideas. BR, Jarkko
Hi Jarkko, On 8/30/2022 7:33 PM, Jarkko Sakkinen wrote: > On Tue, Aug 30, 2022 at 03:57:24PM -0700, Reinette Chatre wrote: >> 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? > > Do not mean to be rude but I'm not sure what there is to guide but > I'm open for ideas. How about something like below in comments as part of the script: "bpftrace script using kretprobe to trace returns of some key functions in support of tracking allocation errors." This is essentially in the subject line of the patch but that information will be lost when somebody looks at the script and tries to figure out what it is. Reinette
On Wed, Aug 31, 2022 at 11:10:20AM -0700, Reinette Chatre wrote: > Hi Jarkko, > > On 8/30/2022 7:33 PM, Jarkko Sakkinen wrote: > > On Tue, Aug 30, 2022 at 03:57:24PM -0700, Reinette Chatre wrote: > >> 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? > > > > Do not mean to be rude but I'm not sure what there is to guide but > > I'm open for ideas. > > How about something like below in comments as part of the script: > > "bpftrace script using kretprobe to trace returns of some key functions > in support of tracking allocation errors." I think comments that I put (before seeing) also make it clear enough (not to say that what you had not been a valid alternative). BR, Jarkko
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.
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
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