1. 21 6月, 2016 19 次提交
  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