1. 21 6月, 2016 17 次提交
  2. 17 6月, 2016 8 次提交
  3. 16 6月, 2016 2 次提交
  4. 14 6月, 2016 1 次提交
  5. 08 6月, 2016 4 次提交
  6. 07 6月, 2016 2 次提交
  7. 03 6月, 2016 1 次提交
    • D
      e1000e: Fix build with ust trace backend · defbaec1
      Dmitry Fleytman 提交于
      ust trace backend has limitation of maximum 10
      arguments per event. Traces with more arguments
      cannot be compiled for this backend.
      
      Trace e1000e_rx_rss_ip6 introduced by previous
      commits has 11 arguments and fails to compile with
      ust trace backend.
      
      This patch fixes the problem by splitting this
      tracepoint into two successive tracepoints with
      smaller number of arguments.
      
      For more information see comment regarding TP_ARGS
      in lttng/tracepoint.h:
      
      /*
      * TP_ARGS takes tuples of type, argument separated by a comma.
      * It can take up to 10 tuples (which means that less than 10 tuples is
      * fine too).
      * Each tuple is also separated by a comma.
      */
      
      Build log generated by this problem:
      
      In file included from ./trace/generated-tracers.h:9:0,
                       from /home/travis/build/qemu/qemu/include/trace.h:4,
                       from util/oslib-posix.c:36:
      ./trace/generated-ust-provider.h:16556:3: error: unknown type name ‘_TP_EXPROTO_Bool’
      In file included from /home/travis/build/qemu/qemu/include/trace.h:4:0,
                       from util/oslib-posix.c:36:
      ./trace/generated-tracers.h: In function ‘trace_e1000e_rx_rss_ip6’:
      ./trace/generated-tracers.h:8379:431: error: expected string literal before ‘_SDT_ASM_OPERANDS_ipv6_enabled’
      ./trace/generated-tracers.h:8379:431: error: implicit declaration of function ‘__tracepoint_cb_qemu___e1000e_rx_rss_ip6’ [-Werror=implicit-function-declaration]
      ./trace/generated-tracers.h:8379:431: error: nested extern declaration of ‘__tracepoint_cb_qemu___e1000e_rx_rss_ip6’ [-Werror=nested-externs]
      cc1: all warnings being treated as errors
      make: *** [util/oslib-posix.o] Error 1
      make: *** Waiting for unfinished jobs....
      In file included from ./trace/generated-tracers.h:9:0,
                       from /home/travis/build/qemu/qemu/include/trace.h:4,
                       from util/hbitmap.c:16:
      ./trace/generated-ust-provider.h:16556:3: error: unknown type name ‘_TP_EXPROTO_Bool’
      In file included from /home/travis/build/qemu/qemu/include/trace.h:4:0,
                       from util/hbitmap.c:16:
      ./trace/generated-tracers.h: In function ‘trace_e1000e_rx_rss_ip6’:
      ./trace/generated-tracers.h:8379:431: error: expected string literal before ‘_SDT_ASM_OPERANDS_ipv6_enabled’
      ./trace/generated-tracers.h:8379:431: error: implicit declaration of function ‘__tracepoint_cb_qemu___e1000e_rx_rss_ip6’ [-Werror=implicit-function-declaration]
      ./trace/generated-tracers.h:8379:431: error: nested extern declaration of ‘__tracepoint_cb_qemu___e1000e_rx_rss_ip6’ [-Werror=nested-externs]
      cc1: all warnings being treated as errors
      make: *** [util/hbitmap.o] Error 1
      Signed-off-by: NDmitry Fleytman <dmitry@daynix.com>
      Message-id: 1464894748-27803-1-git-send-email-dmitry@daynix.com
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      defbaec1
  8. 02 6月, 2016 3 次提交
    • D
      net: Introduce e1000e device emulation · 6f3fbe4e
      Dmitry Fleytman 提交于
      This patch introduces emulation for the Intel 82574 adapter, AKA e1000e.
      
      This implementation is derived from the e1000 emulation code, and
      utilizes the TX/RX packet abstractions that were initially developed for
      the vmxnet3 device. Although some parts of the introduced code may be
      shared with e1000, the differences are substantial enough so that the
      only shared resources for the two devices are the definitions in
      hw/net/e1000_regs.h.
      
      Similarly to vmxnet3, the new device uses virtio headers for task
      offloads (for backends that support virtio extensions). Usage of
      virtio headers may be forcibly disabled via a boolean device property
      "vnet" (which is enabled by default). In such case task offloads
      will be performed in software, in the same way it is done on
      backends that do not support virtio headers.
      
      The device code is split into two parts:
      
        1. hw/net/e1000e.c: QEMU-specific code for a network device;
        2. hw/net/e1000e_core.[hc]: Device emulation according to the spec.
      
      The new device name is e1000e.
      
      Intel specifications for the 82574 controller are available at:
      http://www.intel.com/content/dam/doc/datasheet/82574l-gbe-controller-datasheet.pdf
      
      Throughput measurement results (iperf2):
      
                      Fedora 22 guest, TCP, RX
          4 ++------------------------------------------+
            |                                           |
            |                           X   X   X   X   X
        3.5 ++          X   X   X   X                   |
            |       X                                   |
            |                                           |
          3 ++                                          |
      G     |   X                                       |
      b     |                                           |
      / 2.5 ++                                          |
      s     |                                           |
            |                                           |
          2 ++                                          |
            |                                           |
            |                                           |
        1.5 X+                                          |
            |                                           |
            +   +   +   +   +   +   +   +   +   +   +   +
          1 ++--+---+---+---+---+---+---+---+---+---+---+
           32  64  128 256 512  1   2   4   8  16  32  64
            B   B   B   B   B   KB  KB  KB  KB KB  KB  KB
                             Buffer size
      
                     Fedora 22 guest, TCP, TX
        18 ++-------------------------------------------+
           |                        X                   |
        16 ++                           X   X   X   X   X
           |                   X                        |
        14 ++                                           |
           |                                            |
        12 ++                                           |
      G    |               X                            |
      b 10 ++                                           |
      /    |                                            |
      s  8 ++                                           |
           |                                            |
         6 ++          X                                |
           |                                            |
         4 ++                                           |
           |       X                                    |
         2 ++  X                                        |
           X   +   +   +   +   +    +   +   +   +   +   +
         0 ++--+---+---+---+---+----+---+---+---+---+---+
          32  64  128 256 512  1    2   4   8  16  32  64
           B   B   B   B   B   KB   KB  KB  KB KB  KB  KB
                             Buffer size
      
                      Fedora 22 guest, UDP, RX
          3 ++------------------------------------------+
            |                                           X
            |                                           |
        2.5 ++                                          |
            |                                           |
            |                                           |
          2 ++                                 X        |
      G     |                                           |
      b     |                                           |
      / 1.5 ++                                          |
      s     |                         X                 |
            |                                           |
          1 ++                                          |
            |                                           |
            |                 X                         |
        0.5 ++                                          |
            |        X                                  |
            X        +        +       +        +        +
          0 ++-------+--------+-------+--------+--------+
           32       64       128     256      512       1
            B        B         B       B        B      KB
                             Datagram size
      
                      Fedora 22 guest, UDP, TX
          1 ++------------------------------------------+
            |                                           X
        0.9 ++                                          |
            |                                           |
        0.8 ++                                          |
        0.7 ++                                          |
            |                                           |
      G 0.6 ++                                          |
      b     |                                           |
      / 0.5 ++                                          |
      s     |                                  X        |
        0.4 ++                                          |
            |                                           |
        0.3 ++                                          |
        0.2 ++                        X                 |
            |                                           |
        0.1 ++                X                         |
            X        X        +       +        +        +
          0 ++-------+--------+-------+--------+--------+
           32       64       128     256      512       1
            B        B         B       B        B      KB
                             Datagram size
      
                    Windows 2012R2 guest, TCP, RX
        3.2 ++------------------------------------------+
            |                                   X       |
          3 ++                                          |
            |                                           |
        2.8 ++                                          |
            |                                           |
        2.6 ++                              X           |
      G     |   X                   X   X           X   X
      b 2.4 ++      X       X                           |
      /     |                                           |
      s 2.2 ++                                          |
            |                                           |
          2 ++                                          |
            |           X       X                       |
        1.8 ++                                          |
            |                                           |
        1.6 X+                                          |
            +   +   +   +   +   +   +   +   +   +   +   +
        1.4 ++--+---+---+---+---+---+---+---+---+---+---+
           32  64  128 256 512  1   2   4   8  16  32  64
            B   B   B   B   B   KB  KB  KB  KB KB  KB  KB
                             Buffer size
      
                   Windows 2012R2 guest, TCP, TX
        14 ++-------------------------------------------+
           |                                            |
           |                                        X   X
        12 ++                                           |
           |                                            |
        10 ++                                           |
           |                                            |
      G    |                                            |
      b  8 ++                                           |
      /    |                                    X       |
      s  6 ++                                           |
           |                                            |
           |                                            |
         4 ++                               X           |
           |                                            |
         2 ++                                           |
           |           X   X            X               |
           +   X   X   +   +   X    X   +   +   +   +   +
         0 X+--+---+---+---+---+----+---+---+---+---+---+
          32  64  128 256 512  1    2   4   8  16  32  64
           B   B   B   B   B   KB   KB  KB  KB KB  KB  KB
                             Buffer size
      
                    Windows 2012R2 guest, UDP, RX
        1.6 ++------------------------------------------X
            |                                           |
        1.4 ++                                          |
            |                                           |
        1.2 ++                                          |
            |                                  X        |
            |                                           |
      G   1 ++                                          |
      b     |                                           |
      / 0.8 ++                                          |
      s     |                                           |
        0.6 ++                        X                 |
            |                                           |
        0.4 ++                                          |
            |                 X                         |
            |                                           |
        0.2 ++       X                                  |
            X        +        +       +        +        +
          0 ++-------+--------+-------+--------+--------+
           32       64       128     256      512       1
            B        B         B       B        B      KB
                             Datagram size
      
                    Windows 2012R2 guest, UDP, TX
        0.6 ++------------------------------------------+
            |                                           X
            |                                           |
        0.5 ++                                          |
            |                                           |
            |                                           |
        0.4 ++                                          |
      G     |                                           |
      b     |                                           |
      / 0.3 ++                                 X        |
      s     |                                           |
            |                                           |
        0.2 ++                                          |
            |                                           |
            |                         X                 |
        0.1 ++                                          |
            |                 X                         |
            X        X        +       +        +        +
          0 ++-------+--------+-------+--------+--------+
           32       64       128     256      512       1
            B        B         B       B        B      KB
                             Datagram size
      Signed-off-by: NDmitry Fleytman <dmitry.fleytman@ravellosystems.com>
      Signed-off-by: NLeonid Bloch <leonid.bloch@ravellosystems.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      6f3fbe4e
    • D
      e1000: Move out code that will be reused in e1000e · 093454e2
      Dmitry Fleytman 提交于
      Code that will be shared moved to a separate files.
      Signed-off-by: NDmitry Fleytman <dmitry.fleytman@ravellosystems.com>
      Signed-off-by: NLeonid Bloch <leonid.bloch@ravellosystems.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      093454e2
    • D
      net_pkt: Extend packet abstraction as required by e1000e functionality · eb700029
      Dmitry Fleytman 提交于
      This patch extends the TX/RX packet abstractions with features that will
      be used by the e1000e device implementation.
      
      Changes are:
      
        1. Support iovec lists for RX buffers
        2. Deeper RX packets parsing
        3. Loopback option for TX packets
        4. Extended VLAN headers handling
        5. RSS processing for RX packets
      Signed-off-by: NDmitry Fleytman <dmitry.fleytman@ravellosystems.com>
      Signed-off-by: NLeonid Bloch <leonid.bloch@ravellosystems.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      eb700029
  9. 27 5月, 2016 2 次提交
    • A
      spapr_iommu: Move table allocation to helpers · fec5d3a1
      Alexey Kardashevskiy 提交于
      At the moment presence of vfio-pci devices on a bus affect the way
      the guest view table is allocated. If there is no vfio-pci on a PHB
      and the host kernel supports KVM acceleration of H_PUT_TCE, a table
      is allocated in KVM. However, if there is vfio-pci and we do yet not
      KVM acceleration for these, the table has to be allocated by
      the userspace. At the moment the table is allocated once at boot time
      but next patches will reallocate it.
      
      This moves kvmppc_create_spapr_tce/g_malloc0 and their counterparts
      to helpers.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      fec5d3a1
    • A
      vfio/pci: Intel graphics legacy mode assignment · c4c45e94
      Alex Williamson 提交于
      Enable quirks to support SandyBridge and newer IGD devices as primary
      VM graphics.  This requires new vfio-pci device specific regions added
      in kernel v4.6 to expose the IGD OpRegion, the shadow ROM, and config
      space access to the PCI host bridge and LPC/ISA bridge.  VM firmware
      support, SeaBIOS only so far, is also required for reserving memory
      regions for IGD specific use.  In order to enable this mode, IGD must
      be assigned to the VM at PCI bus address 00:02.0, it must have a ROM,
      it must be able to enable VGA, it must have or be able to create on
      its own an LPC/ISA bridge of the proper type at PCI bus address
      00:1f.0 (sorry, not compatible with Q35 yet), and it must have the
      above noted vfio-pci kernel features and BIOS.  The intention is that
      to enable this mode, a user simply needs to assign 00:02.0 from the
      host to 00:02.0 in the VM:
      
        -device vfio-pci,host=0000:00:02.0,bus=pci.0,addr=02.0
      
      and everything either happens automatically or it doesn't.  In the
      case that it doesn't, we leave error reports, but assume the device
      will operate in universal passthrough mode (UPT), which doesn't
      require any of this, but has a much more narrow window of supported
      devices, supported use cases, and supported guest drivers.
      
      When using IGD in this mode, the VM firmware is required to reserve
      some VM RAM for the OpRegion (on the order or several 4k pages) and
      stolen memory for the GTT (up to 8MB for the latest GPUs).  An
      additional option, x-igd-gms allows the user to specify some amount
      of additional memory (value is number of 32MB chunks up to 512MB) that
      is pre-allocated for graphics use.  TBH, I don't know of anything that
      requires this or makes use of this memory, which is why we don't
      allocate any by default, but the specification suggests this is not
      actually a valid combination, so the option exists as a workaround.
      Please report if it's actually necessary in some environment.
      
      See code comments for further discussion about the actual operation
      of the quirks necessary to assign these devices.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Reviewed-by: NGerd Hoffmann <kraxel@redhat.com>
      Tested-by: NGerd Hoffmann <kraxel@redhat.com>
      c4c45e94