Commit Graph

262 Commits

Author SHA1 Message Date
andriy tylychko
ab120cd9e3 adjusted LLM tracing for tasks
#rb francis.hurteau

[CL 26230373 by andriy tylychko in ue5-main branch]
2023-06-26 06:01:47 -04:00
Devin Doucette
ed92f77023 ParkingLot: Gracefully support waiting even after FThreadLocalData is destroyed
#jira none
#preflight 64652cd3f033744ae6a9cca1
#rb Zousar.Shaker
#rnx

[CL 25514848 by Devin Doucette in ue5-main branch]
2023-05-17 15:55:21 -04:00
Andriy Tylychko
28e264700e LLM tags for tasks
#preflight 645cd2872c180971eefa0322
#rb none

[CL 25424808 by Andriy Tylychko in ue5-main branch]
2023-05-11 07:52:16 -04:00
Andriy Tylychko
623986fd4d TaskGraph: fixed tracing of standalone graph events that don't have nested tasks at the moment of dispatching subsequents. because of this issue a lot of graph events weren't shown in TasksInsights
This is a rather "hacky" fix. The old task implementation (TaskGraph API) is on a life support so there's no point of spending too much time for this
#preflight 644be99f1c2846595c45a4f2
#rb danny.couture

[CL 25235003 by Andriy Tylychko in ue5-main branch]
2023-04-28 13:09:16 -04:00
Andriy Tylychko
ca5066d381 disabled "System.Core.LowLevelTasks.PerfTests" until I have time to look at it. it wasn't changed recently and was working for a long time. I suspect the issue with the test itself. it could start failing because an update to toolchain or something similar could cause different code generation
#preflight trivial
#jira FORT-591285

[CL 25143680 by Andriy Tylychko in ue5-main branch]
2023-04-21 07:09:40 -04:00
devin doucette
f496775c20 ParkingLot: Use memory from FPlatformMemory to avoid GMalloc
ParkingLot cannot be used to synchronize allocator implementations if ParkingLot itself depends on those allocators.

#preflight 6441575673470c177c178ce2
#rb Zousar.Shaker
#rnx

[CL 25131053 by devin doucette in ue5-main branch]
2023-04-20 13:25:54 -04:00
devin doucette
3c3f2f50c2 Optimized code generation for FMutex and FRecursiveMutex
Avoiding duplicate conditions, restructuring loops, and using LIKELY/UNLIKELY allows the compiler to generate shorter and faster code.

#rb Zousar.Shaker
#rnx

[CL 24995086 by devin doucette in ue5-main branch]
2023-04-11 14:27:08 -04:00
devin doucette
8309f566d6 Deleted experimental FLazyEvent
The experimental UE::FLazyEvent has been superceded by UE::FManualResetEvent and UE::FEventCount.

#preflight 6434218041783dc3d0706df5
#rb none
#rnx

[CL 24978662 by devin doucette in ue5-main branch]
2023-04-10 12:08:36 -04:00
devin doucette
3a49eb5231 ParkingLot: Undo CL 24976983
#rb none
#rnx

[CL 24977714 by devin doucette in ue5-main branch]
2023-04-10 11:05:09 -04:00
devin doucette
ee76394648 ParkingLot: Use memory from FPlatformMemory to avoid GMalloc
ParkingLot cannot be used to synchronize allocator implementations if ParkingLot itself depends on those allocators.

#rb Zousar.Shaker
#rnx

[CL 24977705 by devin doucette in ue5-main branch]
2023-04-10 11:04:56 -04:00
devin doucette
fe6b602e32 Moved FRecursiveMutex implementation details out of the header
#rb none
#rnx

[CL 24876592 by devin doucette in ue5-main branch]
2023-03-31 15:19:00 -04:00
devin doucette
c490ca95eb Added FRecursiveMutex
This is an 8-byte unfair recursive mutex built on top of ParkingLot.
Provides the same API as FCriticalSection which allows it to be used as a drop-in replacement.

#preflight 6422fde4803cb466e85619b0
#rb Andriy.Tylychko, Phil.Pizlo

[CL 24873014 by devin doucette in ue5-main branch]
2023-03-31 12:05:51 -04:00
devin doucette
0ffce57d11 ParkingLot: Moved Wait and WaitFor out of the header
#rb Zousar.Shaker
#rnx

[CL 24811680 by devin doucette in ue5-main branch]
2023-03-27 18:51:41 -04:00
devin doucette
4dbc864c2b ParkingLot: Re-added use of PlatformManualResetEvent and WordMutex
#rb none
#rnx

[CL 24784875 by devin doucette in ue5-main branch]
2023-03-24 15:27:58 -04:00
devin doucette
3b4217b6d2 Added FWordMutex
This is a mutex that fits in a machine word. It is not fair and does not support recursive locking.

#rb Andriy.Tylychko, Zousar.Shaker
#rnx

[CL 24783348 by devin doucette in ue5-main branch]
2023-03-24 14:05:12 -04:00
bob tellez
c248e6e469 [Backout] - CLs 24735827, 24746530, 24750104, 24751543, 24752787, 24753773
[FYI] Devin.Doucette
Original CL Desc
-----------------------------------------------------------------
Added PlatformManualResetEvent

This private abstraction is used to signal a single waiting thread to wake.
This first implementation is only specialized for Microsoft platforms. Other platforms will be specialized later.

#preflight 6418bc6a5d3e25354f1a2a5b
#rb Andriy.Tylychko, Zousar.Shaker

[CL 24773885 by bob tellez in ue5-main branch]
2023-03-23 23:28:45 -04:00
devin doucette
a37ae60c3e Renamed Signal to Notify in new synchronization primitives
#rb Zousar.Shaker
#rnx

[CL 24756519 by devin doucette in ue5-main branch]
2023-03-22 19:47:20 -04:00
devin doucette
c2a4884258 Optimized WordMutex by removing its head pointer in favor of the tail pointing to the head
#rb Andriy.Tylychko
#rnx

[CL 24756433 by devin doucette in ue5-main branch]
2023-03-22 19:44:27 -04:00
devin doucette
134ae91679 Added FWordMutex
This is a mutex that fits in a machine word. It is not fair and does not support recursive locking.

#rb Andriy.Tylychko, Zousar.Shaker
#rnx

[CL 24747280 by devin doucette in ue5-main branch]
2023-03-22 10:27:45 -04:00
devin doucette
65761e0543 Added PlatformManualResetEvent
This private abstraction is used to signal a single waiting thread to wake.
This first implementation is only specialized for Microsoft platforms. Other platforms will be specialized later.

#preflight 6418bc6a5d3e25354f1a2a5b
#rb Andriy.Tylychko, Zousar.Shaker

[CL 24739039 by devin doucette in ue5-main branch]
2023-03-21 16:38:00 -04:00
devin doucette
3b739a7eb4 ParkingLot: Added WaitUntil to wait until a specific point in time
#rb Zousar.Shaker
#rnx

[CL 24701561 by devin doucette in ue5-main branch]
2023-03-17 23:07:22 -04:00
Steve Robb
e76e93f589 Added ReverseIterate() range adapter for reverse-iteration over ranges and some sample usage.
#rb devin.doucette
#jira none
#preflight 6409b5a56c1b9295b91700eb

[CL 24575641 by Steve Robb in ue5-main branch]
2023-03-09 09:59:47 -05:00
devin doucette
d7e031ae6e ParkingLot: Moved into a UE::ParkingLot namespace
#rb Zousar.Shaker
#rnx

[CL 24569873 by devin doucette in ue5-main branch]
2023-03-08 19:32:14 -05:00
devin doucette
7fcff95736 Added FParkingLot, FMutex, TUniqueLock, TDynamicUniqueLock
FParkingLot is a framework for building locks and other synchronization primitives, based on WTF::ParkingLot from WebKit.

FMutex is a one-byte mutex that is neither fair nor recursive, based on WTF::Lock from WebKit.

TUniqueLock and TDynamicUniqueLock are generic types to manage mutex locking, based on std::unique_lock.

#preflight 63fe76cbae54ee4ce9db2ca6
#rb Andriy.Tylychko, Phil.Pizlo

[CL 24552008 by devin doucette in ue5-main branch]
2023-03-07 19:11:45 -05:00
andriy tylychko
d6fc1637cc TasksInsights refactoring:
* fixed UE-166680
* refactored how task traces are used
* refactored task traces analysis
* added task size parameter
* added an ability to select which tasks to show in the tasks table: "alive", "waiting for prerequisites", "queued", "executing", "waiting for nested" and "completed"

#jira UE-166680
#preflight 63e650dd8917c5deac6fdb23
#preflight 63f36554500c05a6240f2857

[CL 24317221 by andriy tylychko in ue5-main branch]
2023-02-20 12:17:38 -05:00