qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM
@ 2019-06-20 11:41 Igor Mammedov
  2019-06-20 11:52 ` Daniel P. Berrangé
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Igor Mammedov @ 2019-06-20 11:41 UTC (permalink / raw)
  To: qemu-devel; +Cc: libvir-list, ehabkost

Fallback might affect guest or worse whole host performance
or functionality if backing file were used to share guest RAM
with another process.

Patch deprecates fallback so that we could remove it in future
and ensure that QEMU will provide expected behavior and fail if
it can't use user provided backing file.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
PS:
Patch is written on top of
  [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
to avoid conflicts in qemu-deprecated.texi

 numa.c               | 4 ++--
 qemu-deprecated.texi | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/numa.c b/numa.c
index 91a29138a2..53d67b8ad9 100644
--- a/numa.c
+++ b/numa.c
@@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
             if (mem_prealloc) {
                 exit(1);
             }
-            error_report("falling back to regular RAM allocation.");
-
+            warn_report("falling back to regular RAM allocation. "
+                        "Fallback to RAM allocation is deprecated.");
             /* Legacy behavior: if allocation failed, fall back to
              * regular RAM allocation.
              */
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index 2fe9b72121..2193705644 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
 Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
 it's supported by used machine type) to define mapping explictly instead.
 
+@subsection -mem-path fallback to RAM (since 4.1)
+Currently if system memory allocation from file pointed by @option{mem-path}
+fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
+in unpredictable behavior since provided backing file wasn't used. In future
+QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
+configuration or explicitly use -m without -mem-path if system memory allocated
+from anonymous RAM suits usecase.
+
 @section QEMU Machine Protocol (QMP) commands
 
 @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)
-- 
2.18.1



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

* Re: [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-20 11:41 [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM Igor Mammedov
@ 2019-06-20 11:52 ` Daniel P. Berrangé
  2019-06-20 13:34 ` Dr. David Alan Gilbert
  2019-06-24  8:17 ` Markus Armbruster
  2 siblings, 0 replies; 9+ messages in thread
From: Daniel P. Berrangé @ 2019-06-20 11:52 UTC (permalink / raw)
  To: Igor Mammedov; +Cc: libvir-list, qemu-devel, ehabkost

On Thu, Jun 20, 2019 at 07:41:16AM -0400, Igor Mammedov wrote:
> Fallback might affect guest or worse whole host performance
> or functionality if backing file were used to share guest RAM
> with another process.
> 
> Patch deprecates fallback so that we could remove it in future
> and ensure that QEMU will provide expected behavior and fail if
> it can't use user provided backing file.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> PS:
> Patch is written on top of
>   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
> to avoid conflicts in qemu-deprecated.texi
> 
>  numa.c               | 4 ++--
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 10 insertions(+), 2 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


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

* Re: [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-20 11:41 [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM Igor Mammedov
  2019-06-20 11:52 ` Daniel P. Berrangé
@ 2019-06-20 13:34 ` Dr. David Alan Gilbert
  2019-06-24  8:17 ` Markus Armbruster
  2 siblings, 0 replies; 9+ messages in thread
From: Dr. David Alan Gilbert @ 2019-06-20 13:34 UTC (permalink / raw)
  To: Igor Mammedov; +Cc: libvir-list, qemu-devel, ehabkost

* Igor Mammedov (imammedo@redhat.com) wrote:
> Fallback might affect guest or worse whole host performance
> or functionality if backing file were used to share guest RAM
> with another process.
> 
> Patch deprecates fallback so that we could remove it in future
> and ensure that QEMU will provide expected behavior and fail if
> it can't use user provided backing file.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>

Ah yes that's useful because it's a mess for postcopy.



Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
> PS:
> Patch is written on top of
>   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
> to avoid conflicts in qemu-deprecated.texi
> 
>  numa.c               | 4 ++--
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/numa.c b/numa.c
> index 91a29138a2..53d67b8ad9 100644
> --- a/numa.c
> +++ b/numa.c
> @@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
>              if (mem_prealloc) {
>                  exit(1);
>              }
> -            error_report("falling back to regular RAM allocation.");
> -
> +            warn_report("falling back to regular RAM allocation. "
> +                        "Fallback to RAM allocation is deprecated.");
>              /* Legacy behavior: if allocation failed, fall back to
>               * regular RAM allocation.
>               */
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 2fe9b72121..2193705644 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
>  Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
>  it's supported by used machine type) to define mapping explictly instead.
>  
> +@subsection -mem-path fallback to RAM (since 4.1)
> +Currently if system memory allocation from file pointed by @option{mem-path}
> +fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
> +in unpredictable behavior since provided backing file wasn't used. In future
> +QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
> +configuration or explicitly use -m without -mem-path if system memory allocated
> +from anonymous RAM suits usecase.
> +
>  @section QEMU Machine Protocol (QMP) commands
>  
>  @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)
> -- 
> 2.18.1
> 
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


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

* Re: [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-20 11:41 [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM Igor Mammedov
  2019-06-20 11:52 ` Daniel P. Berrangé
  2019-06-20 13:34 ` Dr. David Alan Gilbert
@ 2019-06-24  8:17 ` Markus Armbruster
  2019-06-24  9:36   ` [Qemu-devel] [libvirt] " Daniel P. Berrangé
  2019-06-24  9:58   ` [Qemu-devel] " Igor Mammedov
  2 siblings, 2 replies; 9+ messages in thread
From: Markus Armbruster @ 2019-06-24  8:17 UTC (permalink / raw)
  To: Igor Mammedov; +Cc: libvir-list, qemu-devel, ehabkost

Igor Mammedov <imammedo@redhat.com> writes:

> Fallback might affect guest or worse whole host performance
> or functionality if backing file were used to share guest RAM
> with another process.
>
> Patch deprecates fallback so that we could remove it in future
> and ensure that QEMU will provide expected behavior and fail if
> it can't use user provided backing file.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> PS:
> Patch is written on top of
>   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
> to avoid conflicts in qemu-deprecated.texi
>
>  numa.c               | 4 ++--
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/numa.c b/numa.c
> index 91a29138a2..53d67b8ad9 100644
> --- a/numa.c
> +++ b/numa.c
> @@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
>              if (mem_prealloc) {
>                  exit(1);
>              }
> -            error_report("falling back to regular RAM allocation.");
> -
> +            warn_report("falling back to regular RAM allocation. "
> +                        "Fallback to RAM allocation is deprecated.");

Can we give the user clues on how to avoid the deprecated fallback?

Warning message nitpick: the message should be a single phrase, with no
newline or trailing punctuation.  Suggest something like

               warn_report("falling back to regular RAM allocation");
               error_printf("This is deprecated.  <Advice on what\n"
                            "to do goes here>\n");

>              /* Legacy behavior: if allocation failed, fall back to
>               * regular RAM allocation.
>               */
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 2fe9b72121..2193705644 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
>  Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
>  it's supported by used machine type) to define mapping explictly instead.
>  
> +@subsection -mem-path fallback to RAM (since 4.1)
> +Currently if system memory allocation from file pointed by @option{mem-path}
> +fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
> +in unpredictable behavior since provided backing file wasn't used.


Noch such verb "to fallback", obvious fix "QEMU falls back to"

Suggest "RAM, which might".

Better: "since the backing file specified by the user is ignored".

>                                                                     In future
> +QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
> +configuration or explicitly use -m without -mem-path if system memory allocated
> +from anonymous RAM suits usecase.

What's "system memory allocation"?

Perhaps: "In the future, QEMU will not fall back, but fail instead.
Adjust either the host configuration [FIXME how?] or the QEMU
configuration [FIXME how?]."

> +
>  @section QEMU Machine Protocol (QMP) commands
>  
>  @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)


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

* Re: [Qemu-devel] [libvirt] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-24  8:17 ` Markus Armbruster
@ 2019-06-24  9:36   ` Daniel P. Berrangé
  2019-06-24 10:50     ` Igor Mammedov
  2019-06-24  9:58   ` [Qemu-devel] " Igor Mammedov
  1 sibling, 1 reply; 9+ messages in thread
From: Daniel P. Berrangé @ 2019-06-24  9:36 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: libvir-list, Igor Mammedov, qemu-devel, ehabkost

On Mon, Jun 24, 2019 at 10:17:33AM +0200, Markus Armbruster wrote:
> Igor Mammedov <imammedo@redhat.com> writes:
> 
> > Fallback might affect guest or worse whole host performance
> > or functionality if backing file were used to share guest RAM
> > with another process.
> >
> > Patch deprecates fallback so that we could remove it in future
> > and ensure that QEMU will provide expected behavior and fail if
> > it can't use user provided backing file.
> >
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > PS:
> > Patch is written on top of
> >   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
> > to avoid conflicts in qemu-deprecated.texi
> >
> >  numa.c               | 4 ++--
> >  qemu-deprecated.texi | 8 ++++++++
> >  2 files changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/numa.c b/numa.c
> > index 91a29138a2..53d67b8ad9 100644
> > --- a/numa.c
> > +++ b/numa.c
> > @@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
> >              if (mem_prealloc) {
> >                  exit(1);
> >              }
> > -            error_report("falling back to regular RAM allocation.");
> > -
> > +            warn_report("falling back to regular RAM allocation. "
> > +                        "Fallback to RAM allocation is deprecated.");
> 
> Can we give the user clues on how to avoid the deprecated fallback?

There's nothing a user can do aside from ensuring they have sufficient
free memory before launching QEMU to satisfy the huge pag request.

Probably just needs changing to do.

    "This is deprecated, future QEMU releases will exit when
     huge pages cannot be allocated"

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


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

* Re: [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-24  8:17 ` Markus Armbruster
  2019-06-24  9:36   ` [Qemu-devel] [libvirt] " Daniel P. Berrangé
@ 2019-06-24  9:58   ` Igor Mammedov
  2019-06-24 14:01     ` Markus Armbruster
  1 sibling, 1 reply; 9+ messages in thread
From: Igor Mammedov @ 2019-06-24  9:58 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: libvir-list, qemu-devel, ehabkost

On Mon, 24 Jun 2019 10:17:33 +0200
Markus Armbruster <armbru@redhat.com> wrote:

> Igor Mammedov <imammedo@redhat.com> writes:
> 
> > Fallback might affect guest or worse whole host performance
> > or functionality if backing file were used to share guest RAM
> > with another process.
> >
> > Patch deprecates fallback so that we could remove it in future
> > and ensure that QEMU will provide expected behavior and fail if
> > it can't use user provided backing file.
> >
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > PS:
> > Patch is written on top of
> >   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
> > to avoid conflicts in qemu-deprecated.texi
> >
> >  numa.c               | 4 ++--
> >  qemu-deprecated.texi | 8 ++++++++
> >  2 files changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/numa.c b/numa.c
> > index 91a29138a2..53d67b8ad9 100644
> > --- a/numa.c
> > +++ b/numa.c
> > @@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
> >              if (mem_prealloc) {
> >                  exit(1);
> >              }
> > -            error_report("falling back to regular RAM allocation.");
> > -
> > +            warn_report("falling back to regular RAM allocation. "
> > +                        "Fallback to RAM allocation is deprecated.");  
> 
> Can we give the user clues on how to avoid the deprecated fallback?

I've intentionally left it out for a lack of clear enough advise.
Something like:
  "Make sure that host has resources to map file pointed by -mem-path"
would be pretty useless.
I think describing how host should be configured in various ways
depending on type of backing storage is well out of scope of any
QEMU documentation. But if you have an idea to what to put there
(or what to put in deprecation doc and refer to from here),
I'll add it on respin.
 
> Warning message nitpick: the message should be a single phrase, with no
> newline or trailing punctuation.  Suggest something like
> 
>                warn_report("falling back to regular RAM allocation");
>                error_printf("This is deprecated.  <Advice on what\n"
>                             "to do goes here>\n");
> 
> >              /* Legacy behavior: if allocation failed, fall back to
> >               * regular RAM allocation.
> >               */
> > diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> > index 2fe9b72121..2193705644 100644
> > --- a/qemu-deprecated.texi
> > +++ b/qemu-deprecated.texi
> > @@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
> >  Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
> >  it's supported by used machine type) to define mapping explictly instead.
> >  
> > +@subsection -mem-path fallback to RAM (since 4.1)
> > +Currently if system memory allocation from file pointed by @option{mem-path}
> > +fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
> > +in unpredictable behavior since provided backing file wasn't used.  
> 
> 
> Noch such verb "to fallback", obvious fix "QEMU falls back to"
> 
> Suggest "RAM, which might".
> 
> Better: "since the backing file specified by the user is ignored".
> 
> >                                                                     In future
> > +QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
> > +configuration or explicitly use -m without -mem-path if system memory allocated
> > +from anonymous RAM suits usecase.  
> 
> What's "system memory allocation"?
Using man page language, would be
 'guest startup RAM size'
acceptable?


> Perhaps: "In the future, QEMU will not fall back, but fail instead.
> Adjust either the host configuration [FIXME how?] or the QEMU
> configuration [FIXME how?]."

Maybe
"
 In the future, QEMU will not fall back, but fail instead.
 Adjust either the QEMU configuration by removing @option{-mem-path} so
 QEMU will use only anonymous or host configuration to make sure that
 there are sufficient resources on backing storage pointed by -mem-path
 to allocate amount specified by @option{-m}.
"
 
> > +
> >  @section QEMU Machine Protocol (QMP) commands
> >  
> >  @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)  
> 



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

* Re: [Qemu-devel] [libvirt] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-24  9:36   ` [Qemu-devel] [libvirt] " Daniel P. Berrangé
@ 2019-06-24 10:50     ` Igor Mammedov
  0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2019-06-24 10:50 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: libvir-list, Markus Armbruster, ehabkost, qemu-devel

On Mon, 24 Jun 2019 10:36:55 +0100
Daniel P. Berrangé <berrange@redhat.com> wrote:

> On Mon, Jun 24, 2019 at 10:17:33AM +0200, Markus Armbruster wrote:
> > Igor Mammedov <imammedo@redhat.com> writes:
> >   
> > > Fallback might affect guest or worse whole host performance
> > > or functionality if backing file were used to share guest RAM
> > > with another process.
> > >
> > > Patch deprecates fallback so that we could remove it in future
> > > and ensure that QEMU will provide expected behavior and fail if
> > > it can't use user provided backing file.
> > >
> > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > > ---
> > > PS:
> > > Patch is written on top of
> > >   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
> > > to avoid conflicts in qemu-deprecated.texi
> > >
> > >  numa.c               | 4 ++--
> > >  qemu-deprecated.texi | 8 ++++++++
> > >  2 files changed, 10 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/numa.c b/numa.c
> > > index 91a29138a2..53d67b8ad9 100644
> > > --- a/numa.c
> > > +++ b/numa.c
> > > @@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
> > >              if (mem_prealloc) {
> > >                  exit(1);
> > >              }
> > > -            error_report("falling back to regular RAM allocation.");
> > > -
> > > +            warn_report("falling back to regular RAM allocation. "
> > > +                        "Fallback to RAM allocation is deprecated.");  
> > 
> > Can we give the user clues on how to avoid the deprecated fallback?  
> 
> There's nothing a user can do aside from ensuring they have sufficient
> free memory before launching QEMU to satisfy the huge pag request.
> 
> Probably just needs changing to do.
> 
>     "This is deprecated, future QEMU releases will exit when
>      huge pages cannot be allocated"

Also it could be that users might use other than hugepages backing
storage, that's why I completely left concrete advice out from
suggestion.

User should know what he/she is doing when providing mem-path,
if user supplies mis-configured path QEMU will print error
from memory-backend-file if/when allocation fails.


> Regards,
> Daniel



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

* Re: [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-24  9:58   ` [Qemu-devel] " Igor Mammedov
@ 2019-06-24 14:01     ` Markus Armbruster
  2019-06-25 11:32       ` Igor Mammedov
  0 siblings, 1 reply; 9+ messages in thread
From: Markus Armbruster @ 2019-06-24 14:01 UTC (permalink / raw)
  To: Igor Mammedov; +Cc: libvir-list, qemu-devel, ehabkost

Igor Mammedov <imammedo@redhat.com> writes:

> On Mon, 24 Jun 2019 10:17:33 +0200
> Markus Armbruster <armbru@redhat.com> wrote:
>
>> Igor Mammedov <imammedo@redhat.com> writes:
>> 
>> > Fallback might affect guest or worse whole host performance
>> > or functionality if backing file were used to share guest RAM
>> > with another process.
>> >
>> > Patch deprecates fallback so that we could remove it in future
>> > and ensure that QEMU will provide expected behavior and fail if
>> > it can't use user provided backing file.
>> >
>> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
>> > ---
>> > PS:
>> > Patch is written on top of
>> >   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
>> > to avoid conflicts in qemu-deprecated.texi
>> >
>> >  numa.c               | 4 ++--
>> >  qemu-deprecated.texi | 8 ++++++++
>> >  2 files changed, 10 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/numa.c b/numa.c
>> > index 91a29138a2..53d67b8ad9 100644
>> > --- a/numa.c
>> > +++ b/numa.c
>> > @@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
>> >              if (mem_prealloc) {
>> >                  exit(1);
>> >              }
>> > -            error_report("falling back to regular RAM allocation.");
>> > -
>> > +            warn_report("falling back to regular RAM allocation. "
>> > +                        "Fallback to RAM allocation is deprecated.");  
>> 
>> Can we give the user clues on how to avoid the deprecated fallback?
>
> I've intentionally left it out for a lack of clear enough advise.
> Something like:
>   "Make sure that host has resources to map file pointed by -mem-path"
> would be pretty useless.

I see.

> I think describing how host should be configured in various ways
> depending on type of backing storage is well out of scope of any
> QEMU documentation. But if you have an idea to what to put there
> (or what to put in deprecation doc and refer to from here),
> I'll add it on respin.
>
>> Warning message nitpick: the message should be a single phrase, with no
>> newline or trailing punctuation.  Suggest something like
>> 
>>                warn_report("falling back to regular RAM allocation");
>>                error_printf("This is deprecated.  <Advice on what\n"
>>                             "to do goes here>\n");
>> 
>> >              /* Legacy behavior: if allocation failed, fall back to
>> >               * regular RAM allocation.
>> >               */
>> > diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
>> > index 2fe9b72121..2193705644 100644
>> > --- a/qemu-deprecated.texi
>> > +++ b/qemu-deprecated.texi
>> > @@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
>> >  Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
>> >  it's supported by used machine type) to define mapping explictly instead.
>> >  
>> > +@subsection -mem-path fallback to RAM (since 4.1)
>> > +Currently if system memory allocation from file pointed by @option{mem-path}
>> > +fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
>> > +in unpredictable behavior since provided backing file wasn't used.  
>> 
>> 
>> Noch such verb "to fallback", obvious fix "QEMU falls back to"
>> 
>> Suggest "RAM, which might".
>> 
>> Better: "since the backing file specified by the user is ignored".
>> 
>> >                                                                     In future
>> > +QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
>> > +configuration or explicitly use -m without -mem-path if system memory allocated
>> > +from anonymous RAM suits usecase.  
>> 
>> What's "system memory allocation"?
> Using man page language, would be
>  'guest startup RAM size'
> acceptable?
>
>
>> Perhaps: "In the future, QEMU will not fall back, but fail instead.
>> Adjust either the host configuration [FIXME how?] or the QEMU
>> configuration [FIXME how?]."
>
> Maybe
> "
>  In the future, QEMU will not fall back, but fail instead.
>  Adjust either the QEMU configuration by removing @option{-mem-path} so
>  QEMU will use only anonymous or host configuration to make sure that

Do you mean "only anonymous memory"?

>  there are sufficient resources on backing storage pointed by -mem-path
>  to allocate amount specified by @option{-m}.
> "

Perhaps this could suffice: "Users will be responsible for making sure
the backing storage specified with -mem-path can actually provide the
guest RAM configured with -m."

>> > +
>> >  @section QEMU Machine Protocol (QMP) commands
>> >  
>> >  @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)  
>> 


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

* Re: [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM
  2019-06-24 14:01     ` Markus Armbruster
@ 2019-06-25 11:32       ` Igor Mammedov
  0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2019-06-25 11:32 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: libvir-list, qemu-devel, ehabkost

On Mon, 24 Jun 2019 16:01:49 +0200
Markus Armbruster <armbru@redhat.com> wrote:

> Igor Mammedov <imammedo@redhat.com> writes:
> 
> > On Mon, 24 Jun 2019 10:17:33 +0200
> > Markus Armbruster <armbru@redhat.com> wrote:
> >  
> >> Igor Mammedov <imammedo@redhat.com> writes:
> >>   
> >> > Fallback might affect guest or worse whole host performance
> >> > or functionality if backing file were used to share guest RAM
> >> > with another process.
> >> >
> >> > Patch deprecates fallback so that we could remove it in future
> >> > and ensure that QEMU will provide expected behavior and fail if
> >> > it can't use user provided backing file.
> >> >
> >> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> >> > ---
> >> > PS:
> >> > Patch is written on top of
> >> >   [PATCH v4 0/3] numa: deprecate '-numa node,  mem' and default memory distribution
> >> > to avoid conflicts in qemu-deprecated.texi
> >> >
> >> >  numa.c               | 4 ++--
> >> >  qemu-deprecated.texi | 8 ++++++++
> >> >  2 files changed, 10 insertions(+), 2 deletions(-)
> >> >
> >> > diff --git a/numa.c b/numa.c
> >> > index 91a29138a2..53d67b8ad9 100644
> >> > --- a/numa.c
> >> > +++ b/numa.c
> >> > @@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
> >> >              if (mem_prealloc) {
> >> >                  exit(1);
> >> >              }
> >> > -            error_report("falling back to regular RAM allocation.");
> >> > -
> >> > +            warn_report("falling back to regular RAM allocation. "
> >> > +                        "Fallback to RAM allocation is deprecated.");    
> >> 
> >> Can we give the user clues on how to avoid the deprecated fallback?  
> >
> > I've intentionally left it out for a lack of clear enough advise.
> > Something like:
> >   "Make sure that host has resources to map file pointed by -mem-path"
> > would be pretty useless.  
> 
> I see.
> 
> > I think describing how host should be configured in various ways
> > depending on type of backing storage is well out of scope of any
> > QEMU documentation. But if you have an idea to what to put there
> > (or what to put in deprecation doc and refer to from here),
> > I'll add it on respin.
> >  
> >> Warning message nitpick: the message should be a single phrase, with no
> >> newline or trailing punctuation.  Suggest something like
> >> 
> >>                warn_report("falling back to regular RAM allocation");
> >>                error_printf("This is deprecated.  <Advice on what\n"
> >>                             "to do goes here>\n");
> >>   
> >> >              /* Legacy behavior: if allocation failed, fall back to
> >> >               * regular RAM allocation.
> >> >               */
> >> > diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> >> > index 2fe9b72121..2193705644 100644
> >> > --- a/qemu-deprecated.texi
> >> > +++ b/qemu-deprecated.texi
> >> > @@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
> >> >  Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
> >> >  it's supported by used machine type) to define mapping explictly instead.
> >> >  
> >> > +@subsection -mem-path fallback to RAM (since 4.1)
> >> > +Currently if system memory allocation from file pointed by @option{mem-path}
> >> > +fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
> >> > +in unpredictable behavior since provided backing file wasn't used.    
> >> 
> >> 
> >> Noch such verb "to fallback", obvious fix "QEMU falls back to"
> >> 
> >> Suggest "RAM, which might".
> >> 
> >> Better: "since the backing file specified by the user is ignored".
> >>   
> >> >                                                                     In future
> >> > +QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
> >> > +configuration or explicitly use -m without -mem-path if system memory allocated
> >> > +from anonymous RAM suits usecase.    
> >> 
> >> What's "system memory allocation"?  
> > Using man page language, would be
> >  'guest startup RAM size'
> > acceptable?
> >
> >  
> >> Perhaps: "In the future, QEMU will not fall back, but fail instead.
> >> Adjust either the host configuration [FIXME how?] or the QEMU
> >> configuration [FIXME how?]."  
> >
> > Maybe
> > "
> >  In the future, QEMU will not fall back, but fail instead.
> >  Adjust either the QEMU configuration by removing @option{-mem-path} so
> >  QEMU will use only anonymous or host configuration to make sure that  
> 
> Do you mean "only anonymous memory"?
yep

> >  there are sufficient resources on backing storage pointed by -mem-path
> >  to allocate amount specified by @option{-m}.
> > "  
> 
> Perhaps this could suffice: "Users will be responsible for making sure
> the backing storage specified with -mem-path can actually provide the
> guest RAM configured with -m."
amended hunk will look like:
"
@subsection -mem-path fallback to RAM (since 4.1)                                
Currently if guest RAM allocation from file pointed by @option{mem-path}         
fails, QEMU falls back to allocating from RAM, which might result                
in unpredictable behavior since the backing file specified by the user           
is ignored. In the future, users will be responsible for making sure             
the backing storage specified with @option{-mem-path} can actually provide       
the guest RAM configured with @option{-m} and fail to start up if RAM allocation 
is unsuccessful.   
"
> 
> >> > +
> >> >  @section QEMU Machine Protocol (QMP) commands
> >> >  
> >> >  @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)    
> >>   



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

end of thread, other threads:[~2019-06-25 11:37 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-20 11:41 [Qemu-devel] [PATCH] deprecate -mem-path fallback to anonymous RAM Igor Mammedov
2019-06-20 11:52 ` Daniel P. Berrangé
2019-06-20 13:34 ` Dr. David Alan Gilbert
2019-06-24  8:17 ` Markus Armbruster
2019-06-24  9:36   ` [Qemu-devel] [libvirt] " Daniel P. Berrangé
2019-06-24 10:50     ` Igor Mammedov
2019-06-24  9:58   ` [Qemu-devel] " Igor Mammedov
2019-06-24 14:01     ` Markus Armbruster
2019-06-25 11:32       ` Igor Mammedov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).