1. 07 2月, 2016 9 次提交
  2. 29 1月, 2016 1 次提交
    • P
      x86: Clean up includes · b6a0aa05
      Peter Maydell 提交于
      Clean up includes so that osdep.h is included first and headers
      which it implies are not included manually.
      
      This commit was created with scripts/clean-includes.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1453832250-766-11-git-send-email-peter.maydell@linaro.org
      b6a0aa05
  3. 26 1月, 2016 1 次提交
  4. 22 1月, 2016 1 次提交
  5. 21 1月, 2016 1 次提交
    • H
      target-i386: Add support to migrate vcpu's TSC rate · 36f96c4b
      Haozhong Zhang 提交于
      This patch enables migrating vcpu's TSC rate. If KVM on the
      destination machine supports TSC scaling, guest programs will
      observe a consistent TSC rate across the migration.
      
      If TSC scaling is not supported on the destination machine, the
      migration will not be aborted and QEMU on the destination will
      not set vcpu's TSC rate to the migrated value.
      
      If vcpu's TSC rate specified by CPU option 'tsc-freq' on the
      destination machine is inconsistent with the migrated TSC rate,
      the migration will be aborted.
      
      For backwards compatibility, the migration of vcpu's TSC rate is
      disabled on pc-*-2.5 and older machine types.
      Signed-off-by: NHaozhong Zhang <haozhong.zhang@intel.com>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      [ehabkost: Rewrote comment at kvm_arch_put_registers()]
      [ehabkost: Moved compat code to pc-2.5]
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      36f96c4b
  6. 13 1月, 2016 3 次提交
    • M
      error: Clean up errors with embedded newlines (again) · 433672b0
      Markus Armbruster 提交于
      The arguments of error_report() should yield a short error string
      without newlines.
      
      A few places try to print additional help after the error message by
      embedding newlines in the error string.  That's nice, but let's do it
      the right way.  Commit 474c2134 cleaned up some, but they keep coming
      back.  Offenders tracked down with the Coccinelle semantic patch from
      commit 312fd5f2.
      
      Cc: Laszlo Ersek <lersek@redhat.com>
      Cc: Pavel Fedin <p.fedin@samsung.com>
      Signed-off-by: NMarkus Armbruster <armbru@pond.sub.org>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      433672b0
    • M
      error: Use error_reportf_err() where it makes obvious sense · c29b77f9
      Markus Armbruster 提交于
      Done with this Coccinelle semantic patch
      
          @@
          expression FMT, E, S;
          expression list ARGS;
          @@
          -    error_report(FMT, ARGS, error_get_pretty(E));
          +    error_reportf_err(E, FMT/*@@@*/, ARGS);
          (
          -    error_free(E);
          |
      	 exit(S);
          |
      	 abort();
          )
      
      followed by a replace of '%s"/*@@@*/' by '"' and some line rewrapping,
      because I can't figure out how to make Coccinelle transform strings.
      
      We now use the error whole instead of just its message obtained with
      error_get_pretty().  This avoids suppressing its hint (see commit
      50b7b000), but I can't see how the errors touched in this commit could
      come with hints.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1450452927-8346-12-git-send-email-armbru@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      c29b77f9
    • M
      Use error_fatal to simplify obvious fatal errors · 007b0657
      Markus Armbruster 提交于
      Done with this Coccinelle semantic patch:
      
          @@
          type T;
          identifier FUN, RET;
          expression list ARGS;
          expression ERR, EC;
          @@
          (
          -    T RET = FUN(ARGS, &ERR);
          +    T RET = FUN(ARGS, &error_fatal);
          |
          -    RET = FUN(ARGS, &ERR);
          +    RET = FUN(ARGS, &error_fatal);
          |
          -    FUN(ARGS, &ERR);
          +    FUN(ARGS, &error_fatal);
          )
          -    if (ERR != NULL) {
          -        error_report_err(ERR);
          -        exit(EC);
          -    }
      
      This is actually a more elegant version of my initial semantic patch
      by courtesy of Eduardo.
      
      It leaves dead Error * variables behind, cleaned up manually.
      
      Cc: qemu-arm@nongnu.org
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      007b0657
  7. 10 1月, 2016 1 次提交
  8. 23 12月, 2015 1 次提交
    • X
      nvdimm acpi: build ACPI NFIT table · 87252e1b
      Xiao Guangrong 提交于
      NFIT is defined in ACPI 6.0: 5.2.25 NVDIMM Firmware Interface Table (NFIT)
      
      Currently, we only support PMEM mode. Each device has 3 structures:
      - SPA structure, defines the PMEM region info
      
      - MEM DEV structure, it has the @handle which is used to associate specified
        ACPI NVDIMM  device we will introduce in later patch.
        Also we can happily ignored the memory device's interleave, the real
        nvdimm hardware access is hidden behind host
      
      - DCR structure, it defines vendor ID used to associate specified vendor
        nvdimm driver. Since we only implement PMEM mode this time, Command
        window and Data window are not needed
      
      The NVDIMM functionality is controlled by the parameter, 'nvdimm', which
      is introduced for the machine, there is a example to enable it:
      -machine pc,nvdimm -m 8G,maxmem=100G,slots=100  -object \
      memory-backend-file,id=mem1,share,mem-path=/tmp/nvdimm1,size=10G -device \
      nvdimm,memdev=mem1,id=nv1
      
      It is disabled on default
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NXiao Guangrong <guangrong.xiao@linux.intel.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      87252e1b
  9. 22 12月, 2015 5 次提交
  10. 18 12月, 2015 1 次提交
    • P
      kvm: x86: add support for KVM_CAP_SPLIT_IRQCHIP · 15eafc2e
      Paolo Bonzini 提交于
      This patch adds support for split IRQ chip mode. When
      KVM_CAP_SPLIT_IRQCHIP is enabled:
      
          1.) The PIC, PIT, and IOAPIC are implemented in userspace while
          the LAPIC is implemented by KVM.
      
          2.) The software IOAPIC delivers interrupts to the KVM LAPIC via
          kvm_set_irq. Interrupt delivery is configured via the MSI routing
          table, for which routes are reserved in target-i386/kvm.c then
          configured in hw/intc/ioapic.c
      
          3.) KVM delivers IOAPIC EOIs via a new exit KVM_EXIT_IOAPIC_EOI,
          which is handled in target-i386/kvm.c and relayed to the software
          IOAPIC via ioapic_eoi_broadcast.
      Signed-off-by: NMatt Gingell <gingell@google.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      15eafc2e
  11. 12 11月, 2015 1 次提交
  12. 29 10月, 2015 2 次提交
  13. 22 10月, 2015 1 次提交
  14. 19 10月, 2015 1 次提交
  15. 09 10月, 2015 1 次提交
  16. 03 10月, 2015 4 次提交
  17. 02 10月, 2015 2 次提交
  18. 18 9月, 2015 1 次提交
    • M
      Fix bad error handling after memory_region_init_ram() · f8ed85ac
      Markus Armbruster 提交于
      Symptom:
      
          $ qemu-system-x86_64 -m 10000000
          Unexpected error in ram_block_add() at /work/armbru/qemu/exec.c:1456:
          upstream-qemu: cannot set up guest memory 'pc.ram': Cannot allocate memory
          Aborted (core dumped)
      
      Root cause: commit ef701d7b screwed up handling of out-of-memory
      conditions.  Before the commit, we report the error and exit(1), in
      one place, ram_block_add().  The commit lifts the error handling up
      the call chain some, to three places.  Fine.  Except it uses
      &error_abort in these places, changing the behavior from exit(1) to
      abort(), and thus undoing the work of commit 39228250 "exec: Don't
      abort when we can't allocate guest memory".
      
      The three places are:
      
      * memory_region_init_ram()
      
        Commit 49946538 (right after commit ef701d7b) lifted the error
        handling further, through memory_region_init_ram(), multiplying the
        incorrect use of &error_abort.  Later on, imitation of existing
        (bad) code may have created more.
      
      * memory_region_init_ram_ptr()
      
        The &error_abort is still there.
      
      * memory_region_init_rom_device()
      
        Doesn't need fixing, because commit 33e0eb52 (soon after commit
        ef701d7b) lifted the error handling further, and in the process
        changed it from &error_abort to passing it up the call chain.
        Correct, because the callers are realize() methods.
      
      Fix the error handling after memory_region_init_ram() with a
      Coccinelle semantic patch:
      
          @r@
          expression mr, owner, name, size, err;
          position p;
          @@
                  memory_region_init_ram(mr, owner, name, size,
          (
          -                              &error_abort
          +                              &error_fatal
          |
                                         err@p
          )
                                        );
          @script:python@
              p << r.p;
          @@
          print "%s:%s:%s" % (p[0].file, p[0].line, p[0].column)
      
      When the last argument is &error_abort, it gets replaced by
      &error_fatal.  This is the fix.
      
      If the last argument is anything else, its position is reported.  This
      lets us check the fix is complete.  Four positions get reported:
      
      * ram_backend_memory_alloc()
      
        Error is passed up the call chain, ultimately through
        user_creatable_complete().  As far as I can tell, it's callers all
        handle the error sanely.
      
      * fsl_imx25_realize(), fsl_imx31_realize(), dp8393x_realize()
      
        DeviceClass.realize() methods, errors handled sanely further up the
        call chain.
      
      We're good.  Test case again behaves:
      
          $ qemu-system-x86_64 -m 10000000
          qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory
          [Exit 1 ]
      
      The next commits will repair the rest of commit ef701d7b's damage.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1441983105-26376-3-git-send-email-armbru@redhat.com>
      Reviewed-by: NPeter Crosthwaite <crosthwaite.peter@gmail.com>
      f8ed85ac
  19. 10 9月, 2015 2 次提交
  20. 09 9月, 2015 1 次提交