On Wed, 6 Nov 2019 14:01:01 +0100 Laurent Vivier <laur...@vivier.eu> wrote:
> Le 06/11/2019 à 13:46, Greg Kurz a écrit : > > If memory allocation fails when using -mem-path, QEMU is supposed to print > > out a message to indicate that fallback to anonymous RAM is deprecated. This > > is done with error_printf() which does output buffering. As a consequence, > > the message is only printed at the next flush, eg. when quiting QEMU, and > > it also lacks a trailing newline: > > > > qemu-system-ppc64: unable to map backing store for guest RAM: Cannot > > allocate memory > > qemu-system-ppc64: warning: falling back to regular RAM allocation > > QEMU 4.1.50 monitor - type 'help' for more information > > (qemu) q > > This is deprecated. Make sure that -mem-path specified path has sufficient > > resources to allocate -m specified RAM > > amountgreg@boss02:~/Work/qemu/qemu-spapr$ > > > > Add the missing \n to fix both issues. > > > > Fixes: cb79224b7e4b "deprecate -mem-path fallback to anonymous RAM" > > Signed-off-by: Greg Kurz <gr...@kaod.org> > > --- > > hw/core/numa.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/hw/core/numa.c b/hw/core/numa.c > > index 038c96d4abc6..e3332a984f7c 100644 > > --- a/hw/core/numa.c > > +++ b/hw/core/numa.c > > @@ -503,7 +503,7 @@ static void allocate_system_memory_nonnuma(MemoryRegion > > *mr, Object *owner, > > warn_report("falling back to regular RAM allocation"); > > error_printf("This is deprecated. Make sure that -mem-path " > > " specified path has sufficient resources to > > allocate" > > - " -m specified RAM amount"); > > + " -m specified RAM amount\n"); > > /* Legacy behavior: if allocation failed, fall back to > > * regular RAM allocation. > > */ > > > > > > Why is this an error_printf() and not an error_report()? > Because CODING_STYLE suggests to do so I guess: Reporting errors to the human user ---------------------------------- Do not use printf(), fprintf() or monitor_printf(). Instead, use error_report() or error_vreport() from error-report.h. This ensures the error is reported in the right place (current monitor or stderr), and in a uniform format. Use error_printf() & friends to print additional information. <=== error_report() prints the current location. In certain common cases like command line parsing, the current location is tracked automatically. To manipulate it manually, use the loc_``*``() from error-report.h. > Thanks, > Laurent >