* [PATCH 0/3] kprobes: notrace enhancements
@ 2022-11-22 19:53 Nadav Amit
2022-11-22 19:53 ` [PATCH 1/3] kprobes: Mark descendents of core_kernel_text as notrace Nadav Amit
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Nadav Amit @ 2022-11-22 19:53 UTC (permalink / raw)
To: Thomas Gleixner
Cc: linux-arm-kernel, linux-kernel, linux-ia64, linux-um, linux-arch,
linux-mm, Andy Lutomirski, Ingo Molnar, Borislav Petkov,
Dave Hansen, x86, Richard Weinberger, Anton Ivanov, Johannes Berg,
Arnd Bergmann, Andrew Morton, Nadav Amit
From: Nadav Amit <namit@vmware.com>
There are inconsistencies and some issues in marking functions as
notrace. On one hand, all inline functions are marked as "notrace" and
some libraries cannot be traced. At the same time, some functions should
not be traced but are not marked as notrace.
These patch address issues that I encountered during work on an
automatic tracing tool.
Nadav Amit (3):
kprobes: Mark descendents of core_kernel_text as notrace
lib/usercopy: Allow traceing of usercopy, xarray, iov_iter
compiler: inline does not imply notrace
arch/arm/kernel/process.c | 2 +-
arch/ia64/mm/init.c | 2 +-
arch/x86/entry/vsyscall/vsyscall_64.c | 2 +-
arch/x86/um/mem_32.c | 2 +-
include/asm-generic/sections.h | 6 +++---
include/linux/compiler_types.h | 2 +-
include/linux/kallsyms.h | 6 +++---
include/linux/mm.h | 2 +-
lib/Makefile | 3 +++
9 files changed, 15 insertions(+), 12 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH 1/3] kprobes: Mark descendents of core_kernel_text as notrace 2022-11-22 19:53 [PATCH 0/3] kprobes: notrace enhancements Nadav Amit @ 2022-11-22 19:53 ` Nadav Amit 2022-11-22 19:53 ` [PATCH 2/3] lib/usercopy: Allow traceing of usercopy, xarray, iov_iter Nadav Amit 2022-11-22 19:53 ` [PATCH 3/3] compiler: inline does not imply notrace Nadav Amit 2 siblings, 0 replies; 12+ messages in thread From: Nadav Amit @ 2022-11-22 19:53 UTC (permalink / raw) To: Thomas Gleixner Cc: linux-arm-kernel, linux-kernel, linux-ia64, linux-um, linux-arch, linux-mm, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, x86, Richard Weinberger, Anton Ivanov, Johannes Berg, Arnd Bergmann, Andrew Morton, Nadav Amit, Marcin Nowakowski From: Nadav Amit <namit@vmware.com> Commit c0d80ddab899 ("kernel/extable.c: mark core_kernel_text notrace") disabled the tracing of core_kernel_text to avoid recursive calls. For the same reasons, all the functions in the dynamic extents of core_kernel_text should be marked as notrace. Cc: Marcin Nowakowski <marcin.nowakowski@mips.com> Signed-off-by: Nadav Amit <namit@vmware.com> --- arch/arm/kernel/process.c | 2 +- arch/ia64/mm/init.c | 2 +- arch/x86/entry/vsyscall/vsyscall_64.c | 2 +- arch/x86/um/mem_32.c | 2 +- include/asm-generic/sections.h | 6 +++--- include/linux/kallsyms.h | 6 +++--- include/linux/mm.h | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index a2b31d91a1b6..a32ca8fcab5a 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -331,7 +331,7 @@ int in_gate_area(struct mm_struct *mm, unsigned long addr) return (addr >= gate_vma.vm_start) && (addr < gate_vma.vm_end); } -int in_gate_area_no_mm(unsigned long addr) +notrace int in_gate_area_no_mm(unsigned long addr) { return in_gate_area(NULL, addr); } diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index fc4e4217e87f..e3d63d3d3e59 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c @@ -284,7 +284,7 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm) return &gate_vma; } -int in_gate_area_no_mm(unsigned long addr) +notrace int in_gate_area_no_mm(unsigned long addr) { if ((addr >= FIXADDR_USER_START) && (addr < FIXADDR_USER_END)) return 1; diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c index 4af81df133ee..68ebad6abd2b 100644 --- a/arch/x86/entry/vsyscall/vsyscall_64.c +++ b/arch/x86/entry/vsyscall/vsyscall_64.c @@ -340,7 +340,7 @@ int in_gate_area(struct mm_struct *mm, unsigned long addr) * context. It is less reliable than using a task's mm and may give * false positives. */ -int in_gate_area_no_mm(unsigned long addr) +notrace int in_gate_area_no_mm(unsigned long addr) { return vsyscall_mode != NONE && (addr & PAGE_MASK) = VSYSCALL_ADDR; } diff --git a/arch/x86/um/mem_32.c b/arch/x86/um/mem_32.c index cafd01f730da..cfec8b00b136 100644 --- a/arch/x86/um/mem_32.c +++ b/arch/x86/um/mem_32.c @@ -28,7 +28,7 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm) return FIXADDR_USER_START ? &gate_vma : NULL; } -int in_gate_area_no_mm(unsigned long addr) +notrace int in_gate_area_no_mm(unsigned long addr) { if (!FIXADDR_USER_START) return 0; diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h index db13bb620f52..d519965b67bf 100644 --- a/include/asm-generic/sections.h +++ b/include/asm-generic/sections.h @@ -188,7 +188,7 @@ static inline bool is_kernel_rodata(unsigned long addr) * * Returns: true if the address is located in .init.text, false otherwise. */ -static inline bool is_kernel_inittext(unsigned long addr) +static notrace inline bool is_kernel_inittext(unsigned long addr) { return addr >= (unsigned long)_sinittext && addr < (unsigned long)_einittext; @@ -203,7 +203,7 @@ static inline bool is_kernel_inittext(unsigned long addr) * Returns: true if the address is located in .text, false otherwise. * Note: an internal helper, only check the range of _stext to _etext. */ -static inline bool __is_kernel_text(unsigned long addr) +static notrace inline bool __is_kernel_text(unsigned long addr) { return addr >= (unsigned long)_stext && addr < (unsigned long)_etext; @@ -219,7 +219,7 @@ static inline bool __is_kernel_text(unsigned long addr) * and range from __init_begin to __init_end, which can be outside * of the _stext to _end range. */ -static inline bool __is_kernel(unsigned long addr) +static notrace inline bool __is_kernel(unsigned long addr) { return ((addr >= (unsigned long)_stext && addr < (unsigned long)_end) || diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 649faac31ddb..7ee6a734b738 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -24,21 +24,21 @@ struct cred; struct module; -static inline int is_kernel_text(unsigned long addr) +static notrace inline int is_kernel_text(unsigned long addr) { if (__is_kernel_text(addr)) return 1; return in_gate_area_no_mm(addr); } -static inline int is_kernel(unsigned long addr) +static notrace inline int is_kernel(unsigned long addr) { if (__is_kernel(addr)) return 1; return in_gate_area_no_mm(addr); } -static inline int is_ksym_addr(unsigned long addr) +static notrace inline int is_ksym_addr(unsigned long addr) { if (IS_ENABLED(CONFIG_KALLSYMS_ALL)) return is_kernel(addr); diff --git a/include/linux/mm.h b/include/linux/mm.h index bfac5a166cb8..36a938c10ede 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3186,7 +3186,7 @@ static inline struct vm_area_struct *get_gate_vma(struct mm_struct *mm) { return NULL; } -static inline int in_gate_area_no_mm(unsigned long addr) { return 0; } +static notrace inline int in_gate_area_no_mm(unsigned long addr) { return 0; } static inline int in_gate_area(struct mm_struct *mm, unsigned long addr) { return 0; -- 2.25.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/3] lib/usercopy: Allow traceing of usercopy, xarray, iov_iter 2022-11-22 19:53 [PATCH 0/3] kprobes: notrace enhancements Nadav Amit 2022-11-22 19:53 ` [PATCH 1/3] kprobes: Mark descendents of core_kernel_text as notrace Nadav Amit @ 2022-11-22 19:53 ` Nadav Amit 2022-11-22 19:53 ` [PATCH 3/3] compiler: inline does not imply notrace Nadav Amit 2 siblings, 0 replies; 12+ messages in thread From: Nadav Amit @ 2022-11-22 19:53 UTC (permalink / raw) To: Thomas Gleixner Cc: linux-arm-kernel, linux-kernel, linux-ia64, linux-um, linux-arch, linux-mm, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, x86, Richard Weinberger, Anton Ivanov, Johannes Berg, Arnd Bergmann, Andrew Morton, Nadav Amit From: Nadav Amit <namit@vmware.com> There is no reason not to allow the use of ftrace for usercopy, xarray and iov_iter. Enable tracing for these compilation unit. Signed-off-by: Nadav Amit <namit@vmware.com> --- lib/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/Makefile b/lib/Makefile index 59bd7c2f793a..32766aa26670 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -27,6 +27,8 @@ KASAN_SANITIZE_string.o := n CFLAGS_string.o += -fno-stack-protector endif +CFLAGS_xarray.o += $(CC_FLAGS_FTRACE) +CFLAGS_iov_iter.o += $(CC_FLAGS_FTRACE) lib-y := ctype.o string.o vsprintf.o cmdline.o \ rbtree.o radix-tree.o timerqueue.o xarray.o \ maple_tree.o idr.o extable.o irq_regs.o argv_split.o \ @@ -42,6 +44,7 @@ lib-$(CONFIG_SMP) += cpumask.o lib-y += kobject.o klist.o obj-y += lockref.o +CFLAGS_usercopy.o += $(CC_FLAGS_FTRACE) obj-y += bcd.o sort.o parser.o debug_locks.o random32.o \ bust_spinlocks.o kasprintf.o bitmap.o scatterlist.o \ list_sort.o uuid.o iov_iter.o clz_ctz.o \ -- 2.25.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/3] compiler: inline does not imply notrace 2022-11-22 19:53 [PATCH 0/3] kprobes: notrace enhancements Nadav Amit 2022-11-22 19:53 ` [PATCH 1/3] kprobes: Mark descendents of core_kernel_text as notrace Nadav Amit 2022-11-22 19:53 ` [PATCH 2/3] lib/usercopy: Allow traceing of usercopy, xarray, iov_iter Nadav Amit @ 2022-11-22 19:53 ` Nadav Amit 2022-11-22 20:09 ` Arnd Bergmann 2 siblings, 1 reply; 12+ messages in thread From: Nadav Amit @ 2022-11-22 19:53 UTC (permalink / raw) To: Thomas Gleixner Cc: linux-arm-kernel, linux-kernel, linux-ia64, linux-um, linux-arch, linux-mm, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, x86, Richard Weinberger, Anton Ivanov, Johannes Berg, Arnd Bergmann, Andrew Morton, Nadav Amit From: Nadav Amit <namit@vmware.com> Functions that are marked as "inline" are currently also not tracable. Apparently, this has been done to prevent differences between different configs that caused different functions to be tracable on different platforms. Anyhow, this consideration is not very strong, and tying "inline" and "notrace" does not seem very beneficial. The "inline" keyword is just a hint, and many functions are currently not tracable due to this reason. Disconnect "inline" from "notrace". Signed-off-by: Nadav Amit <namit@vmware.com> --- include/linux/compiler_types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index eb0466236661..36a99ef03a1a 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -158,7 +158,7 @@ struct ftrace_likely_data { * of extern inline functions at link time. * A lot of inline functions can cause havoc with function tracing. */ -#define inline inline __gnu_inline __inline_maybe_unused notrace +#define inline inline __gnu_inline __inline_maybe_unused /* * gcc provides both __inline__ and __inline as alternate spellings of -- 2.25.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-22 19:53 ` [PATCH 3/3] compiler: inline does not imply notrace Nadav Amit @ 2022-11-22 20:09 ` Arnd Bergmann 2022-11-22 20:28 ` Steven Rostedt 2022-11-22 20:51 ` Nadav Amit 0 siblings, 2 replies; 12+ messages in thread From: Arnd Bergmann @ 2022-11-22 20:09 UTC (permalink / raw) To: Nadav Amit, Thomas Gleixner Cc: linux-arm-kernel, linux-kernel, linux-ia64, linux-um, Linux-Arch, linux-mm, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, x86, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton, Nadav Amit, Steven Rostedt On Tue, Nov 22, 2022, at 20:53, Nadav Amit wrote: > From: Nadav Amit <namit@vmware.com> > > Functions that are marked as "inline" are currently also not tracable. > Apparently, this has been done to prevent differences between different > configs that caused different functions to be tracable on different > platforms. > > Anyhow, this consideration is not very strong, and tying "inline" and > "notrace" does not seem very beneficial. The "inline" keyword is just a > hint, and many functions are currently not tracable due to this reason. The original reason was listed in 93b3cca1ccd3 ("ftrace: Make all inline tags also include notrace"), which describes Commit 5963e317b1e9d2a ("ftrace/x86: Do not change stacks in DEBUG when calling lockdep") prevented lockdep calls from the int3 breakpoint handler from reseting the stack if a function that was called was in the process of being converted for tracing and had a breakpoint on it. The idea is, before calling the lockdep code, do a load_idt() to the special IDT that kept the breakpoint stack from reseting. This worked well as a quick fix for this kernel release, until a certain config caused a lockup in the function tracer start up tests. Investigating it, I found that the load_idt that was used to prevent the int3 from changing stacks was itself being traced! and this sounds like a much stronger reason than what you describe, and I would expect your change to cause regressions in similar places. It's possible that the right answer is that the affected functions should be marked as __always_inline. Arnd ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-22 20:09 ` Arnd Bergmann @ 2022-11-22 20:28 ` Steven Rostedt 2022-11-22 20:51 ` Nadav Amit 1 sibling, 0 replies; 12+ messages in thread From: Steven Rostedt @ 2022-11-22 20:28 UTC (permalink / raw) To: Arnd Bergmann Cc: Nadav Amit, Thomas Gleixner, linux-arm-kernel, linux-kernel, linux-ia64, linux-um, Linux-Arch, linux-mm, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, x86, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton, Nadav Amit, Peter Zijlstra On Tue, 22 Nov 2022 21:09:08 +0100 "Arnd Bergmann" <arnd@arndb.de> wrote: > On Tue, Nov 22, 2022, at 20:53, Nadav Amit wrote: > > From: Nadav Amit <namit@vmware.com> > > > > Functions that are marked as "inline" are currently also not tracable. > > Apparently, this has been done to prevent differences between different > > configs that caused different functions to be tracable on different > > platforms. > > > > Anyhow, this consideration is not very strong, and tying "inline" and > > "notrace" does not seem very beneficial. The "inline" keyword is just a > > hint, and many functions are currently not tracable due to this reason. > > The original reason was listed in 93b3cca1ccd3 ("ftrace: Make all > inline tags also include notrace"), which describes > > Commit 5963e317b1e9d2a ("ftrace/x86: Do not change stacks in DEBUG when > calling lockdep") prevented lockdep calls from the int3 breakpoint handler > from reseting the stack if a function that was called was in the process > of being converted for tracing and had a breakpoint on it. The idea is, > before calling the lockdep code, do a load_idt() to the special IDT that > kept the breakpoint stack from reseting. This worked well as a quick fix > for this kernel release, until a certain config caused a lockup in the > function tracer start up tests. > > Investigating it, I found that the load_idt that was used to prevent > the int3 from changing stacks was itself being traced! > > and this sounds like a much stronger reason than what you describe, > and I would expect your change to cause regressions in similar places. > > It's possible that the right answer is that the affected functions > should be marked as __always_inline. Actually, this requirement may not be as needed as much today. There's been a lot of work in the last 10 years (when that commit was added) to make ftrace much more robust. We could remove the notrace from inline and then see where it breaks ;-) But I'm guessing that it's probably not as much of an issue as it was before. Although, it may cause some splats with noinstr but I think that will be caught at compile time. -- Steve ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-22 20:09 ` Arnd Bergmann 2022-11-22 20:28 ` Steven Rostedt @ 2022-11-22 20:51 ` Nadav Amit 2022-11-29 2:36 ` Nadav Amit 1 sibling, 1 reply; 12+ messages in thread From: Nadav Amit @ 2022-11-22 20:51 UTC (permalink / raw) To: Arnd Bergmann Cc: Thomas Gleixner, linux-arm-kernel@lists.infradead.org, kernel list, linux-ia64@vger.kernel.org, linux-um@lists.infradead.org, Linux-Arch, Linux-MM, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, X86 ML, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton, Steven Rostedt T24gTm92IDIyLCAyMDIyLCBhdCAxMjowOSBQTSwgQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5k ZT4gd3JvdGU6DQoNCj4gISEgRXh0ZXJuYWwgRW1haWwNCj4gDQo+IE9uIFR1ZSwgTm92IDIyLCAy MDIyLCBhdCAyMDo1MywgTmFkYXYgQW1pdCB3cm90ZToNCj4+IEZyb206IE5hZGF2IEFtaXQgPG5h bWl0QHZtd2FyZS5jb20+DQo+PiANCj4+IEZ1bmN0aW9ucyB0aGF0IGFyZSBtYXJrZWQgYXMgImlu bGluZSIgYXJlIGN1cnJlbnRseSBhbHNvIG5vdCB0cmFjYWJsZS4NCj4+IEFwcGFyZW50bHksIHRo aXMgaGFzIGJlZW4gZG9uZSB0byBwcmV2ZW50IGRpZmZlcmVuY2VzIGJldHdlZW4gZGlmZmVyZW50 DQo+PiBjb25maWdzIHRoYXQgY2F1c2VkIGRpZmZlcmVudCBmdW5jdGlvbnMgdG8gYmUgdHJhY2Fi bGUgb24gZGlmZmVyZW50DQo+PiBwbGF0Zm9ybXMuDQo+PiANCj4+IEFueWhvdywgdGhpcyBjb25z aWRlcmF0aW9uIGlzIG5vdCB2ZXJ5IHN0cm9uZywgYW5kIHR5aW5nICJpbmxpbmUiIGFuZA0KPj4g Im5vdHJhY2UiIGRvZXMgbm90IHNlZW0gdmVyeSBiZW5lZmljaWFsLiBUaGUgImlubGluZSIga2V5 d29yZCBpcyBqdXN0IGENCj4+IGhpbnQsIGFuZCBtYW55IGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5 IG5vdCB0cmFjYWJsZSBkdWUgdG8gdGhpcyByZWFzb24uDQo+IA0KPiBUaGUgb3JpZ2luYWwgcmVh c29uIHdhcyBsaXN0ZWQgaW4gOTNiM2NjYTFjY2QzICgiZnRyYWNlOiBNYWtlIGFsbA0KPiBpbmxp bmUgdGFncyBhbHNvIGluY2x1ZGUgbm90cmFjZSIpLCB3aGljaCBkZXNjcmliZXMNCj4gDQo+ICAg IENvbW1pdCA1OTYzZTMxN2IxZTlkMmEgKCJmdHJhY2UveDg2OiBEbyBub3QgY2hhbmdlIHN0YWNr cyBpbiBERUJVRyB3aGVuDQo+ICAgIGNhbGxpbmcgbG9ja2RlcCIpIHByZXZlbnRlZCBsb2NrZGVw IGNhbGxzIGZyb20gdGhlIGludDMgYnJlYWtwb2ludCBoYW5kbGVyDQo+ICAgIGZyb20gcmVzZXRp bmcgdGhlIHN0YWNrIGlmIGEgZnVuY3Rpb24gdGhhdCB3YXMgY2FsbGVkIHdhcyBpbiB0aGUgcHJv Y2Vzcw0KPiAgICBvZiBiZWluZyBjb252ZXJ0ZWQgZm9yIHRyYWNpbmcgYW5kIGhhZCBhIGJyZWFr cG9pbnQgb24gaXQuIFRoZSBpZGVhIGlzLA0KPiAgICBiZWZvcmUgY2FsbGluZyB0aGUgbG9ja2Rl cCBjb2RlLCBkbyBhIGxvYWRfaWR0KCkgdG8gdGhlIHNwZWNpYWwgSURUIHRoYXQNCj4gICAga2Vw dCB0aGUgYnJlYWtwb2ludCBzdGFjayBmcm9tIHJlc2V0aW5nLiBUaGlzIHdvcmtlZCB3ZWxsIGFz IGEgcXVpY2sgZml4DQo+ICAgIGZvciB0aGlzIGtlcm5lbCByZWxlYXNlLCB1bnRpbCBhIGNlcnRh aW4gY29uZmlnIGNhdXNlZCBhIGxvY2t1cCBpbiB0aGUNCj4gICAgZnVuY3Rpb24gdHJhY2VyIHN0 YXJ0IHVwIHRlc3RzLg0KPiANCj4gICAgSW52ZXN0aWdhdGluZyBpdCwgSSBmb3VuZCB0aGF0IHRo ZSBsb2FkX2lkdCB0aGF0IHdhcyB1c2VkIHRvIHByZXZlbnQNCj4gICAgdGhlIGludDMgZnJvbSBj aGFuZ2luZyBzdGFja3Mgd2FzIGl0c2VsZiBiZWluZyB0cmFjZWQhDQo+IA0KPiBhbmQgdGhpcyBz b3VuZHMgbGlrZSBhIG11Y2ggc3Ryb25nZXIgcmVhc29uIHRoYW4gd2hhdCB5b3UgZGVzY3JpYmUs DQo+IGFuZCBJIHdvdWxkIGV4cGVjdCB5b3VyIGNoYW5nZSB0byBjYXVzZSByZWdyZXNzaW9ucyBp biBzaW1pbGFyIHBsYWNlcy4NCg0KSSBoYWQgbm8gaW50ZW50aW9uIG9mIG1pc3JlcHJlc2VudGlu Zy4gVGhhdCB3YXMgbXkgdW5kZXJzdGFuZGluZyBmcm9tIG15DQpwcmV2aW91cyBkaXNjdXNzaW9u IHdpdGggU3RldmVuLg0KDQpJIGFzc3VtZSB0aGF0IHRoaXMgcGF0Y2ggbWlnaHQgY2F1c2Ugc29t ZSByZWdyZXNzaW9ucy4gVGhlIGZpcnN0IHBhdGNoIGluDQp0aGlzIHNlcmllcyB3YXMgaW50ZW5k ZWQgdG8gcHJldmVudHMgc29tZSByZWdyZXNzaW9ucyB0aGF0IEkgZW5jb3VudGVyZWQuDQpUaGlz IHBhdGNoIGFsc28gbWFya3MgYSBmdW5jdGlvbiB0aGF0IHdhcyBtaXNzaW5nIOKAnG5vdHJhY2Xi gJ0gYmVmb3JlLiBBbmQgSQ0KZGlkIGdldCBrZXJuZWwgaGFuZ3MgZHVlIHRvIHRoZSBtaXNzaW5n IOKAnG5vdHJhY2XigJ0uDQoNCkFueWhvdywgSSBiZWxpZXZlIHRoYXQgdGhlIGFsdGVybmF0aXZl IC0gb2YgbGVhdmluZyB0aGluZ3MgYXMgdGhleSBhcmUNCijigJxpbmxpbmXigJ0tPuKAnW5vdHJh Y2XigJ0pIC0gaXMgZXZlbiB3b3JzZS4gT2J2aW91c2x5IGl0IHByZXZlbnRzIHByb3BlciB0cmFj aW5nLA0KYXMgdGhlcmUgYXJlIGV2ZW4gc3lzdGVtIGNhbGxzIHRoYXQgdXNlIGlubGluZSwgZm9y IGluc3RhbmNlDQpfX2RvX3N5c19wcm9jZXNzX21hZHZpc2UoKSBhbmQgX19kb19zeXNfbXJlbWFw KCkuDQoNCkJ1dCBtb3JlIGltcG9ydGFudGx5LCB0aGUgY3VycmVudCDigJxpbmxpbmXigJ0tPuKA nW5vdHJhY2XigJ0gc29sdXRpb24ganVzdCBwYXBlcnMNCm92ZXIgbWlzc2luZyDigJxub3RyYWNl 4oCdIGFubm90YXRpb25zLiBBbnlvbmUgY2FuIHJlbW92ZSB0aGUg4oCcaW5saW5l4oCdIGF0IGFu eQ0KZ2l2ZW4gbW9tZW50IHNpbmNlIHRoZXJlIGlzIG5vIGRpcmVjdCAob3IgaW5kaXJlY3QpIHJl bGF0aW9uc2hpcCBiZXR3ZWVuDQrigJxpbmxpbmXigJ0gYW5kIOKAnG5vdHJhY2XigJ0uIEl0IHNl ZW1zIHRvIG1lIGFsbCByYW5kb20gYW5kIGJvdW5kIHRvIGZhaWwgYXQgc29tZQ0KcG9pbnQuDQoN Cj4gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSByaWdodCBhbnN3ZXIgaXMgdGhhdCB0aGUgYWZmZWN0 ZWQgZnVuY3Rpb25zDQo+IHNob3VsZCBiZSBtYXJrZWQgYXMgX19hbHdheXNfaW5saW5lLg0KDQpJ IHRoaW5rIHRoYXQgaXQgaXMgcHJvYmFibHkgYmV0dGVyIHRvIG1hcmsgdGhlbSBhcyBub3RyYWNl LiBQZW9wbGUgbWlnaHQNCnJlbW92ZSBfX2Fsd2F5c19pbmxpbmUuIElmIHdlIHdhbnQgdHdvIHZl cnNpb25zIC0gb25lIHRyYWNlYWJsZSBhbmQgb25lIG5vdA0KdHJhY2VhYmxlIC0gd2UgY2FuIGFs c28gZG8gdGhhdC4gQnV0IEkgYW0gbm90IHN1cmUgaG93IG1hbnkgcGVvcGxlIGFyZSBhd2FyZQ0K b2YgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBpbmxpbmUvX19hbHdheXNfaW5saW5lIGFuZCB0 cmFjaW5nLg0KDQo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-22 20:51 ` Nadav Amit @ 2022-11-29 2:36 ` Nadav Amit 2022-11-29 4:15 ` Steven Rostedt 0 siblings, 1 reply; 12+ messages in thread From: Nadav Amit @ 2022-11-29 2:36 UTC (permalink / raw) To: Peter Zijlstra, Steven Rostedt Cc: Arnd Bergmann, Thomas Gleixner, linux-arm-kernel@lists.infradead.org, kernel list, linux-ia64@vger.kernel.org, linux-um@lists.infradead.org, Linux-Arch, Linux-MM, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, X86 ML, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton, Steven Rostedt, Nadav Amit T24gTm92IDIyLCAyMDIyLCBhdCAxMjo1MSBQTSwgTmFkYXYgQW1pdCA8bmFtaXRAdm13YXJlLmNv bT4gd3JvdGU6DQoNCj4gQnV0IG1vcmUgaW1wb3J0YW50bHksIHRoZSBjdXJyZW50IOKAnGlubGlu ZeKAnS0+4oCdbm90cmFjZeKAnSBzb2x1dGlvbiBqdXN0IHBhcGVycw0KPiBvdmVyIG1pc3Npbmcg 4oCcbm90cmFjZeKAnSBhbm5vdGF0aW9ucy4gQW55b25lIGNhbiByZW1vdmUgdGhlIOKAnGlubGlu ZeKAnSBhdCBhbnkNCj4gZ2l2ZW4gbW9tZW50IHNpbmNlIHRoZXJlIGlzIG5vIGRpcmVjdCAob3Ig aW5kaXJlY3QpIHJlbGF0aW9uc2hpcCBiZXR3ZWVuDQo+IOKAnGlubGluZeKAnSBhbmQg4oCcbm90 cmFjZeKAnS4gSXQgc2VlbXMgdG8gbWUgYWxsIHJhbmRvbSBhbmQgYm91bmQgdG8gZmFpbCBhdCBz b21lDQo+IHBvaW50Lg0KDQpQZXRlciwgU3RldmVuLCAoYW5kIG90aGVycyksDQoNCkJleW9uZCB0 aGUgaXNzdWVzIHRoYXQgYXJlIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNoLXNldCwgSSBlbmNvdW50 ZXJlZCBvbmUNCm1vcmUsIHdoaWNoIHJlaXRlcmF0ZXMgdGhlIGZhY3QgdGhhdCB0aGUgaGV1cmlz dGljcyBvZiBtYXJraW5nIOKAnGlubGluZeKAnQ0KZnVuY3Rpb25zIGFzIOKAnG5vdHJhY2XigJ0g aXMgbm90IGdvb2QgZW5vdWdoLg0KDQpCZWZvcmUgSSBzZW5kIGEgcGF0Y2gsIEkgd291bGQgbGlr ZSB0byBnZXQgeW91ciBmZWVkYmFjay4gSSBpbmNsdWRlIGEgc3BsYXQNCmJlbG93LiBJdCBhcHBl YWVycyB0aGUgZXhlY3V0aW9uIG1pZ2h0IGdldCBzdHVjayBzaW5jZSBzb21lIGZ1bmN0aW9ucyB0 aGF0DQpjYW4gYmUgdXNlZCBmb3IgZnVuY3Rpb24gdHJhY2luZyBjYW4gYmUgdHJhY2VkIHRoZW1z ZWx2ZXMuDQoNCkZvciBleGFtcGxlLCBfX2tlcm5lbF90ZXh0X2FkZHJlc3MoKSBhbmQgdW53aW5k X2dldF9yZXR1cm5fYWRkcmVzcygpIGFyZQ0KdHJhY2VhYmxlLiBJIHRoaW5rIHRoYXQgd2UgbmVl ZCB0byBkaXNhbGxvdyB0aGUgdHJhY2luZyBvZiBhbGwgZnVuY3Rpb25zDQp0aGF0IGFyZSBjYWxs ZWQgZGlyZWN0bHkgYW5kIGluZGlyZWN0bHkgZnJvbSBmdW5jdGlvbl9zdGFja190cmFjZV9jYWxs KCkNCihpLmUuLCB0aGV5IGFyZSBpbiB0aGUgZHluYW1pYyBleHRlbnQgb2YgZnVuY3Rpb25fc3Rh Y2tfdHJhY2VfY2FsbCkuDQoNCkluIHRoZSBsYWNrIG9mIGEgcHJvcGVyIGF1dG9tYXRlZCBzdGF0 aWMgYW5hbHlzaXMgdG9vbCBmb3IgdGhlIG1hdHRlciwgSQ0Kc3VnZ2VzdCB0aGUgZm9sbG93aW5n IHNvbHV0aW9uLCBidXQgSSB3b3VsZCBsaWtlIHRvIGNoZWNrIHRoYXQgeW91IGFyZSBvaw0Kd2l0 aCB0aGUgZ3JhbnVsYXJpdHkgb2YgdGhlIOKAnG5vdHJhY2XigJ0gYXMgSSBwcm9wb3NlLiBBZ2Fp biwgbm90ZSB0aGF0IHRoaXMgaXMNCm5vdCBjYXVzZWQgYnkgdGhpcyDigJxpbmxpbmXigJ0gcGF0 Y2gsIGJ1dCBhbiBpc3N1ZSB0aGF0IGV4aXN0ZWQgYmVmb3JlLg0KDQotLSA+OCAtLQ0KDQpBdXRo b3I6IE5hZGF2IEFtaXQgPG5hbWl0QHZtd2FyZS5jb20+DQpEYXRlOiAgIFR1ZSBOb3YgMjkgMDI6 MjU6MTIgMjAyMiArMDAwMA0KDQogICAgdHJhY2U6IERpc2FibGUgdHJhY2luZyBvZiBjb2RlIGNh bGxlZCBmcm9tIGZ1bmN0aW9uX3N0YWNrX3RyYWNlX2NhbGwoKQ0KICAgIA0KICAgIFNpZ25lZC1v ZmYtYnk6IE5hZGF2IEFtaXQgPG5hbWl0QHZtd2FyZS5jb20+DQoNCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUNCmluZGV4IGEy MGE1ZWJmYWNkNy4uMTg1OTMzMjIyZDA4IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL01h a2VmaWxlDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUNCkBAIC0yMSw2ICsyMSwxMCBA QCBDRkxBR1NfUkVNT1ZFX2Z0cmFjZS5vID0gLXBnDQogQ0ZMQUdTX1JFTU9WRV9lYXJseV9wcmlu dGsubyA9IC1wZw0KIENGTEFHU19SRU1PVkVfaGVhZDY0Lm8gPSAtcGcNCiBDRkxBR1NfUkVNT1ZF X3Nldi5vID0gLXBnDQorQ0ZMQUdTX1JFTU9WRV91bndpbmRfZnJhbWUubyA9IC1wZw0KK0NGTEFH U19SRU1PVkVfdW53aW5kX2d1ZXNzLm8gPSAtcGcNCitDRkxBR1NfUkVNT1ZFX3Vud2luZF9vcmMu byA9IC1wZw0KK0NGTEFHU19SRU1PVkVfc3RhY2t0cmFjZS5vID0gLXBnDQogZW5kaWYNCiANCiBL QVNBTl9TQU5JVElaRV9oZWFkJChCSVRTKS5vICAgICAgICAgICAgICAgICAgICAgICAgICAgOj0g bg0KZGlmZiAtLWdpdCBhL2tlcm5lbC9NYWtlZmlsZSBiL2tlcm5lbC9NYWtlZmlsZQ0KaW5kZXgg MzE4Nzg5YzcyOGQzLi5kNjg4ZWFiMWUxZjggMTAwNjQ0DQotLS0gYS9rZXJuZWwvTWFrZWZpbGUN CisrKyBiL2tlcm5lbC9NYWtlZmlsZQ0KQEAgLTE5LDYgKzE5LDggQEAgb2JqLSQoQ09ORklHX01V TFRJVVNFUikgKz0gZ3JvdXBzLm8NCiBpZmRlZiBDT05GSUdfRlVOQ1RJT05fVFJBQ0VSDQogIyBE byBub3QgdHJhY2UgaW50ZXJuYWwgZnRyYWNlIGZpbGVzDQogQ0ZMQUdTX1JFTU9WRV9pcnFfd29y ay5vID0gJChDQ19GTEFHU19GVFJBQ0UpDQorQ0ZMQUdTX1JFTU9WRV9zdGFja3RyYWNlLm8gPSAk KENDX0ZMQUdTX0ZUUkFDRSkNCitDRkxBR1NfUkVNT1ZFX2V4dGFibGUubyA9ICQoQ0NfRkxBR1Nf RlRSQUNFKQ0KIGVuZGlmDQogDQogIyBQcmV2ZW50cyBmbGlja2VyIG9mIHVuaW50ZXJlc3Rpbmcg X19kb19zb2Z0aXJxKCkvX19sb2NhbF9iaF9kaXNhYmxlX2lwKCkNCg0KDQotLS0NCg0KDQpbNTMx Mzk0LjQ0NzE4NV0gc2NoZWQ6IFJUIHRocm90dGxpbmcgYWN0aXZhdGVkDQpbNTMxMzk0Ljg3NDU0 MV0gTk1JIHdhdGNoZG9nOiBXYXRjaGRvZyBkZXRlY3RlZCBoYXJkIExPQ0tVUCBvbiBjcHUgMjYN Cls1MzEzOTQuODc0NzQ1XSBNb2R1bGVzIGxpbmtlZCBpbjogenJhbQ0KWzUzMTM5NC44NzUyMjRd IENQVTogMjYgUElEOiAwIENvbW06IHN3YXBwZXIvMjYgTm90IHRhaW50ZWQgNi4wLjAtcmM2dW1l bSsgIzI5DQpbNTMxMzk0Ljg3NTQyNl0gSGFyZHdhcmUgbmFtZTogQ2lzY28gU3lzdGVtcyBJbmMg VUNTQy1DMjIwLU01U1gvVUNTQy1DMjIwLU01U1gsIEJJT1MgQzIyME01LjQuMC4xaS4wLjA1MjIx OTAyMjYgMDUvMjIvMjAxOQ0KWzUzMTM5NC44NzU2MjNdIFJJUDogMDAxMDpwb2tlX2ludDNfaGFu ZGxlciAoYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmM6MTQzNSkgDQpbNTMxMzk0Ljg3NTkw M10gQ29kZTogNDUgMDEgNDggOGIgMGQgYzggMGEgNDUgMDEgNDkgOGQgNzAgZmYgODMgZjggMDEg N2YgMWMgNDggNjMgMzkgMzEgYzAgNDggODEgYzcgMDAgMDAgMDAgODEgNDggMzkgZmUgNzQgM2Mg ZjAgZmYgMGQgYjMgMGEgNDUgMDEgPGMzPiAzMSBjMCBjMyA0OSA4OSBjYSA0OSA4OSBjMSA0OSBk MSBlOSA0YyA4OSBjOSA0OCBjMSBlMSAwNCA0YyAwMQ0KQWxsIGNvZGUNCj09PT09PT09DQogICAw Ogk0NSAwMSA0OCA4YiAgICAgICAgICAJYWRkICAgICVyOWQsLTB4NzUoJXI4KQ0KICAgNDoJMGQg YzggMGEgNDUgMDEgICAgICAgCW9yICAgICAkMHgxNDUwYWM4LCVlYXgNCiAgIDk6CTQ5IDhkIDcw IGZmICAgICAgICAgIAlsZWEgICAgLTB4MSglcjgpLCVyc2kNCiAgIGQ6CTgzIGY4IDAxICAgICAg ICAgICAgIAljbXAgICAgJDB4MSwlZWF4DQogIDEwOgk3ZiAxYyAgICAgICAgICAgICAgICAJamcg ICAgIDB4MmUNCiAgMTI6CTQ4IDYzIDM5ICAgICAgICAgICAgIAltb3ZzbHEgKCVyY3gpLCVyZGkN CiAgMTU6CTMxIGMwICAgICAgICAgICAgICAgIAl4b3IgICAgJWVheCwlZWF4DQogIDE3Ogk0OCA4 MSBjNyAwMCAwMCAwMCA4MSAJYWRkICAgICQweGZmZmZmZmZmODEwMDAwMDAsJXJkaQ0KICAxZToJ NDggMzkgZmUgICAgICAgICAgICAgCWNtcCAgICAlcmRpLCVyc2kNCiAgMjE6CTc0IDNjICAgICAg ICAgICAgICAgIAlqZSAgICAgMHg1Zg0KICAyMzoJZjAgZmYgMGQgYjMgMGEgNDUgMDEgCWxvY2sg ZGVjbCAweDE0NTBhYjMoJXJpcCkgICAgICAgICMgMHgxNDUwYWRkDQogIDJhOioJYzMgICAgICAg ICAgICAgICAgICAgCXJldCAgICAJCTwtLSB0cmFwcGluZyBpbnN0cnVjdGlvbg0KICAyYjoJMzEg YzAgICAgICAgICAgICAgICAgCXhvciAgICAlZWF4LCVlYXgNCiAgMmQ6CWMzICAgICAgICAgICAg ICAgICAgIAlyZXQgICAgDQogIDJlOgk0OSA4OSBjYSAgICAgICAgICAgICAJbW92ICAgICVyY3gs JXIxMA0KICAzMToJNDkgODkgYzEgICAgICAgICAgICAgCW1vdiAgICAlcmF4LCVyOQ0KICAzNDoJ NDkgZDEgZTkgICAgICAgICAgICAgCXNociAgICAlcjkNCiAgMzc6CTRjIDg5IGM5ICAgICAgICAg ICAgIAltb3YgICAgJXI5LCVyY3gNCiAgM2E6CTQ4IGMxIGUxIDA0ICAgICAgICAgIAlzaGwgICAg JDB4NCwlcmN4DQogIDNlOgk0YyAgICAgICAgICAgICAgICAgICAJcmV4LldSDQogIDNmOgkwMSAg ICAgICAgICAgICAgICAgICAJLmJ5dGUgMHgxDQoNCkNvZGUgc3RhcnRpbmcgd2l0aCB0aGUgZmF1 bHRpbmcgaW5zdHJ1Y3Rpb24NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCiAgIDA6CWMzICAgICAgICAgICAgICAgICAgIAlyZXQgICAgDQogICAxOgkzMSBjMCAg ICAgICAgICAgICAgICAJeG9yICAgICVlYXgsJWVheA0KICAgMzoJYzMgICAgICAgICAgICAgICAg ICAgCXJldCAgICANCiAgIDQ6CTQ5IDg5IGNhICAgICAgICAgICAgIAltb3YgICAgJXJjeCwlcjEw DQogICA3Ogk0OSA4OSBjMSAgICAgICAgICAgICAJbW92ICAgICVyYXgsJXI5DQogICBhOgk0OSBk MSBlOSAgICAgICAgICAgICAJc2hyICAgICVyOQ0KICAgZDoJNGMgODkgYzkgICAgICAgICAgICAg CW1vdiAgICAlcjksJXJjeA0KICAxMDoJNDggYzEgZTEgMDQgICAgICAgICAgCXNobCAgICAkMHg0 LCVyY3gNCiAgMTQ6CTRjICAgICAgICAgICAgICAgICAgIAlyZXguV1INCiAgMTU6CTAxICAgICAg ICAgICAgICAgICAgIAkuYnl0ZSAweDENCls1MzEzOTQuODc2MDMxXSBSU1A6IDAwMTg6ZmZmZmM5 MDAwY2QzODdiMCBFRkxBR1M6IDAwMDAwMDAzDQpbNTMxMzk0Ljg3NjMyMF0gUkFYOiAwMDAwMDAw MDAwMDAwMDAxIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IGZmZmZjOTAwMGNkMzg4YTgNCls1 MzEzOTQuODc2NDgyXSBSRFg6IGZmZmZjOTAwMGNkMzg3ZDggUlNJOiBmZmZmZmZmZjgxMmJhMzEw IFJESTogZmZmZmZmZmZjMDQwOTA5NA0KWzUzMTM5NC44NzY2NTJdIFJCUDogZmZmZmM5MDAwY2Qz ODdjOCBSMDg6IGZmZmZmZmZmYzA0MDkwOTkgUjA5OiAwMDAwMDAwMDAwMDAwMDAwDQpbNTMxMzk0 Ljg3Njc4Ml0gUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6 IGZmZmZjOTAwMGNkMzg3ZDgNCls1MzEzOTQuODc2OTI3XSBSMTM6IDAwMDAwMDAwMDAwMDAwMDAg UjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMA0KWzUzMTM5NC44Nzcx ODBdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODhhZmRmOTAwMDAwKDAwMDAp IGtubEdTOjAwMDAwMDAwMDAwMDAwMDANCls1MzEzOTQuODc3MzcxXSBDUzogIDAwMTAgRFM6IDAw MDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzDQpbNTMxMzk0Ljg3NzUwM10gQ1IyOiAw MDAwN2VmZDFlNDdiMDFjIENSMzogMDAwMDAwMDAwNmEwYTAwMSBDUjQ6IDAwMDAwMDAwMDA3NzA2 ZTANCls1MzEzOTQuODc3NjQxXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAw MDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMA0KWzUzMTM5NC44Nzc4MjJdIERSMzogMDAwMDAw MDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwDQpb NTMxMzk0Ljg3Nzk5M10gUEtSVTogNTU1NTU1NTQNCls1MzEzOTQuODc4MTY0XSBDYWxsIFRyYWNl Og0KWzUzMTM5NC44NzgzNTZdICA8SVJRPg0KWzUzMTM5NC44Nzg1NzNdID8gZXhjX2ludDMgKGFy Y2gveDg2L2tlcm5lbC90cmFwcy5jOjgxNykgDQpbNTMxMzk0Ljg3OTMwNl0gYXNtX2V4Y19pbnQz ICguL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lkdGVudHJ5Lmg6NTY5KSANCls1MzEzOTQuODc5NzI1 XSBSSVA6IDAwMTA6ZnVuY3Rpb25fc3RhY2tfdHJhY2VfY2FsbCAoa2VybmVsL3RyYWNlL3RyYWNl X2Z1bmN0aW9ucy5jOjIxOSkgDQpbNTMxMzk0Ljg4MDA1OF0gQ29kZTogMmIgODEgNDggYzcgYzcg ZTAgZTIgMzMgODMgZTggMWMgZmEgZmQgZmYgNDggYzcgYzcgODAgZTYgMWMgODMgZTggNDAgNjEg ZmUgMDAgNWQgYzMgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgPDU1 PiA0OCA4OSBlNSA0MSA1NyA0MSA1NiA0MSA1NSA0MSA1NCA1MyA0OCA4MyBlYyAwOCA0YyA4YiA2 MiAxOCA0MQ0KQWxsIGNvZGUNCj09PT09PT09DQogICAwOgkyYiA4MSA0OCBjNyBjNyBlMCAgICAJ c3ViICAgIC0weDFmMzgzOGI4KCVyY3gpLCVlYXgNCiAgIDY6CWUyIDMzICAgICAgICAgICAgICAg IAlsb29wICAgMHgzYg0KICAgODoJODMgZTggMWMgICAgICAgICAgICAgCXN1YiAgICAkMHgxYywl ZWF4DQogICBiOglmYSAgICAgICAgICAgICAgICAgICAJY2xpICAgIA0KICAgYzoJZmQgICAgICAg ICAgICAgICAgICAgCXN0ZCAgICANCiAgIGQ6CWZmIDQ4IGM3ICAgICAgICAgICAgIAlkZWNsICAg LTB4MzkoJXJheCkNCiAgMTA6CWM3IDgwIGU2IDFjIDgzIGU4IDQwIAltb3ZsICAgJDB4ZmU2MTQw LC0weDE3N2NlMzFhKCVyYXgpDQogIDE3Ogk2MSBmZSAwMCANCiAgMWE6CTVkICAgICAgICAgICAg ICAgICAgIAlwb3AgICAgJXJicA0KICAxYjoJYzMgICAgICAgICAgICAgICAgICAgCXJldCAgICAN CiAgMWM6CWNjICAgICAgICAgICAgICAgICAgIAlpbnQzICAgDQogIDFkOgljYyAgICAgICAgICAg ICAgICAgICAJaW50MyAgIA0KICAxZToJY2MgICAgICAgICAgICAgICAgICAgCWludDMgICANCiAg MWY6CWNjICAgICAgICAgICAgICAgICAgIAlpbnQzICAgDQogIDIwOgljYyAgICAgICAgICAgICAg ICAgICAJaW50MyAgIA0KICAyMToJY2MgICAgICAgICAgICAgICAgICAgCWludDMgICANCiAgMjI6 CWNjICAgICAgICAgICAgICAgICAgIAlpbnQzICAgDQogIDIzOgljYyAgICAgICAgICAgICAgICAg ICAJaW50MyAgIA0KICAyNDoJY2MgICAgICAgICAgICAgICAgICAgCWludDMgICANCiAgMjU6CWNj ICAgICAgICAgICAgICAgICAgIAlpbnQzICAgDQogIDI2OgljYyAgICAgICAgICAgICAgICAgICAJ aW50MyAgIA0KICAyNzoJY2MgICAgICAgICAgICAgICAgICAgCWludDMgICANCiAgMjg6CWNjICAg ICAgICAgICAgICAgICAgIAlpbnQzICAgDQogIDI5OgljYyAgICAgICAgICAgICAgICAgICAJaW50 MyAgIA0KICAyYToqCTU1ICAgICAgICAgICAgICAgICAgIAlwdXNoICAgJXJicAkJPC0tIHRyYXBw aW5nIGluc3RydWN0aW9uDQogIDJiOgk0OCA4OSBlNSAgICAgICAgICAgICAJbW92ICAgICVyc3As JXJicA0KICAyZToJNDEgNTcgICAgICAgICAgICAgICAgCXB1c2ggICAlcjE1DQogIDMwOgk0MSA1 NiAgICAgICAgICAgICAgICAJcHVzaCAgICVyMTQNCiAgMzI6CTQxIDU1ICAgICAgICAgICAgICAg IAlwdXNoICAgJXIxMw0KICAzNDoJNDEgNTQgICAgICAgICAgICAgICAgCXB1c2ggICAlcjEyDQog IDM2Ogk1MyAgICAgICAgICAgICAgICAgICAJcHVzaCAgICVyYngNCiAgMzc6CTQ4IDgzIGVjIDA4 ICAgICAgICAgIAlzdWIgICAgJDB4OCwlcnNwDQogIDNiOgk0YyA4YiA2MiAxOCAgICAgICAgICAJ bW92ICAgIDB4MTgoJXJkeCksJXIxMg0KICAzZjoJNDEgICAgICAgICAgICAgICAgICAgCXJleC5C DQoNCkNvZGUgc3RhcnRpbmcgd2l0aCB0aGUgZmF1bHRpbmcgaW5zdHJ1Y3Rpb24NCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgIDA6CTU1ICAgICAgICAgICAg ICAgICAgIAlwdXNoICAgJXJicA0KICAgMToJNDggODkgZTUgICAgICAgICAgICAgCW1vdiAgICAl cnNwLCVyYnANCiAgIDQ6CTQxIDU3ICAgICAgICAgICAgICAgIAlwdXNoICAgJXIxNQ0KICAgNjoJ NDEgNTYgICAgICAgICAgICAgICAgCXB1c2ggICAlcjE0DQogICA4Ogk0MSA1NSAgICAgICAgICAg ICAgICAJcHVzaCAgICVyMTMNCiAgIGE6CTQxIDU0ICAgICAgICAgICAgICAgIAlwdXNoICAgJXIx Mg0KICAgYzoJNTMgICAgICAgICAgICAgICAgICAgCXB1c2ggICAlcmJ4DQogICBkOgk0OCA4MyBl YyAwOCAgICAgICAgICAJc3ViICAgICQweDgsJXJzcA0KICAxMToJNGMgOGIgNjIgMTggICAgICAg ICAgCW1vdiAgICAweDE4KCVyZHgpLCVyMTINCiAgMTU6CTQxICAgICAgICAgICAgICAgICAgIAly ZXguQg0KWzUzMTM5NC44ODAyMjVdIFJTUDogMDAxODpmZmZmYzkwMDBjZDM4OGE4IEVGTEFHUzog MDAwMDAwODINCls1MzEzOTQuODgwNTM4XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDIgUkJYOiBmZmZm YzkwMDBjZDM4OWE4IFJDWDogZmZmZmM5MDAwY2QzODhiMA0KWzUzMTM5NC44ODA3MDJdIFJEWDog ZmZmZmZmZmY4MzFjYmVjMCBSU0k6IGZmZmZmZmZmODExMTg5M2YgUkRJOiBmZmZmZmZmZjgxMWIy YzgwDQpbNTMxMzk0Ljg4MDg4NF0gUkJQOiBmZmZmYzkwMDBjZDM4OTU4IFIwODogZmZmZmM5MDAw ODJmN2Y0OCBSMDk6IDAwMDAwMDAwMDAwMDAwMDENCls1MzEzOTQuODgxMDU1XSBSMTA6IDAwMDAw MDAwMDAwMDBlMDAgUjExOiAwMDAwMDAwMDAwMDAwMDAxIFIxMjogZmZmZmM5MDAwY2QzOGE1MA0K WzUzMTM5NC44ODEyMjVdIFIxMzogMDAwMDAwMDAwMDAwMDAwMCBSMTQ6IGZmZmY4ODk4NDZlY2Mw ODAgUjE1OiAwMDAwMDAwMDAwMDAwMDA0DQpbNTMxMzk0Ljg4MzY5NF0gPyB1bndpbmRfZ2V0X3Jl dHVybl9hZGRyZXNzIChhcmNoL3g4Ni9rZXJuZWwvdW53aW5kX2ZyYW1lLmM6MTkgYXJjaC94ODYv a2VybmVsL3Vud2luZF9mcmFtZS5jOjE0KSANCls1MzEzOTQuODgzOTg0XSA/IGtlcm5lbF90ZXh0 X2FkZHJlc3MgKGtlcm5lbC9leHRhYmxlLmM6NzgpIA0KWzUzMTM5NC44ODU0MTBdICA/IDB4ZmZm ZmZmZmZjMDQwOTA5NQ0KWzUzMTM5NC44ODY0MzJdICA/IDB4ZmZmZmZmZmZjMDQwOTA5OQ0KWzUz MTM5NC44ODcyNzhdICA/IDB4ZmZmZmZmZmZjMDQwOTA5OQ0KWzUzMTM5NC44ODk1NjFdID8gX190 cmFjZV9zdGFjayAoa2VybmVsL3RyYWNlL3RyYWNlLmM6MzExOSkgDQpbNTMxMzk0Ljg5MDAzNl0g PyBfX2tlcm5lbF90ZXh0X2FkZHJlc3MgKGtlcm5lbC9leHRhYmxlLmM6NzgpIA0KWzUzMTM5NC44 OTExOTZdIF9fa2VybmVsX3RleHRfYWRkcmVzcyAoa2VybmVsL2V4dGFibGUuYzo3OCkgDQpbNTMx Mzk0Ljg5MTY1OF0gdW53aW5kX2dldF9yZXR1cm5fYWRkcmVzcyAoYXJjaC94ODYva2VybmVsL3Vu d2luZF9mcmFtZS5jOjE5IGFyY2gveDg2L2tlcm5lbC91bndpbmRfZnJhbWUuYzoxNCkgDQpbNTMx Mzk0Ljg5MjExMl0gPyBfX2tlcm5lbF90ZXh0X2FkZHJlc3MgKGtlcm5lbC9leHRhYmxlLmM6Nzgp IA0KWzUzMTM5NC44OTIzODJdID8gdW53aW5kX2dldF9yZXR1cm5fYWRkcmVzcyAoYXJjaC94ODYv a2VybmVsL3Vud2luZF9mcmFtZS5jOjE5IGFyY2gveDg2L2tlcm5lbC91bndpbmRfZnJhbWUuYzox NCkgDQpbNTMxMzk0Ljg5Mjc4OV0gPyB3cml0ZV9wcm9maWxlIChrZXJuZWwvc3RhY2t0cmFjZS5j OjgzKSANCls1MzEzOTQuODkzMjYwXSBhcmNoX3N0YWNrX3dhbGsgKGFyY2gveDg2L2tlcm5lbC9z dGFja3RyYWNlLmM6MjYpIA0KWzUzMTM5NC44OTU2NTBdID8gX190cmFjZV9zdGFjayAoa2VybmVs L3RyYWNlL3RyYWNlLmM6MzExOSkgDQpbNTMxMzk0Ljg5NzIwOV0gc3RhY2tfdHJhY2Vfc2F2ZSAo a2VybmVsL3N0YWNrdHJhY2UuYzoxMjMpIA0KWzUzMTM5NC44OTgzNDRdIF9fZnRyYWNlX3RyYWNl X3N0YWNrIChrZXJuZWwvdHJhY2UvdHJhY2UuYzozMDYxKSANCls1MzEzOTQuODk5NTAwXSA/IHJ0 X211dGV4X3Bvc3R1bmxvY2sgKGtlcm5lbC9wcmludGsvcHJpbnRrLmM6Mjg5NCkgDQpbNTMxMzk0 Ljg5OTk3NV0gX190cmFjZV9zdGFjayAoa2VybmVsL3RyYWNlL3RyYWNlLmM6MzExOSkgDQpbNTMx Mzk0LjkwMTAyNV0gZnVuY3Rpb25fc3RhY2tfdHJhY2VfY2FsbCAoLi9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9hdG9taWMuaDoxMDggLi9pbmNsdWRlL2xpbnV4L2F0b21pYy9hdG9taWMtaW5zdHJ1bWVu dGVkLmg6MjU4IGtlcm5lbC90cmFjZS90cmFjZV9mdW5jdGlvbnMuYzoyNDUpIA0KWzUzMTM5NC45 MDEzNTZdID8gZmJjb25fcmVkcmF3LmNvbnN0cHJvcC4wIChkcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nv cmUvZmJjb24uYzoxNjYxKSANCls1MzEzOTQuOTAyNzQ4XSAgMHhmZmZmZmZmZmMwNDA5MDk5DQpb NTMxMzk0LjkwNDI4OV0gPyBmYl9nZXRfY29sb3JfZGVwdGggKGRyaXZlcnMvdmlkZW8vZmJkZXYv Y29yZS9mYm1lbS5jOjkyKSANCls1MzEzOTQuOTA2MTczXSA/IGNvbnNvbGVfY29uZGl0aW9uYWxf c2NoZWR1bGUgKGtlcm5lbC9wcmludGsvcHJpbnRrLmM6Mjg5NSkgDQpbNTMxMzk0LjkwNzI0NF0g Y29uc29sZV9jb25kaXRpb25hbF9zY2hlZHVsZSAoa2VybmVsL3ByaW50ay9wcmludGsuYzoyODk1 KSANCls1MzEzOTQuOTA3NzI3XSBmYmNvbl9yZWRyYXcuY29uc3Rwcm9wLjAgKGRyaXZlcnMvdmlk ZW8vZmJkZXYvY29yZS9mYmNvbi5jOjE2NjEpIA0KWzUzMTM5NC45MDgyMDBdID8gY29uc29sZV9j b25kaXRpb25hbF9zY2hlZHVsZSAoa2VybmVsL3ByaW50ay9wcmludGsuYzoyODk1KSANCls1MzEz OTQuOTA4NTA2XSA/IGZiY29uX3JlZHJhdy5jb25zdHByb3AuMCAoZHJpdmVycy92aWRlby9mYmRl di9jb3JlL2ZiY29uLmM6MTY2MSkgDQpbNTMxMzk0LjkxMTIzMF0gZmJjb25fc2Nyb2xsIChkcml2 ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJjb24uYzoxODM4KSANCls1MzEzOTQuOTEyNzQzXSBjb25f c2Nyb2xsIChkcml2ZXJzL3R0eS92dC92dC5jOjYzMCAoZGlzY3JpbWluYXRvciAxKSkgDQpbNTMx Mzk0LjkxNDM2MF0gbGYgKGRyaXZlcnMvdHR5L3Z0L3Z0LmM6MTUwNykgDQpbNTMxMzk0LjkxNDY4 MF0gPyBsZiAoZHJpdmVycy90dHkvdnQvdnQuYzoxNTAyKSANCls1MzEzOTQuOTE1Nzc5XSB2dF9j b25zb2xlX3ByaW50IChkcml2ZXJzL3R0eS92dC92dC5jOjMxMjYpIA0KWzUzMTM5NC45MTgyNDhd IGNvbnNvbGVfZW1pdF9uZXh0X3JlY29yZC5jb25zdHByb3AuMCAoa2VybmVsL3ByaW50ay9wcmlu dGsuYzoxOTQ1IGtlcm5lbC9wcmludGsvcHJpbnRrLmM6MjczMikgDQpbNTMxMzk0LjkyMjM2NV0g Y29uc29sZV91bmxvY2sgKGtlcm5lbC9wcmludGsvcHJpbnRrLmM6Mjc5NCBrZXJuZWwvcHJpbnRr L3ByaW50ay5jOjI4NjEpIA0KWzUzMTM5NC45MjQxMjldIHZwcmludGtfZW1pdCAoa2VybmVsL3By aW50ay9wcmludGsuYzoyMjcyKSANCls1MzEzOTQuOTI1NzgyXSB2cHJpbnRrX2RlZmF1bHQgKGtl cm5lbC9wcmludGsvcHJpbnRrLmM6MjI4MykgDQpbNTMxMzk0LjkyNjMwNl0gdnByaW50ayAoa2Vy bmVsL3ByaW50ay9wcmludGtfc2FmZS5jOjUwKSANCls1MzEzOTQuOTI2OTQzXSBfcHJpbnRrIChr ZXJuZWwvcHJpbnRrL3ByaW50ay5jOjIyOTYpIA0KWzUzMTM5NC45MjkwMTZdIHBlcmZfZHVyYXRp b25fd2Fybi5jb2xkIChrZXJuZWwvZXZlbnRzL2NvcmUuYzo1MTAga2VybmVsL2V2ZW50cy9jb3Jl LmM6NTA4KSANCls1MzEzOTQuOTI5NTE4XSBpcnFfd29ya19zaW5nbGUgKGtlcm5lbC9pcnFfd29y ay5jOjIxMSkgDQpbNTMxMzk0LjkzMDQ0OV0gaXJxX3dvcmtfcnVuX2xpc3QgKGtlcm5lbC9pcnFf d29yay5jOjI0MSAoZGlzY3JpbWluYXRvciAzKSkgDQpbNTMxMzk0LjkzMTE2OV0gaXJxX3dvcmtf cnVuIChrZXJuZWwvaXJxX3dvcmsuYzoyNTMpIA0KWzUzMTM5NC45MzE4MTZdIF9fc3lzdmVjX2ly cV93b3JrICguL2FyY2gveDg2L2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaDoyNyAuL2luY2x1ZGUv bGludXgvanVtcF9sYWJlbC5oOjIwNyAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RyYWNlL2lycV92 ZWN0b3JzLmg6NjQgYXJjaC94ODYva2VybmVsL2lycV93b3JrLmM6MjMpIA0KWzUzMTM5NC45MzIy NTldIHN5c3ZlY19pcnFfd29yayAoYXJjaC94ODYva2VybmVsL2lycV93b3JrLmM6MTcgKGRpc2Ny aW1pbmF0b3IgMTQpKSANCls1MzEzOTQuOTMyNjYwXSAgPC9JUlE+DQpbNTMxMzk0LjkzMjg1NF0g IDxUQVNLPg0KWzUzMTM5NC45MzM2MDddIGFzbV9zeXN2ZWNfaXJxX3dvcmsgKC4vYXJjaC94ODYv aW5jbHVkZS9hc20vaWR0ZW50cnkuaDo2NzUpDQoNCg0KDQoNCg0K ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-29 2:36 ` Nadav Amit @ 2022-11-29 4:15 ` Steven Rostedt 2022-11-29 4:25 ` Nadav Amit 0 siblings, 1 reply; 12+ messages in thread From: Steven Rostedt @ 2022-11-29 4:15 UTC (permalink / raw) To: Nadav Amit Cc: Peter Zijlstra, Arnd Bergmann, Thomas Gleixner, linux-arm-kernel@lists.infradead.org, kernel list, linux-ia64@vger.kernel.org, linux-um@lists.infradead.org, Linux-Arch, Linux-MM, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, X86 ML, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton, Nadav Amit On Tue, 29 Nov 2022 02:36:22 +0000 Nadav Amit <namit@vmware.com> wrote: > On Nov 22, 2022, at 12:51 PM, Nadav Amit <namit@vmware.com> wrote: > > > But more importantly, the current “inline”->”notrace” solution just papers > > over missing “notrace” annotations. Anyone can remove the “inline” at any > > given moment since there is no direct (or indirect) relationship between > > “inline” and “notrace”. It seems to me all random and bound to fail at some > > point. > > Peter, Steven, (and others), > > Beyond the issues that are addressed in this patch-set, I encountered one > more, which reiterates the fact that the heuristics of marking “inline” > functions as “notrace” is not good enough. > > Before I send a patch, I would like to get your feedback. I include a splat > below. It appeaers the execution might get stuck since some functions that > can be used for function tracing can be traced themselves. > > For example, __kernel_text_address() and unwind_get_return_address() are > traceable. I think that we need to disallow the tracing of all functions > that are called directly and indirectly from function_stack_trace_call() > (i.e., they are in the dynamic extent of function_stack_trace_call). How did this happen. It should be able to handle recursion: static void function_stack_trace_call(unsigned long ip, unsigned long parent_ip, struct ftrace_ops *op, struct ftrace_regs *fregs) { struct trace_array *tr = op->private; struct trace_array_cpu *data; unsigned long flags; long disabled; int cpu; unsigned int trace_ctx; if (unlikely(!tr->function_enabled)) return; /* * Need to use raw, since this must be called before the * recursive protection is performed. */ local_irq_save(flags); cpu = raw_smp_processor_id(); data = per_cpu_ptr(tr->array_buffer.data, cpu); disabled = atomic_inc_return(&data->disabled); if (likely(disabled = 1)) { <<<---- This stops recursion trace_ctx = tracing_gen_ctx_flags(flags); trace_function(tr, ip, parent_ip, trace_ctx); __trace_stack(tr, trace_ctx, STACK_SKIP); } atomic_dec(&data->disabled); local_irq_restore(flags); } Each of the stack trace functions may recurse back into this function, but it will not recurse further. How did it crash? -- Steve > > In the lack of a proper automated static analysis tool for the matter, I > suggest the following solution, but I would like to check that you are ok > with the granularity of the “notrace” as I propose. Again, note that this is > not caused by this “inline” patch, but an issue that existed before. > > -- >8 -- > > Author: Nadav Amit <namit@vmware.com> > Date: Tue Nov 29 02:25:12 2022 +0000 > > trace: Disable tracing of code called from function_stack_trace_call() > > Signed-off-by: Nadav Amit <namit@vmware.com> > > diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile > index a20a5ebfacd7..185933222d08 100644 > --- a/arch/x86/kernel/Makefile > +++ b/arch/x86/kernel/Makefile > @@ -21,6 +21,10 @@ CFLAGS_REMOVE_ftrace.o = -pg > CFLAGS_REMOVE_early_printk.o = -pg > CFLAGS_REMOVE_head64.o = -pg > CFLAGS_REMOVE_sev.o = -pg > +CFLAGS_REMOVE_unwind_frame.o = -pg > +CFLAGS_REMOVE_unwind_guess.o = -pg > +CFLAGS_REMOVE_unwind_orc.o = -pg > +CFLAGS_REMOVE_stacktrace.o = -pg > endif > > KASAN_SANITIZE_head$(BITS).o := n > diff --git a/kernel/Makefile b/kernel/Makefile > index 318789c728d3..d688eab1e1f8 100644 > --- a/kernel/Makefile > +++ b/kernel/Makefile > @@ -19,6 +19,8 @@ obj-$(CONFIG_MULTIUSER) += groups.o > ifdef CONFIG_FUNCTION_TRACER > # Do not trace internal ftrace files > CFLAGS_REMOVE_irq_work.o = $(CC_FLAGS_FTRACE) > +CFLAGS_REMOVE_stacktrace.o = $(CC_FLAGS_FTRACE) > +CFLAGS_REMOVE_extable.o = $(CC_FLAGS_FTRACE) > endif > > # Prevents flicker of uninteresting __do_softirq()/__local_bh_disable_ip() > > > --- > > > [531394.447185] sched: RT throttling activated > [531394.874541] NMI watchdog: Watchdog detected hard LOCKUP on cpu 26 > [531394.874745] Modules linked in: zram > [531394.875224] CPU: 26 PID: 0 Comm: swapper/26 Not tainted 6.0.0-rc6umem+ #29 > [531394.875426] Hardware name: Cisco Systems Inc UCSC-C220-M5SX/UCSC-C220-M5SX, BIOS C220M5.4.0.1i.0.0522190226 05/22/2019 > [531394.875623] RIP: 0010:poke_int3_handler (arch/x86/kernel/alternative.c:1435) > [531394.875903] Code: 45 01 48 8b 0d c8 0a 45 01 49 8d 70 ff 83 f8 01 7f 1c 48 63 39 31 c0 48 81 c7 00 00 00 81 48 39 fe 74 3c f0 ff 0d b3 0a 45 01 <c3> 31 c0 c3 49 89 ca 49 89 c1 49 d1 e9 4c 89 c9 48 c1 e1 04 4c 01 > All code > ==== > 0: 45 01 48 8b add %r9d,-0x75(%r8) > 4: 0d c8 0a 45 01 or $0x1450ac8,%eax > 9: 49 8d 70 ff lea -0x1(%r8),%rsi > d: 83 f8 01 cmp $0x1,%eax > 10: 7f 1c jg 0x2e > 12: 48 63 39 movslq (%rcx),%rdi > 15: 31 c0 xor %eax,%eax > 17: 48 81 c7 00 00 00 81 add $0xffffffff81000000,%rdi > 1e: 48 39 fe cmp %rdi,%rsi > 21: 74 3c je 0x5f > 23: f0 ff 0d b3 0a 45 01 lock decl 0x1450ab3(%rip) # 0x1450add > 2a:* c3 ret <-- trapping instruction > 2b: 31 c0 xor %eax,%eax > 2d: c3 ret > 2e: 49 89 ca mov %rcx,%r10 > 31: 49 89 c1 mov %rax,%r9 > 34: 49 d1 e9 shr %r9 > 37: 4c 89 c9 mov %r9,%rcx > 3a: 48 c1 e1 04 shl $0x4,%rcx > 3e: 4c rex.WR > 3f: 01 .byte 0x1 > > Code starting with the faulting instruction > =====================> 0: c3 ret > 1: 31 c0 xor %eax,%eax > 3: c3 ret > 4: 49 89 ca mov %rcx,%r10 > 7: 49 89 c1 mov %rax,%r9 > a: 49 d1 e9 shr %r9 > d: 4c 89 c9 mov %r9,%rcx > 10: 48 c1 e1 04 shl $0x4,%rcx > 14: 4c rex.WR > 15: 01 .byte 0x1 > [531394.876031] RSP: 0018:ffffc9000cd387b0 EFLAGS: 00000003 > [531394.876320] RAX: 0000000000000001 RBX: 0000000000000000 RCX: ffffc9000cd388a8 > [531394.876482] RDX: ffffc9000cd387d8 RSI: ffffffff812ba310 RDI: ffffffffc0409094 > [531394.876652] RBP: ffffc9000cd387c8 R08: ffffffffc0409099 R09: 0000000000000000 > [531394.876782] R10: 0000000000000000 R11: 0000000000000000 R12: ffffc9000cd387d8 > [531394.876927] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 > [531394.877180] FS: 0000000000000000(0000) GS:ffff88afdf900000(0000) knlGS:0000000000000000 > [531394.877371] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [531394.877503] CR2: 00007efd1e47b01c CR3: 0000000006a0a001 CR4: 00000000007706e0 > [531394.877641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > [531394.877822] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > [531394.877993] PKRU: 55555554 > [531394.878164] Call Trace: > [531394.878356] <IRQ> > [531394.878573] ? exc_int3 (arch/x86/kernel/traps.c:817) > [531394.879306] asm_exc_int3 (./arch/x86/include/asm/idtentry.h:569) > [531394.879725] RIP: 0010:function_stack_trace_call (kernel/trace/trace_functions.c:219) > [531394.880058] Code: 2b 81 48 c7 c7 e0 e2 33 83 e8 1c fa fd ff 48 c7 c7 80 e6 1c 83 e8 40 61 fe 00 5d c3 cc cc cc cc cc cc cc cc cc cc cc cc cc cc <55> 48 89 e5 41 57 41 56 41 55 41 54 53 48 83 ec 08 4c 8b 62 18 41 > All code > ==== > 0: 2b 81 48 c7 c7 e0 sub -0x1f3838b8(%rcx),%eax > 6: e2 33 loop 0x3b > 8: 83 e8 1c sub $0x1c,%eax > b: fa cli > c: fd std > d: ff 48 c7 decl -0x39(%rax) > 10: c7 80 e6 1c 83 e8 40 movl $0xfe6140,-0x177ce31a(%rax) > 17: 61 fe 00 > 1a: 5d pop %rbp > 1b: c3 ret > 1c: cc int3 > 1d: cc int3 > 1e: cc int3 > 1f: cc int3 > 20: cc int3 > 21: cc int3 > 22: cc int3 > 23: cc int3 > 24: cc int3 > 25: cc int3 > 26: cc int3 > 27: cc int3 > 28: cc int3 > 29: cc int3 > 2a:* 55 push %rbp <-- trapping instruction > 2b: 48 89 e5 mov %rsp,%rbp > 2e: 41 57 push %r15 > 30: 41 56 push %r14 > 32: 41 55 push %r13 > 34: 41 54 push %r12 > 36: 53 push %rbx > 37: 48 83 ec 08 sub $0x8,%rsp > 3b: 4c 8b 62 18 mov 0x18(%rdx),%r12 > 3f: 41 rex.B > > Code starting with the faulting instruction > =====================> 0: 55 push %rbp > 1: 48 89 e5 mov %rsp,%rbp > 4: 41 57 push %r15 > 6: 41 56 push %r14 > 8: 41 55 push %r13 > a: 41 54 push %r12 > c: 53 push %rbx > d: 48 83 ec 08 sub $0x8,%rsp > 11: 4c 8b 62 18 mov 0x18(%rdx),%r12 > 15: 41 rex.B > [531394.880225] RSP: 0018:ffffc9000cd388a8 EFLAGS: 00000082 > [531394.880538] RAX: 0000000000000002 RBX: ffffc9000cd389a8 RCX: ffffc9000cd388b0 > [531394.880702] RDX: ffffffff831cbec0 RSI: ffffffff8111893f RDI: ffffffff811b2c80 > [531394.880884] RBP: ffffc9000cd38958 R08: ffffc900082f7f48 R09: 0000000000000001 > [531394.881055] R10: 0000000000000e00 R11: 0000000000000001 R12: ffffc9000cd38a50 > [531394.881225] R13: 0000000000000000 R14: ffff889846ecc080 R15: 0000000000000004 > [531394.883694] ? unwind_get_return_address (arch/x86/kernel/unwind_frame.c:19 arch/x86/kernel/unwind_frame.c:14) > [531394.883984] ? kernel_text_address (kernel/extable.c:78) > [531394.885410] ? 0xffffffffc0409095 > [531394.886432] ? 0xffffffffc0409099 > [531394.887278] ? 0xffffffffc0409099 > [531394.889561] ? __trace_stack (kernel/trace/trace.c:3119) > [531394.890036] ? __kernel_text_address (kernel/extable.c:78) > [531394.891196] __kernel_text_address (kernel/extable.c:78) > [531394.891658] unwind_get_return_address (arch/x86/kernel/unwind_frame.c:19 arch/x86/kernel/unwind_frame.c:14) > [531394.892112] ? __kernel_text_address (kernel/extable.c:78) > [531394.892382] ? unwind_get_return_address (arch/x86/kernel/unwind_frame.c:19 arch/x86/kernel/unwind_frame.c:14) > [531394.892789] ? write_profile (kernel/stacktrace.c:83) > [531394.893260] arch_stack_walk (arch/x86/kernel/stacktrace.c:26) > [531394.895650] ? __trace_stack (kernel/trace/trace.c:3119) > [531394.897209] stack_trace_save (kernel/stacktrace.c:123) > [531394.898344] __ftrace_trace_stack (kernel/trace/trace.c:3061) > [531394.899500] ? rt_mutex_postunlock (kernel/printk/printk.c:2894) > [531394.899975] __trace_stack (kernel/trace/trace.c:3119) > [531394.901025] function_stack_trace_call (./arch/x86/include/asm/atomic.h:108 ./include/linux/atomic/atomic-instrumented.h:258 kernel/trace/trace_functions.c:245) > [531394.901356] ? fbcon_redraw.constprop.0 (drivers/video/fbdev/core/fbcon.c:1661) > [531394.902748] 0xffffffffc0409099 > [531394.904289] ? fb_get_color_depth (drivers/video/fbdev/core/fbmem.c:92) > [531394.906173] ? console_conditional_schedule (kernel/printk/printk.c:2895) > [531394.907244] console_conditional_schedule (kernel/printk/printk.c:2895) > [531394.907727] fbcon_redraw.constprop.0 (drivers/video/fbdev/core/fbcon.c:1661) > [531394.908200] ? console_conditional_schedule (kernel/printk/printk.c:2895) > [531394.908506] ? fbcon_redraw.constprop.0 (drivers/video/fbdev/core/fbcon.c:1661) > [531394.911230] fbcon_scroll (drivers/video/fbdev/core/fbcon.c:1838) > [531394.912743] con_scroll (drivers/tty/vt/vt.c:630 (discriminator 1)) > [531394.914360] lf (drivers/tty/vt/vt.c:1507) > [531394.914680] ? lf (drivers/tty/vt/vt.c:1502) > [531394.915779] vt_console_print (drivers/tty/vt/vt.c:3126) > [531394.918248] console_emit_next_record.constprop.0 (kernel/printk/printk.c:1945 kernel/printk/printk.c:2732) > [531394.922365] console_unlock (kernel/printk/printk.c:2794 kernel/printk/printk.c:2861) > [531394.924129] vprintk_emit (kernel/printk/printk.c:2272) > [531394.925782] vprintk_default (kernel/printk/printk.c:2283) > [531394.926306] vprintk (kernel/printk/printk_safe.c:50) > [531394.926943] _printk (kernel/printk/printk.c:2296) > [531394.929016] perf_duration_warn.cold (kernel/events/core.c:510 kernel/events/core.c:508) > [531394.929518] irq_work_single (kernel/irq_work.c:211) > [531394.930449] irq_work_run_list (kernel/irq_work.c:241 (discriminator 3)) > [531394.931169] irq_work_run (kernel/irq_work.c:253) > [531394.931816] __sysvec_irq_work (./arch/x86/include/asm/jump_label.h:27 ./include/linux/jump_label.h:207 ./arch/x86/include/asm/trace/irq_vectors.h:64 arch/x86/kernel/irq_work.c:23) > [531394.932259] sysvec_irq_work (arch/x86/kernel/irq_work.c:17 (discriminator 14)) > [531394.932660] </IRQ> > [531394.932854] <TASK> > [531394.933607] asm_sysvec_irq_work (./arch/x86/include/asm/idtentry.h:675) > > > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-29 4:15 ` Steven Rostedt @ 2022-11-29 4:25 ` Nadav Amit 2022-11-29 15:06 ` Steven Rostedt 0 siblings, 1 reply; 12+ messages in thread From: Nadav Amit @ 2022-11-29 4:25 UTC (permalink / raw) To: Steven Rostedt Cc: Peter Zijlstra, Arnd Bergmann, Thomas Gleixner, linux-arm-kernel@lists.infradead.org, kernel list, linux-ia64@vger.kernel.org, linux-um@lists.infradead.org, Linux-Arch, Linux-MM, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, X86 ML, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton T24gTm92IDI4LCAyMDIyLCBhdCA4OjE1IFBNLCBTdGV2ZW4gUm9zdGVkdCA8cm9zdGVkdEBnb29k bWlzLm9yZz4gd3JvdGU6DQoNCj4gISEgRXh0ZXJuYWwgRW1haWwNCj4gDQo+IE9uIFR1ZSwgMjkg Tm92IDIwMjIgMDI6MzY6MjIgKzAwMDANCj4gTmFkYXYgQW1pdCA8bmFtaXRAdm13YXJlLmNvbT4g d3JvdGU6DQo+IA0KPj4gT24gTm92IDIyLCAyMDIyLCBhdCAxMjo1MSBQTSwgTmFkYXYgQW1pdCA8 bmFtaXRAdm13YXJlLmNvbT4gd3JvdGU6DQo+PiANCj4+PiBCdXQgbW9yZSBpbXBvcnRhbnRseSwg dGhlIGN1cnJlbnQg4oCcaW5saW5l4oCdLT7igJ1ub3RyYWNl4oCdIHNvbHV0aW9uIGp1c3QgcGFw ZXJzDQo+Pj4gb3ZlciBtaXNzaW5nIOKAnG5vdHJhY2XigJ0gYW5ub3RhdGlvbnMuIEFueW9uZSBj YW4gcmVtb3ZlIHRoZSDigJxpbmxpbmXigJ0gYXQgYW55DQo+Pj4gZ2l2ZW4gbW9tZW50IHNpbmNl IHRoZXJlIGlzIG5vIGRpcmVjdCAob3IgaW5kaXJlY3QpIHJlbGF0aW9uc2hpcCBiZXR3ZWVuDQo+ Pj4g4oCcaW5saW5l4oCdIGFuZCDigJxub3RyYWNl4oCdLiBJdCBzZWVtcyB0byBtZSBhbGwgcmFu ZG9tIGFuZCBib3VuZCB0byBmYWlsIGF0IHNvbWUNCj4+PiBwb2ludC4NCj4+IA0KPj4gUGV0ZXIs IFN0ZXZlbiwgKGFuZCBvdGhlcnMpLA0KPj4gDQo+PiBCZXlvbmQgdGhlIGlzc3VlcyB0aGF0IGFy ZSBhZGRyZXNzZWQgaW4gdGhpcyBwYXRjaC1zZXQsIEkgZW5jb3VudGVyZWQgb25lDQo+PiBtb3Jl LCB3aGljaCByZWl0ZXJhdGVzIHRoZSBmYWN0IHRoYXQgdGhlIGhldXJpc3RpY3Mgb2YgbWFya2lu ZyDigJxpbmxpbmXigJ0NCj4+IGZ1bmN0aW9ucyBhcyDigJxub3RyYWNl4oCdIGlzIG5vdCBnb29k IGVub3VnaC4NCj4+IA0KPj4gQmVmb3JlIEkgc2VuZCBhIHBhdGNoLCBJIHdvdWxkIGxpa2UgdG8g Z2V0IHlvdXIgZmVlZGJhY2suIEkgaW5jbHVkZSBhIHNwbGF0DQo+PiBiZWxvdy4gSXQgYXBwZWFl cnMgdGhlIGV4ZWN1dGlvbiBtaWdodCBnZXQgc3R1Y2sgc2luY2Ugc29tZSBmdW5jdGlvbnMgdGhh dA0KPj4gY2FuIGJlIHVzZWQgZm9yIGZ1bmN0aW9uIHRyYWNpbmcgY2FuIGJlIHRyYWNlZCB0aGVt c2VsdmVzLg0KPj4gDQo+PiBGb3IgZXhhbXBsZSwgX19rZXJuZWxfdGV4dF9hZGRyZXNzKCkgYW5k IHVud2luZF9nZXRfcmV0dXJuX2FkZHJlc3MoKSBhcmUNCj4+IHRyYWNlYWJsZS4gSSB0aGluayB0 aGF0IHdlIG5lZWQgdG8gZGlzYWxsb3cgdGhlIHRyYWNpbmcgb2YgYWxsIGZ1bmN0aW9ucw0KPj4g dGhhdCBhcmUgY2FsbGVkIGRpcmVjdGx5IGFuZCBpbmRpcmVjdGx5IGZyb20gZnVuY3Rpb25fc3Rh Y2tfdHJhY2VfY2FsbCgpDQo+PiAoaS5lLiwgdGhleSBhcmUgaW4gdGhlIGR5bmFtaWMgZXh0ZW50 IG9mIGZ1bmN0aW9uX3N0YWNrX3RyYWNlX2NhbGwpLg0KPiANCj4gSG93IGRpZCB0aGlzIGhhcHBl bi4gSXQgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIHJlY3Vyc2lvbjoNCj4gDQo+IHN0YXRpYyB2 b2lkDQo+IGZ1bmN0aW9uX3N0YWNrX3RyYWNlX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5zaWdu ZWQgbG9uZyBwYXJlbnRfaXAsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZnRy YWNlX29wcyAqb3AsIHN0cnVjdCBmdHJhY2VfcmVncyAqZnJlZ3MpDQo+IHsNCj4gICAgICAgIHN0 cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBvcC0+cHJpdmF0ZTsNCj4gICAgICAgIHN0cnVjdCB0cmFj ZV9hcnJheV9jcHUgKmRhdGE7DQo+ICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiAgICAg ICAgbG9uZyBkaXNhYmxlZDsNCj4gICAgICAgIGludCBjcHU7DQo+ICAgICAgICB1bnNpZ25lZCBp bnQgdHJhY2VfY3R4Ow0KPiANCj4gICAgICAgIGlmICh1bmxpa2VseSghdHItPmZ1bmN0aW9uX2Vu YWJsZWQpKQ0KPiAgICAgICAgICAgICAgICByZXR1cm47DQo+IA0KPiAgICAgICAgLyoNCj4gICAg ICAgICAqIE5lZWQgdG8gdXNlIHJhdywgc2luY2UgdGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUg dGhlDQo+ICAgICAgICAgKiByZWN1cnNpdmUgcHJvdGVjdGlvbiBpcyBwZXJmb3JtZWQuDQo+ICAg ICAgICAgKi8NCj4gICAgICAgIGxvY2FsX2lycV9zYXZlKGZsYWdzKTsNCj4gICAgICAgIGNwdSA9 IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7DQo+ICAgICAgICBkYXRhID0gcGVyX2NwdV9wdHIodHIt PmFycmF5X2J1ZmZlci5kYXRhLCBjcHUpOw0KPiAgICAgICAgZGlzYWJsZWQgPSBhdG9taWNfaW5j X3JldHVybigmZGF0YS0+ZGlzYWJsZWQpOw0KPiANCj4gICAgICAgIGlmIChsaWtlbHkoZGlzYWJs ZWQgPT0gMSkpIHsgPDw8LS0tLSBUaGlzIHN0b3BzIHJlY3Vyc2lvbg0KPiANCj4gICAgICAgICAg ICAgICAgdHJhY2VfY3R4ID0gdHJhY2luZ19nZW5fY3R4X2ZsYWdzKGZsYWdzKTsNCj4gICAgICAg ICAgICAgICAgdHJhY2VfZnVuY3Rpb24odHIsIGlwLCBwYXJlbnRfaXAsIHRyYWNlX2N0eCk7DQo+ ICAgICAgICAgICAgICAgIF9fdHJhY2Vfc3RhY2sodHIsIHRyYWNlX2N0eCwgU1RBQ0tfU0tJUCk7 DQo+ICAgICAgICB9DQo+IA0KPiAgICAgICAgYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOw0K PiAgICAgICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOw0KPiB9DQo+IA0KPiBFYWNoIG9mIHRo ZSBzdGFjayB0cmFjZSBmdW5jdGlvbnMgbWF5IHJlY3Vyc2UgYmFjayBpbnRvIHRoaXMgZnVuY3Rp b24sIGJ1dA0KPiBpdCB3aWxsIG5vdCByZWN1cnNlIGZ1cnRoZXIuIEhvdyBkaWQgaXQgY3Jhc2g/ DQoNClVnaC4gVGhhbmtzLiBJIGRpZG7igJl0IGtub3cgdGhhdCAtIHNvIHlvdXIgaW5wdXQgaXMg cmVhbGx5IGhlbHBmdWwuDQoNCkkgd2lsbCBuZWVkIHRvIGZ1cnRoZXIgZGVidWcgaXQsIGJ1dCB0 aGlzIGlzc3VlIGRvZXMgbm90IG9jY3VyIGV2ZXJ5IHRpbWUuDQoNClRoZSBrZXJuZWwgZGlkbuKA mXQgY3Jhc2ggZXhhY3RseSAtIGl04oCZcyBtb3JlIG9mIGEgZGVhZGxvY2suIEkgaGF2ZSBsb2Nr ZGVwDQplbmFibGVkLCBzbyBpdCBpcyBub3QgYSBkZWFkbG9jayB0aGF0IGxvY2tkZXAga25vd3Mu IENvdWxkIGl0IGJlIHRoYXQNCnNvbWVob3cgdGhpbmdzIGp1c3Qgc2xvd2VkIGRvd24gZHVlIHRv IElQSXMgYW5kIG1vc3RseS1kaXNhYmxlZCBJUlFzPyBJIGhhdmUNCm5vIGlkZWEuIEkgd291bGQg bmVlZCB0byByZWNyZWF0ZSB0aGUgc2NlbmFyaW8uIA0KDQpGb3IgdGhlIHJlY29yZCwgSSB0cmll ZCB0byBzYXZlZCBzb21lIGRldGFpbHMgaW4gdGhlIHByZXZpb3VzIGVtYWlsLiBJdCB3YXMNCmtp bmQgb2YgaGFyZCB0byB1bmRlcnN0YW5kIHdoYXTigJlzIGdvaW5nIG9uIG9uIHRoZSBvdGhlciBj b3Jlcywgc2luY2UgdGhlDQp0cmFjZSBvZiBvdGhlciBjb3JlcyB3YXMgaW50ZXJsZWF2ZWQuIEkg ZXh0cmFjdCB0aGUgcGFydHMgZnJvbSB0aGF0IEkgdGhpbmsNCnRoZSByZWZlciB0byB0aGUgYW5v dGhlciBDUFUgKHllcywgdGhlIG91dHB1dCBpcyByZWFsbHkgc2xvdywgYXMgc2VlbiBpbiB0aGUN CnRpbWVzdGFtcHMpOg0KDQpbNTMxNDEzLjkyMzYyOF0gQ29kZTogMDAgMDAgMzEgYzAgZWIgZjEg MGYgMWYgODAgMDAgMDAgMDAgMDAgZTggMWIgMmUgMTYgM2UgNTUgNDggODkgZTUgYzYgMDcgMDAg MGYgMWYgMDAgZjcgYzYgMDAgMDIgMDAgMDAgNzQgMDYgZmIgMGYgMWYgNDQgMDAgMDAgPGJmPiAw MSAwMCAwMCAwMCBlOCA5OSBkYSBmMSBmZSA2NSA4YiAwNSBmMiA5OSBkNyA3ZCA4NSBjMCA3NCAw MiA1ZA0KDQpBbGwgY29kZQ0KPT09PT09PT0NCjA6IDAwIDAwIGFkZCAlYWwsKCVyYXgpDQoyOiAz MSBjMCB4b3IgJWVheCwlZWF4DQo0OiBlYiBmMSBqbXAgMHhmZmZmZmZmZmZmZmZmZmY3DQo2OiAw ZiAxZiA4MCAwMCAwMCAwMCAwMCBub3BsIDB4MCglcmF4KQ0KZDogZTggMWIgMmUgMTYgM2UgY2Fs bCAweDNlMTYyZTJkDQoxMjogNTUgcHVzaCAlcmJwDQoxMzogNDggODkgZTUgbW92ICVyc3AsJXJi cA0KMTY6IGM2IDA3IDAwIG1vdmIgJDB4MCwoJXJkaSkNCjE5OiAwZiAxZiAwMCBub3BsICglcmF4 KQ0KMWM6IGY3IGM2IDAwIDAyIDAwIDAwIHRlc3QgJDB4MjAwLCVlc2kNCjIyOiA3NCAwNiBqZSAw eDJhDQoyNDogZmIgc3RpIA0KMjU6IDBmIDFmIDQ0IDAwIDAwIG5vcGwgMHgwKCVyYXgsJXJheCwx KQ0KMmE6KiBiZiAwMSAwMCAwMCAwMCBtb3YgJDB4MSwlZWRpIDwtLSB0cmFwcGluZyBpbnN0cnVj dGlvbg0KMmY6IGU4IDk5IGRhIGYxIGZlIGNhbGwgMHhmZmZmZmZmZmZlZjFkYWNkDQozNDogNjUg OGIgMDUgZjIgOTkgZDcgN2QgbW92ICVnczoweDdkZDc5OWYyKCVyaXApLCVlYXggIyAweDdkZDc5 YTJkDQozYjogODUgYzAgdGVzdCAlZWF4LCVlYXgNCjNkOiA3NCAwMiBqZSAweDQxDQozZjogNWQg cG9wICVyYnANCg0KQ29kZSBzdGFydGluZyB3aXRoIHRoZSBmYXVsdGluZyBpbnN0cnVjdGlvbg0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KMDogYmYgMDEgMDAg MDAgMDAgbW92ICQweDEsJWVkaQ0KNTogZTggOTkgZGEgZjEgZmUgY2FsbCAweGZmZmZmZmZmZmVm MWRhYTMNCmE6IDY1IDhiIDA1IGYyIDk5IGQ3IDdkIG1vdiAlZ3M6MHg3ZGQ3OTlmMiglcmlwKSwl ZWF4ICMgMHg3ZGQ3OWEwMw0KMTE6IDg1IGMwIHRlc3QgJWVheCwlZWF4DQoxMzogNzQgMDIgamUg MHgxNw0KMTU6IDVkIHBvcCAlcmJwDQoNCls1MzE0MTQuMDY2NzY1XSBSU1A6IDAwMTg6ZmZmZmM5 MDAwYzlhNzdkOCBFRkxBR1M6IDAwMDAwMjA2DQpbNTMxNDE0LjA3Nzk0M10gUklQOiAwMDEwOnNt cF9jYWxsX2Z1bmN0aW9uX21hbnlfY29uZCAoa2VybmVsL3NtcC5jOjQ0MyBrZXJuZWwvc21wLmM6 OTg4KSANCls1MzE0MTYuOTg3MzUxXSBvbl9lYWNoX2NwdV9jb25kX21hc2sgKGtlcm5lbC9zbXAu YzoxMTU1KSANCls1MzE0MTYuMjA1ODYyXSA/IHRleHRfcG9rZV9tZW1zZXQgKGFyY2gveDg2L2tl cm5lbC9hbHRlcm5hdGl2ZS5jOjEyOTYpIA0KWzUzMTQxNi42ODEyOTRdID8gdGV4dF9wb2tlX21l bXNldCAoYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmM6MTI5NikgDQpbNTMxNDE3LjQ2ODQ0 M10gdGV4dF9wb2tlX2JwX2JhdGNoIChhcmNoL3g4Ni9rZXJuZWwvYWx0ZXJuYXRpdmUuYzoxNTUz KSANCls1MzE0MTguOTM5OTIzXSBhcmNoX2Z0cmFjZV91cGRhdGVfdHJhbXBvbGluZSAoYXJjaC94 ODYva2VybmVsL2Z0cmFjZS5jOjUwMCkNCls1MzE0MTkuODgyMDU1XSA/IGZ0cmFjZV9ub19waWRf d3JpdGUgKGtlcm5lbC90cmFjZS9mdHJhY2UuYzo3ODY0KSANCls1MzE0MjAuNTEwMzc2XSBmdHJh Y2VfdXBkYXRlX3BpZF9mdW5jIChrZXJuZWwvdHJhY2UvZnRyYWNlLmM6Mzc0IChkaXNjcmltaW5h dG9yIDEpKQ0KWzUzMTQyMC43ODQ3MDNdIGZ0cmFjZV9waWRfb3BlbiAoa2VybmVsL3RyYWNlL2Z0 cmFjZS5jOjI5MTgga2VybmVsL3RyYWNlL2Z0cmFjZS5jOjI5MzIga2VybmVsL3RyYWNlL2Z0cmFj ZS5jOjc3MjUga2VybmVsL3RyYWNlL2Z0cmFjZS5jOjc4MzUga2VybmVsL3RyYWNlL2Z0cmFjZS5j Ojc4NjUpIA0KWzUzMTQyMS44NTEyOTRdIHZmc19vcGVuIChmcy9vcGVuLmM6MTAxNykNCg0KDQoN Cg= ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-29 4:25 ` Nadav Amit @ 2022-11-29 15:06 ` Steven Rostedt 2022-11-29 17:56 ` Nadav Amit 0 siblings, 1 reply; 12+ messages in thread From: Steven Rostedt @ 2022-11-29 15:06 UTC (permalink / raw) To: Nadav Amit Cc: Peter Zijlstra, Arnd Bergmann, Thomas Gleixner, linux-arm-kernel@lists.infradead.org, kernel list, linux-ia64@vger.kernel.org, linux-um@lists.infradead.org, Linux-Arch, Linux-MM, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, X86 ML, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton On Tue, 29 Nov 2022 04:25:38 +0000 Nadav Amit <namit@vmware.com> wrote: > I will need to further debug it, but this issue does not occur every time. > > The kernel didn’t crash exactly - it’s more of a deadlock. I have lockdep > enabled, so it is not a deadlock that lockdep knows. Could it be that > somehow things just slowed down due to IPIs and mostly-disabled IRQs? I have > no idea. I would need to recreate the scenario. You have lockdep enabled and you are running function tracing with stack trace on? So you are doing a stack trace on *every* function that is traced? I don't think you hit a deadlock, I think you hit a live lock. You could possibly slow the system down so much that when an interrupt finishes it's time for it to be triggered again, and you never make forward progress. > > For the record, I tried to saved some details in the previous email. It was > kind of hard to understand what’s going on on the other cores, since the > trace of other cores was interleaved. I extract the parts from that I think > the refer to the another CPU (yes, the output is really slow, as seen in the > timestamps): > > [531413.923628] Code: 00 00 31 c0 eb f1 0f 1f 80 00 00 00 00 e8 1b 2e 16 3e 55 48 89 e5 c6 07 00 0f 1f 00 f7 c6 00 02 00 00 74 06 fb 0f 1f 44 00 00 <bf> 01 00 00 00 e8 99 da f1 fe 65 8b 05 f2 99 d7 7d 85 c0 74 02 5d > > All code > ==== > 0: 00 00 add %al,(%rax) > 2: 31 c0 xor %eax,%eax > 4: eb f1 jmp 0xfffffffffffffff7 > 6: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) > d: e8 1b 2e 16 3e call 0x3e162e2d > 12: 55 push %rbp > 13: 48 89 e5 mov %rsp,%rbp > 16: c6 07 00 movb $0x0,(%rdi) > 19: 0f 1f 00 nopl (%rax) > 1c: f7 c6 00 02 00 00 test $0x200,%esi > 22: 74 06 je 0x2a > 24: fb sti > 25: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) > 2a:* bf 01 00 00 00 mov $0x1,%edi <-- trapping instruction > 2f: e8 99 da f1 fe call 0xfffffffffef1dacd > 34: 65 8b 05 f2 99 d7 7d mov %gs:0x7dd799f2(%rip),%eax # 0x7dd79a2d > 3b: 85 c0 test %eax,%eax > 3d: 74 02 je 0x41 > 3f: 5d pop %rbp > > Code starting with the faulting instruction > =====================> 0: bf 01 00 00 00 mov $0x1,%edi > 5: e8 99 da f1 fe call 0xfffffffffef1daa3 > a: 65 8b 05 f2 99 d7 7d mov %gs:0x7dd799f2(%rip),%eax # 0x7dd79a03 > 11: 85 c0 test %eax,%eax > 13: 74 02 je 0x17 > 15: 5d pop %rbp > > [531414.066765] RSP: 0018:ffffc9000c9a77d8 EFLAGS: 00000206 > [531414.077943] RIP: 0010:smp_call_function_many_cond (kernel/smp.c:443 kernel/smp.c:988) > [531416.987351] on_each_cpu_cond_mask (kernel/smp.c:1155) > [531416.205862] ? text_poke_memset (arch/x86/kernel/alternative.c:1296) > [531416.681294] ? text_poke_memset (arch/x86/kernel/alternative.c:1296) > [531417.468443] text_poke_bp_batch (arch/x86/kernel/alternative.c:1553) > [531418.939923] arch_ftrace_update_trampoline (arch/x86/kernel/ftrace.c:500) > [531419.882055] ? ftrace_no_pid_write (kernel/trace/ftrace.c:7864) > [531420.510376] ftrace_update_pid_func (kernel/trace/ftrace.c:374 (discriminator 1)) > [531420.784703] ftrace_pid_open (kernel/trace/ftrace.c:2918 kernel/trace/ftrace.c:2932 kernel/trace/ftrace.c:7725 kernel/trace/ftrace.c:7835 kernel/trace/ftrace.c:7865) > [531421.851294] vfs_open (fs/open.c:1017) > > > Do you have an issue with normal function tracing, and not tracing every function. I should also add this, because it detects recursion faster than the atomic_inc_return() does. -- Steve diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c index 9f1bfbe105e8..93ec756dc24b 100644 --- a/kernel/trace/trace_functions.c +++ b/kernel/trace/trace_functions.c @@ -221,12 +221,18 @@ function_stack_trace_call(unsigned long ip, unsigned long parent_ip, struct trace_array_cpu *data; unsigned long flags; long disabled; + int bit; int cpu; unsigned int trace_ctx; if (unlikely(!tr->function_enabled)) return; + /* Faster than atomic_inc_return() */ + bit = ftrace_test_recursion_trylock(ip, parent_ip); + if (bit < 0) + return; + /* * Need to use raw, since this must be called before the * recursive protection is performed. @@ -244,6 +250,7 @@ function_stack_trace_call(unsigned long ip, unsigned long parent_ip, atomic_dec(&data->disabled); local_irq_restore(flags); + ftrace_test_recursion_unlock(bit); } static inline bool is_repeat_check(struct trace_array *tr, ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] compiler: inline does not imply notrace 2022-11-29 15:06 ` Steven Rostedt @ 2022-11-29 17:56 ` Nadav Amit 0 siblings, 0 replies; 12+ messages in thread From: Nadav Amit @ 2022-11-29 17:56 UTC (permalink / raw) To: Steven Rostedt Cc: Peter Zijlstra, Arnd Bergmann, Thomas Gleixner, linux-arm-kernel@lists.infradead.org, kernel list, linux-ia64@vger.kernel.org, linux-um@lists.infradead.org, Linux-Arch, Linux-MM, Andy Lutomirski, Ingo Molnar, Borislav Petkov, Dave Hansen, X86 ML, Richard Weinberger, Anton Ivanov, Johannes Berg, Andrew Morton T24gTm92IDI5LCAyMDIyLCBhdCA3OjA2IEFNLCBTdGV2ZW4gUm9zdGVkdCA8cm9zdGVkdEBnb29k bWlzLm9yZz4gd3JvdGU6DQoNCj4gT24gVHVlLCAyOSBOb3YgMjAyMiAwNDoyNTozOCArMDAwMA0K PiBOYWRhdiBBbWl0IDxuYW1pdEB2bXdhcmUuY29tPiB3cm90ZToNCj4gDQo+IA0KPj4gSSB3aWxs IG5lZWQgdG8gZnVydGhlciBkZWJ1ZyBpdCwgYnV0IHRoaXMgaXNzdWUgZG9lcyBub3Qgb2NjdXIg ZXZlcnkgdGltZS4NCj4+IA0KPj4gVGhlIGtlcm5lbCBkaWRu4oCZdCBjcmFzaCBleGFjdGx5IC0g aXTigJlzIG1vcmUgb2YgYSBkZWFkbG9jay4gSSBoYXZlIGxvY2tkZXANCj4+IGVuYWJsZWQsIHNv IGl0IGlzIG5vdCBhIGRlYWRsb2NrIHRoYXQgbG9ja2RlcCBrbm93cy4gQ291bGQgaXQgYmUgdGhh dA0KPj4gc29tZWhvdyB0aGluZ3MganVzdCBzbG93ZWQgZG93biBkdWUgdG8gSVBJcyBhbmQgbW9z dGx5LWRpc2FibGVkIElSUXM/IEkgaGF2ZQ0KPj4gbm8gaWRlYS4gSSB3b3VsZCBuZWVkIHRvIHJl Y3JlYXRlIHRoZSBzY2VuYXJpby4gDQo+IA0KPiBZb3UgaGF2ZSBsb2NrZGVwIGVuYWJsZWQgYW5k IHlvdSBhcmUgcnVubmluZyBmdW5jdGlvbiB0cmFjaW5nIHdpdGggc3RhY2sNCj4gdHJhY2Ugb24/ IFNvIHlvdSBhcmUgZG9pbmcgYSBzdGFjayB0cmFjZSBvbiAqZXZlcnkqIGZ1bmN0aW9uIHRoYXQg aXMgdHJhY2VkPw0KPiANCj4gSSBkb24ndCB0aGluayB5b3UgaGl0IGEgZGVhZGxvY2ssIEkgdGhp bmsgeW91IGhpdCBhIGxpdmUgbG9jay4gWW91IGNvdWxkDQo+IHBvc3NpYmx5IHNsb3cgdGhlIHN5 c3RlbSBkb3duIHNvIG11Y2ggdGhhdCB3aGVuIGFuIGludGVycnVwdCBmaW5pc2hlcyBpdCdzDQo+ IHRpbWUgZm9yIGl0IHRvIGJlIHRyaWdnZXJlZCBhZ2FpbiwgYW5kIHlvdSBuZXZlciBtYWtlIGZv cndhcmQgcHJvZ3Jlc3MuDQoNCkl0IG1pZ2h0IGJlIHRoZSBpc3N1ZS4gUGVyaGFwcyBJIGhhdmUg YSBidWcsIGJlY2F1c2UgbXkgY29kZSB3YXMgc3VwcG9zZWQgdG8NCmVpdGhlciBlbmFibGUgc3Rh Y2stdHJhY2luZyB3aXRoIHNlbGVjdGVkIGZ1bmN0aW9ucyBvciBjcmVhdGUgYSB0cmFjZSBhbGwN CmZ1bmN0aW9uIGJ1dCAqd2l0aG91dCogc3RhY2stdHJhY2luZy4NCg0KVGhhbmtzIGZvciB0aGUg cG9pbnRlciBhbmQgc29ycnkgZm9yIHRoZSBub2lzZS4NCg0KUmVnYXJkcywNCk5hZGF2 ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-11-29 17:56 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-11-22 19:53 [PATCH 0/3] kprobes: notrace enhancements Nadav Amit 2022-11-22 19:53 ` [PATCH 1/3] kprobes: Mark descendents of core_kernel_text as notrace Nadav Amit 2022-11-22 19:53 ` [PATCH 2/3] lib/usercopy: Allow traceing of usercopy, xarray, iov_iter Nadav Amit 2022-11-22 19:53 ` [PATCH 3/3] compiler: inline does not imply notrace Nadav Amit 2022-11-22 20:09 ` Arnd Bergmann 2022-11-22 20:28 ` Steven Rostedt 2022-11-22 20:51 ` Nadav Amit 2022-11-29 2:36 ` Nadav Amit 2022-11-29 4:15 ` Steven Rostedt 2022-11-29 4:25 ` Nadav Amit 2022-11-29 15:06 ` Steven Rostedt 2022-11-29 17:56 ` Nadav Amit
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox