Skip to content
Snippets Groups Projects
  1. May 30, 2014
  2. May 22, 2014
  3. May 19, 2014
  4. May 18, 2014
  5. May 15, 2014
  6. May 05, 2014
    • Tomasz Grabiec's avatar
      trace: cleanup packet tracing · 593f26d6
      Tomasz Grabiec authored
      
      The current tracepoint coverage does not handle all situations
      well. In particular:
      
       * it does not cover link layer devices other than virtio-net. This
         change fixes that by tracing in more abstract layers.
      
       * it records incoming packets at enqueue time, whereas sometimes it's
         better to trace at handling time. This can be very useful when
         correlating TCP state changes with incoming packets. New tracepoint
         was introduced for that: net_packet_handling.
      
       * it does not record protocol of the buffer. For non-ethernet
         protocols we should set appropriate protocol type when
         reconstructing ethernet frame when dumping to PCAP.
      
      We now have the following tracepoints:
      
       * net_packet_in - for incoming packets, enqueued or handled directly.
      
       * net_packet_out - for outgoing packets hitting link layer (not
         loopback).
      
       * net_packet_handling - for packets which have been queued and are
         now being handled.
      
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      593f26d6
  7. Apr 25, 2014
    • Tomasz Grabiec's avatar
      net: log packets going through loopback and virtio-net. · f30ba40d
      Tomasz Grabiec authored
      
      There was no way to sniff packets going through OSv's loopback
      interface. I faced a need to debug in-guest TCP traffic. Packets are
      logged using tracing infrastructure. Packet data is serialized as
      sample data up to a limit, which is currently hardcoded to 128 bytes.
      
      To enable capturing of packets just enable tracepoints named:
        - net_packet_loopback
        - net_packet_eth
      
      Raw data can be seen in `trace list` output. Better presentation
      methods will be added in the following patches.
      
      This may also become useful when debugging network problems in the
      cloud, as we have no ability to run tcpdump on the host there.
      
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      f30ba40d
  8. Mar 20, 2014
  9. Mar 17, 2014
    • Avi Kivity's avatar
      virtio: switch to page-sized external buffers · 1d6bf02d
      Avi Kivity authored
      
      Curently virtio uses MCLBYTES (2KB) buffers for virtio.  This hits a weakness
      in our UMA and memory allocation implementations:
      
      - UMA appends a 4-byte reference count to the allocation, resulting in an
        2052 byte allocation request
      - Our allocator only services requests up to 2048 bytes from the mempool
        allocator; larger requests are serviced by the large allocator, which is
        significately slower, and is also serialized by a mutex.
      
      Switch to an EXT_EXTREF mbuf with the buffer and refcount allocated
      separately.  This also allows us to switch to 4K allocations serviced by
      the page allocator (memory::alloc_page()), which is our fastest allocator,
      and halves the lengths of the mbuf chains on streaming workloads.
      
      Increases iperf stream (host->guest) results from ~12Gbps to ~34Gbps on my
      desktop.
      
      Signed-off-by: default avatarAvi Kivity <avi@cloudius-systems.com>
      1d6bf02d
  10. Feb 19, 2014
  11. Feb 13, 2014
  12. Feb 12, 2014
  13. Feb 10, 2014
  14. Feb 09, 2014
  15. Feb 06, 2014
  16. Jan 27, 2014
  17. Jan 22, 2014
  18. Dec 27, 2013
  19. Dec 26, 2013
  20. Dec 20, 2013
  21. Dec 19, 2013
  22. Dec 18, 2013
  23. Dec 17, 2013
Loading