On Tue, Jun 4, 2013 at 3:51 PM, Gleb Natapov <g...@redhat.com> wrote:

> On Tue, Jun 04, 2013 at 03:47:47PM +0800, Dunrong Huang wrote:
> > On Tue, Jun 4, 2013 at 2:47 PM, Paolo Bonzini <pbonz...@redhat.com>
> wrote:
> >
> > > Il 04/06/2013 05:47, Dunrong Huang ha scritto:
> > > >
> > > > QEMU command:
> > > > ~/usr/bin/qemu-system-x86_64 -enable-kvm -m 1024 debian-append.img
> > > >
> > > > git bisect tells that the following commit causes this bug:
> > > >
> > > > commit 235e8982ad393e5611cb892df54881c872eea9e1
> > > > Author: Jordan Justen <jordan.l.jus...@intel.com
> > > > <mailto:jordan.l.jus...@intel.com>>
> > > > Date:   Wed May 29 01:27:26 2013 -0700
> > > >
> > > >     kvm: support using KVM_MEM_READONLY flag for regions
> > > >
> > > >     For readonly memory regions and rom devices in romd_mode,
> > > >     we make use of the KVM_MEM_READONLY. A slot that uses
> > > >     KVM_MEM_READONLY can be read from and code can execute from the
> > > >     region, but writes will exit to qemu.
> > > >
> > > > After reverting this commit, VM can boot normally.
> > >
> > > A patch is queued for that.  Using kernel 3.8 or reverting the commit
> > > will both work.
> > >
> > Ok, thanks for information, I will try it.
> >
> The fix is 651eb0f4 and you claim it is still fails for you. This is
> strange because the commit fixed the problem for everyone else. Can you
> double check that you are testing the right commit and you recompiled
> and reinstalled?
>

I am sure 651eb0f4 does not fix this problem.

My test environment is below:

* config.log:
# head -n 2 config.log
# QEMU configure log 2013年 06月 04日 星期二 16:12:59 CST
# Configured with: './configure' '--prefix=/root/usr' '--enable-kvm'
'--enable-werror' '--enable-debug' '--enable-debug-tcg'
'--enable-debug-info' '--enable-sdl' '--enable-gtk' '--enable-virtfs'
'--enable-vnc' '--enable-mixemu' '--enable-vnc-tls' '--enable-vnc-sasl'
'--enable-vnc-jpeg' '--enable-vnc-png' '--enable-vnc-ws' '--enable-curses'
'--enable-curl' '--enable-nptl' '--enable-system' '--enable-user'
'--enable-linux-user' '--enable-guest-base' '--enable-uuid' '--enable-vde'
'--enable-linux-aio' '--enable-cap-ng' '--enable-attr' '--enable-docs'
'--enable-vhost-net' '--enable-spice' '--enable-usb-redir'
'--enable-smartcard-nss' '--enable-tpm' '--enable-guest-agent'
'--target-list=x86_64-softmmu'

* kernel version:
# uname -a
Linux gentoo-company 3.8.2-gentoo #1 SMP Fri Mar 8 11:44:36 CST 2013 x86_64
Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz GenuineIntel GNU/Linux

* details of git tree:
# git log HEAD --oneline
1713924 gtk: don't use g_object_unref on GdkCursor
41686a9 gtk: don't resize window when enabling scaling
651eb0f fix double free the memslot in kvm_set_phys_mem
25b4833 configure: Report unknown target names more helpfully
6e92f82 configure: Autogenerate default target list
0ded1fe Merge remote-tracking branch 'pmaydell/arm-devs.next' into staging
95669e6 i.MX: Improve EPIT timer code.
6539ed2 exynos4210.c: register rom_mem for memory migration


* QEMU command line:
x86_64-softmmu/qemu-system-x86_64 -enable-kvm -cdrom
/mnt/nfs/Images/ISO/ubuntu-12.04-dvd-amd64.iso

After disable KVM_MEM_READONLY flag like below, VM can boot normally.
diff --git a/kvm-all.c b/kvm-all.c
index 405480e..c33ba6e 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -774,7 +774,7 @@ static void kvm_set_phys_mem(MemoryRegionSection
*section, bool add)
     mem->memory_size = size;
     mem->start_addr = start_addr;
     mem->ram = ram;
-    mem->flags = kvm_mem_flags(s, log_dirty, readonly_flag);
+    mem->flags = kvm_mem_flags(s, log_dirty, false);

     err = kvm_set_user_memory_region(s, mem);
     if (err) {

I can provide more details if needed.


> --
>                         Gleb.
>



-- 
Best Regards,

Dunrong Huang

Homepage: http://mathslinux.org

Reply via email to