Re: [PATCH] Fix segfault with ram_size > 4095M without kvm

Aurelien Jarno
2010-02-23T17:02:15Z

Ryan Harper a écrit :
> Currently, x86_64-softmmu qemu segfaults when trying to use > 4095M memsize.
> This patch adds a simple check and error message (much like the 2047 limit on
> 32-bit hosts) on ram_size in the control path after we determine we're
> not using kvm
>
> Upstream qemu-kvm is affected if using the -no-kvm option; this patch address
> the segfault there as well.

It looks like workarounding the real bug. At some point both
i386-softmmu (via PAE) and x86_64-softmmu were able to support > 4GB of
memory. I remember adding the support long time ago, and testing it with
32GB of emulated RAM.

> Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
> ---
> vl.c | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index db7a178..a659e98 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -5760,6 +5760,12 @@ int main(int argc, char **argv, char **envp)
> fprintf(stderr, "failed to initialize KVM\n");
> exit(1);
> }
> + } else {
> + /* without kvm enabled, we can only support 4095 MB RAM */
> + if (ram_size > (4095UL << 20)) {
> + fprintf(stderr, "qemu: without kvm support at most 4095 MB RAM can be simulated\n");
> + exit(1);
> + }
> }
>
> if (qemu_init_main_loop()) {

--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net