- Nov 20, 2020
-
-
Eric Müller authored
Change-Id: I4a09a8111a6ad57bf2a94c4be8b6dff91c1544bf
-
- Nov 09, 2020
-
-
Philipp Spilger authored
Depends-On: 10801 Change-Id: I527b9abff8913165c8370ab548604a377b883464
-
- Oct 30, 2020
-
-
Christian Mauch authored
Depends-On: 12737 Change-Id: I7375eea63e4272b06282835f133e8478ac2afd57
-
- Oct 23, 2020
-
-
Philipp Spilger authored
* replace tbb::concurrent_queue by std::vector and mutex because the concurrent queue does not support thread-safe swap * allows fast acquisition of _all_ messages from the connection * in the typical use case of sending, waiting until halt and receiving this leads to less time spend with exclusive access to the connection and therefore more possible parallelism * remove single-message receive() and try_receive() interface Depends-On: 11113 Change-Id: Ifd6cebfcea3b9bc56699aaf9db741579ca074a81
-
Philipp Spilger authored
* Stream::add(), Encoder::operator(), Decoder::operator() Change-Id: Icda158123eed0f9c7af0a7aa2ef06ace4856cb43
-
Philipp Spilger authored
* same performance * newer implementation, full C++17 support, constexpr variant & visit * less non-std dependencies Depends-On: 11711 Change-Id: I721a383221492ef1370ddc1fa06a1097f1eb1657
-
- Oct 21, 2020
-
-
Philipp Spilger authored
* defaulted operator was implicitely deleted Change-Id: I554c9d709d6b1d6b79d945606135a21180608286
-
- Oct 07, 2020
-
-
Philipp Spilger authored
* use std::showbase, remove logging in Connection::add(message) * change PHY word logging loglevel to trace Change-Id: Ic485583ddf4eceddb760315d572126df21358d04
-
Philipp Spilger authored
Depends-On: 11747 Change-Id: I74653af54fb322644156a9d985316a4c8cb87a93
-
- Oct 05, 2020
-
-
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
-
- Sep 25, 2020
-
-
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
-
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
-
- Sep 24, 2020
-
-
Oliver Breitwieser authored
Change-Id: I0936486e41d158d8d015652ae673d7fc487281b9
-
- Sep 23, 2020
-
-
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
-
- Sep 21, 2020
-
-
Philipp Spilger authored
Change-Id: I062b8e2bb639120044e80749d88e6619b6dabe70
-
- Sep 18, 2020
-
-
Philipp Spilger authored
Depends-On: 12215 Change-Id: I131ffb0a189e157029b3631f235ffe66f0939039
-
- Sep 03, 2020
-
-
Philipp Spilger authored
Depends-On: 10581 Change-Id: Ied502779cb2981be1696cea02d453f5a8c7485df
-
- Sep 02, 2020
-
-
Philipp Spilger authored
Depends-On: 12005 Change-Id: I7a4a0df165988e2356c35b2cd1773f672a03df76
-
- Sep 01, 2020
-
-
Philipp Spilger authored
Depends-On: 11170,11696 Change-Id: If6bef2b51e7696c9368a35216d215f206886ca1b
-
- Aug 28, 2020
-
-
Philipp Spilger authored
Change-Id: Id6b6587af1f784303fe90e17a87b182b3f9a1f70
-
- Aug 14, 2020
-
-
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
-
Oliver Breitwieser authored
Change-Id: Ifce435b71d581094bbb42b3313ac70ddc0601938
-
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
-
Philipp Spilger authored
* For the ARQConnection the hwdb is queried for unique identifier bits Depends-On: 11708,11930,11946 Change-Id: I39ea8ce989534bb410094a5eaf37d68e3eb438e6
-
- Aug 12, 2020
-
-
Oliver Breitwieser authored
Change-Id: I5765e4204b458a1dce017564e461f67600b05a85
-
- Aug 11, 2020
-
-
Philipp Spilger authored
Change-Id: I8b1271440ffd76af981b472b8caf4544e300f04b
-
- Aug 05, 2020
-
-
* autogeneration is not possible if there exist connections which can't generically be defined as a templated class which only takes the specific ConnectionParameter, which is the case e.g. if specializations are to be made depending on the actual usage Depends-On: 11765 Change-Id: I1ff982ae4f03e1f99e926fe9a91a2235f3cdcab3
-
Philipp Spilger authored
Depends-On: 11361 Change-Id: I5ed7189f793495f99e0bc1e9e7d9373f11a126f8
-
- Jul 31, 2020
-
-
Oliver Breitwieser authored
Change-Id: Iacac09a15f5a7debac5116de999dd21e7dfb0b61
-
- Jul 28, 2020
-
-
Philipp Spilger authored
* API-wise almost the same, but easier to understand, use, provide Change-Id: Icf448f1e5902191c4cdf2d1f19f8a9ce41e02bec
-
- Jul 24, 2020
-
-
Philipp Spilger authored
Depends-On: 11627 Change-Id: If99e9d3fcdce0cc21889e7d2054c741b667500c2
-
- Jul 22, 2020
-
-
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
-
Philipp Spilger authored
* use logger instead of direct cout in throughputtests Change-Id: I343e55338499c827e8afab79c7ffd687413e8bdb
-
Philipp Spilger authored
* use get_connection_from_env followed by a visit * remove unused dispatch headers Change-Id: I4b69d959443e4d1a6a57284ae8e96ffad69a6519
-
Philipp Spilger authored
* no performance drop * less code complexity Change-Id: I8c7513ca5cd883d5f4420a7812983356a4fdbe98
-
- Jul 21, 2020
-
-
Philipp Spilger authored
Change-Id: I8c934d68f775412d681681a07d24f2542bc271ec
-
- Jul 17, 2020
-
-
* 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
-
- Jul 14, 2020
-
-
Change-Id: I424e77ae6e6e9071e911debe99c63ec78768393e
-
- Jul 13, 2020
-
-
Philipp Spilger authored
Depends-On: 10416,10485,10678,11485 Change-Id: If9a4d0f49cd6d7e837a80e4c52f89e1e45b45bfa
-
- Jul 06, 2020
-
-
Philipp Spilger authored
* size(Loopback) == 1 * Loopback encodes halt (0) and tick (1) Depends-On: 6909 Change-Id: I7b8cdee316a3a54f35873f3cc220387fa97a4f47
-