On 25.09.2017 10:43, seeteena wrote: > Hi Philippe, > > I have not seen patch went upstream..
You need to get the attention of a maintainer who could pick up the patch, e.g. by putting them on CC:. See the MAINTAINERS file for who is responsible for the various parts of QEMU. I've put Eduardo (Numa) and Paolo (vl.c) on CC: now, I hope one of them can pick up the patch. Thomas > On 09/04/2017 09:12 PM, Philippe Mathieu-Daudé wrote: >> On 09/04/2017 04:43 AM, Seeteena Thoufeek wrote: >>> ---Steps to Reproduce--- >>> >>> When passed a negative number to 'maxcpus' parameter, Qemu aborts >>> with a core dump. >>> >>> Run the following command with maxcpus argument as negative number >>> >>> ppc64-softmmu/qemu-system-ppc64 --nographic -vga none -machine >>> pseries,accel=kvm,kvm-type=HV -m size=200g -device virtio-blk-pci, >>> drive=rootdisk -drive file=/home/images/pegas-1.0-ppc64le.qcow2, >>> if=none,cache=none,id=rootdisk,format=qcow2 -monitor telnet >>> :127.0.0.1:1234,server,nowait -net nic,model=virtio -net >>> user -redir tcp:2000::22 -device nec-usb-xhci -smp 8,cores=1, >>> threads=1,maxcpus=-12 >>> >>> (process:12149): GLib-ERROR **: gmem.c:130: failed to allocate >>> 18446744073709550568 bytes >>> >>> Trace/breakpoint trap >>> >>> Reported-by: R.Nageswara Sastry <rnsas...@linux.vnet.ibm.com> >>> Signed-off-by: Seeteena Thoufeek <s1see...@linux.vnet.ibm.com> >> >> Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> >>> --- >>> v1 -> v2: >>> - Fix the error check in vl.c to make it generic. >>> v2 -> v3: >>> - Fix coding style pointed out by patchew. >>> - Fix check for "<= 0" instead of just "< 0". >>> v3 -> v4: >>> - Fix subject line. >>> - Removed space before ":" from vl.c:1248 >>> - Removed Reviewed-by: flag >>> v4-> v5: >>> - Code rework to declare max_cpus as unsigned int in sysemu.h >>> - Remove the error check in vl.c referred in v2. >>> - declare max_cpus as unsigned int in vl.c >>> --- >>> include/sysemu/sysemu.h | 2 +- >>> vl.c | 6 +++--- >>> 2 files changed, 4 insertions(+), 4 deletions(-) >>> >>> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h >>> index b213696..c083869 100644 >>> --- a/include/sysemu/sysemu.h >>> +++ b/include/sysemu/sysemu.h >>> @@ -113,7 +113,7 @@ extern int win2k_install_hack; >>> extern int alt_grab; >>> extern int ctrl_grab; >>> extern int smp_cpus; >>> -extern int max_cpus; >>> +extern unsigned int max_cpus; >>> extern int cursor_hide; >>> extern int graphic_rotate; >>> extern int no_quit; >>> diff --git a/vl.c b/vl.c >>> index 8e247cc..1470c21 100644 >>> --- a/vl.c >>> +++ b/vl.c >>> @@ -164,7 +164,7 @@ Chardev *sclp_hds[MAX_SCLP_CONSOLES]; >>> int win2k_install_hack = 0; >>> int singlestep = 0; >>> int smp_cpus = 1; >>> -int max_cpus = 1; >>> +unsigned int max_cpus = 1; >>> int smp_cores = 1; >>> int smp_threads = 1; >>> int acpi_enabled = 1; >>> @@ -4233,8 +4233,8 @@ int main(int argc, char **argv, char **envp) >>> machine_class->max_cpus = machine_class->max_cpus ?: 1; /* >>> Default to UP */ >>> if (max_cpus > machine_class->max_cpus) { >>> - error_report("Number of SMP CPUs requested (%d) exceeds max >>> CPUs " >>> - "supported by machine '%s' (%d)", max_cpus, >>> + error_report("Invalid SMP CPUs %d. The max CPUs " >>> + "supported by machine '%s' is %d", max_cpus, >>> machine_class->name, machine_class->max_cpus); >>> exit(1); >>> } >>> >> > >