1. 13 5月, 2015 1 次提交
  2. 12 5月, 2015 22 次提交
  3. 11 5月, 2015 17 次提交
    • P
      Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging · 0403b0f5
      Peter Maydell 提交于
      pc, virtio enhancements
      
      Memory hot-unplug support for pc, MSI-X
      mapping update speedup for virtio-pci,
      misc refactorings and bugfixes.
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      
      # gpg: Signature made Mon May 11 08:23:43 2015 BST using RSA key ID D28D5469
      # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>"
      # gpg:                 aka "Michael S. Tsirkin <mst@redhat.com>"
      
      * remotes/mst/tags/for_upstream: (28 commits)
        acpi: update expected files for memory unplug
        virtio-scsi: Move DEFINE_VIRTIO_SCSI_FEATURES to virtio-scsi
        virtio-net: Move DEFINE_VIRTIO_NET_FEATURES to virtio-net
        pci: Merge pci_nic_init() into pci_nic_init_nofail()
        acpi: add a missing backslash to the \_SB scope.
        qmp-event: add event notification for memory hot unplug error
        acpi: add hardware implementation for memory hot unplug
        acpi: fix "Memory device control fields" register
        acpi: extend aml_field() to support UpdateRule
        acpi, mem-hotplug: add unplug cb for memory device
        acpi, mem-hotplug: add unplug request cb for memory device
        acpi, mem-hotplug: add acpi_memory_slot_status() to get MemStatus
        docs: update documentation for memory hot unplug
        virtio: coding style tweak
        pci: remove hard-coded bar size in msix_init_exclusive_bar()
        virtio-pci: speedup MSI-X masking and unmasking
        virtio: introduce vector to virtqueues mapping
        virtio-ccw: using VIRTIO_NO_VECTOR instead of 0 for invalid virtqueue
        monitor: check return value of qemu_find_net_clients_except()
        monitor: replace the magic number 255 with MAX_QUEUE_NUM
        ...
      
      Conflicts:
      	hw/s390x/s390-virtio-bus.c
      
      [PMM: fixed conflict in s390_virtio_scsi_properties and
      s390_virtio_net_properties arrays; since the result of the
      two conflicting patches is to empty the property arrays
      completely, the conflict resolution is to remove them entirely.]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      0403b0f5
    • P
      Merge remote-tracking branch 'remotes/bkoppelmann/tags/pull-tricore-20150511' into staging · 266745ca
      Peter Maydell 提交于
      TriCore bugfixes
      
      # gpg: Signature made Mon May 11 13:26:40 2015 BST using RSA key ID 6B69CA14
      # gpg: Good signature from "Bastian Koppelmann <kbastian@mail.uni-paderborn.de>"
      
      * remotes/bkoppelmann/tags/pull-tricore-20150511:
        target-tricore: fix rfe not restoring the PC
        target-tricore: fix rslcx restoring the upper context instead of the lower
        target-tricore: fix BO_OFF10_SEXT calculating the wrong offset
        target-tricore: fix SLR_LD_W and SLR_LD_W_POSTINC insn being a 2 byte memory access insted of 4
        target-tricore: Fix LOOP using wrong register for compare
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      266745ca
    • D
      rocker: timestamp on the debug logs helps correlate with events in the VM · 7db161f6
      David Ahern 提交于
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NJiri Pirko <jiri@resnulli.us>
      Message-id: 1426306173-24884-10-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      7db161f6
    • S
      MAINTAINERS: add rocker · de24d3f1
      Scott Feldman 提交于
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NJiri Pirko <jiri@resnulli.us>
      Message-id: 1426306173-24884-9-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      de24d3f1
    • S
      rocker: add tests · 63d2ada2
      Scott Feldman 提交于
      Add some basic test for rocker to test L2/L3/L4 functionality.  Requires an
      external test environment, simp, located here:
      
      https://github.com/scottfeldman/simp
      
      To run tests, simp environment must be installed and a suitable VM image built
      and installed with a Linux 3.18 (or greater) kernel with rocker driver support
      enabled.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Message-id: 1426306173-24884-8-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      63d2ada2
    • S
      rocker: add new rocker switch device · dc488f88
      Scott Feldman 提交于
      Rocker is a simulated ethernet switch device.  The device supports up to 62
      front-panel ports and supports L2 switching and L3 routing functions, as well
      as L2/L3/L4 ACLs.  The device presents a single PCI device for each switch,
      with a memory-mapped register space for device driver access.
      
      Rocker device is invoked with -device, for example a 4-port switch:
      
        -device rocker,name=sw1,len-ports=4,ports[0]=dev0,ports[1]=dev1, \
               ports[2]=dev2,ports[3]=dev3
      
      Each port is a netdev and can be paired with using -netdev id=<port name>.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NJiri Pirko <jiri@resnulli.us>
      Acked-by: NScott Feldman <sfeldma@gmail.com>
      Acked-by: NJiri Pirko <jiri@resnulli.us>
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Message-id: 1426306173-24884-7-git-send-email-sfeldma@gmail.com
      
      rocker: fix clang compiler errors
      
      Consolidate all forward typedef declarations to rocker.h.
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Acked-by: NScott Feldman <sfeldma@gmail.com>
      Acked-by: NJiri Pirko <jiri@resnulli.us>
      
      rocker: add support for flow modification
      
      We had support for flow add/del.  This adds support for flow mod.  I needed
      this for L3 support where an existing route is modified using NLM_F_REPLACE.
      For example:
      
        ip route add 12.0.0.0/30 nexthop via 11.0.0.1 dev swp1
        ip route change 12.0.0.0/30 nexthop via 11.0.0.9 dev swp2
      
      The first cmd adds the route.  The second cmd changes the existing route by
      changing its nexthop info.
      
      In the device, a mod operation results in the matching flow enty being modified
      with the new settings.  This is atomic to the device.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      dc488f88
    • S
      pci: add network device class 'other' for network switches · dc407ae8
      Scott Feldman 提交于
      Rocker is an ethernet switch device, so add 'other' network device class as
      defined by PCI to cover these types of devices.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NJiri Pirko <jiri@resnulli.us>
      Message-id: 1426306173-24884-6-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      dc407ae8
    • S
      pci: add rocker device ID · 5dcc2637
      Scott Feldman 提交于
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NJiri Pirko <jiri@resnulli.us>
      Message-id: 1426306173-24884-5-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      5dcc2637
    • S
      rocker: add register programming guide · bbc53c7e
      Scott Feldman 提交于
      This is the register programming guide for the Rocker device.  It's intended
      for driver writers and device writers.  It covers the device's PCI space,
      the register set, DMA interface, and interrupts.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NJiri Pirko <jiri@resnulli.us>
      Message-id: 1426306173-24884-4-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      bbc53c7e
    • S
      virtio-net: use qemu_mac_strdup_printf · b0575ba4
      Scott Feldman 提交于
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Message-id: 1426306173-24884-3-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      b0575ba4
    • S
      net: add MAC address string printer · 890ee6ab
      Scott Feldman 提交于
      We can use this in virtio-net code as well as new Rocker driver code, so
      up-level this.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Message-id: 1426306173-24884-2-git-send-email-sfeldma@gmail.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      890ee6ab
    • J
      scripts: qmp-shell: Add verbose flag · 1ceca07e
      John Snow 提交于
      Add a verbose flag that shows the QMP command that was
      constructed, to allow for later copy/pasting, reference,
      debugging, etc.
      
      The QMP is converted from a Python literal to JSON first,
      to ensure that it is viable input to the actual QMP parser.
      
      As a side-effect, this JSON output will helpfully show all
      the necessary conversions that were performed on the input,
      illustrating that "True" was transformed back into "true",
      literal values are now escaped with "" instead of '', and so on.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Tested-by: NKashyap Chamarthy <kchamart@redhat.com>
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      1ceca07e
    • J
      scripts: qmp-shell: add transaction subshell · 30bd6815
      John Snow 提交于
      Add a special processing mode to craft transactions.
      
      By entering "transaction(" the shell will enter a special
      mode where each subsequent command will be saved as a transaction
      instead of executed as an individual command.
      
      The transaction can be submitted by entering ")" on a line by itself.
      
      Examples:
      
      Separate lines:
      
      (QEMU) transaction(
      TRANS> block-dirty-bitmap-add node=drive0 name=bitmap1
      TRANS> block-dirty-bitmap-clear node=drive0 name=bitmap0
      TRANS> )
      
      With a transaction action included on the first line:
      
      (QEMU) transaction( block-dirty-bitmap-add node=drive0 name=bitmap2
      TRANS> block-dirty-bitmap-add node=drive0 name=bitmap3
      TRANS> )
      
      As a one-liner, with just one transaction action:
      
      (QEMU) transaction( block-dirty-bitmap-add node=drive0 name=bitmap0 )
      
      As a side-effect of this patch, blank lines are now parsed as no-ops,
      regardless of which shell mode you are in.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Tested-by: NKashyap Chamarthy <kchamart@redhat.com>
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      30bd6815
    • J
      scripts: qmp-shell: Expand support for QMP expressions · 6092c3ec
      John Snow 提交于
      This includes support for [] expressions, single-quotes in
      QMP expressions (which is not strictly a part of JSON), and
      the ability to use "True", "False" and "None" literals instead
      of JSON's equivalent true, false, and null literals.
      
      qmp-shell currently allows you to describe values as
      JSON expressions:
      key={"key":{"key2":"val"}}
      
      But it does not currently support arrays, which are needed
      for serializing and deserializing transactions:
      key=[{"type":"drive-backup","data":{...}}]
      
      qmp-shell also only currently accepts doubly quoted strings
      as-per JSON spec, but QMP allows single quotes.
      
      Lastly, python allows you to utilize "True" or "False" as
      boolean literals, but JSON expects "true" or "false". Expand
      qmp-shell to allow the user to type either, converting to the
      correct type.
      
      As a consequence of the above, the key=val parsing is also improved
      to give better error messages if a key=val token is not provided.
      
      CAVEAT: The parser is still extremely rudimentary and does not
      expect to find spaces in {} nor [] expressions. This patch does
      not improve this functionality.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Tested-by: NKashyap Chamarthy <kchamart@redhat.com>
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      6092c3ec
    • J
      scripts: qmp-shell: refactor helpers · a7430a0b
      John Snow 提交于
      Refactor the qmp-shell command line processing function
      into two components. This will be used to allow sub-expressions,
      which will assist us in adding transactional support to qmp-shell.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Tested-by: NKashyap Chamarthy <kchamart@redhat.com>
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      a7430a0b
    • L
      MAINTAINERS: New maintainer for QMP and QAPI · 9740618c
      Luiz Capitulino 提交于
      Markus is taking over maintership of QMP and the QAPI from
      me. Markus has always been a great reviewer and contributor
      to those subsystems. In the last few months he's also doing
      pull requests that are a lot more relevant than the ones I
      was able to do. So, this is a natural move.
      
      I'm still the maintainer of HMP and QObjects, but I'm
      looking for someone to take over those too.
      
      PS: This commit also fixes the file listing for the QMP
          entry.
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Reviewed-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      9740618c
    • E
      json-parser: Accept 'null' in QMP · e549e716
      Eric Blake 提交于
      We document that in QMP, the client may send any json-value
      for the optional "id" key, and then return that same value
      on reply (both success and failures, insofar as the failure
      happened after parsing the id).  [Note that the output may
      not be identical to the input, as whitespace may change and
      since we may reorder keys within a json-object, but that this
      still constitutes the same json-value].  However, we were not
      handling the JSON literal null, which counts as a json-value
      per RFC 7159.
      
      Also, down the road, given the QAPI schema of {'*foo':'str'} or
      {'*foo':'ComplexType'}, we could decide to allow the QMP client
      to pass { "foo":null } instead of the current representation of
      { } where omitting the key is the only way to get at the default
      NULL value.  Such a change might be useful for argument
      introspection (if a type in older qemu lacks 'foo' altogether,
      then an explicit "foo":null probe will force an easily
      distinguished error message for whether the optional "foo" key
      is even understood in newer qemu).  And if we add default values
      to optional arguments, allowing an explicit null would be
      required for getting a NULL value associated with an optional
      string that has a non-null default.  But all that can come at a
      later day.
      
      The 'check-unit' testsuite is enhanced to test that parsing
      produces the same object as explicitly requesting a reference
      to the special qnull object.  In addition, I tested with:
      
      $ ./x86_64-softmmu/qemu-system-x86_64 -qmp stdio -nodefaults
      {"QMP": {"version": {"qemu": {"micro": 91, "minor": 2, "major": 2}, "package": ""}, "capabilities": []}}
      {"execute":"qmp_capabilities","id":null}
      {"return": {}, "id": null}
      {"id":{"a":null,"b":[1,null]},"execute":"quit"}
      {"return": {}, "id": {"a": null, "b": [1, null]}}
      {"timestamp": {"seconds": 1427742379, "microseconds": 423128}, "event": "SHUTDOWN"}
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      e549e716