linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point
       [not found] <CGME20171204044702epcas5p3a8d82d304038fe197ab324a4e0267e55@epcas5p3.samsung.com>
@ 2017-12-04  4:43 ` Maninder Singh
  2017-12-05  5:39   ` kbuild test robot
                     ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Maninder Singh @ 2017-12-04  4:43 UTC (permalink / raw)
  To: aryabinin, glider, vyukov, mbenes, tglx, pombredanne, mingo,
	gregkh, jpoimboe, akpm, vbabka, sfr, mhocko
  Cc: linux-kernel, kasan-dev, linux-mm, a.sahrawat, pankaj.m,
	Maninder Singh, Vaneet Narang

Check whether the allocation happens in an IRQ handler.
This lets us strip everything below the IRQ entry point to reduce the
number of unique stack traces needed to be stored.

so moved code of KASAN in generic file so that page_owner can also
do same filteration.

Initial KASAN commit
id=be7635e7287e0e8013af3c89a6354a9e0182594c

Signed-off-by: Vaneet Narang <v.narang@samsung.com>
Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
---
 include/linux/stacktrace.h | 25 +++++++++++++++++++++++++
 mm/kasan/kasan.c           | 22 ----------------------
 mm/page_owner.c            |  1 +
 3 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h
index ba29a06..2c1a562 100644
--- a/include/linux/stacktrace.h
+++ b/include/linux/stacktrace.h
@@ -3,6 +3,7 @@
 #define __LINUX_STACKTRACE_H
 
 #include <linux/types.h>
+#include <asm-generic/sections.h>
 
 struct task_struct;
 struct pt_regs;
@@ -26,6 +27,28 @@ extern int save_stack_trace_tsk_reliable(struct task_struct *tsk,
 extern int snprint_stack_trace(char *buf, size_t size,
 			struct stack_trace *trace, int spaces);
 
+static inline int in_irqentry_text(unsigned long ptr)
+{
+	return (ptr >= (unsigned long)&__irqentry_text_start &&
+		ptr < (unsigned long)&__irqentry_text_end) ||
+		(ptr >= (unsigned long)&__softirqentry_text_start &&
+		 ptr < (unsigned long)&__softirqentry_text_end);
+}
+
+static inline void filter_irq_stacks(struct stack_trace *trace)
+{
+	int i;
+
+	if (!trace->nr_entries)
+		return;
+	for (i = 0; i < trace->nr_entries; i++)
+		if (in_irqentry_text(trace->entries[i])) {
+			/* Include the irqentry function into the stack. */
+			trace->nr_entries = i + 1;
+			break;
+		}
+}
+
 #ifdef CONFIG_USER_STACKTRACE_SUPPORT
 extern void save_stack_trace_user(struct stack_trace *trace);
 #else
@@ -38,6 +61,8 @@ extern int snprint_stack_trace(char *buf, size_t size,
 # define save_stack_trace_user(trace)			do { } while (0)
 # define print_stack_trace(trace, spaces)		do { } while (0)
 # define snprint_stack_trace(buf, size, trace, spaces)	do { } while (0)
+# define filter_irq_stacks(trace)			do { } while (0)
+# define in_irqentry_text(ptr)				do { } while (0)
 # define save_stack_trace_tsk_reliable(tsk, trace)	({ -ENOSYS; })
 #endif /* CONFIG_STACKTRACE */
 
diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c
index 405bba4..129e7b8 100644
--- a/mm/kasan/kasan.c
+++ b/mm/kasan/kasan.c
@@ -412,28 +412,6 @@ void kasan_poison_object_data(struct kmem_cache *cache, void *object)
 			KASAN_KMALLOC_REDZONE);
 }
 
-static inline int in_irqentry_text(unsigned long ptr)
-{
-	return (ptr >= (unsigned long)&__irqentry_text_start &&
-		ptr < (unsigned long)&__irqentry_text_end) ||
-		(ptr >= (unsigned long)&__softirqentry_text_start &&
-		 ptr < (unsigned long)&__softirqentry_text_end);
-}
-
-static inline void filter_irq_stacks(struct stack_trace *trace)
-{
-	int i;
-
-	if (!trace->nr_entries)
-		return;
-	for (i = 0; i < trace->nr_entries; i++)
-		if (in_irqentry_text(trace->entries[i])) {
-			/* Include the irqentry function into the stack. */
-			trace->nr_entries = i + 1;
-			break;
-		}
-}
-
 static inline depot_stack_handle_t save_stack(gfp_t flags)
 {
 	unsigned long entries[KASAN_STACK_DEPTH];
diff --git a/mm/page_owner.c b/mm/page_owner.c
index 8602fb4..30e9cb2 100644
--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -148,6 +148,7 @@ static noinline depot_stack_handle_t save_stack(gfp_t flags)
 	depot_stack_handle_t handle;
 
 	save_stack_trace(&trace);
+	filter_irq_stacks(&trace);
 	if (trace.nr_entries != 0 &&
 	    trace.entries[trace.nr_entries-1] == ULONG_MAX)
 		trace.nr_entries--;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point
  2017-12-04  4:43 ` [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point Maninder Singh
@ 2017-12-05  5:39   ` kbuild test robot
  2017-12-05  6:05   ` kbuild test robot
  2017-12-05 14:40   ` Alexander Potapenko
  2 siblings, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2017-12-05  5:39 UTC (permalink / raw)
  To: Maninder Singh
  Cc: kbuild-all, aryabinin, glider, vyukov, mbenes, tglx, pombredanne,
	mingo, gregkh, jpoimboe, akpm, vbabka, sfr, mhocko, linux-kernel,
	kasan-dev, linux-mm, a.sahrawat, pankaj.m, Maninder Singh,
	Vaneet Narang

[-- Attachment #1: Type: text/plain, Size: 5591 bytes --]

Hi Maninder,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on mmotm/master]
[also build test ERROR on v4.15-rc2 next-20171204]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Maninder-Singh/mm-page_owner-ignore-everything-below-the-IRQ-entry-point/20171205-122901
base:   git://git.cmpxchg.org/linux-mmotm.git master
config: blackfin-allmodconfig (attached as .config)
compiler: bfin-uclinux-gcc (GCC) 6.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=blackfin 

All errors (new ones prefixed by >>):

   In file included from include/linux/interrupt.h:22:0,
                    from include/linux/kernel_stat.h:9,
                    from arch/blackfin/kernel/asm-offsets.c:11:
>> arch/blackfin/include/asm/sections.h:35:19: error: redefinition of 'arch_is_kernel_text'
    static inline int arch_is_kernel_text(unsigned long addr)
                      ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/stacktrace.h:6:0,
                    from include/linux/lockdep.h:29,
                    from include/linux/rcupdate.h:42,
                    from include/linux/rculist.h:11,
                    from include/linux/pid.h:5,
                    from include/linux/sched.h:14,
                    from arch/blackfin/kernel/asm-offsets.c:10:
   include/asm-generic/sections.h:63:19: note: previous definition of 'arch_is_kernel_text' was here
    static inline int arch_is_kernel_text(unsigned long addr)
                      ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/interrupt.h:22:0,
                    from include/linux/kernel_stat.h:9,
                    from arch/blackfin/kernel/asm-offsets.c:11:
>> arch/blackfin/include/asm/sections.h:48:19: error: redefinition of 'arch_is_kernel_data'
    static inline int arch_is_kernel_data(unsigned long addr)
                      ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/stacktrace.h:6:0,
                    from include/linux/lockdep.h:29,
                    from include/linux/rcupdate.h:42,
                    from include/linux/rculist.h:11,
                    from include/linux/pid.h:5,
                    from include/linux/sched.h:14,
                    from arch/blackfin/kernel/asm-offsets.c:10:
   include/asm-generic/sections.h:70:19: note: previous definition of 'arch_is_kernel_data' was here
    static inline int arch_is_kernel_data(unsigned long addr)
                      ^~~~~~~~~~~~~~~~~~~
   make[2]: *** [arch/blackfin/kernel/asm-offsets.s] Error 1
   make[2]: Target '__build' not remade because of errors.
   make[1]: *** [prepare0] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [sub-make] Error 2

vim +/arch_is_kernel_text +35 arch/blackfin/include/asm/sections.h

e56770fb Mike Frysinger 2009-09-22  33  
e56770fb Mike Frysinger 2009-09-22  34  /* Blackfin systems have discontinuous memory map and no virtualized memory */
e56770fb Mike Frysinger 2009-09-22 @35  static inline int arch_is_kernel_text(unsigned long addr)
e56770fb Mike Frysinger 2009-09-22  36  {
e56770fb Mike Frysinger 2009-09-22  37  	return
e56770fb Mike Frysinger 2009-09-22  38  		(L1_CODE_LENGTH &&
e56770fb Mike Frysinger 2009-09-22  39  		 addr >= (unsigned long)_stext_l1 &&
e56770fb Mike Frysinger 2009-09-22  40  		 addr <  (unsigned long)_etext_l1)
e56770fb Mike Frysinger 2009-09-22  41  		||
e56770fb Mike Frysinger 2009-09-22  42  		(L2_LENGTH &&
e56770fb Mike Frysinger 2009-09-22  43  		 addr >= (unsigned long)_stext_l2 &&
e56770fb Mike Frysinger 2009-09-22  44  		 addr <  (unsigned long)_etext_l2);
e56770fb Mike Frysinger 2009-09-22  45  }
e56770fb Mike Frysinger 2009-09-22  46  #define arch_is_kernel_text(addr) arch_is_kernel_text(addr)
e56770fb Mike Frysinger 2009-09-22  47  
e56770fb Mike Frysinger 2009-09-22 @48  static inline int arch_is_kernel_data(unsigned long addr)
e56770fb Mike Frysinger 2009-09-22  49  {
e56770fb Mike Frysinger 2009-09-22  50  	return
e56770fb Mike Frysinger 2009-09-22  51  		(L1_DATA_A_LENGTH &&
e56770fb Mike Frysinger 2009-09-22  52  		 addr >= (unsigned long)_sdata_l1 &&
e56770fb Mike Frysinger 2009-09-22  53  		 addr <  (unsigned long)_ebss_l1)
e56770fb Mike Frysinger 2009-09-22  54  		||
e56770fb Mike Frysinger 2009-09-22  55  		(L1_DATA_B_LENGTH &&
e56770fb Mike Frysinger 2009-09-22  56  		 addr >= (unsigned long)_sdata_b_l1 &&
e56770fb Mike Frysinger 2009-09-22  57  		 addr <  (unsigned long)_ebss_b_l1)
e56770fb Mike Frysinger 2009-09-22  58  		||
e56770fb Mike Frysinger 2009-09-22  59  		(L2_LENGTH &&
e56770fb Mike Frysinger 2009-09-22  60  		 addr >= (unsigned long)_sdata_l2 &&
e56770fb Mike Frysinger 2009-09-22  61  		 addr <  (unsigned long)_ebss_l2);
e56770fb Mike Frysinger 2009-09-22  62  }
e56770fb Mike Frysinger 2009-09-22  63  #define arch_is_kernel_data(addr) arch_is_kernel_data(addr)
e56770fb Mike Frysinger 2009-09-22  64  

:::::: The code at line 35 was first introduced by commit
:::::: e56770fbc48c1517f620f9f68e3f728e74d52bf5 Blackfin: override text/data checking functions

:::::: TO: Mike Frysinger <vapier@gentoo.org>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 46980 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point
  2017-12-04  4:43 ` [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point Maninder Singh
  2017-12-05  5:39   ` kbuild test robot
@ 2017-12-05  6:05   ` kbuild test robot
  2017-12-05 14:40   ` Alexander Potapenko
  2 siblings, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2017-12-05  6:05 UTC (permalink / raw)
  To: Maninder Singh
  Cc: kbuild-all, aryabinin, glider, vyukov, mbenes, tglx, pombredanne,
	mingo, gregkh, jpoimboe, akpm, vbabka, sfr, mhocko, linux-kernel,
	kasan-dev, linux-mm, a.sahrawat, pankaj.m, Maninder Singh,
	Vaneet Narang

[-- Attachment #1: Type: text/plain, Size: 4206 bytes --]

Hi Maninder,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on mmotm/master]
[also build test ERROR on v4.15-rc2 next-20171204]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Maninder-Singh/mm-page_owner-ignore-everything-below-the-IRQ-entry-point/20171205-122901
base:   git://git.cmpxchg.org/linux-mmotm.git master
config: tile-allmodconfig (attached as .config)
compiler: tilegx-linux-gcc (GCC) 5.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=tile 

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/interrupt.h:22:0,
                    from include/linux/kernel_stat.h:9,
                    from mm//swap.c:18:
>> arch/tile/include/asm/sections.h:18:29: error: redefinition of 'arch_is_kernel_data'
    #define arch_is_kernel_data arch_is_kernel_data
                                ^
>> arch/tile/include/asm/sections.h:38:19: note: in expansion of macro 'arch_is_kernel_data'
    static inline int arch_is_kernel_data(unsigned long addr)
                      ^
   In file included from include/linux/stacktrace.h:6:0,
                    from include/linux/lockdep.h:29,
                    from include/linux/spinlock_types.h:18,
                    from include/linux/spinlock.h:82,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from mm//swap.c:16:
   include/asm-generic/sections.h:70:19: note: previous definition of 'arch_is_kernel_data' was here
    static inline int arch_is_kernel_data(unsigned long addr)
                      ^

vim +/arch_is_kernel_data +18 arch/tile/include/asm/sections.h

867e359b Chris Metcalf 2010-05-28  17  
867e359b Chris Metcalf 2010-05-28 @18  #define arch_is_kernel_data arch_is_kernel_data
867e359b Chris Metcalf 2010-05-28  19  
867e359b Chris Metcalf 2010-05-28  20  #include <asm-generic/sections.h>
867e359b Chris Metcalf 2010-05-28  21  
4a556f4f Chris Metcalf 2013-08-07  22  extern char vdso_start[], vdso_end[];
4a556f4f Chris Metcalf 2013-08-07  23  #ifdef CONFIG_COMPAT
4a556f4f Chris Metcalf 2013-08-07  24  extern char vdso32_start[], vdso32_end[];
4a556f4f Chris Metcalf 2013-08-07  25  #endif
0707ad30 Chris Metcalf 2010-06-25  26  
0707ad30 Chris Metcalf 2010-06-25  27  /* Not exactly sections, but PC comparison points in the code. */
0707ad30 Chris Metcalf 2010-06-25  28  extern char __rt_sigreturn[], __rt_sigreturn_end[];
2f9ac29e Chris Metcalf 2013-08-06  29  #ifdef __tilegx__
2f9ac29e Chris Metcalf 2013-08-06  30  extern char __start_unalign_asm_code[], __end_unalign_asm_code[];
2f9ac29e Chris Metcalf 2013-08-06  31  #else
0707ad30 Chris Metcalf 2010-06-25  32  extern char sys_cmpxchg[], __sys_cmpxchg_end[];
0707ad30 Chris Metcalf 2010-06-25  33  extern char __sys_cmpxchg_grab_lock[];
0707ad30 Chris Metcalf 2010-06-25  34  extern char __start_atomic_asm_code[], __end_atomic_asm_code[];
0707ad30 Chris Metcalf 2010-06-25  35  #endif
867e359b Chris Metcalf 2010-05-28  36  
40a3b8df Jiang Liu     2013-07-03  37  /* Handle the discontiguity between _sdata and _text. */
867e359b Chris Metcalf 2010-05-28 @38  static inline int arch_is_kernel_data(unsigned long addr)
867e359b Chris Metcalf 2010-05-28  39  {
867e359b Chris Metcalf 2010-05-28  40  	return addr >= (unsigned long)_sdata &&
867e359b Chris Metcalf 2010-05-28  41  		addr < (unsigned long)_end;
867e359b Chris Metcalf 2010-05-28  42  }
867e359b Chris Metcalf 2010-05-28  43  

:::::: The code at line 18 was first introduced by commit
:::::: 867e359b97c970a60626d5d76bbe2a8fadbf38fb arch/tile: core support for Tilera 32-bit chips.

:::::: TO: Chris Metcalf <cmetcalf@tilera.com>
:::::: CC: Chris Metcalf <cmetcalf@tilera.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 51429 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point
  2017-12-04  4:43 ` [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point Maninder Singh
  2017-12-05  5:39   ` kbuild test robot
  2017-12-05  6:05   ` kbuild test robot
@ 2017-12-05 14:40   ` Alexander Potapenko
  2 siblings, 0 replies; 4+ messages in thread
From: Alexander Potapenko @ 2017-12-05 14:40 UTC (permalink / raw)
  To: Maninder Singh
  Cc: Andrey Ryabinin, mbenes, Thomas Gleixner, pombredanne,
	Ingo Molnar, gregkh, Josh Poimboeuf, Andrew Morton,
	Vlastimil Babka, Stephen Rothwell, mhocko, LKML, kasan-dev,
	Linux Memory Management List, a.sahrawat, pankaj.m,
	Vaneet Narang, Dmitriy Vyukov

On Mon, Dec 4, 2017 at 5:43 AM, Maninder Singh <maninder1.s@samsung.com> wrote:
> Check whether the allocation happens in an IRQ handler.
> This lets us strip everything below the IRQ entry point to reduce the
> number of unique stack traces needed to be stored.
>
> so moved code of KASAN in generic file so that page_owner can also
> do same filteration.
>
> Initial KASAN commit
> id=be7635e7287e0e8013af3c89a6354a9e0182594c
>
> Signed-off-by: Vaneet Narang <v.narang@samsung.com>
> Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
Reviewed-by: Alexander Potapenko <glider@google.com>
> ---
>  include/linux/stacktrace.h | 25 +++++++++++++++++++++++++
>  mm/kasan/kasan.c           | 22 ----------------------
>  mm/page_owner.c            |  1 +
>  3 files changed, 26 insertions(+), 22 deletions(-)
>
> diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h
> index ba29a06..2c1a562 100644
> --- a/include/linux/stacktrace.h
> +++ b/include/linux/stacktrace.h
> @@ -3,6 +3,7 @@
>  #define __LINUX_STACKTRACE_H
>
>  #include <linux/types.h>
> +#include <asm-generic/sections.h>
>
>  struct task_struct;
>  struct pt_regs;
> @@ -26,6 +27,28 @@ extern int save_stack_trace_tsk_reliable(struct task_struct *tsk,
>  extern int snprint_stack_trace(char *buf, size_t size,
>                         struct stack_trace *trace, int spaces);
>
> +static inline int in_irqentry_text(unsigned long ptr)
> +{
> +       return (ptr >= (unsigned long)&__irqentry_text_start &&
> +               ptr < (unsigned long)&__irqentry_text_end) ||
> +               (ptr >= (unsigned long)&__softirqentry_text_start &&
> +                ptr < (unsigned long)&__softirqentry_text_end);
> +}
> +
> +static inline void filter_irq_stacks(struct stack_trace *trace)
> +{
> +       int i;
> +
> +       if (!trace->nr_entries)
> +               return;
> +       for (i = 0; i < trace->nr_entries; i++)
> +               if (in_irqentry_text(trace->entries[i])) {
> +                       /* Include the irqentry function into the stack. */
> +                       trace->nr_entries = i + 1;
> +                       break;
> +               }
> +}
> +
>  #ifdef CONFIG_USER_STACKTRACE_SUPPORT
>  extern void save_stack_trace_user(struct stack_trace *trace);
>  #else
> @@ -38,6 +61,8 @@ extern int snprint_stack_trace(char *buf, size_t size,
>  # define save_stack_trace_user(trace)                  do { } while (0)
>  # define print_stack_trace(trace, spaces)              do { } while (0)
>  # define snprint_stack_trace(buf, size, trace, spaces) do { } while (0)
> +# define filter_irq_stacks(trace)                      do { } while (0)
> +# define in_irqentry_text(ptr)                         do { } while (0)
>  # define save_stack_trace_tsk_reliable(tsk, trace)     ({ -ENOSYS; })
>  #endif /* CONFIG_STACKTRACE */
>
> diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c
> index 405bba4..129e7b8 100644
> --- a/mm/kasan/kasan.c
> +++ b/mm/kasan/kasan.c
> @@ -412,28 +412,6 @@ void kasan_poison_object_data(struct kmem_cache *cache, void *object)
>                         KASAN_KMALLOC_REDZONE);
>  }
>
> -static inline int in_irqentry_text(unsigned long ptr)
> -{
> -       return (ptr >= (unsigned long)&__irqentry_text_start &&
> -               ptr < (unsigned long)&__irqentry_text_end) ||
> -               (ptr >= (unsigned long)&__softirqentry_text_start &&
> -                ptr < (unsigned long)&__softirqentry_text_end);
> -}
> -
> -static inline void filter_irq_stacks(struct stack_trace *trace)
> -{
> -       int i;
> -
> -       if (!trace->nr_entries)
> -               return;
> -       for (i = 0; i < trace->nr_entries; i++)
> -               if (in_irqentry_text(trace->entries[i])) {
> -                       /* Include the irqentry function into the stack. */
> -                       trace->nr_entries = i + 1;
> -                       break;
> -               }
> -}
> -
>  static inline depot_stack_handle_t save_stack(gfp_t flags)
>  {
>         unsigned long entries[KASAN_STACK_DEPTH];
> diff --git a/mm/page_owner.c b/mm/page_owner.c
> index 8602fb4..30e9cb2 100644
> --- a/mm/page_owner.c
> +++ b/mm/page_owner.c
> @@ -148,6 +148,7 @@ static noinline depot_stack_handle_t save_stack(gfp_t flags)
>         depot_stack_handle_t handle;
>
>         save_stack_trace(&trace);
> +       filter_irq_stacks(&trace);
>         if (trace.nr_entries != 0 &&
>             trace.entries[trace.nr_entries-1] == ULONG_MAX)
>                 trace.nr_entries--;
> --
> 1.9.1
>



-- 
Alexander Potapenko
Software Engineer

Google Germany GmbH
Erika-Mann-Straße, 33
80636 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-12-05 14:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20171204044702epcas5p3a8d82d304038fe197ab324a4e0267e55@epcas5p3.samsung.com>
2017-12-04  4:43 ` [PATCH 1/1] mm/page_owner: ignore everything below the IRQ entry point Maninder Singh
2017-12-05  5:39   ` kbuild test robot
2017-12-05  6:05   ` kbuild test robot
2017-12-05 14:40   ` Alexander Potapenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).