All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21  9:41 Nadav Amit
  2019-08-21 18:57 ` David Hildenbrand
  2019-08-21 18:57 ` David Hildenbrand
  0 siblings, 2 replies; 19+ messages in thread
From: Nadav Amit @ 2019-08-21  9:41 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Jason Wang, virtualization, linux-mm, linux-kernel, Nadav Amit,
	David Hildenbrand

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@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Signed-off-by: Nadav Amit <namit@vmware.com>

---

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);
-- 
2.17.1


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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21  9:41 [PATCH v2] mm/balloon_compaction: Informative allocation warnings Nadav Amit
@ 2019-08-21 18:57 ` David Hildenbrand
  2019-08-21 18:59     ` Nadav Amit
  2019-08-21 18:59   ` Nadav Amit via Virtualization
  2019-08-21 18:57 ` David Hildenbrand
  1 sibling, 2 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 18:57 UTC (permalink / raw)
  To: Nadav Amit, Michael S. Tsirkin
  Cc: Jason Wang, virtualization, linux-mm, linux-kernel

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@redhat.com>
> Cc: Jason Wang <jasowang@redhat.com>
> Signed-off-by: Nadav Amit <namit@vmware.com>
> 
> ---
> 
> 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@redhat.com>

-- 

Thanks,

David / dhildenb

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21  9:41 [PATCH v2] mm/balloon_compaction: Informative allocation warnings Nadav Amit
  2019-08-21 18:57 ` David Hildenbrand
@ 2019-08-21 18:57 ` David Hildenbrand
  1 sibling, 0 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 18:57 UTC (permalink / raw)
  To: Nadav Amit, Michael S. Tsirkin; +Cc: linux-mm, linux-kernel, virtualization

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@redhat.com>
> Cc: Jason Wang <jasowang@redhat.com>
> Signed-off-by: Nadav Amit <namit@vmware.com>
> 
> ---
> 
> 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@redhat.com>

-- 

Thanks,

David / dhildenb

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 18:57 ` David Hildenbrand
@ 2019-08-21 18:59     ` Nadav Amit
  2019-08-21 18:59   ` Nadav Amit via Virtualization
  1 sibling, 0 replies; 19+ messages in thread
From: Nadav Amit @ 2019-08-21 18:59 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>> Cc: Jason Wang <jasowang@redhat.com>
>> Signed-off-by: Nadav Amit <namit@vmware.com>
>> 
>> ---
>> 
>> 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@redhat.com>

Do you have a better suggestion?


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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21 18:59     ` Nadav Amit
  0 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit @ 2019-08-21 18:59 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>> Cc: Jason Wang <jasowang@redhat.com>
>> Signed-off-by: Nadav Amit <namit@vmware.com>
>> 
>> ---
>> 
>> 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@redhat.com>

Do you have a better suggestion?



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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 18:57 ` David Hildenbrand
  2019-08-21 18:59     ` Nadav Amit
@ 2019-08-21 18:59   ` Nadav Amit via Virtualization
  1 sibling, 0 replies; 19+ messages in thread
From: Nadav Amit via Virtualization @ 2019-08-21 18:59 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Linux-MM, virtualization, linux-kernel, Michael S. Tsirkin

> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>> Cc: Jason Wang <jasowang@redhat.com>
>> Signed-off-by: Nadav Amit <namit@vmware.com>
>> 
>> ---
>> 
>> 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@redhat.com>

Do you have a better suggestion?

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 18:59     ` Nadav Amit
@ 2019-08-21 19:06       ` David Hildenbrand
  -1 siblings, 0 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 19:06 UTC (permalink / raw)
  To: Nadav Amit
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

On 21.08.19 20:59, Nadav Amit wrote:
>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>> Cc: Jason Wang <jasowang@redhat.com>
>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>
>>> ---
>>>
>>> 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@redhat.com>
> 
> 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.

-- 

Thanks,

David / dhildenb

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21 19:06       ` David Hildenbrand
  0 siblings, 0 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 19:06 UTC (permalink / raw)
  To: Nadav Amit
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

On 21.08.19 20:59, Nadav Amit wrote:
>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>> Cc: Jason Wang <jasowang@redhat.com>
>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>
>>> ---
>>>
>>> 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@redhat.com>
> 
> 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.

-- 

Thanks,

David / dhildenb


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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 18:59     ` Nadav Amit
  (?)
@ 2019-08-21 19:06     ` David Hildenbrand
  -1 siblings, 0 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 19:06 UTC (permalink / raw)
  To: Nadav Amit; +Cc: Linux-MM, virtualization, linux-kernel, Michael S. Tsirkin

On 21.08.19 20:59, Nadav Amit wrote:
>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>> Cc: Jason Wang <jasowang@redhat.com>
>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>
>>> ---
>>>
>>> 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@redhat.com>
> 
> 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.

-- 

Thanks,

David / dhildenb

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 19:06       ` David Hildenbrand
@ 2019-08-21 19:10         ` Nadav Amit
  -1 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit @ 2019-08-21 19:10 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
> 
> On 21.08.19 20:59, Nadav Amit wrote:
>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>> 
>>>> ---
>>>> 
>>>> 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@redhat.com>
>> 
>> 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?


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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21 19:10         ` Nadav Amit
  0 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit @ 2019-08-21 19:10 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
> 
> On 21.08.19 20:59, Nadav Amit wrote:
>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>> 
>>>> ---
>>>> 
>>>> 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@redhat.com>
>> 
>> 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?



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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 19:06       ` David Hildenbrand
  (?)
@ 2019-08-21 19:10       ` Nadav Amit via Virtualization
  -1 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit via Virtualization @ 2019-08-21 19:10 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Linux-MM, virtualization, linux-kernel, Michael S. Tsirkin

> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
> 
> On 21.08.19 20:59, Nadav Amit wrote:
>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>> 
>>>> ---
>>>> 
>>>> 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@redhat.com>
>> 
>> 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?

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 19:10         ` Nadav Amit
@ 2019-08-21 19:12           ` David Hildenbrand
  -1 siblings, 0 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 19:12 UTC (permalink / raw)
  To: Nadav Amit
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

On 21.08.19 21:10, Nadav Amit wrote:
>> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
>>
>> On 21.08.19 20:59, Nadav Amit wrote:
>>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>>>
>>>>> ---
>>>>>
>>>>> 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@redhat.com>
>>>
>>> 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?
> 

Whoops, I missed that - sorry - usually the warnings scream louder at me :D

Yes, v1 is fine with me!

-- 

Thanks,

David / dhildenb

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21 19:12           ` David Hildenbrand
  0 siblings, 0 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 19:12 UTC (permalink / raw)
  To: Nadav Amit
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

On 21.08.19 21:10, Nadav Amit wrote:
>> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
>>
>> On 21.08.19 20:59, Nadav Amit wrote:
>>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>>>
>>>>> ---
>>>>>
>>>>> 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@redhat.com>
>>>
>>> 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?
> 

Whoops, I missed that - sorry - usually the warnings scream louder at me :D

Yes, v1 is fine with me!

-- 

Thanks,

David / dhildenb


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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 19:10         ` Nadav Amit
  (?)
@ 2019-08-21 19:12         ` David Hildenbrand
  -1 siblings, 0 replies; 19+ messages in thread
From: David Hildenbrand @ 2019-08-21 19:12 UTC (permalink / raw)
  To: Nadav Amit; +Cc: Linux-MM, virtualization, linux-kernel, Michael S. Tsirkin

On 21.08.19 21:10, Nadav Amit wrote:
>> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
>>
>> On 21.08.19 20:59, Nadav Amit wrote:
>>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>>>
>>>>> ---
>>>>>
>>>>> 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@redhat.com>
>>>
>>> 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?
> 

Whoops, I missed that - sorry - usually the warnings scream louder at me :D

Yes, v1 is fine with me!

-- 

Thanks,

David / dhildenb

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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
  2019-08-21 19:12           ` David Hildenbrand
  (?)
@ 2019-08-21 19:19             ` Nadav Amit
  -1 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit @ 2019-08-21 19:19 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

> On Aug 21, 2019, at 12:12 PM, David Hildenbrand <david@redhat.com> wrote:
> 
> On 21.08.19 21:10, Nadav Amit wrote:
>>> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
>>> 
>>> On 21.08.19 20:59, Nadav Amit wrote:
>>>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>>>> 
>>>>>> ---
>>>>>> 
>>>>>> 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@redhat.com>
>>>> 
>>>> 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?
> 
> Whoops, I missed that - sorry - usually the warnings scream louder at me :D
> 
> Yes, v1 is fine with me!

Thanks, I missed this one too. This change should prevent making users
concerned for no good reason.


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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21 19:19             ` Nadav Amit
  0 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit @ 2019-08-21 19:19 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michael S. Tsirkin, Jason Wang, virtualization, Linux-MM, linux-kernel

> On Aug 21, 2019, at 12:12 PM, David Hildenbrand <david@redhat.com> wrote:
> 
> On 21.08.19 21:10, Nadav Amit wrote:
>>> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
>>> 
>>> On 21.08.19 20:59, Nadav Amit wrote:
>>>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>>>> 
>>>>>> ---
>>>>>> 
>>>>>> 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@redhat.com>
>>>> 
>>>> 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?
> 
> Whoops, I missed that - sorry - usually the warnings scream louder at me :D
> 
> Yes, v1 is fine with me!

Thanks, I missed this one too. This change should prevent making users
concerned for no good reason.



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

* Re: [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21 19:19             ` Nadav Amit
  0 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit via Virtualization @ 2019-08-21 19:19 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Linux-MM, virtualization, linux-kernel, Michael S. Tsirkin

> On Aug 21, 2019, at 12:12 PM, David Hildenbrand <david@redhat.com> wrote:
> 
> On 21.08.19 21:10, Nadav Amit wrote:
>>> On Aug 21, 2019, at 12:06 PM, David Hildenbrand <david@redhat.com> wrote:
>>> 
>>> On 21.08.19 20:59, Nadav Amit wrote:
>>>>> On Aug 21, 2019, at 11:57 AM, David Hildenbrand <david@redhat.com> 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@redhat.com>
>>>>>> Cc: Jason Wang <jasowang@redhat.com>
>>>>>> Signed-off-by: Nadav Amit <namit@vmware.com>
>>>>>> 
>>>>>> ---
>>>>>> 
>>>>>> 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@redhat.com>
>>>> 
>>>> 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?
> 
> Whoops, I missed that - sorry - usually the warnings scream louder at me :D
> 
> Yes, v1 is fine with me!

Thanks, I missed this one too. This change should prevent making users
concerned for no good reason.

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

* [PATCH v2] mm/balloon_compaction: Informative allocation warnings
@ 2019-08-21  9:41 Nadav Amit via Virtualization
  0 siblings, 0 replies; 19+ messages in thread
From: Nadav Amit via Virtualization @ 2019-08-21  9:41 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: linux-kernel, virtualization, linux-mm, Nadav Amit

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@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Signed-off-by: Nadav Amit <namit@vmware.com>

---

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);
-- 
2.17.1

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

end of thread, other threads:[~2019-08-21 19:19 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-21  9:41 [PATCH v2] mm/balloon_compaction: Informative allocation warnings Nadav Amit
2019-08-21 18:57 ` David Hildenbrand
2019-08-21 18:59   ` Nadav Amit
2019-08-21 18:59     ` Nadav Amit
2019-08-21 19:06     ` David Hildenbrand
2019-08-21 19:06     ` David Hildenbrand
2019-08-21 19:06       ` David Hildenbrand
2019-08-21 19:10       ` Nadav Amit via Virtualization
2019-08-21 19:10       ` Nadav Amit
2019-08-21 19:10         ` Nadav Amit
2019-08-21 19:12         ` David Hildenbrand
2019-08-21 19:12         ` David Hildenbrand
2019-08-21 19:12           ` David Hildenbrand
2019-08-21 19:19           ` Nadav Amit
2019-08-21 19:19             ` Nadav Amit via Virtualization
2019-08-21 19:19             ` Nadav Amit
2019-08-21 18:59   ` Nadav Amit via Virtualization
2019-08-21 18:57 ` David Hildenbrand
  -- strict thread matches above, loose matches on Subject: below --
2019-08-21  9:41 Nadav Amit via Virtualization

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.