> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@xxxxxxxxxx> wrote: > > On 21.08.19 20:59, Nadav Amit wrote: >>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@xxxxxxxxxx> wrote: >>> >>> On 21.08.19 11:41, Nadav Amit wrote: >>>> There is no reason to print generic warnings when balloon memory >>>> allocation fails, as failures 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. >>>> >>>> Since such warnings can still be useful to indicate that the balloon is >>>> over-inflated, print more informative and less frightening warning if >>>> allocation fails instead. >>>> >>>> Cc: David Hildenbrand <david@xxxxxxxxxx> >>>> Cc: Jason Wang <jasowang@xxxxxxxxxx> >>>> Signed-off-by: Nadav Amit <namit@xxxxxxxxxx> >>>> >>>> --- >>>> >>>> v1->v2: >>>> * Print informative warnings instead suppressing [David] >>>> --- >>>> mm/balloon_compaction.c | 7 ++++++- >>>> 1 file changed, 6 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c >>>> index 798275a51887..0c1d1f7689f0 100644 >>>> --- a/mm/balloon_compaction.c >>>> +++ b/mm/balloon_compaction.c >>>> @@ -124,7 +124,12 @@ 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); >>>> + >>>> + if (!page) >>>> + pr_warn_ratelimited("memory balloon: memory allocation failed"); >>>> + >>>> return page; >>>> } >>>> EXPORT_SYMBOL_GPL(balloon_page_alloc); >>> >>> Not sure if "memory balloon" is the right wording. hmmm. >>> >>> Acked-by: David Hildenbrand <david@xxxxxxxxxx> >> >> Do you have a better suggestion? > > Not really - that's why I ack'ed :) > > However, thinking about it - what about moving the check + print to the > caller and then using dev_warn... or sth. like simple "virtio_balloon: > ..." ? You can then drop the warning for vmware balloon if you feel like > not needing it. Actually, there is already a warning that is printed by the virtue_balloon in fill_balloon(): struct page *page = balloon_page_alloc(); if (!page) { dev_info_ratelimited(&vb->vdev->dev, "Out of puff! Can't get %u pages\n", VIRTIO_BALLOON_PAGES_PER_PAGE); /* Sleep for at least 1/5 of a second before retry. */ msleep(200); break; } So are you ok with going back to v1?