2019-08-20 16:38:39

by Nadav Amit

[permalink] [raw]
Subject: [PATCH] mm/balloon_compaction: suppress allocation warnings

There is no reason to print warnings when balloon page allocation fails,
as they are expected and can be handled gracefully. Since VMware
balloon now uses balloon-compaction infrastructure, and suppressed these
warnings before, it is also beneficial to suppress these warnings to
keep the same behavior that the balloon had before.

Cc: Jason Wang <[email protected]>
Signed-off-by: Nadav Amit <[email protected]>
---
mm/balloon_compaction.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c
index 798275a51887..26de020aae7b 100644
--- a/mm/balloon_compaction.c
+++ b/mm/balloon_compaction.c
@@ -124,7 +124,8 @@ EXPORT_SYMBOL_GPL(balloon_page_list_dequeue);
struct page *balloon_page_alloc(void)
{
struct page *page = alloc_page(balloon_mapping_gfp_mask() |
- __GFP_NOMEMALLOC | __GFP_NORETRY);
+ __GFP_NOMEMALLOC | __GFP_NORETRY |
+ __GFP_NOWARN);
return page;
}
EXPORT_SYMBOL_GPL(balloon_page_alloc);
--
2.19.1


2019-08-21 16:08:38

by David Hildenbrand

[permalink] [raw]
Subject: Re: [PATCH] mm/balloon_compaction: suppress allocation warnings

On 20.08.19 11:16, Nadav Amit wrote:
> There is no reason to print warnings when balloon page allocation fails,
> as they are expected and can be handled gracefully. Since VMware
> balloon now uses balloon-compaction infrastructure, and suppressed these
> warnings before, it is also beneficial to suppress these warnings to
> keep the same behavior that the balloon had before.

I am not sure if that's a good idea. The allocation warnings are usually
the only trace of "the user/admin did something bad because he/she tried
to inflate the balloon to an unsafe value". Believe me, I processed a
couple of such bugreports related to virtio-balloon and the warning were
very helpful for that.

>
> Cc: Jason Wang <[email protected]>
> Signed-off-by: Nadav Amit <[email protected]>
> ---
> mm/balloon_compaction.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c
> index 798275a51887..26de020aae7b 100644
> --- a/mm/balloon_compaction.c
> +++ b/mm/balloon_compaction.c
> @@ -124,7 +124,8 @@ EXPORT_SYMBOL_GPL(balloon_page_list_dequeue);
> struct page *balloon_page_alloc(void)
> {
> struct page *page = alloc_page(balloon_mapping_gfp_mask() |
> - __GFP_NOMEMALLOC | __GFP_NORETRY);
> + __GFP_NOMEMALLOC | __GFP_NORETRY |
> + __GFP_NOWARN);
> return page;
> }
> EXPORT_SYMBOL_GPL(balloon_page_alloc);
>


--

Thanks,

David / dhildenb

2019-08-21 16:25:57

by Nadav Amit

[permalink] [raw]
Subject: Re: [PATCH] mm/balloon_compaction: suppress allocation warnings

> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <[email protected]> wrote:
>
> On 20.08.19 11:16, Nadav Amit wrote:
>> There is no reason to print warnings when balloon page allocation fails,
>> as they are expected and can be handled gracefully. Since VMware
>> balloon now uses balloon-compaction infrastructure, and suppressed these
>> warnings before, it is also beneficial to suppress these warnings to
>> keep the same behavior that the balloon had before.
>
> I am not sure if that's a good idea. The allocation warnings are usually
> the only trace of "the user/admin did something bad because he/she tried
> to inflate the balloon to an unsafe value". Believe me, I processed a
> couple of such bugreports related to virtio-balloon and the warning were
> very helpful for that.

Ok, so a message is needed, but does it have to be a generic frightening
warning?

How about using __GFP_NOWARN, and if allocation do something like:

pr_warn(“Balloon memory allocation failed”);

Or even something more informative? This would surely be less intimidating
for common users.

2019-08-21 16:31:02

by David Hildenbrand

[permalink] [raw]
Subject: Re: [PATCH] mm/balloon_compaction: suppress allocation warnings

On 21.08.19 18:23, Nadav Amit wrote:
>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <[email protected]> wrote:
>>
>> On 20.08.19 11:16, Nadav Amit wrote:
>>> There is no reason to print warnings when balloon page allocation fails,
>>> as they are expected and can be handled gracefully. Since VMware
>>> balloon now uses balloon-compaction infrastructure, and suppressed these
>>> warnings before, it is also beneficial to suppress these warnings to
>>> keep the same behavior that the balloon had before.
>>
>> I am not sure if that's a good idea. The allocation warnings are usually
>> the only trace of "the user/admin did something bad because he/she tried
>> to inflate the balloon to an unsafe value". Believe me, I processed a
>> couple of such bugreports related to virtio-balloon and the warning were
>> very helpful for that.
>
> Ok, so a message is needed, but does it have to be a generic frightening
> warning?
>
> How about using __GFP_NOWARN, and if allocation do something like:
>
> pr_warn(“Balloon memory allocation failed”);
>
> Or even something more informative? This would surely be less intimidating
> for common users.
>

ratelimit would make sense :)

And yes, this would certainly be nicer.

--

Thanks,

David / dhildenb

2019-08-21 16:37:41

by Nadav Amit

[permalink] [raw]
Subject: Re: [PATCH] mm/balloon_compaction: suppress allocation warnings

> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <[email protected]> wrote:
>
> On 21.08.19 18:23, Nadav Amit wrote:
>>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <[email protected]> wrote:
>>>
>>> On 20.08.19 11:16, Nadav Amit wrote:
>>>> There is no reason to print warnings when balloon page allocation fails,
>>>> as they are expected and can be handled gracefully. Since VMware
>>>> balloon now uses balloon-compaction infrastructure, and suppressed these
>>>> warnings before, it is also beneficial to suppress these warnings to
>>>> keep the same behavior that the balloon had before.
>>>
>>> I am not sure if that's a good idea. The allocation warnings are usually
>>> the only trace of "the user/admin did something bad because he/she tried
>>> to inflate the balloon to an unsafe value". Believe me, I processed a
>>> couple of such bugreports related to virtio-balloon and the warning were
>>> very helpful for that.
>>
>> Ok, so a message is needed, but does it have to be a generic frightening
>> warning?
>>
>> How about using __GFP_NOWARN, and if allocation do something like:
>>
>> pr_warn(“Balloon memory allocation failed”);
>>
>> Or even something more informative? This would surely be less intimidating
>> for common users.
>
> ratelimit would make sense :)
>
> And yes, this would certainly be nicer.

Thanks. I will post v2 of the patch.

2019-08-21 19:15:07

by David Hildenbrand

[permalink] [raw]
Subject: Re: [PATCH] mm/balloon_compaction: suppress allocation warnings

On 21.08.19 18:34, Nadav Amit wrote:
>> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <[email protected]> wrote:
>>
>> On 21.08.19 18:23, Nadav Amit wrote:
>>>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <[email protected]> wrote:
>>>>
>>>> On 20.08.19 11:16, Nadav Amit wrote:
>>>>> There is no reason to print warnings when balloon page allocation fails,
>>>>> as they are expected and can be handled gracefully. Since VMware
>>>>> balloon now uses balloon-compaction infrastructure, and suppressed these
>>>>> warnings before, it is also beneficial to suppress these warnings to
>>>>> keep the same behavior that the balloon had before.
>>>>
>>>> I am not sure if that's a good idea. The allocation warnings are usually
>>>> the only trace of "the user/admin did something bad because he/she tried
>>>> to inflate the balloon to an unsafe value". Believe me, I processed a
>>>> couple of such bugreports related to virtio-balloon and the warning were
>>>> very helpful for that.
>>>
>>> Ok, so a message is needed, but does it have to be a generic frightening
>>> warning?
>>>
>>> How about using __GFP_NOWARN, and if allocation do something like:
>>>
>>> pr_warn(“Balloon memory allocation failed”);
>>>
>>> Or even something more informative? This would surely be less intimidating
>>> for common users.
>>
>> ratelimit would make sense :)
>>
>> And yes, this would certainly be nicer.
>
> Thanks. I will post v2 of the patch.
>

As discussed in v2, we already print a warning in virtio-balloon, so I
am fine with this patch.

Reviewed-by: David Hildenbrand <[email protected]>

--

Thanks,

David / dhildenb

2019-08-21 19:47:09

by Nadav Amit

[permalink] [raw]
Subject: Re: [PATCH] mm/balloon_compaction: suppress allocation warnings

> On Aug 21, 2019, at 12:13 PM, David Hildenbrand <[email protected]> wrote:
>
> On 21.08.19 18:34, Nadav Amit wrote:
>>> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <[email protected]> wrote:
>>>
>>> On 21.08.19 18:23, Nadav Amit wrote:
>>>>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <[email protected]> wrote:
>>>>>
>>>>> On 20.08.19 11:16, Nadav Amit wrote:
>>>>>> There is no reason to print warnings when balloon page allocation fails,
>>>>>> as they are expected and can be handled gracefully. Since VMware
>>>>>> balloon now uses balloon-compaction infrastructure, and suppressed these
>>>>>> warnings before, it is also beneficial to suppress these warnings to
>>>>>> keep the same behavior that the balloon had before.
>>>>>
>>>>> I am not sure if that's a good idea. The allocation warnings are usually
>>>>> the only trace of "the user/admin did something bad because he/she tried
>>>>> to inflate the balloon to an unsafe value". Believe me, I processed a
>>>>> couple of such bugreports related to virtio-balloon and the warning were
>>>>> very helpful for that.
>>>>
>>>> Ok, so a message is needed, but does it have to be a generic frightening
>>>> warning?
>>>>
>>>> How about using __GFP_NOWARN, and if allocation do something like:
>>>>
>>>> pr_warn(“Balloon memory allocation failed”);
>>>>
>>>> Or even something more informative? This would surely be less intimidating
>>>> for common users.
>>>
>>> ratelimit would make sense :)
>>>
>>> And yes, this would certainly be nicer.
>>
>> Thanks. I will post v2 of the patch.
>
> As discussed in v2, we already print a warning in virtio-balloon, so I
> am fine with this patch.
>
> Reviewed-by: David Hildenbrand <[email protected]>

Michael,

If it is possible to get it to 5.3, to avoid behavioral change for VMware
balloon users, it would be great.

Thanks,
Nadav

2019-09-04 10:38:25

by Michael S. Tsirkin

[permalink] [raw]
Subject: Re: [PATCH] mm/balloon_compaction: suppress allocation warnings

On Wed, Aug 21, 2019 at 07:44:33PM +0000, Nadav Amit wrote:
> > On Aug 21, 2019, at 12:13 PM, David Hildenbrand <[email protected]> wrote:
> >
> > On 21.08.19 18:34, Nadav Amit wrote:
> >>> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <[email protected]> wrote:
> >>>
> >>> On 21.08.19 18:23, Nadav Amit wrote:
> >>>>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <[email protected]> wrote:
> >>>>>
> >>>>> On 20.08.19 11:16, Nadav Amit wrote:
> >>>>>> There is no reason to print warnings when balloon page allocation fails,
> >>>>>> as they are expected and can be handled gracefully. Since VMware
> >>>>>> balloon now uses balloon-compaction infrastructure, and suppressed these
> >>>>>> warnings before, it is also beneficial to suppress these warnings to
> >>>>>> keep the same behavior that the balloon had before.
> >>>>>
> >>>>> I am not sure if that's a good idea. The allocation warnings are usually
> >>>>> the only trace of "the user/admin did something bad because he/she tried
> >>>>> to inflate the balloon to an unsafe value". Believe me, I processed a
> >>>>> couple of such bugreports related to virtio-balloon and the warning were
> >>>>> very helpful for that.
> >>>>
> >>>> Ok, so a message is needed, but does it have to be a generic frightening
> >>>> warning?
> >>>>
> >>>> How about using __GFP_NOWARN, and if allocation do something like:
> >>>>
> >>>> pr_warn(“Balloon memory allocation failed”);
> >>>>
> >>>> Or even something more informative? This would surely be less intimidating
> >>>> for common users.
> >>>
> >>> ratelimit would make sense :)
> >>>
> >>> And yes, this would certainly be nicer.
> >>
> >> Thanks. I will post v2 of the patch.
> >
> > As discussed in v2, we already print a warning in virtio-balloon, so I
> > am fine with this patch.
> >
> > Reviewed-by: David Hildenbrand <[email protected]>
>
> Michael,
>
> If it is possible to get it to 5.3, to avoid behavioral change for VMware
> balloon users, it would be great.
>
> Thanks,
> Nadav

Just back from vacation, I'll try.