linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Re: strange allocation failures
       [not found]     ` <CACT4Y+bD0S9CY0ahvZ=pOpXqHAkH6P0OTHPTeBi-Pb2Nw6ph4w@mail.gmail.com>
@ 2017-03-13 10:31       ` Andrey Ryabinin
  2017-03-13 10:37         ` Dmitry Vyukov
  2017-03-13 10:37         ` Michal Hocko
  0 siblings, 2 replies; 6+ messages in thread
From: Andrey Ryabinin @ 2017-03-13 10:31 UTC (permalink / raw)
  To: Dmitry Vyukov; +Cc: Kirill A. Shutemov, kasan-dev, linux-mm, Michal Hocko



On 03/13/2017 01:10 PM, Dmitry Vyukov wrote:
> On Mon, Mar 13, 2017 at 11:08 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
>> On Mon, Mar 13, 2017 at 11:04 AM, Andrey Ryabinin
>> <aryabinin@virtuozzo.com> wrote:
>>>
>>>
>>> On 03/13/2017 12:50 PM, Dmitry Vyukov wrote:
>>>> Hello Andrey, Kirill,
>>>>
>>>> Can you please help me understand where is all my memory?
>>>> I am running very moderate workload on a machine with 7.5GB of memory
>>>> with KASAN. And I see constant vmalloc allocation failures for very
>>>> moderate sizes. I am confused why it happens and where is all my
>>>> memory...
>>>>
>>>
>>>
>>> Perhaps it's SIGKILL generated by syzkaller?
>>>
>>> static void *__vmalloc_area_node()
>>> {
>>> .....
>>>                 if (fatal_signal_pending(current)) {
>>>                         area->nr_pages = i;
>>>                         goto fail;
>>>                 }
>>
>>
>> Ah, that would make sense. Syzkaller can indeed kill processes frequently.
>>
>> Perhaps we should not print the lengthy allocation failure message
>> with all the details in such. Not sure how easy it is to filter out
>> such cases.
>> I have constant stream of these messages that just make everything
>> else lost between them. And they are quite confusing. I've starred at
>> the numbers trying to understand why I am short on memory.
> 
> 
> Seems trivial. What do you think of:
> 

Makes sense. ACK.

> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index 0dd80222b20b..0b057628a7ba 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -1683,7 +1683,7 @@ static void *__vmalloc_area_node(struct
> vm_struct *area, gfp_t gfp_mask,
> 
>                 if (fatal_signal_pending(current)) {
>                         area->nr_pages = i;
> -                       goto fail;
> +                       goto fail_no_warn;
>                 }
> 
>                 if (node == NUMA_NO_NODE)
> @@ -1709,6 +1709,7 @@ static void *__vmalloc_area_node(struct
> vm_struct *area, gfp_t gfp_mask,
>         warn_alloc(gfp_mask, NULL,
>                           "vmalloc: allocation failure, allocated %ld
> of %ld bytes",
>                           (area->nr_pages*PAGE_SIZE), area->size);
> +fail_no_warn:
>         vfree(area->addr);
>         return NULL;
>  }
> 
> 
> ?
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: strange allocation failures
  2017-03-13 10:31       ` strange allocation failures Andrey Ryabinin
@ 2017-03-13 10:37         ` Dmitry Vyukov
  2017-03-13 10:45           ` Dmitry Vyukov
  2017-03-13 10:51           ` Michal Hocko
  2017-03-13 10:37         ` Michal Hocko
  1 sibling, 2 replies; 6+ messages in thread
From: Dmitry Vyukov @ 2017-03-13 10:37 UTC (permalink / raw)
  To: Andrey Ryabinin; +Cc: Kirill A. Shutemov, kasan-dev, linux-mm, Michal Hocko

On Mon, Mar 13, 2017 at 11:31 AM, Andrey Ryabinin
<aryabinin@virtuozzo.com> wrote:
>
>
> On 03/13/2017 01:10 PM, Dmitry Vyukov wrote:
>> On Mon, Mar 13, 2017 at 11:08 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
>>> On Mon, Mar 13, 2017 at 11:04 AM, Andrey Ryabinin
>>> <aryabinin@virtuozzo.com> wrote:
>>>>
>>>>
>>>> On 03/13/2017 12:50 PM, Dmitry Vyukov wrote:
>>>>> Hello Andrey, Kirill,
>>>>>
>>>>> Can you please help me understand where is all my memory?
>>>>> I am running very moderate workload on a machine with 7.5GB of memory
>>>>> with KASAN. And I see constant vmalloc allocation failures for very
>>>>> moderate sizes. I am confused why it happens and where is all my
>>>>> memory...
>>>>>
>>>>
>>>>
>>>> Perhaps it's SIGKILL generated by syzkaller?
>>>>
>>>> static void *__vmalloc_area_node()
>>>> {
>>>> .....
>>>>                 if (fatal_signal_pending(current)) {
>>>>                         area->nr_pages = i;
>>>>                         goto fail;
>>>>                 }
>>>
>>>
>>> Ah, that would make sense. Syzkaller can indeed kill processes frequently.
>>>
>>> Perhaps we should not print the lengthy allocation failure message
>>> with all the details in such. Not sure how easy it is to filter out
>>> such cases.
>>> I have constant stream of these messages that just make everything
>>> else lost between them. And they are quite confusing. I've starred at
>>> the numbers trying to understand why I am short on memory.
>>
>>
>> Seems trivial. What do you think of:
>>
>
> Makes sense. ACK.
>
>> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
>> index 0dd80222b20b..0b057628a7ba 100644
>> --- a/mm/vmalloc.c
>> +++ b/mm/vmalloc.c
>> @@ -1683,7 +1683,7 @@ static void *__vmalloc_area_node(struct
>> vm_struct *area, gfp_t gfp_mask,
>>
>>                 if (fatal_signal_pending(current)) {
>>                         area->nr_pages = i;
>> -                       goto fail;
>> +                       goto fail_no_warn;
>>                 }
>>
>>                 if (node == NUMA_NO_NODE)
>> @@ -1709,6 +1709,7 @@ static void *__vmalloc_area_node(struct
>> vm_struct *area, gfp_t gfp_mask,
>>         warn_alloc(gfp_mask, NULL,
>>                           "vmalloc: allocation failure, allocated %ld
>> of %ld bytes",
>>                           (area->nr_pages*PAGE_SIZE), area->size);
>> +fail_no_warn:
>>         vfree(area->addr);
>>         return NULL;
>>  }
>>
>>
>> ?


These failing vmalloc's provoked a bunch of bugs in kernel on error
handling paths. And it was useful to see that there was an allocation
failure in the same process right before the bug.
And it was unexpected that I am killing processes that frequently, so
I would like to see at least some information about this on console.
So now I have:


diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 6cbde310abed..418c80a76b4a 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3073,6 +3073,11 @@ static inline bool should_suppress_show_mem(void)
 #if NODES_SHIFT > 8
        ret = in_interrupt();
 #endif
+       /*
+        * vmalloc() fails when fatal_signal_pending(),
+        * but that's not because we are out of memory.
+        */
+       ret |= fatal_signal_pending(current);
        return ret;
 }

@@ -3120,9 +3125,13 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t
*nodemask, const char *fmt, ...)

        pr_cont(", mode:%#x(%pGg), nodemask=", gfp_mask, &gfp_mask);
        if (nodemask)
-               pr_cont("%*pbl\n", nodemask_pr_args(nodemask));
+               pr_cont("%*pbl", nodemask_pr_args(nodemask));
+       else
+               pr_cont("(null)");
+       if (fatal_signal_pending(current))
+               pr_cont(", fatal signal pending\n");
        else
-               pr_cont("(null)\n");
+               pr_cont("\n");

        cpuset_print_current_mems_allowed();


It's not so verbose, but explains things better.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: strange allocation failures
  2017-03-13 10:31       ` strange allocation failures Andrey Ryabinin
  2017-03-13 10:37         ` Dmitry Vyukov
@ 2017-03-13 10:37         ` Michal Hocko
  1 sibling, 0 replies; 6+ messages in thread
From: Michal Hocko @ 2017-03-13 10:37 UTC (permalink / raw)
  To: Andrey Ryabinin; +Cc: Dmitry Vyukov, Kirill A. Shutemov, kasan-dev, linux-mm

On Mon 13-03-17 13:31:06, Andrey Ryabinin wrote:
> 
> 
> On 03/13/2017 01:10 PM, Dmitry Vyukov wrote:
> > On Mon, Mar 13, 2017 at 11:08 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
> >> On Mon, Mar 13, 2017 at 11:04 AM, Andrey Ryabinin
> >> <aryabinin@virtuozzo.com> wrote:
> >>>
> >>>
> >>> On 03/13/2017 12:50 PM, Dmitry Vyukov wrote:
> >>>> Hello Andrey, Kirill,
> >>>>
> >>>> Can you please help me understand where is all my memory?
> >>>> I am running very moderate workload on a machine with 7.5GB of memory
> >>>> with KASAN. And I see constant vmalloc allocation failures for very
> >>>> moderate sizes. I am confused why it happens and where is all my
> >>>> memory...
> >>>>
> >>>
> >>>
> >>> Perhaps it's SIGKILL generated by syzkaller?
> >>>
> >>> static void *__vmalloc_area_node()
> >>> {
> >>> .....
> >>>                 if (fatal_signal_pending(current)) {
> >>>                         area->nr_pages = i;
> >>>                         goto fail;
> >>>                 }
> >>
> >>
> >> Ah, that would make sense. Syzkaller can indeed kill processes frequently.
> >>
> >> Perhaps we should not print the lengthy allocation failure message
> >> with all the details in such. Not sure how easy it is to filter out
> >> such cases.
> >> I have constant stream of these messages that just make everything
> >> else lost between them. And they are quite confusing. I've starred at
> >> the numbers trying to understand why I am short on memory.
> > 
> > 
> > Seems trivial. What do you think of:
> > 
> 
> Makes sense. ACK.
 
yes, looks reasonably to me as well. I will ack the patch with the full
changelog. Please CC me.

> 
> > diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> > index 0dd80222b20b..0b057628a7ba 100644
> > --- a/mm/vmalloc.c
> > +++ b/mm/vmalloc.c
> > @@ -1683,7 +1683,7 @@ static void *__vmalloc_area_node(struct
> > vm_struct *area, gfp_t gfp_mask,
> > 
> >                 if (fatal_signal_pending(current)) {
> >                         area->nr_pages = i;
> > -                       goto fail;
> > +                       goto fail_no_warn;
> >                 }
> > 
> >                 if (node == NUMA_NO_NODE)
> > @@ -1709,6 +1709,7 @@ static void *__vmalloc_area_node(struct
> > vm_struct *area, gfp_t gfp_mask,
> >         warn_alloc(gfp_mask, NULL,
> >                           "vmalloc: allocation failure, allocated %ld
> > of %ld bytes",
> >                           (area->nr_pages*PAGE_SIZE), area->size);
> > +fail_no_warn:
> >         vfree(area->addr);
> >         return NULL;
> >  }
> > 
> > 
> > ?
> > 
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: strange allocation failures
  2017-03-13 10:37         ` Dmitry Vyukov
@ 2017-03-13 10:45           ` Dmitry Vyukov
  2017-03-13 10:59             ` Michal Hocko
  2017-03-13 10:51           ` Michal Hocko
  1 sibling, 1 reply; 6+ messages in thread
From: Dmitry Vyukov @ 2017-03-13 10:45 UTC (permalink / raw)
  To: Andrey Ryabinin; +Cc: Kirill A. Shutemov, kasan-dev, linux-mm, Michal Hocko

On Mon, Mar 13, 2017 at 11:37 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
> On Mon, Mar 13, 2017 at 11:31 AM, Andrey Ryabinin
> <aryabinin@virtuozzo.com> wrote:
>>
>>
>> On 03/13/2017 01:10 PM, Dmitry Vyukov wrote:
>>> On Mon, Mar 13, 2017 at 11:08 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
>>>> On Mon, Mar 13, 2017 at 11:04 AM, Andrey Ryabinin
>>>> <aryabinin@virtuozzo.com> wrote:
>>>>>
>>>>>
>>>>> On 03/13/2017 12:50 PM, Dmitry Vyukov wrote:
>>>>>> Hello Andrey, Kirill,
>>>>>>
>>>>>> Can you please help me understand where is all my memory?
>>>>>> I am running very moderate workload on a machine with 7.5GB of memory
>>>>>> with KASAN. And I see constant vmalloc allocation failures for very
>>>>>> moderate sizes. I am confused why it happens and where is all my
>>>>>> memory...
>>>>>>
>>>>>
>>>>>
>>>>> Perhaps it's SIGKILL generated by syzkaller?
>>>>>
>>>>> static void *__vmalloc_area_node()
>>>>> {
>>>>> .....
>>>>>                 if (fatal_signal_pending(current)) {
>>>>>                         area->nr_pages = i;
>>>>>                         goto fail;
>>>>>                 }
>>>>
>>>>
>>>> Ah, that would make sense. Syzkaller can indeed kill processes frequently.
>>>>
>>>> Perhaps we should not print the lengthy allocation failure message
>>>> with all the details in such. Not sure how easy it is to filter out
>>>> such cases.
>>>> I have constant stream of these messages that just make everything
>>>> else lost between them. And they are quite confusing. I've starred at
>>>> the numbers trying to understand why I am short on memory.
>>>
>>>
>>> Seems trivial. What do you think of:
>>>
>>
>> Makes sense. ACK.
>>
>>> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
>>> index 0dd80222b20b..0b057628a7ba 100644
>>> --- a/mm/vmalloc.c
>>> +++ b/mm/vmalloc.c
>>> @@ -1683,7 +1683,7 @@ static void *__vmalloc_area_node(struct
>>> vm_struct *area, gfp_t gfp_mask,
>>>
>>>                 if (fatal_signal_pending(current)) {
>>>                         area->nr_pages = i;
>>> -                       goto fail;
>>> +                       goto fail_no_warn;
>>>                 }
>>>
>>>                 if (node == NUMA_NO_NODE)
>>> @@ -1709,6 +1709,7 @@ static void *__vmalloc_area_node(struct
>>> vm_struct *area, gfp_t gfp_mask,
>>>         warn_alloc(gfp_mask, NULL,
>>>                           "vmalloc: allocation failure, allocated %ld
>>> of %ld bytes",
>>>                           (area->nr_pages*PAGE_SIZE), area->size);
>>> +fail_no_warn:
>>>         vfree(area->addr);
>>>         return NULL;
>>>  }
>>>
>>>
>>> ?
>
>
> These failing vmalloc's provoked a bunch of bugs in kernel on error
> handling paths. And it was useful to see that there was an allocation
> failure in the same process right before the bug.
> And it was unexpected that I am killing processes that frequently, so
> I would like to see at least some information about this on console.
> So now I have:
>
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 6cbde310abed..418c80a76b4a 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -3073,6 +3073,11 @@ static inline bool should_suppress_show_mem(void)
>  #if NODES_SHIFT > 8
>         ret = in_interrupt();

/\/\/\/\/\/\/\/\
As a side note, looking at this line.
Can vmalloc be called from an interrupt? If so, won't we fail all
vmalloc's in an unlucky interrupt that hit a task with
fatal_signal_pending?



>  #endif
> +       /*
> +        * vmalloc() fails when fatal_signal_pending(),
> +        * but that's not because we are out of memory.
> +        */
> +       ret |= fatal_signal_pending(current);
>         return ret;
>  }
>
> @@ -3120,9 +3125,13 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t
> *nodemask, const char *fmt, ...)
>
>         pr_cont(", mode:%#x(%pGg), nodemask=", gfp_mask, &gfp_mask);
>         if (nodemask)
> -               pr_cont("%*pbl\n", nodemask_pr_args(nodemask));
> +               pr_cont("%*pbl", nodemask_pr_args(nodemask));
> +       else
> +               pr_cont("(null)");
> +       if (fatal_signal_pending(current))
> +               pr_cont(", fatal signal pending\n");
>         else
> -               pr_cont("(null)\n");
> +               pr_cont("\n");
>
>         cpuset_print_current_mems_allowed();
>
> It's not so verbose, but explains things better.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: strange allocation failures
  2017-03-13 10:37         ` Dmitry Vyukov
  2017-03-13 10:45           ` Dmitry Vyukov
@ 2017-03-13 10:51           ` Michal Hocko
  1 sibling, 0 replies; 6+ messages in thread
From: Michal Hocko @ 2017-03-13 10:51 UTC (permalink / raw)
  To: Dmitry Vyukov; +Cc: Andrey Ryabinin, Kirill A. Shutemov, kasan-dev, linux-mm

On Mon 13-03-17 11:37:41, Dmitry Vyukov wrote:
> On Mon, Mar 13, 2017 at 11:31 AM, Andrey Ryabinin
> <aryabinin@virtuozzo.com> wrote:
> >
> >
> > On 03/13/2017 01:10 PM, Dmitry Vyukov wrote:
> >> On Mon, Mar 13, 2017 at 11:08 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
> >>> On Mon, Mar 13, 2017 at 11:04 AM, Andrey Ryabinin
> >>> <aryabinin@virtuozzo.com> wrote:
> >>>>
> >>>>
> >>>> On 03/13/2017 12:50 PM, Dmitry Vyukov wrote:
> >>>>> Hello Andrey, Kirill,
> >>>>>
> >>>>> Can you please help me understand where is all my memory?
> >>>>> I am running very moderate workload on a machine with 7.5GB of memory
> >>>>> with KASAN. And I see constant vmalloc allocation failures for very
> >>>>> moderate sizes. I am confused why it happens and where is all my
> >>>>> memory...
> >>>>>
> >>>>
> >>>>
> >>>> Perhaps it's SIGKILL generated by syzkaller?
> >>>>
> >>>> static void *__vmalloc_area_node()
> >>>> {
> >>>> .....
> >>>>                 if (fatal_signal_pending(current)) {
> >>>>                         area->nr_pages = i;
> >>>>                         goto fail;
> >>>>                 }
> >>>
> >>>
> >>> Ah, that would make sense. Syzkaller can indeed kill processes frequently.
> >>>
> >>> Perhaps we should not print the lengthy allocation failure message
> >>> with all the details in such. Not sure how easy it is to filter out
> >>> such cases.
> >>> I have constant stream of these messages that just make everything
> >>> else lost between them. And they are quite confusing. I've starred at
> >>> the numbers trying to understand why I am short on memory.
> >>
> >>
> >> Seems trivial. What do you think of:
> >>
> >
> > Makes sense. ACK.
> >
> >> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> >> index 0dd80222b20b..0b057628a7ba 100644
> >> --- a/mm/vmalloc.c
> >> +++ b/mm/vmalloc.c
> >> @@ -1683,7 +1683,7 @@ static void *__vmalloc_area_node(struct
> >> vm_struct *area, gfp_t gfp_mask,
> >>
> >>                 if (fatal_signal_pending(current)) {
> >>                         area->nr_pages = i;
> >> -                       goto fail;
> >> +                       goto fail_no_warn;
> >>                 }
> >>
> >>                 if (node == NUMA_NO_NODE)
> >> @@ -1709,6 +1709,7 @@ static void *__vmalloc_area_node(struct
> >> vm_struct *area, gfp_t gfp_mask,
> >>         warn_alloc(gfp_mask, NULL,
> >>                           "vmalloc: allocation failure, allocated %ld
> >> of %ld bytes",
> >>                           (area->nr_pages*PAGE_SIZE), area->size);
> >> +fail_no_warn:
> >>         vfree(area->addr);
> >>         return NULL;
> >>  }
> >>
> >>
> >> ?
> 
> 
> These failing vmalloc's provoked a bunch of bugs in kernel on error
> handling paths. And it was useful to see that there was an allocation
> failure in the same process right before the bug.
> And it was unexpected that I am killing processes that frequently, so
> I would like to see at least some information about this on console.
> So now I have:

Allocation failure should tell us the state of the memory subsystem when
the allocation failed. This failure is due to external condition rather
than the MM subsystem failing so I agree that skipping the warning makes
some sense. The warning will be mostly uninteresting or worse confusing.
If you absolutely need some information then put pr_debug  to the
failing path inside fatal_signal_pending branch.

> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 6cbde310abed..418c80a76b4a 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -3073,6 +3073,11 @@ static inline bool should_suppress_show_mem(void)
>  #if NODES_SHIFT > 8
>         ret = in_interrupt();
>  #endif
> +       /*
> +        * vmalloc() fails when fatal_signal_pending(),
> +        * but that's not because we are out of memory.
> +        */
> +       ret |= fatal_signal_pending(current);
>         return ret;
>  }

This will basically silent all the warnings for OOM victims failing the
allocation. I do think we want that.

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: strange allocation failures
  2017-03-13 10:45           ` Dmitry Vyukov
@ 2017-03-13 10:59             ` Michal Hocko
  0 siblings, 0 replies; 6+ messages in thread
From: Michal Hocko @ 2017-03-13 10:59 UTC (permalink / raw)
  To: Dmitry Vyukov; +Cc: Andrey Ryabinin, Kirill A. Shutemov, kasan-dev, linux-mm

On Mon 13-03-17 11:45:01, Dmitry Vyukov wrote:
> On Mon, Mar 13, 2017 at 11:37 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
[...]
> > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > index 6cbde310abed..418c80a76b4a 100644
> > --- a/mm/page_alloc.c
> > +++ b/mm/page_alloc.c
> > @@ -3073,6 +3073,11 @@ static inline bool should_suppress_show_mem(void)
> >  #if NODES_SHIFT > 8
> >         ret = in_interrupt();
> 
> /\/\/\/\/\/\/\/\
> As a side note, looking at this line.
> Can vmalloc be called from an interrupt? If so, won't we fail all
> vmalloc's in an unlucky interrupt that hit a task with
> fatal_signal_pending?

__get_vm_area_node has a BUG_ON so I do not think this is allowed.
-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

end of thread, other threads:[~2017-03-13 10:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CACT4Y+ZVWUYda9zr74QOmcXzd0S7P714LhzrVu7wRO0oDM0P2w@mail.gmail.com>
     [not found] ` <d849e961-7120-2ba5-1d58-df81d0ae3293@virtuozzo.com>
     [not found]   ` <CACT4Y+Y=Pz6wFN66BGdPkTPJWrnbxCL2GX-R0q5_jr5kwjF+zA@mail.gmail.com>
     [not found]     ` <CACT4Y+bD0S9CY0ahvZ=pOpXqHAkH6P0OTHPTeBi-Pb2Nw6ph4w@mail.gmail.com>
2017-03-13 10:31       ` strange allocation failures Andrey Ryabinin
2017-03-13 10:37         ` Dmitry Vyukov
2017-03-13 10:45           ` Dmitry Vyukov
2017-03-13 10:59             ` Michal Hocko
2017-03-13 10:51           ` Michal Hocko
2017-03-13 10:37         ` Michal Hocko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox