Commit Graph

34 Commits

Author SHA1 Message Date
laura hermanns
1d344a72de [UBA] Add breadcrumbs to UBA trace files.
This change adds a new field to the ProcessStartInfo struct in UBA trace files for a description of the task, called "breadcrumbs" which allow to diagnose and backtrace the origin of a UBA task.
This is also hooked up to the distributed shader compilation (added as new field in FTaskCommandData) and a descriptive string is generated for each shader compile job batch.
UbaVisualizer is updated accordingly to integrate this new data when hovering over a task in the timeline.
This feature can be enabled via the new CVar "r.ShaderCompiler.DistributedJobDescriptionLevel" with values 0 (Disabled), 1 (Basic information), 2 (Adds shader format to each job). It's disabled by default.

#rb dan.elksnitis, henrik.karlsson
#rnx

[CL 36346831 by laura hermanns in 5.5 branch]
2024-09-17 15:08:58 -04:00
henrik karlsson
d7290814e8 [UBA]
* Added executing host in information popup when hovering over process

[CL 35588125 by henrik karlsson in ue5-main branch]
2024-08-16 02:16:46 -04:00
henrik karlsson
843e2408cd [UBA]
* Added reason for process being returned by client to trace file and visualizer

[CL 35439434 by henrik karlsson in ue5-main branch]
2024-08-09 18:50:03 -04:00
henrik karlsson
898512e6f0 [UBA]
* Improved ubavisualizer output
* Fixed visualizer crash
* Fixed support for dpi scaling through remote desktop
* Fixed so visualizer never ends up outside screen(s) boundaries
*

[CL 35349640 by henrik karlsson in ue5-main branch]
2024-08-06 15:31:53 -04:00
henrik karlsson
3b85f05af8 [UBA]
* Improved ui for ubavisualizer for active processes
* Added windows message for when window is activated

[CL 35167202 by henrik karlsson in ue5-main branch]
2024-07-30 01:49:32 -04:00
henrik karlsson
fbccd4fb70 [UBA]
* Fixed bug where error message box can pop up multiple times
* Fixed so font size scales with processes when zooming

[CL 34886500 by henrik karlsson in ue5-main branch]
2024-07-17 17:48:42 -04:00
henrik karlsson
803292b07a [UBA]
* Added -config=<file> support to UbaVisualizer
* Added "GetOwnerInfo" which can be used to get id and pid for owner.. right now devenv.exe is the only tracked owner but can add support for more applications
* Fixed so both trace name and default config name is affected by owner info.. this means a UbaVisualizer launched from inside visual studio will use a different config file
* Fixed bugs related to replays of active trace in visualizer

[CL 34852915 by henrik karlsson in ue5-main branch]
2024-07-16 16:27:53 -04:00
henrik karlsson
185460fe91 [UBA]
* Added "active processes" view in visualizer. Easier to get an overview
* Changed so session stats is written into trace file as soon as possible
* Added support for some more types in config file add/write
* Added dedicated path for updateProgress into session in order to minimize trace file and have custom rendering for progress
* Added support for changing font size in visualizer
* Added option to enable autosaving settings in visualizer
* Fixed so it is possible to jump around in active named trace in UbaVisualizer
* Added hyperlink support ro status update so user can click on the text to follow the link

[CL 34827240 by henrik karlsson in ue5-main branch]
2024-07-15 17:13:18 -04:00
henrik karlsson
8398f0edb2 [UBA]
* Changed so code getting processor frequency uses registry instead of CallNtPowerInformation since we want a number that is the same every time and CallNtPowerInformation + MaxMhz does not do that

[CL 34789007 by henrik karlsson in ue5-main branch]
2024-07-09 13:15:32 -04:00
henrik karlsson
955a26ecbf [UBA]
* Fixed so visualizer can visualize traces coming from UbaCli without needing restart
* Added some more logging to cache server maintenance
* Fixed scroll wheel zoom in visualizer
* Fixed so network server DisconnectClients does not put server in a bad state

[CL 34213980 by henrik karlsson in ue5-main branch]
2024-06-07 16:29:55 -04:00
henrik karlsson
9ce26cf76d [UBA]
* Fixed bug in backward compatibility trace reader code

[CL 34060025 by henrik karlsson in ue5-main branch]
2024-06-03 01:31:23 -04:00
henrik karlsson
fdd2fd52c4 [UBA]
* Renamed system stats to kernel stats
* Changed all stats storing to use bitfield first to say which fields that are non-zero

[CL 34058881 by henrik karlsson in ue5-main branch]
2024-06-02 18:14:50 -04:00
henrik karlsson
233c2cddb2 [UBA]
* Added stats tracking for get file attributes to get more information on what is stalling on the farm
* Enabled storage and system stats for cache misses

[CL 34020773 by henrik karlsson in ue5-main branch]
2024-05-30 19:43:04 -04:00
henrik karlsson
fc56ce5b68 [UBA]
* Fixed deadlock that could happen when lots of clients are connecting while maintenance is running
* Added UbaCli -cachecommand=<cmd> that can be used to query status of cache service
* Fixed code setting compressed byte on caskey to only use a bit
* Changed so a bit on the caskey can tell if a file is normalized or not
* Added stats for writing to cache to trace file
*

[CL 33880362 by henrik karlsson in ue5-main branch]
2024-05-23 19:16:15 -04:00
henrik karlsson
09ddadcee3 [UBA]
* Fixed bug in cache client where it could create a caskey for a file that should always go through ShouldNormalize that matches caskey of non-normalized file
* Added timers around traverse directory calls to be able to see how much time that is spent in traversing directories

[CL 33855227 by henrik karlsson in ue5-main branch]
2024-05-23 01:51:09 -04:00
henrik karlsson
19f7cccff9 [UBA]
* Fixed serious bug related to child processes on helper machines getting process ids that collides with ids of root processes coming from server
* Fixed bug in trace reader causing reusable processes to get no stats
* Added good-to-have asserts

[CL 33064711 by henrik karlsson in ue5-main branch]
2024-04-18 01:10:16 -04:00
henrik karlsson
c88d02914d [UBA]
* Implemented V1 of CompactPathTable which instead stores string segments separately.. Reduces the size table by ~30%.. slightly slower perf
* Added "RootPaths" which is a class that holds a list of root paths needed to normalize paths into non-environment dependent paths
* Added stats for cache that visualizes properly in visualizer
* Changed hash functions to have better quality
* Cleaned up code visualizing stats in visualizer.. now boxes popping up should have a nice matching size to strings
* Cleaned up UbaExports and formatted all functions the same way.. old are deprecated and will be removed once new binaries are in

[CL 32922089 by henrik karlsson in ue5-main branch]
2024-04-12 01:05:04 -04:00
henrik karlsson
5dc54a8104 [UBA]
* Huge stability push... all (known) paths have been tested heavily on linux with tsan and every single found race condition report has been fixed. Lots of locks have been added/moved/changed and some instances of things have been leaked on purpose to prevent tsan reports during shutdown
* More efficient storage proxy implementation which immediately forward segments to clients once they are available in proxy
* Added UbaAgent -command=x which can be used to send commands to host. Supported commands are "status"which prints out status of all remote sessions. "abort/abortproxy/abortnonproxy" that can be used to abort remote sessions and "disableremote" to have host stop accepting more helpers
* Fixed scheduler::stop bug if remotes were still requesting processes
* Added support for process reuse on linux/macos
* Added support for Coordinator interface and dynamically load coordinator dll in UbaCli
* Restructured code a little bit to be able to queue up all writes in parallel
* Added Show create/write colors to visualizer (defaults to on)
* Fixed so write file times are visualized in visualizer
* Improved socket path for visualizer
* Improved a lot of error messages
* Fixed double close of memory handle in StorageServer
* Changed some ScopedWriteLock to SCOPED_WRITE_LOCK (same for read locks)
* Fixed some missing cleanup of trace view when starting a new trace view in visualizer

[CL 32137083 by henrik karlsson in ue5-main branch]
2024-03-08 18:31:48 -05:00
henrik karlsson
d394b4b515 [UBA]
* Added session notification message to be able to see why client is about to go away.. hopefully this will help us identify if there are crashes happening on remotes that we don't track
* Added ApplicationRules::AllowStorageProxy and changed so .obj files are never going through the storage proxy on fetch (they are only read by one process so no point feeding them through the proxy
* Fixed the file write-through code and gave the #if 0 a name (#if UBA_USE_WRITE_THROUGH).. still disabled since it didn't give any benefits enabling it

[CL 32025069 by henrik karlsson in ue5-main branch]
2024-03-05 12:41:52 -05:00
henrik karlsson
d9ce0963c2 [Uba]
* Fixed so visualizer does not crash with version 21 traces that contains log messages that have over 100 lines

[CL 31900281 by henrik karlsson in ue5-main branch]
2024-02-29 02:18:27 -05:00
henrik karlsson
2ba1550eba [Uba]
* Fixed bug in trace code where errors are more than 100 lines long

[CL 31855407 by henrik karlsson in ue5-main branch]
2024-02-27 17:34:12 -05:00
henrik karlsson
a33acc6f91 [UBA]
* Fixed crash in UbaVisualizer when jumping back and forth in traces hitting edge cases with multiple sessions. Code was not cleaning up after itself properly

[CL 31511180 by henrik karlsson in ue5-main branch]
2024-02-14 23:32:33 -05:00
henrik karlsson
34b52deafb [UBA]
* Added hint to unmapfileview to be able to add useful information to asserts on fails
* Added error handling for vsnprintf returning error
* Fixed memory stomp in unit test
* Removed usage of %hs on non-windows since asan complains about it
* Changed UBA_USE_MIMALLOC to always be defined and be 0 or 1 instead of using ifdef
* Enabled mimalloc on linux

[CL 31355077 by henrik karlsson in ue5-main branch]
2024-02-09 16:12:12 -05:00
henrik karlsson
59cd3b1849 [UBA]
* Added support for custom text in trace/visualizer... can be used to report things like horde status etc

[CL 31118070 by henrik karlsson in ue5-main branch]
2024-02-02 00:30:28 -05:00
henrik karlsson
11ed67aeed [UBA]
* Added log entries to trace file

[CL 30669670 by henrik karlsson in ue5-main branch]
2024-01-17 16:49:50 -05:00