1. 02 10月, 2015 1 次提交
  2. 24 9月, 2015 1 次提交
  3. 19 9月, 2015 2 次提交
  4. 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
  5. 07 9月, 2015 3 次提交
  6. 03 9月, 2015 3 次提交
  7. 15 7月, 2015 1 次提交
  8. 02 7月, 2015 1 次提交
    • C
      s390x/migration: Introduce 2.4 machine · c4d3c0a2
      Christian Borntraeger 提交于
      The section footer changes commit f68945d4 ("Add a protective
      section footer") and commit 37fb569c ("Disable section footers
      on older machine types") broke migration for any non-versioned
      machines.
      
      This pinpoints a problem of s390-ccw machines: it needs to
      be versioned to be compatible with future changes in common
      code data structures such as section footers.
      
      Let's introduce a version scheme for s390-ccw-virtio machines.
      We will use the old s390-ccw-virtio name as alias to the latest
      version as all existing libvirt XML for the ccw type were expanded
      by libvirt to that name.
      
      The only downside of this patch is, that the old alias s390-ccw
      will no longer be available as machines can have only one alias,
      but it should not really matter.
      
      Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
      Cc: Juan Quintela <quintela@redhat.com>
      Cc: Boris Fiuczynski <fiuczy@linux.vnet.ibm.com>
      Cc: Jason J. Herne <jjherne@linux.vnet.ibm.com>
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Message-Id: <1435742217-62246-1-git-send-email-borntraeger@de.ibm.com>
      Reviewed-by: NJuan Quintela <quintela@redhat.com>
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      c4d3c0a2
  9. 17 6月, 2015 1 次提交
  10. 31 5月, 2015 1 次提交
  11. 16 3月, 2015 2 次提交
  12. 10 3月, 2015 1 次提交
  13. 13 2月, 2015 1 次提交
  14. 12 1月, 2015 2 次提交
  15. 09 9月, 2014 1 次提交
  16. 01 9月, 2014 1 次提交
  17. 25 8月, 2014 2 次提交
  18. 28 5月, 2014 1 次提交
  19. 27 2月, 2014 1 次提交
  20. 30 8月, 2013 1 次提交
  21. 28 8月, 2013 1 次提交
    • M
      hw: Clean up bogus default boot order · c1654732
      Markus Armbruster 提交于
      We set default boot order "cad" in every single machine definition
      except "pseries" and "moxiesim", even though very few boards actually
      care for boot order, and "cad" makes sense for even fewer.
      
      Machines that care:
      
      * pc and its variants
      
        Accept up to three letters 'a', 'b' (undocumented alias for 'a'),
        'c', 'd' and 'n'.  Reject all others (fatal with -boot).
      
      * nseries (n800, n810)
      
        Check whether order starts with 'n'.  Silently ignored otherwise.
      
      * prep, g3beige, mac99
      
        Extract the first character the machine understands (subset of
        'a'..'f').  Silently ignored otherwise.
      
      * spapr
      
        Accept an arbitrary string (vl.c restricts it to contain only
        'a'..'p', no duplicates).
      
      * sun4[mdc]
      
        Use the first character.  Silently ignored otherwise.
      
      Strip characters these machines ignore from their default boot order.
      
      For all other machines, remove the unused default boot order
      alltogether.
      
      Note that my rename of QEMUMachine member boot_order to
      default_boot_order and QEMUMachineInitArgs member boot_device to
      boot_order has a welcome side effect: it makes every use of boot
      orders visible in this patch, for easy review.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      c1654732
  22. 04 7月, 2013 1 次提交
  23. 27 4月, 2013 2 次提交
  24. 12 4月, 2013 1 次提交
  25. 27 3月, 2013 1 次提交
  26. 01 3月, 2013 1 次提交
    • P
      hw: include hw header files with full paths · 83c9f4ca
      Paolo Bonzini 提交于
      Done with this script:
      
      cd hw
      for i in `find . -name '*.h' | sed 's/^..//'`; do
        echo '\,^#.*include.*["<]'$i'[">], s,'$i',hw/&,'
      done | sed -i -f - `find . -type f`
      
      This is so that paths remain valid as files are moved.
      
      Instead, files in hw/dataplane are referenced with the relative path.
      We know they are not going to move to include/, and they are the only
      include files that are in subdirectories _and_ move.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      83c9f4ca
  27. 30 1月, 2013 1 次提交