1. 07 6月, 2017 18 次提交
  2. 06 6月, 2017 22 次提交
    • P
      Merge remote-tracking branch 'remotes/armbru/tags/pull-misc-2017-06-06' into staging · 572db7cd
      Peter Maydell 提交于
      Miscellaneous patches for 2017-06-06
      
      # gpg: Signature made Tue 06 Jun 2017 08:30:43 BST
      # gpg:                using RSA key 0x3870B400EB918653
      # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
      # gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>"
      # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653
      
      * remotes/armbru/tags/pull-misc-2017-06-06:
        monitor: fix object_del for command-line-created objects
        tests: check-qom-proplist: add checks for cmdline-created objects
        virtio-scsi-test: Use scsi-hd instead of legacy scsi-disk
        block: Clarify documentation of BlockInfo member io-status
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      572db7cd
    • P
      Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.10-20170606' into staging · e02bbe19
      Peter Maydell 提交于
      ppc patch queue 2017-06-06
      
      Accumulated patches for ppc targets and the pseries machine type.
      
      The big thing in this batch is a start on a substantial cleanup of the
      pseries hotplug mechanisms, which were pretty confusing.  For now
      these shouldn't cause substantial behavioural changes, but I am hoping
      these lead to clearer code and eventually to fixes for the bugs we
      have in hotplug handling, particularly when hotplug and migration are
      combined.
      
      The remaining patches are mostly bugfixes.
      
      # gpg: Signature made Tue 06 Jun 2017 03:48:50 BST
      # gpg:                using RSA key 0x6C38CACA20D9B392
      # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
      # gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>"
      # gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
      # gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>"
      # Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392
      
      * remotes/dgibson/tags/ppc-for-2.10-20170606:
        spapr: Remove some non-useful properties on DRC objects
        spapr: Eliminate spapr_drc_get_type_str()
        spapr: Move configure-connector state into DRC
        spapr: Clean up spapr_dr_connector_by_*()
        spapr: Introduce DRC subclasses
        spapr/drc: don't migrate DRC of cold-plugged CPUs and LMBs
        spapr: Allow boot from vhost-*-scsi backends
        ppc/pnv: check the return value of fdt_setprop()
        spapr_nvram: Check return value from blk_getlength()
        target/ppc: Fixup set_spr error in h_register_process_table
        target-ppc: Fix openpic timer read register offset
        spapr: Make DRC get_index and get_type methods into plain functions
        spapr: Abolish DRC set_configured method
        spapr: Abolish DRC get_fdt method
        spapr: Move DRC RTAS calls into spapr_drc.c
        migration: Mark CPU states dirty before incoming migration/loadvm
        migration: remove register_savevm()
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      e02bbe19
    • M
      target/xtensa: handle unknown registers in gdbstub · dd7b952b
      Max Filippov 提交于
      Xtensa cores may have registers of types/sizes not supported by the
      gdbstub accessors. Ignore writes to such registers and return zero on
      read, but always return correct register size, so that gdb on the other
      side is able to access all registers in the packet holding unsupported
      registers in the middle. This fixes gdb interaction with cores that have
      vector/custom TIE registers.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      dd7b952b
    • M
      target/xtensa: support output to chardev console · 8128b3e0
      Max Filippov 提交于
      In semihosting mode QEMU allows guest to read and write host file
      descriptors directly, including descriptors 0..2, a.k.a. stdin, stdout
      and stderr. Sometimes it's desirable to have semihosting console
      controlled by -serial option, e.g. to connect it to network.
      
      Add semihosting console to xtensa-semi.c, open it in the 'sim' machine
      in the presence of -serial option and direct stdout and stderr to it
      when it's present.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      8128b3e0
    • M
      target/xtensa: fix return value of read/write simcalls · 347ec030
      Max Filippov 提交于
      Return value of read/write simcalls is not calculated correctly in case
      of operations crossing page boundary and in case of short reads/writes.
      Read and write simcalls should return the size of data actually
      read/written or -1 in case of error.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      347ec030
    • M
      target/xtensa: fix mapping direction in read/write simcalls · 30c2afd1
      Max Filippov 提交于
      Read and write simcalls map physical memory to access I/O buffers, but
      'read' simcall need to map it for writing and 'write' simcall need to
      map it for reading, i.e. the opposite of what they do now. Fix that.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      30c2afd1
    • P
      Merge remote-tracking branch 'remotes/ehabkost/tags/x86-and-machine-pull-request' into staging · a65afaae
      Peter Maydell 提交于
      x86 and machine queue, 2017-06-05
      
      # gpg: Signature made Mon 05 Jun 2017 19:58:01 BST
      # gpg:                using RSA key 0x2807936F984DC5A6
      # gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>"
      # Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6
      
      * remotes/ehabkost/tags/x86-and-machine-pull-request:
        scripts: Test script to look for -device crashes
        qemu.py: Add QEMUMachine.exitcode() method
        qemu.py: Don't set _popen=None on error/shutdown
        spapr: cleanup spapr_fixup_cpu_numa_dt() usage
        numa: move numa_node from CPUState into target specific classes
        numa: make hmp 'info numa' fetch numa nodes from qmp_query_cpus() result
        numa: make sure that all cpus have has_node_id set if numa is enabled
        numa: move default mapping init to machine
        numa: consolidate cpu_preplug fixups/checks for pc/arm/spapr
        pc: Use "min-[x]level" on compat_props
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      a65afaae
    • M
      monitor: fix object_del for command-line-created objects · c645d5ac
      Michael Roth 提交于
      Currently objects specified on the command-line are only partially
      cleaned up when 'object_del' is issued in either HMP or QMP: the
      object itself is fully finalized, but the QemuOpts are not removed.
      This results in the following behavior:
      
        x86_64-softmmu/qemu-system-x86_64 -monitor stdio \
          -object memory-backend-ram,id=ram1,size=256M
      
        QEMU 2.7.91 monitor - type 'help' for more information
        (qemu) object_del ram1
        (qemu) object_del ram1
        object 'ram1' not found
        (qemu) object_add memory-backend-ram,id=ram1,size=256M
        Duplicate ID 'ram1' for object
        Try "help object_add" for more information
      
      which can be an issue for use-cases like memory hotplug.
      
      This happens on the HMP side because hmp_object_add() attempts to
      create a temporary QemuOpts entry with ID 'ram1', which ends up
      conflicting with the command-line-created entry, since it was never
      cleaned up during the previous hmp_object_del() call.
      
      We address this by adding a check in user_creatable_del(), which
      is called by both qmp_object_del() and hmp_object_del() to handle
      the actual object cleanup, to determine whether an option group entry
      matching the object's ID is present and removing it if it is.
      
      Note that qmp_object_add() never attempts to create a temporary
      QemuOpts entry, so it does not encounter the duplicate ID error,
      which is why this isn't generally visible in libvirt.
      
      Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
      Cc: Markus Armbruster <armbru@redhat.com>
      Cc: Eric Blake <eblake@redhat.com>
      Cc: Daniel Berrange <berrange@redhat.com>
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Reviewed-by: NDaniel P. Berrange <berrange@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1496531612-22166-3-git-send-email-mdroth@linux.vnet.ibm.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      c645d5ac
    • M
      tests: check-qom-proplist: add checks for cmdline-created objects · a1af255f
      Michael Roth 提交于
      check-qom-proplist originally added tests for verifying that
      object-creation helpers object_new_with_{props,propv} behaved in
      similar fashion to the "traditional" method involving setting each
      individual property separately after object creation rather than
      via a single call.
      
      Another similar "helper" for creating Objects exists in the form of
      objects specified via -object command-line parameters. By that
      rationale, we extend check-qom-proplist to include similar checks
      for command-line-created objects by employing the same
      qemu_opts_parse()-based parsing the vl.c employs.
      
      This parser has a side-effect of parsing the object's options into
      a QemuOpt structure and registering this in the global QemuOptsList
      using the Object's ID. This can conflict with future Object instances
      that attempt to use the same ID if we don't ensure this is cleaned
      up as part of Object finalization, so we include a FIXME stub to test
      for this case, which will then be resolved in a subsequent patch.
      Suggested-by: NDaniel Berrange <berrange@redhat.com>
      Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
      Cc: Markus Armbruster <armbru@redhat.com>
      Cc: Eric Blake <eblake@redhat.com>
      Cc: Daniel Berrange <berrange@redhat.com>
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1496531612-22166-2-git-send-email-mdroth@linux.vnet.ibm.com>
      [Comment formatting tidied up]
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      a1af255f
    • M
      virtio-scsi-test: Use scsi-hd instead of legacy scsi-disk · 8ee47a88
      Markus Armbruster 提交于
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1494327362-30727-3-git-send-email-armbru@redhat.com>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      8ee47a88
    • M
      block: Clarify documentation of BlockInfo member io-status · f6f55aff
      Markus Armbruster 提交于
      Say "SCSI except scsi-generic" instead of "scsi-disk", because
      scsi-disk could mean either scsi-disk.c (which is correct) or device
      model scsi-disk (which would be incorrect).
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1494327362-30727-2-git-send-email-armbru@redhat.com>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      f6f55aff
    • D
      spapr: Remove some non-useful properties on DRC objects · 91dcb1ff
      David Gibson 提交于
       * 'connector_type' is easily derived from the 'index' property, so there's
         no point to it (it's also implicit in the QOM type of the DRC)
       * 'isolation-state', 'indicator-state' and 'allocation-state' are
         part of the transaction between qemu and guest during PAPR hotplug
         operations, and outside tools really have no business looking at it
         (especially not changing, and these were RW properties)
       * 'entity-sense' is basically just a weird PAPR encoding of whether there
         is a device connected to this DRC
      
      Strictly speaking removing these properties is breaking the qemu interface.
      However, I'm pretty sure no management tools have ever used these.  For
      debugging there are better alternatives.  Therefore, I think removing these
      broken interfaces is the better option.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Acked-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      91dcb1ff
    • D
      spapr: Eliminate spapr_drc_get_type_str() · 1693ea16
      David Gibson 提交于
      This function was used in generating the device tree.  However, now that
      we have different QOM types for different DRC types we can easily store
      the information we need in the class structure and avoid this specialized
      lookup function.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Acked-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      1693ea16
    • D
      spapr: Move configure-connector state into DRC · b8fdd530
      David Gibson 提交于
      Currently the sPAPRMachineState contains a list of sPAPRConfigureConnector
      structures which store intermediate state for the ibm,configure-connector
      RTAS call.
      
      This was an attempt to separate this state from the core of the DRC state.
      However the configure connector process is intimately tied to the DRC
      model, so there's really no point trying to have two levels of interface
      here.
      
      Moving the configure-connector state into its corresponding DRC allows
      removal of a number of helpers for maintaining the anciliary list.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Acked-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      b8fdd530
    • D
      spapr: Clean up spapr_dr_connector_by_*() · fbf55397
      David Gibson 提交于
       * Change names to something less ludicrously verbose
       * Now that we have QOM subclasses for the different DRC types, use a QOM
         typename instead of a PAPR type value parameter
      
      The latter allows removal of the get_type_shift() helper.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Acked-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      fbf55397
    • D
      spapr: Introduce DRC subclasses · 2d335818
      David Gibson 提交于
      Currently we only have a single QOM type for all DRCs, but lots of
      places where we switch behaviour based on the DRC's PAPR defined type.
      This is a poor use of our existing type system.
      
      So, instead create QOM subclasses for each PAPR defined DRC type.  We
      also introduce intermediate subclasses for physical and logical DRCs,
      a division which will be useful later on.
      
      Instead of being stored in the DRC object itself, the PAPR type is now
      stored in the class structure.  There are still many places where we
      switch directly on the PAPR type value, but this at least provides the
      basis to start to remove those.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Acked-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      2d335818
    • G
      spapr/drc: don't migrate DRC of cold-plugged CPUs and LMBs · a32e900b
      Greg Kurz 提交于
      As explained in commit 5c0139a8 ("spapr: fix default DRC state for
      coldplugged LMBs"), guests expect cold-plugged LMBs to be pre-allocated
      and unisolated. The same goes for cold-plugged CPUs.
      
      While here, let's convert g_assert(false) to the better self documenting
      g_assert_not_reached().
      Signed-off-by: NGreg Kurz <groug@kaod.org>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      a32e900b
    • F
      spapr: Allow boot from vhost-*-scsi backends · c4e13492
      Felipe Franciosi 提交于
      The current implementation of spapr_get_fw_dev_path() doesn't take into
      consideration vhost-*-scsi devices. This makes said devices unbootable
      on PPC as SLOF is unable to work out the path to scan boot disks.
      
      This makes VMs bootable on spapr when using vhost-*-scsi by implementing
      a disk path for VHostSCSICommon (which currently includes both
      vhost-user-scsi and vhost-scsi).
      Signed-off-by: NFelipe Franciosi <felipe@nutanix.com>
      Signed-off-by: NMike Cui <cui@nutanix.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      c4e13492
    • C
      ppc/pnv: check the return value of fdt_setprop() · 7032d92a
      Cédric Le Goater 提交于
      Signed-off-by: NCédric Le Goater <clg@kaod.org>
      [dwg: Correct typo in commit message]
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      7032d92a
    • P
      spapr_nvram: Check return value from blk_getlength() · 05249517
      Peter Maydell 提交于
      The blk_getlength() function can return an error value if the
      image size cannot be determined. Check for this rather than
      ploughing on and trying to g_malloc0() a negative number.
      (Spotted by Coverity, CID 1288484.)
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      05249517
    • S
      target/ppc: Fixup set_spr error in h_register_process_table · 60694bc6
      Suraj Jitindar Singh 提交于
      set_spr is used in the function h_register_process_table() to update the
      LPCR_GTSE and LPCR_UPRT values based on the flags passed by the guest.
      The set_spr function takes the last two arguments mask and value used to
      mask and set the value of the spr respectively.
      
      The current call site passes these arguments in the wrong order and thus
      bot GTSE and UPRT will be set irrespective, which is obviously
      incorrect.
      
      Rearrange the function call so that these arguments are passed in the
      correct order and the correct behaviour is exhibited.
      
      It is worth noting that this wasn't detected earlier since these were
      always both set in all cases where this H_CALL was made.
      
      Fixes: 6de83307 ("target/ppc: Set UPRT and GTSE on all cpus in H_REGISTER_PROCESS_TABLE")
      Signed-off-by: NSuraj Jitindar Singh <sjitindarsingh@gmail.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      60694bc6
    • A
      target-ppc: Fix openpic timer read register offset · a09f7443
      Aaron Larson 提交于
      openpic_tmr_read() is incorrectly computing register offset of the
      TCCR, TBCR, TVPR, and TDR registers when accessing the open pic timer
      registers.  Specifically the offset of timer registers for
      openpic_tmr_read() is not accounting for the timer frequency reporting
      register (TFFR) which is the first register in the "tmr" memory
      region.
      
      openpic_tmr_write() *is* correctly computing the offset by adding
      0x10f0 to the address prior to computing the register index.  This
      patch instead subtracts 0x10 in both the read and write routines and
      eliminates some other gratuitous differences between the functions.
      Signed-off-by: NAaron Larson <alarson@ddci.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      a09f7443