1. 09 4月, 2013 35 次提交
  2. 06 4月, 2013 5 次提交
    • B
      Merge branch 'arm-devs.next' of git://git.linaro.org/people/pmaydell/qemu-arm · 9196dd41
      Blue Swirl 提交于
      * 'arm-devs.next' of git://git.linaro.org/people/pmaydell/qemu-arm:
        hw/nand.c: Fix nand erase operation
        cadence_uart: Flush queued characters on reset
        pl330: Don't inhibit ES bits on INTEN
        pflash_cfi01: Implement migration support
        pflash_cfi01: Drop unused 'bypass' field
        hw/arm_gic_common: Use vmstate struct rather than save/load functions
        arm_gic: Fix sizes of state fields in preparation for vmstate support
        vmstate: Add support for two dimensional arrays
        hw/onenand.c: fix migration of dynamically allocated buffer "otp"
        hw/sd.c: fix migration of dynamically allocated buffer "buf"
        vmstate.h: introduce VMSTATE_BUFFER_POINTER_UNSAFE macro
        hw/arm_mptimer: Save the timer state
        pl050: Don't send always-constant is_mouse field
        hw/arm/nseries: don't print to stdout or stderr
      9196dd41
    • A
      main-loop: drop the BQL if the I/O appears to be spinning · 893986fe
      Anthony Liguori 提交于
      The char-flow refactoring introduced a busy-wait that depended on
      an action from the VCPU thread.  However, the VCPU thread could
      never take that action because the busy-wait starved the VCPU thread
      of the BQL because it never dropped the mutex while running select.
      
      Paolo doesn't want to drop this optimization for fear that we will
      stop detecting these busy waits.  I'm afraid to keep this optimization
      even with the busy-wait fixed because I think a similar problem can
      occur just with heavy I/O thread load manifesting itself as VCPU pauses.
      
      As a compromise, introduce an artificial timeout after a thousand
      iterations but print a rate limited warning when this happens.  This
      let's us still detect when this condition occurs without it being
      a fatal error.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      Message-id: 1365169560-11012-1-git-send-email-aliguori@us.ibm.com
      893986fe
    • P
      qemu-char: eliminate busy waiting on can_read returning zero · d185c094
      Paolo Bonzini 提交于
      The character backend refactoring introduced an undesirable busy wait.
      The busy wait happens if can_read returns zero and there is data available
      on the character device's file descriptor.  Then, the I/O watch will
      fire continuously and, with TCG, the CPU thread will never run.
      
          1) Char backend asks front end if it can write
          2) Front end says no
          3) poll() finds the char backend's descriptor is available
          4) Goto (1)
      
      What we really want is this (note that step 3 avoids the busy wait):
      
          1) Char backend asks front end if it can write
          2) Front end says no
          3) poll() goes on without char backend's descriptor
          4) Goto (1) until qemu_chr_accept_input() called
      
          5) Char backend asks front end if it can write
          6) Front end says yes
          7) poll() finds the char backend's descriptor is available
          8) Backend handler called
      
      After this patch, the IOWatchPoll source and the watch source are
      separated.  The IOWatchPoll is simply a hook that runs during the prepare
      phase on each main loop iteration.  The hook adds/removes the actual
      source depending on the return value from can_read.
      
      A simple reproducer is
      
          qemu-system-i386 -serial mon:stdio
      
      ... followed by banging on the terminal as much as you can. :)  Without
      this patch, emulation will hang.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1365177573-11817-1-git-send-email-pbonzini@redhat.com
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      d185c094
    • A
      Merge remote-tracking branch 'stefanha/trivial-patches' into staging · 91b53e44
      Anthony Liguori 提交于
      # By Peter Crosthwaite (2) and others
      # Via Stefan Hajnoczi
      * stefanha/trivial-patches:
        xilinx_zynq: Cleanup ssi_create_slave
        petalogix_ml605_mmu: Cleanup ssi_create_slave()
        target-s390: Fix SRNMT
        linux-user: Don't omit comma for strace of rt_sigaction()
        test-visitor-serialization: Fix some memory leaks
      91b53e44
    • A
      Merge remote-tracking branch 'sstabellini/xen-2013-04-05' into staging · 54baa6f3
      Anthony Liguori 提交于
      # By Alex Bligh (2) and Felipe Franciosi (2)
      # Via Stefano Stabellini
      * sstabellini/xen-2013-04-05:
        Allow xen guests to plug disks of 1 TiB or more
        Introduce 64 bit integer write interface to xenstore
        Xen PV backend: Disable use of O_DIRECT by default as it results in crashes.
        Xen PV backend: Move call to bdrv_new from blk_init to blk_connect
      54baa6f3