Messages in this thread | | | Subject | RE: [PATCH 1/1] exception/stackdepot: add irqentry section in case of STACKDEPOT | From | Maninder Singh <> | Date | Mon, 06 Sep 2021 18:13:51 +0530 |
| |
Hi,
Any inputs on this?
>As of now if CONFIG_FUNCTION_GRAPH_TRACER is disabled some functions >like gic_handle_irq will not be added in irqentry text section. > >which leads to adding more stacks in stackdepot as frames below IRQ >will not be filtered with filter_irq_stack() function. > >checked with debug interface for satckdepot: >https://lkml.org/lkml/2017/11/22/242 > >e.g. (ARM) >stack count 23188 backtrace > prep_new_page+0x14c/0x160 > get_page_from_freelist+0x1258/0x1350 >... > __handle_domain_irq+0x1ac/0x4ac > gic_handle_irq+0x44/0x80 > __irq_svc+0x5c/0x98 > __slab_alloc.constprop.0+0x84/0xac > __kmalloc+0x31c/0x340 > sf_malloc+0x14/0x18 > >and for same _irq_svc there were 25000 calls which was causing >memory pressure of 2MB more on satckdepot, which will keep increasing. > >Before patch memory consumption on ARM target after 2 hours: >Memory consumed by Stackdepot:3600 KB > >After change: >============ >Memory consumed by Stackdepot:1744 KB > > prep_new_page+0x14c/0x160 > get_page_from_freelist+0x2e4/0x1350 >... > __handle_domain_irq+0x1ac/0x4ac > gic_handle_irq+0x44/0x80 > >^^^^^ no frames below this. > >Signed-off-by: Maninder Singh <maninder1.s@samsung.com> >Signed-off-by: Vaneet Narang <v.narang@samsung.com> >--- > arch/arm/include/asm/exception.h | 2 +- > arch/arm64/include/asm/exception.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > >diff --git a/arch/arm/include/asm/exception.h b/arch/arm/include/asm/exception.h >index 58e039a851af..3f4534cccc0f 100644 >--- a/arch/arm/include/asm/exception.h >+++ b/arch/arm/include/asm/exception.h >@@ -10,7 +10,7 @@ > > #include <linux/interrupt.h> > >-#ifdef CONFIG_FUNCTION_GRAPH_TRACER >+#if defined(CONFIG_FUNCTION_GRAPH_TRACER) || defined(CONFIG_STACKDEPOT) > #define __exception_irq_entry __irq_entry > #else > #define __exception_irq_entry >diff --git a/arch/arm64/include/asm/exception.h b/arch/arm64/include/asm/exception.h >index 339477dca551..ef2581b63405 100644 >--- a/arch/arm64/include/asm/exception.h >+++ b/arch/arm64/include/asm/exception.h >@@ -13,7 +13,7 @@ > > #include <linux/interrupt.h> > >-#ifdef CONFIG_FUNCTION_GRAPH_TRACER >+#if defined(CONFIG_FUNCTION_GRAPH_TRACER) || defined(CONFIG_STACKDEPOT) > #define __exception_irq_entry __irq_entry > #else > #define __exception_irq_entry __kprobes >--
| |