Skip to content
Snippets Groups Projects
  1. Nov 20, 2020
  2. Nov 09, 2020
  3. Oct 30, 2020
  4. Oct 23, 2020
  5. Oct 21, 2020
  6. Oct 07, 2020
  7. Oct 05, 2020
    • Oliver Breitwieser's avatar
      Add trace-information to ARQStream::work_receive · f32451fa
      Oliver Breitwieser authored
      * this was very useful during debugging to verify the client not choking
        on received packets
      
      * logger needs to be initialized prior to working thread starting ->
        reorder members.
      
      Change-Id: I6779ccc98a017efd4af6cfc179c9e4dbaa1847da
      f32451fa
  8. Sep 25, 2020
    • Philipp Spilger's avatar
      Implement latency hiding of encoding of messages to the FPGA · 351cc003
      Philipp Spilger authored
      * A send queue consisting of a single packet of HostARQ is used
      * full packets are sent automatically
      * this involves the implementation change, that add() is allowed
        to transfer to the hardware and commit only guarantees all
        messages added until now are sent
      * beforehand during we did never communicate to the hardware
      * no heap allocation used as part of encoding and sending in
        the connection
      * maximal encoding latency is the time to encode a single packet
      * since encoding speed at the moment is around 800MB/s, maximal
        throughput without this change is 1/(1/800 + 1/125) = 108 MB/s,
        which is only 86% of full gigabit
      * with this change if encoding is faster than the transfer,
        the full transfer bandwidth can be used
      
      Change-Id: Ic1f7d3f663197bb06a98df1025123d002f21d4b1
      351cc003
    • Philipp Spilger's avatar
      Use ranged for loop syntax in Encoder::operator() · 301be5c6
      Philipp Spilger authored
      * fix reference type of argument to visitor to be constant reference,
        which is guaranteed by the iterable being constant reference
      
      Change-Id: I0df700bd1059ee522dc589e8457588cb2aae7b03
      301be5c6
  9. Sep 24, 2020
  10. Sep 23, 2020
    • Philipp Spilger's avatar
      Optimize Encoder::operator() · 36a441c5
      Philipp Spilger authored
      * remove unecessary assertion (condition is guaranteed by operation)
      * place update to m_buffer_filling_level above block, where value
        is not needed anymore
      * speed improvement of 20% from 666MB/s to 800MB/s on RyzenHost
      
      Change-Id: Ibe4eac7ae3ef763ff2821f10f9781dee905bca57
      36a441c5
  11. Sep 21, 2020
  12. Sep 18, 2020
  13. Sep 03, 2020
  14. Sep 02, 2020
  15. Sep 01, 2020
  16. Aug 28, 2020
  17. Aug 14, 2020
    • Oliver Breitwieser's avatar
      Only run tests on connections that support it · ab65e873
      Oliver Breitwieser authored
      Not all connections will support the full direct-access interface that
      the default implementation of Stream provides but rather only the subset
      needed for execute_messages()-invocations.
      
      * Introduce `ConnectionFullStreamInterfaceVariant` that is merely a
        filtered version of the full `ConnectionVariant` with those types
        removed that do not support the full(= default) Stream interface.
      
      * Introduce `get_connection_full_stream_interface_from_env()` that gets
        the connection defined by the environment but checks if it can support
        the full_stream_interface. If so the connection is wrapped in an
        `optional`, otherwise nullopt is returned.
      
      * Tests are then skipped at runtime via `GTEST_SKIP` if the optional is
        empty.
      
      Change-Id: Ib3e196723e9c2beb8a0b00f57372f5b7cb359369
      ab65e873
    • Oliver Breitwieser's avatar
      Remove edge-case now covered by common_type · 039b1bb1
      Oliver Breitwieser authored
      Change-Id: Ifce435b71d581094bbb42b3313ac70ddc0601938
      039b1bb1
    • Oliver Breitwieser's avatar
      Streamline execute_messages implementation · f1b4e800
      Oliver Breitwieser authored
      Since we cannot use aliases for unspecified templates (see point 2.2
      here:
      http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2002/n1406.pdf),
      having templated template parameters is of less use than anticipated
      because we cannot have a single source of truth in regards to what
      sequence-like type is used throughout the stack.
      
      Solution:
      * Replace all `template <typename> class Sequence` parameters with
        helper structs that map the connection-type to return-/arugment-types
        for execute_messages.
        If we ever decide to switch from vector to some other sequence, only
        this mapping will have to be updated.
      
      * Extend `GetMessageTypes`-helper struct so that it maps
        `ConnectionParameters` to `MessageTypes` directly besides extracting
        `message_types`-argument from connection-types.
        This is important so that the RCF-interface in xiggeldy can derive its
        interface from the execute_messages-signature.
      
      Change-Id: I65045d361ad10a97e06fce3178d081c621fc02c7
      f1b4e800
    • Philipp Spilger's avatar
      Add get_unique_identifier() to connections · a31fccd0
      Philipp Spilger authored
      * For the ARQConnection the hwdb is queried for unique identifier bits
      
      Depends-On: 11708,11930,11946
      Change-Id: I39ea8ce989534bb410094a5eaf37d68e3eb438e6
      a31fccd0
  18. Aug 12, 2020
  19. Aug 11, 2020
  20. Aug 05, 2020
  21. Jul 31, 2020
  22. Jul 28, 2020
  23. Jul 24, 2020
  24. Jul 22, 2020
    • Philipp Spilger's avatar
      Cleanup Decoder · 24f43808
      Philipp Spilger authored
      * has_leading_comma(word) is now static
      * message-type specific decode_message lambda is separate templated member function
      * code common to all message-types split out of specific function -> less code size
      
      Change-Id: I8b41e4af9aa6efab88963f2fa519f36c3e3f9ed0
      24f43808
    • Philipp Spilger's avatar
      Unify test main files · c1781766
      Philipp Spilger authored
      * use logger instead of direct cout in throughputtests
      
      Change-Id: I343e55338499c827e8afab79c7ffd687413e8bdb
      c1781766
    • Philipp Spilger's avatar
      Unify hw and sim test targets · 92318655
      Philipp Spilger authored
      * use get_connection_from_env followed by a visit
      * remove unused dispatch headers
      
      Change-Id: I4b69d959443e4d1a6a57284ae8e96ffad69a6519
      92318655
    • Philipp Spilger's avatar
      Remove usage of DoubleBuffer · 221c5c7a
      Philipp Spilger authored
      * no performance drop
      * less code complexity
      
      Change-Id: I8c7513ca5cd883d5f4420a7812983356a4fdbe98
      221c5c7a
  25. Jul 21, 2020
  26. Jul 17, 2020
    • Oliver Breitwieser's avatar
      ConnectionTimeInfo: Add cereal support · 1ac1469f
      Oliver Breitwieser authored and Philipp Spilger's avatar Philipp Spilger committed
      * Add support for filling standard-layouted data types with random data
        prior to serialization so that the test fails if not all members are
        serialized.
      
      * Performed manual verification that test breaks if not all members of
        ConnectionTimeInfo are serialized.
      
      Change-Id: I0b7e257e776ec71e7b5e7131375fb069c6388dcf
      1ac1469f
  27. Jul 14, 2020
  28. Jul 13, 2020
  29. Jul 06, 2020