• Currently, we're entering migration's stage 3 when
    a treshold of 10 pages remain to be transferred in the system.
    
    This has hurt some users. However, any proposed threshold is
    arbitrary by nature, and would only shift the annoyance.
    
    The proposal of this patch is to define a max_downtime variable,
    which represents the maximum downtime a migration user is willing
    to suffer. Then, based on the bandwidth of last iteration, we
    calculate how much data we can transfer in such a window of time.
    
    Whenever we reach that value (or lower), we know is safe to enter
    stage3.
    
    This has largely improved the situation for me.
    On localhost migrations, where one would expect things to go as
    quickly as me running away from the duty of writting software for
    windows, a kernel compile was enough to get the migration stuck.
    
    It takes 20 ~ 30 iterations now.
    
    Signed-off-by: Glauber Costa <glommer@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Glauber Costa authored
     
    Browse Code »
  • User space may only inject interrupts during kvm_arch_pre_run if
    ready_for_interrupt_injection is set in kvm_run. But that field is
    updated on exit from KVM_RUN, so we must ensure that we enter the
    kernel after potentially queuing an interrupt, otherwise we risk to
    loose one - like it happens with the current code against latest
    kernel modules (since kvm-86) that started to queue only a single
    interrupt.
    
    Fix the problem by reordering kvm_cpu_exec.
    
    Credits go to Gleb Natapov for analyzing the issue in details.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Jan Kiszka authored
     
    Browse Code »
  • Also replave qemu_bh_cancel with qemu_bh_delete in bdrv_aio_cancel_em.
     Otherwise the bh will live forever in the bh list.
    
    Signed-off-by: Dor Laor <dor@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Dor Laor authored
     
    Browse Code »
  • vl.c contains some dead code that initialises a 'label' string with the name
    of the char device being initialised. This is unused.
    
    Signed-off-by: Amit Shah <amit.shah@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Amit Shah authored
     
    Browse Code »
  • As per the IA32 processor manual, the accessed bit is set to 1 in the
    processor state after reset. qemu pc cpu_reset code was missing this
    accessed bit setting.
    
    Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Nitin A Kamble authored
     
    Browse Code »
  • KVM-enabled QEMU will always report the vendor ID of the physical CPU it is
    running on. Allow to override this if explicitly requested on the
    command line. It will not suffice to name a CPU type (like -cpu phenom),
    but you have to explicitly set the vendor: -cpu phenom,vendor=AuthenticAMD
    
    Signed-off-by: Andre Przywara <andre.przywara@amd.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Andre Przywara authored
     
    Browse Code »
  • The new option is --enable-debug, not --disable-debug.
    
    Signed-off-by: Stefan Weil <weil@mail.berlios.de>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Stefan Weil authored
     
    Browse Code »
  • There are some people interested in, given a cpu number,
    pick its CPUState. KVM is an example, although not yet in tree.
    This patch provides a way of doing that.
    
    Signed-off-by: Glauber Costa <glommer@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Glauber Costa authored
     
    Browse Code »
  • Signed-off-by: Amit Shah <amit.shah@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Amit Shah authored
     
    Browse Code »
  • Reorganize qemu console emulation code.  Make it look at the numlock
    state and interpret numpad keys as arrow+friends (numlock off) or
    digits (numlock on).  While being at it also wind up the other numpad
    keys.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Gerd Hoffmann authored
     
    Browse Code »
  • Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Gerd Hoffmann authored
     
    Browse Code »
  • Adds CASE_SET_REG24 and fixes the following errors:
    
    lsi_scsi: error: Unhandled writeb 0x24 = 0x0
    lsi_scsi: error: Unhandled writeb 0x25 = 0x0
    
    Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Sebastian Herbszt authored
     
    Browse Code »
  • Fixes the following errors:
    
    lsi_scsi: error: Unhandled writeb 0x28 = 0x0
    lsi_scsi: error: Unhandled writeb 0x29 = 0x0
    lsi_scsi: error: Unhandled writeb 0x2a = 0x0
    lsi_scsi: error: Unhandled writeb 0x2b = 0x0
    
    Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Sebastian Herbszt authored
     
    Browse Code »
  • Fixes the following errors:
    
    lsi_scsi: error: Unhandled writeb 0x3a = 0x0
    lsi_scsi: error: readb 0x3a
    
    Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Sebastian Herbszt authored
     
    Browse Code »
  • This function is used to manage a PCI BAR, so make the more generic
    pci_register_io_region() available to other uses.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Avi Kivity authored
     
    Browse Code »
  • Move io_mem_init() downwards to avoid a forward declaration.  No code change.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Avi Kivity authored
     
    Browse Code »
  • The parameter is always zero except when registering the three internal
    io regions (ROM, unassigned, notdirty).  Remove the parameter to reduce
    the API's power, thus facilitating future change.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Avi Kivity authored
     
    Browse Code »
  • There is no point in trying to find KVM on anything else than Linux, at
    least for the moment.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Jan Kiszka authored
     
    Browse Code »
  • So far a new timestamp was generated *after* a full line had been
    printed. Fix this.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Jan Kiszka authored
     
    Browse Code »
  • As we can have multiple multiplexed terminals, timestamp control and
    tracking should better take place per MuxDriver.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Jan Kiszka authored
     
    Browse Code »
  • qemu_mallocz() already checks for NULL returns, readline_init() doesn't
    have to do it again.
    
    Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Luiz Capitulino authored
     
    Browse Code »
  • When updating the refcount blocks in update_refcount(), write complete sectors
    instead of updating single entries.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • When updating the L2 tables in alloc_cluster_link_l2(), write complete
    sectors instead of updating single entries.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • When modifying the L1 table, l2_allocate() needs to write complete sectors
    instead of single entries. The L1 table is already in memory, reading it from
    disk in the block layer to align the request is wasted performance.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • The qcow2 source is now split into several more manageable files. During the
    conversion quite some functions that were static before needed to be changed to
    be global to make the source compile again.
    
    We were lucky enough not to get name conflicts with these additional global
    names, but they are not nice. This patch adds a qcow2_ prefix to all of the
    global functions in qcow2.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • qcow2-snapshot.c contains the code related to snapshotting.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • qcow2-cluster.c contains all functions related to the management of guest
    clusters, i.e. what the guest sees on its virtual disk. This code is about
    mapping these guest clusters to host clusters in the image file using the
    two-level lookup tables.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • qcow2-refcount.c contains all functions which are related to cluster
    allocation and management in the image file. A large part of this is the
    reference counting of these clusters.
    
    Also a header file qcow2.h is introduced which will contain the interface of
    the split qcow2 modules.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • Larger cluster sizes mean less metadata. This has been discussion a few times,
    let's do it now. This turns 64k clusters on by default for new images.
    
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Kevin Wolf authored
     
    Browse Code »
  • Split socket closing and releasing of VncState into two steps.  First
    close the socket and set the variable to -1 to indicate shutdown in
    progress.  Do the actual release in a few places where we can be sure it
    doesn't cause trouble in form of use-after-free.  Add some checks for a
    valid socket handle to make sure we don't try to use the closed socket.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Gerd Hoffmann authored
     
    Browse Code »
  • When we open a file, we first attempt to open it read-write, then fall back
    to read-only.  Unfortunately we reuse the flags from the previous attempt,
    so both attempts try to open the file with write permissions, and fail.
    
    Fix by clearing the O_RDWR flag from the previous attempt.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Avi Kivity authored
     
    Browse Code »
  • The flags argument to raw_common_open() contain bits defined by the BDRV_O_*
    namespace, not the posix O_* namespace.
    
    Adjust to use the correct constants.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Avi Kivity authored
     
    Browse Code »
  • qemu_pci_hot_add_storage() runs qdev_init() twice.  Broken in commit
    07e3af9a "Virtio-blk qdev conversion".
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Markus Armbruster authored
     
    Browse Code »
  • Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Anthony Liguori authored
     
    Browse Code »
  • This issue has been detected with tests/linux-tests.c:
    
    linux-test.c:330: getsockopt
    
    327     len = sizeof(val);
    328     chk_error(getsockopt(server_fd, SOL_SOCKET, SO_TYPE, &val, &len));
    329     if (val != SOCK_STREAM)
    330         error("getsockopt");
    
    In linux-user/syscall.c:do_getsockopt(), we have:
    ...
            val = tswap32(val);
    ...
                if (put_user_u32(val, optval_addr))
    ...
    
    whereas "put_user_u32" calls in the end "__put_user" which uses "tswap32".
    
    So the "val = tswap32(val);" is useless and wrong.
    
    This patch removes it.
    
    Signed-off-by: Laurent Vivier <laurent@vivier.eu>
    Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
    Laurent Vivier authored
     
    Browse Code »
  • Needed to make sure the xxxat() functions are available.
    
    Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
    Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
    Eduardo Habkost authored
     
    Browse Code »
  • We initialize mmap_mutex in any child threads/processes, but we need to
    correctly statically initialize it for the original process.
    
    Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
    Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
    Nathan Froyd authored
     
    Browse Code »
  • Hi,
    
    This is a new try to fix the fcntl support in linux-user. I tried to
    adress all comments but as the previous version is several weeks old,
    it's possible that I've missed some.
    
    This patch doesn't handle linux specific fcntl flags. My plan is to get
    this version of the patch reviewed/fixed and then, add them if wanted.
    
    Thanks,
    Arnaud
    
    Signed-off-by: Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org>
    Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
    Arnaud Patard (Rtp) authored
     
    Browse Code »
  • Add support for tee, splice and vmsplice.
    
    Originally from: vibi sreenivasan <vibi_sreenivasan@cms.com>
    
    Riku: squashed patches together, added a test to configure
    and removed compliler warning by picking up correct type for
    splice param
    
    Signed-off-by: vibisreenivasan <vibi_sreenivasan@cms.com>
    Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
    vibisreenivasan authored
     
    Browse Code »
  • implement pipe2 syscall.
    
    [v2] fix do_pipe on mips and sh4
    [v3] use pipe2 to ensure atomicity, but only when it is available.
    
    Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
    Riku Voipio authored
     
    Browse Code »