1. 22 Aug, 2012 10 commits
  2. 21 Aug, 2012 2 commits
  3. 19 Aug, 2012 1 commit
  4. 18 Aug, 2012 4 commits
  5. 16 Aug, 2012 18 commits
    • Anthony Liguori's avatar
      Update version to 1.2.0-rc0 · 731dc9ec
      Anthony Liguori authored
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Lei Li's avatar
      qemu-char: (Re-)connect for tcp_chr_write() unconnected writing · c3767ed0
      Lei Li authored
      tcp_chr_write() did not deal with writing to an unconnected
      connection and return the original length of the data, it's
      not right and would cause false writing. So (re-)connect it
      and return 0 for this situation.
      Reviewed-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: default avatarLei Li <lilei@linux.vnet.ibm.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • David Gibson's avatar
      Allow QEMUMachine to override reset sequencing · be522029
      David Gibson authored
      qemu_system_reset() function always performs the same basic actions on
      all machines.  This includes running all the reset handler hooks,
      however the order in which these will run is not always easily predictable.
      This patch splits the core of qemu_system_reset() - the invocation of
      the reset handlers - out into a new qemu_devices_reset() function.
      qemu_system_reset() will usually call qemu_devices_reset(), but that
      can be now overriden by a new reset method in the QEMUMachine
      Individual machines can use this reset method, if necessary, to
      perform any extra, machine specific initializations which have to
      occur before or after the bulk of the reset handlers.  It's expected
      that the method will call qemu_devices_reset() at some point, but if
      the machine has really strange ordering requirements between devices
      resets it could even override that with it's own reset sequence (with
      great care, obviously).
      For a specific example of when this might be needed: a number of
      machines (but not PC) load images specified with -kernel or -initrd
      directly into the machine RAM before booting the guest.  This mostly
      works at the moment, but to make this actually safe requires that this
      load occurs after peripheral devices are reset - otherwise they could
      have active DMAs in progress which would clobber the in memory images.
      Some machines (notably pseries) also have other entry conditions which
      need to be set up as the last thing before executing in guest space -
      some of this could be considered "emulated firmware" in the sense that
      the actions of the firmware are emulated directly by qemu rather than
      by executing a firmware image within the guest.  When the platform's
      firmware to OS interface is sufficiently well specified, this saves
      time both in implementing the "firmware" and executing it.
      aliguori: don't unconditionally dereference current_machine
      Reviewed-by: default avatarAndreas Färber <afaerber@suse.de>
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • David Gibson's avatar
      pseries: Instantiate USB interface when required · 35139a59
      David Gibson authored
      The pseries machine already supports the -vga std option, creating a
      graphics adapter.  However, this is not very useful without being able to
      add a keyboard and mouse as well.  This patch addresses this by adding
      a USB interface when requested, and automatically adding a USB keyboard
      and mouse when VGA is enabled.
      This is a stop gap measure to get usable graphics mode on pseries while
      waiting for Li Zhang's rework of USB options to go in after 1.2.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Peter Maydell's avatar
      osdep: Fix compilation failure on BSD systems · d973ba18
      Peter Maydell authored
      Fix compilation failure on BSD systems (which don't have
      osdep.c:116: error: ‘O_DIRECT’ undeclared (first use in this function)
      osdep.c:116: error: (Each undeclared identifier is reported only once
      osdep.c:116: error: for each function it appears in.)
      osdep.c:116: error: ‘O_NOATIME’ undeclared (first use in this function)
      Reviewed-by: default avatarStefan Weil <sw@weilnetz.de>
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Eduardo Otubo's avatar
      Command line support for seccomp with -sandbox (v8) · 7d76ad4f
      Eduardo Otubo authored
      Signed-off-by: default avatarEduardo Otubo <otubo@linux.vnet.ibm.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      v7 -> v8
       - Parse options correctly (aliguori)
    • Eduardo Otubo's avatar
      Adding seccomp calls to vl.c (v8) · 452dfbef
      Eduardo Otubo authored
      Signed-off-by: default avatarEduardo Otubo <otubo@linux.vnet.ibm.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
       - Full seccomp calls and data included in vl.c
      v1 -> v2:
       - Full seccomp calls and data removed from vl.c and put into separate
         qemu-seccomp.[ch] file.
    • Eduardo Otubo's avatar
      Adding qemu-seccomp.[ch] (v8) · 2f668be7
      Eduardo Otubo authored
      Signed-off-by: default avatarEduardo Otubo <otubo@linux.vnet.ibm.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
       - I added a syscall struct using priority levels as described in the
         libseccomp man page. The priority numbers are based to the frequency
         they appear in a sample strace from a regular qemu guest run under
         Libseccomp generates linear BPF code to filter system calls, those rules
         are read one after another. The priority system places the most common
         rules first in order to reduce the overhead when processing them.
      v1 -> v2:
       - Fixed some style issues
       - Removed code from vl.c and created qemu-seccomp.[ch]
       - Now using ARRAY_SIZE macro
       - Added more syscalls without priority/frequency set yet
      v2 -> v3:
       - Adding copyright and license information
       - Replacing seccomp_whitelist_count just by ARRAY_SIZE
       - Adding header protection to qemu-seccomp.h
       - Moving QemuSeccompSyscall definition to qemu-seccomp.c
       - Negative return from seccomp_start is fatal now.
       - Adding open() and execve() to the whitelis
      v3 -> v4:
       - Tests revealed a bigger set of syscalls.
       - seccomp_start() now has an argument to set the mode according to the
         configure option trap or kill.
      v4 -> v5:
       - Tests on x86_64 required a new specific set of system calls.
       - libseccomp release 1.0.0: part of the API have changed in this last
         release, had to adapt to the new function signatures.
    • Eduardo Otubo's avatar
      Adding support for libseccomp in configure and Makefile (v8) · f794573e
      Eduardo Otubo authored
      Adding basic options to the configure script to use libseccomp or not.
      The default is set to 'no'. If the flag --enable-libseccomp is used, the
      script will check for its existence using pkg-config.
      Signed-off-by: default avatarEduardo Otubo <otubo@linux.vnet.ibm.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      v1 -> v2:
       - As I removed all the code related to seccomp from vl.c, I created
       - Also making the configure script to add the specific line to
         Makefile.obj in order to compile with appropriate support to seccomp.
      v2 -> v3:
       - Removing the line from Makefile.obj and adding it to Makefile.objs.
       - Marking libseccomp default option to 'yes' in the configure script.
      v3 -> v8:
       - fix configure probe if libseccomp isn't available (aliguori)
    • Benjamin Herrenschmidt's avatar
      dma: Fix stupid typo/thinko · bc9b78de
      Benjamin Herrenschmidt authored
      Hi hard a brain fart when coding that function, it will
      fail to "set" the memory beyond the first 512 bytes. This
      is in turn causing guest crashes in ibmveth (spapr_llan.c
      on the qemu side) due to the receive queue not being
      properly initialized.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Jason Baron's avatar
      memory: add -machine dump-guest-core=on|off · ddb97f1d
      Jason Baron authored
      Add a new '[,dump-guest-core=on|off]' option to the '-machine' option. When
      'dump-guest-core=off' is specified, guest memory is omitted from the core dump.
      The default behavior continues to be to include guest memory when a core dump is
      triggered. In my testing, this brought the core dump size down from 384MB to 6MB
      on a 2GB guest.
      Is anything additional required to preserve this setting for migration or
      savevm? I don't believe so.
          Eliminate globals as per Anthony's suggestion
          set no dump from qemu_ram_remap() as well
          move the option from -m to -machine, rename option dump -> dump-guest-core
      Signed-off-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Peter Maydell's avatar
      Support using a different compiler for Objective-C files · 3c4a4d0d
      Peter Maydell authored
      MacOSX 10.8 ("Mountain Lion") requires us to compile our one
      Objective-C source file with clang even if the rest of QEMU
      requires a real gcc, because the system headers we use make
      use of Apple's "Blocks" extension to C/ObjC, and mainline
      gcc doesn't support that. Since we only need to use a true
      gcc for the parts of QEMU that use the fixed-register
      env variable, we can simply use clang to build the ObjC
      file: it will link to the gcc-built objects with no problems.
      Add the necessary support for an OBJCC variable in the
      makefile and configure machinery; we default to clang
      if we have it, otherwise whatever CC is (since gcc
      might be the Apple gcc which does support Blocks).
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Peter Maydell's avatar
      configure: Define OS_OBJECT_USE_OBJC=0 for MacOSX builds · a0b7cf6b
      Peter Maydell authored
      MacOSX 10.8 ("Mountain Lion") defaults to trying to use automated
      reference counting on certain objects.  This means that the system
      header files will use some Objective C syntax constructs even when
      compiling pure C, which confuses mainline gcc. Suppress this by
      setting OS_OBJECT_USE_OBJC=0. This avoids a compile error like this:
      In file included from
                       from /usr/include/os/object.h:74,
                       from /usr/include/dispatch/dispatch.h:48,
                       from /System/Library/Frameworks/IOKit.framework/Headers/IOKitLib.h:56,
                       from block/raw-posix.c:35:
      /System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:409:1: error: stray ‘@’ in program
      [with a large number of further run-on errors]
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Peter Maydell's avatar
      configure: Don't override user's --cpu on MacOS and Solaris · bbea4050
      Peter Maydell authored
      Both MacOS and Solaris have special case handling for the CPU
      type, because the check_define probes will return i386 even if
      the hardware is 64 bit and x86_64 would be preferable. Move
      these checks earlier in the configure probing so that we can
      do them only if the user didn't specify a CPU with --cpu. This
      fixes a bug where the user's command line argument was being
      Reviewed-by: default avatarAndreas F=E4rber <afaerber@suse.de>
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Michael Roth's avatar
    • Michael Roth's avatar
      json-parser: don't replicate tokens at each level of recursion · 65c0f1e9
      Michael Roth authored
      Currently, when parsing a stream of tokens we make a copy of the token
      list at the beginning of each level of recursion so that we do not
      modify the original list in cases where we need to fall back to an
      earlier state.
      In the worst case, we will only read 1 or 2 tokens off the list before
      recursing again, which means an upper bound of roughly N^2 token allocations.
      For a "reasonably" sized QMP request (in this a QMP representation of
      cirrus_vga's device state, generated via QIDL, being passed in via
      qom-set), this caused my 16GB's of memory to be exhausted before any
      noticeable progress was made by the parser.
      This patch works around the issue by using single copy of the token list
      in the form of an indexable array so that we can save/restore state by
      manipulating indices.
      A subsequent commit adds a "large_dict" test case which exhibits the
      same behavior as above. With this patch applied the test case successfully
      completes in under a second.
      Tested with valgrind, make check, and QMP.
      Reviewed-by: default avatarEric Blake <eblake@redhat.com>
      Signed-off-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Michael Roth's avatar
    • Jan Kiszka's avatar
      audio: Make pcspk card selectable again · 5a4d701a
      Jan Kiszka authored
          [ The following text is in the "ISO-8859-1" character set. ]
          [ Your display is set for the "KOI8-R" character set.  ]
          [ Some special characters may be displayed incorrectly. ]
      Since we moved pcspk into hwlib, CONFIG_PCSPK is no longer defined per
      target. Therefore, statically built soundhw array in arch_init.c stopped
      including this card.
      Work around this by re-adding this define to config-target.mak.
      Long-term, a dynamic creation of this soundhw list will be necessary.
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: default avatarmalc <av1474@comtv.ru>
  6. 15 Aug, 2012 5 commits
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'agraf/s390-for-upstream' into staging · 2b97f88c
      Anthony Liguori authored
      * agraf/s390-for-upstream:
        s390: provide interface for service interrupt/introduce interrupt.c
        s390: Fix error handling and condition code of service call
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging · 0d16fdd7
      Anthony Liguori authored
      * agraf/ppc-for-upstream: (24 commits)
        openpic: Added BRR1 register
        pseries: Update SLOF firmware image
        pseries dma: DMA window params added to PHB and DT population changed
        pseries: Add PCI MSI/MSI-X support
        pseries: Add trace event for PCI irqs
        pseries: Export find_phb() utility function for PCI code
        pseries: added allocator for a block of IRQs
        pseries: Separate PCI RTAS setup from common from emulation specific PCI setup
        pseries: Rework irq assignment to avoid carrying qemu_irqs around
        pseries: Remove extraneous prints
        pseries: Update SLOF
        PPC: spapr: Remove global variable
        PPC: spapr: Rework VGA select logic
        xbzrle: fix compilation on ppc32
        spapr: Add support for -vga option
        Add one new file vga-pci.h and cleanup on all platforms
        Revert "PPC: e500: Use new MPIC dt format"
        ppc: Fix bug in handling of PAPR hypercall exits
        PPC: e500: add generic e500 platform
        PPC: e500: split mpc8544ds machine from generic e500 code
    • Anthony Liguori's avatar
      win32: provide separate macros for weak decls and definitions · 76b64a7a
      Anthony Liguori authored
      mingw32 seems to want the declaration to also carry the weak attribute.
      Strangely, gcc on Linux absolutely does not want the declaration to be marked
      as weak.  This may not be the right fix, but it seems to do the trick.
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'stefanha/trivial-patches' into staging · d1186a33
      Anthony Liguori authored
      * stefanha/trivial-patches:
        ivshmem, qdev-monitor: fix order of qerror parameters
        iov_send_recv(): Handle zero bytes case even if OS does not
        framebuffer: Fix spelling in comment (leight -> height)
        Spelling fix in comment (peripherans -> peripherals)
        docs: Fix spelling (propery -> property)
        trace: Fix "Qemu" -> "QEMU"
        cputlb.c: Fix out of date comment
        ehci: fix assertion typo
        Makefile: Avoid explicit list of directories in clean target
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'kwolf/for-anthony' into staging · fdef621b
      Anthony Liguori authored
      * kwolf/for-anthony:
        qemu-iotests: Fix 030 after switch to GenericError
        block: Flush parent to OS with cache=unsafe
        iscsi: Fix NULL dereferences / races between task completion and abort
        monitor: Clean up fd sets on monitor disconnect
        block: Enable qemu_open/close to work with fd sets
        block: Convert close calls to qemu_close
        block: Convert open calls to qemu_open
        block: Prevent detection of /dev/fdset/ as floppy
        qapi: Introduce add-fd, remove-fd, query-fdsets
        qemu-char: Add MSG_CMSG_CLOEXEC flag to recvmsg