Message ID | 20190820091646.29642-1-namit@vmware.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm/balloon_compaction: suppress allocation warnings | expand |
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 <jasowang@redhat.com> > Signed-off-by: Nadav Amit <namit@vmware.com> > --- > 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); >
> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <david@redhat.com> 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.
On 21.08.19 18:23, Nadav Amit wrote: >> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <david@redhat.com> 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.
> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <david@redhat.com> wrote: > > On 21.08.19 18:23, Nadav Amit wrote: >>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <david@redhat.com> 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.
On 21.08.19 18:34, Nadav Amit wrote: >> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <david@redhat.com> wrote: >> >> On 21.08.19 18:23, Nadav Amit wrote: >>>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <david@redhat.com> 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 <david@redhat.com>
> On Aug 21, 2019, at 12:13 PM, David Hildenbrand <david@redhat.com> wrote: > > On 21.08.19 18:34, Nadav Amit wrote: >>> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <david@redhat.com> wrote: >>> >>> On 21.08.19 18:23, Nadav Amit wrote: >>>>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <david@redhat.com> 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 <david@redhat.com> 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
On Wed, Aug 21, 2019 at 07:44:33PM +0000, Nadav Amit wrote: > > On Aug 21, 2019, at 12:13 PM, David Hildenbrand <david@redhat.com> wrote: > > > > On 21.08.19 18:34, Nadav Amit wrote: > >>> On Aug 21, 2019, at 9:29 AM, David Hildenbrand <david@redhat.com> wrote: > >>> > >>> On 21.08.19 18:23, Nadav Amit wrote: > >>>>> On Aug 21, 2019, at 9:05 AM, David Hildenbrand <david@redhat.com> 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 <david@redhat.com> > > 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.
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);
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 <jasowang@redhat.com> Signed-off-by: Nadav Amit <namit@vmware.com> --- mm/balloon_compaction.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)