aboutsummaryrefslogtreecommitdiff
path: root/src/profiling
AgeCommit message (Collapse)Author
2020-02-02IVGCVSW-4394 Add CounterIdMap to Profiling ServiceJim Flynn
Change-Id: I416397a7855fe45319b4801252e141b78f0325f0 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2020-01-30IVGCVSW-4171 Temporarily disable DumpOutgoingValidFileEndToEnd unit testJan Eilers
* Test causes intermittent failures on CI system * Temporarily disabled until fix is found Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I689a4688d64040d557c63829a765d2c07c4fac3a
2020-01-30IVGCVSW-4391 Add Global/Backend Counter ID mapDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I943e02bc2026564e3a19d03e81ba75850d204497
2020-01-28IVGCVSW-4316 Promote ISendTimelinePacket and IProfilingGuidGeneratorColm Donelan
As part of IVGCVSW-4316 we need to expose ISendTimelinePacket and IProfilingGuidGenerator to enable them to be used by backends for profiling. This also required moving ProfilingRelationshipType from ProfilingUtils. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: I58cc64e32ecfffa5231c9d2028522ed58d0ddf31
2020-01-24Add ARMNN_DLLEXPORT macro to import/export static data symbols on WindowsRob Hughes
Armnn has several static data symbols that are needed by the unit tests. These are now explicitly marked for import when that header is included from the unit test code. See also https://cmake.org/cmake/help/v3.4/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html. Change-Id: I4e71ba659b6321659a1396125b5a9c271578040f Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-21Add thin abstraction layer for processes and filesystemRob Hughes
This is used instead of some hardcoded Unix calls and means this code now works on Windows (This is a rework of a previous patch which used boost, now that I have been informed that we are trying to move towards removing boost). Change-Id: Ib0d11055279bbd7b710f086e9890369e3ecbfe9a Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-21Add thin abstraction layer for network socketsRob Hughes
This makes SocketProfilingConnection and GatordMock work on Windows as well as Linux Change-Id: I4b10c079b653a1c3f61eb20694e5b5f8a6f5fdfb Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-14IVGCVSW-4229 Fix Intermittent failures in ExternalProfilingFinn Williams
* Added a BufferManager.Reset() method to prevent packets being retained after a test * Fixed a bug causing the send thread to wait needlessly before moving to active state * Refactored SendCoundPacketTests and ProfilingTests test helper classes * Fixed issue where WaitForPacketSent could miss a notification and timeout Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I353a652260c2f7dd465baa9e979e22f50f3ca6a7
2020-01-09Fix build error on gcc 7+ for implicit switch statement fallthroughsRob Hughes
Change-Id: I48632a42892d8e9a616255fe106e40161b0ee55f Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2020-01-03IVGCVSW-4246 Clean build of profiling with -Wextra Pt2Derek Lamberti
Change-Id: Iae306546e7c009105712f177943ed76451bbe8e7 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-31IVGCVSW-4246 Clean build profiling with -WextraDerek Lamberti
Change-Id: Ieab870fa2194075433a0a26abdb13f69e1fbaaae Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-13IVGCVSW-4178 Add code to increment the 3 ArmNN countersKeith Davis
* Increment at Runtime.cpp | BackendRegistry.cpp | LoadedNetwork.cpp * Update unit tests * UID generation is now handled by backends Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: Ifa53763409078c14839675206d8b260cdc36a8df
2019-12-09IVGCVSW-4228 Fix SendThreadSendStreamMetadataPacketFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: Ib095718bee36434cc9a60e8e472040b12f1b9f20
2019-12-05Replace boost logging with simple loggerDerek Lamberti
!referencetests:214319 * Reduces arm nn binary size ~15% * Also fixed test logging black hole issues Change-Id: Iba27db304d9a8088fa46aeb0b52225d93bb56bc8 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-04IVGCVSW-4223 Change PeriodicCounterCapture Packet Family to 3Jim Flynn
Change-Id: Ibc166c25d8d5fd09f407c0c697217a57b84d8cdc Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-12-04IVGCVSW-4016 Add the Inference timeline trace and unit testsDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I0cfbc2e1ed8f1eded1841866ebf9f39a066e91af
2019-12-04IVGCVSW-4118 Change the SendCounterPacket send thread to use do whileFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I702fdc941e29ddcb31f54513e0a7dc642f0f4685
2019-12-04IVGCVSW-4221 Fix SendCounterPacket hanging for indefinite timeFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I612f4d0162e7f35296f7d484350a937f6344fcfb
2019-12-03IVGCVSW-4171 Fix intermittent failure on FileOnlyProfilingDecoratorTestsjaneil01
* Added destructor to prevent hanging after raising an error * Enhanced timeouts to prevent test from failing Signed-off-by: janeil01 <jan.eilers@arm.com> Change-Id: Ibf137835040edc51348d70ff67d27ef3fffac15b
2019-12-02IVGCVSW-4015 Add input and output workload to post-optimisation structureNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ic9fbe1300cf8c4b8a78bad5934f0b2d18b205090
2019-11-29IVGCVSW-4070 Implement "send post-optimized network structure"Narumol Prangnawarat
* Send post-optimisation network structure if profiling service is enabled * Refactor TimelineUtilityMethods * Fix RecordEvent to link eventGuid with eventClassGuid * Add common types and guid to LabelsAndEventClasses * Add CreateRelationship to TimelineUtilityMethods * Add CreateTypedEntity to TimelineUtilityMethods * Add MarkEntityWithType to TimelineUtilityMethods * Move VerifyTimeline functions to ProfilingTestUtils * Post-optimisation network structure unit tests to Ref, Cl, Neon Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I0194f2037c236450c912f4c3cb11e46b80c0f512
2019-11-29IVGCVSW-4118 Fix long unit test executionColm Donelan
* Reduced sleep_for timings * Removed duplicate SendStreamMetaDataPacket. * Modified SendCounterPacket::WaitForPacketSent to use wait_for * Modified SendCounterPacket::Send WaitingForAck to use wait_for * Added destructor to StreamRedirector. * Added method SendCounterPacketTests::HasWrittenData * Restructured many tests in ProfilingTests. Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: I55c59cac6674ac40a1056a5302a997d5da9e9d91 Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>
2019-11-28Make the profiling GUID test independent from random eventsMatteo Martincigh
* Removed the random generation of strings * Actually generating a million unique strings for the test * Code cleanup Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I4486c06df7e546d717f72d609bd9218d6bb6cc0a
2019-11-28Remove const type qualifiers with no effectMatteo Martincigh
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I3ddd98864eef41c0548ab907a48b025b9154a5a8
2019-11-21IVGCVSW-4124 Replacing the "sleep_for" loop from FileOnlyProfilingConnectionColm Donelan
* Replacing the "sleep_for" loop in FileOnlyProfilingConnection with a producer consumer conditional mutex. * Reducing the times sleep loop times in FileOnlyProfilingDecoratorTests. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: Ied2302b508b6e4e6b50809c77e3f19115449d0b6
2019-11-19IVGCVSW-4070 Add CreatedNamedTypeEntity and CreateNamedTypedChildEntityNarumol Prangnawarat
functions with Guid Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ide3c3b0a05830af055b3a2c733af4c1c57c0dbaa
2019-11-19IVGCVSW-4068 Add Guid to WorkloadNarumol Prangnawarat
* Add Guid to Workload * Remove circular dependency Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Signed-off-by: janeil01 <jan.eilers@arm.com> Change-Id: I15342fa7481c6bdc050e057dce2d74bba07fe2dd
2019-11-18IVGCVSW-3980 Implementation of Guid generatorNarumol Prangnawarat
* Improve implementation of Guid Generator to separate the range of Static Guid and Dynamic Guid * Unit tests to ensure non-collision Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I4ad1a75ea0b1f37155da0decafb51fc5a61e4187
2019-11-15IVGCVSW-4129 Fix thread starvation due to low capture periodsColm Donelan
* Set default capture period to 10mSec. * Validate capture period in PeriodicCounterSelectionCommandHandler pull it up to 10mSec if it is lower. * Fix segmentation fault in GatordMock when receive thread closes. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: I9f7ddc70bd99c102c5baef872d28329976a4dc07
2019-11-15IVGCVSW-4074 Send Timeline message in RequestCounterDirectoryCommandHandlerMatteo Martincigh
* Added call to SendTimelineMessageDirectoryPackage in the handler * Updated the unit tests accordingly * Refactored SendTimelinePacket to remove macro Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I7bb6f8575945b99a0e77ef30ecfe4dee3058669e
2019-11-15IVGCVSW-4073 Send stream info in the ConnectionAcknowledgedCommandHandlerMatteo Martincigh
* Added call to ISendTimelinePacket::SendStreamMetaDataPacket * Added call to ISendTimelinePacket::SendTimelineMessageDirectoryPackage * Added new StreamMetadataCommandHandler class to the mock Gatord service * Updated code and unit tests * Added include paths to the gatord mock target Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: Ic6d200b513175884607b7c0563cbfa4942ff2fc6
2019-11-15IVGCVSW-4072 Add stream header to Timeline Message Directory packetMatteo Martincigh
* Refactored the WriteTimelineMessageDirectoryPacket function * Added the stream header to the packet * Updated decoders/parsers * Updated unit tests accordingly * Minor refactoring Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I58f15fde54adc6414ca9fd5fb8d6157cad867339
2019-11-14Fix a few compile errors:Rob Hughes
* Replace use of non-standard integral types (e.g. u_char) * Convert boost::filesystem::paths to std::strings using the .string() method rather than .c_str(), because on Windows .c_str() returns a wide character string, which is not convertible to a std::string. Change-Id: Ia86b0653697033bb1afa01e64b5b2103dd042ffd Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2019-11-07IVGCVSW-4107 Fix bug in ProfilingConnectionDumpToFileDecoratorTestsAron Virginas-Tar
* Replace predefined file name with randomly generated file name to avoid reading back old dumps Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Ia48a9cda4527c585453383a5d758e1831c38604a
2019-11-07IVGCVSW-4102 Move ProfilingGuid to public interfacejaneil01
* Moved ProfilingGuid to Types.hpp * Refactoring to enable ProfilingGuid Signed-off-by: janeil01 <jan.eilers@arm.com> Change-Id: Ibf77002d74e484f8a63ffd96aa14303c1f0d38ae
2019-11-07IVGCVSW-3951 Create the timeline decoderFinn Williams
* Added ITimelineDecoder.h C interface * Added an example implementation of ITimelineDecoder.h * Added command handlers for the timeline directory and objects * Added tests for the decoder implementation * Changed ReadSwTraceMessage to take a const unsigned char* so it can be used by the directory command handler * Fixed some bugs in ProfilingUtils.cpp and related tests Change-Id: If06faf1fe0274a8f022f194a6d3527f5ce5374c6 Signed-off-by: Finn Williams <Finn.Williams@arm.com>
2019-11-06IVGCVSW-4065 Add a RecordEvent functionMatteo Martincigh
* Added RecordEvent utility function to the TimelineUtilityMethods class * Added new utility function to get a timestamp * Added unit tests Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: Ia3f8fe7397915fa6c903ce0c0abab3047cea628c
2019-11-06IVGCVSW-3444 File Only Profiling ConnectionKeith Davis
* Add FileOnlyProfilingConnection Decorator * Fix bug where Conn Ack not automatically sent back * Modify GatordMock to use the Counter Directory class. * Promote DirectoryCaptureCommandHandler from GatordMock into ArmNN. * Remove MockUtils as it's contents were moved or deleted. * Rewrite GatordMockTests to use Counter Directory class. * Flush streams in ProfilingConnectionDumpToFileDecorator::Close. Signed-off-by: Keith Davis <keith.davis@arm.com> Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: I77b2aedece24150dd31691b577f3b5d81b2e226f
2019-11-05IVGCVSW-4065 Use platform-specific thread id size in Timeline packetsMatteo Martincigh
* Using std::thread::id as a general data type for thread id * Added new profiling util functions for reading/writing a thread id to/from a buffer * Fixed code and unit tests accordingly Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I1aaa3bdb740c8a97010f655b1e9f7581b52e7aff
2019-11-05IVGCVSW-4065 Refactor the IPacketBuffer smart pointersMatteo Martincigh
* Added convenience "using" statement for the unique pointers to IPacketBuffer * Replaced all the occurrencies in the code Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: Iffec3a425ffbc1ecb23012971563a48139eb32eb
2019-10-31IVGCVSW-4049 Fix potential threading issue with the SendCounterPacket threadFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I311270dac0ba90b04e3488572e6b045546114a12
2019-10-30IVGCVSW-4037 Add a CreateNamedTypedChildEntity methodNarumol Prangnawarat
* Added new method to the TimelineUtilityMethods class * Added unit tests * Code refactoring * Skipped the 0 when generating a dynamic GUID for testing purposes Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: Ic2c8033ad010e07b0f8b7971ce653263e21c6f97
2019-10-30IVGCVSW-4036 Add CreateNamedTypedEntity functionNarumol Prangnawarat
* Add CreateNamedTypedEntity function * Add NameEntity function * Add TypeEntity function * Unit tests Change-Id: I3cc27157a0b41c8709b0a468f93b58b63a1ad8d1 Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
2019-10-30IVGCVSW-4035 Add a CreateTypedLabel functionMatteo Martincigh
* Create new utility function in the TimelineUtilityMethods class * Added unit tests Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I63704b94d5cc6861e4e160de2aae4ae497699dd2
2019-10-28IVGCVSW-4033 Provide a utility method to send the 'well known'Matteo Martincigh
labels and event classes * Added utility method SendWellKnownLabelsAndEventClasses * Added unit tests Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: Id8ec0d0eb6861feb8b61731e656d1571effc904a
2019-10-28IVGCVSW-4031 Provide well known profiling GUIDsJim Flynn
Change-Id: Ibf99b025f51503e8937012b655aad74698f32e38 Signed-off-by: Jim Flynn <jim.flynn@arm.com> Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-10-25IVGCVSW-4022 Create a DeclareLabel utility functionMatteo Martincigh
* Created new TimelineUtilityMethods class * Created the DeclareLabel utility methods inside the new class * Added unit tests Change-Id: Ife0f7853a556d48206b76baeb3934344a990bee9 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-10-25IVGCVSW-4028 Add TimelinePacketWriterFactory to ProfilingServiceJim Flynn
Change-Id: I1baf6ff49fc591577efab8190352f2ae5a7dc5e5 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-10-25IVGCVSW-4027 Add the IProfilingGuidGenerator interfaceJim Flynn
Change-Id: Idfb80d73171aa2b57d4dcf01dc137817cf19d2bd Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-10-24IVGCVSW-3950 Create SendTimelinePacket interface and classSadik Armagan
* Implemented ISendTimelinePacket interface and its implementation SendTimelinePacket * Implemented TimelinePacketWriterFactory * Implemented unit tests for SendTimelinePacket functions Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I0a47586437f99510394d4d94589dccfb397d38e5