This will cause any syscall *not* in the allow list to cause SIGSYS and then we will exit from our signal handler (unless our signal handler uses a syscall that is not supported in which case we will crash, though a core dump will need to be checked)
Requires explicitly calling this function where you want to actually *setup* the filters:
FPlatformMisc::SetupSyscallFilters();
To use:
-allowsyscallfilterfile=<path/to/allow_filter_file.txt>
Example of file:
read
write
open
mprotect 2 4 0 1
There are only two supported rules for the file:
<syscall_name>
<syscall_name> <syscall_arg_number_zero_based_index> <value> <allow> <check bit only>
#jira UE-169652
#rb Josh.Adams, Robert.Seiver, Calvin.Zheng
#preflight 636d44e81c14fe450503f5cf
[CL 23091532 by brandon schaefer in ue5-main branch]
*Make FPlatformMemory::GetStats cache memory stats per frame to prevent multiple costly platform calls per frame ( by default, has option to request non-cached values ).
*Update some calls to FPlatformMemory::GetStats to specifically request non-cached values.
[REVIEW] [at]evgenii.babinets [at]andrew.ladenberger
#preflight 634a04c0907f4749392d75d0
[CL 22545788 by evgenii babinets in ue5-main branch]
- Implemented priority control on Unix platform
- Refactored RunnableThreadUnix implementation
- Bump resource limits for process scheduling priority (nice) if possible
#rb LouisPhilippe.Seguin, Brandon.Schaefer
[FYI] anrew.ladenberger
[CL 22087348 by anton dunchev in ue5-main branch]
Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed.
#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira
#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf
[CL 21181076 by Bryan sefcik in ue5-main branch]
Updated Core code to not use CoreMinimal.h when possible.
Core public headers still will contain CoreMinimal.h if any included it before my IWYU changes.
#preflight 62c74ed0324817d81488b7ee
[CL 20993420 by bryan sefcik in ue5-main branch]
Core public headers still will contain CoreMinimal.h if any included it before my IWYU changes.
#preflight 62c73594756222ced4e48707
[CL 20991367 by bryan sefcik in ue5-main branch]
Things to note regarding this pass:
* No includes are currently being removed from public headers.
* Any private file that has a #if is currently not being updated.
#preflight 62c703bbd13fac04f11da948
[CL 20985655 by bryan sefcik in ue5-main branch]
### Features
This change enables the StallDetector watchdog in Editor to submit reports to crashreporter about threads violating instrumented deadlines in the source code. This feature was available prior on Windows, and this change adds Linux support.
### Notes
New APIs:
ReportStall()
CaptureThreadPortableCallStack()
Many APIs are updated from purely "Ensure" naming to more general naming. Stalls are more like Ensures than crashes, and so the appropriate renames to make the code readable and clear have been made. In some places Ensure is replaced with the clearer: Continuable Event nomenclature.
### Testing
I synthesized an ensure on Linux, and did the same for a stall. I then compared crash report XML file to make sure they contain accurate data in the callstack, portable callstack, and other fields in the report. I also noted that the stall information was showing as expected in the crash reporter.
#rb brandon.schaefer, francis.hurteau
#jira UETOOL-3336
#preflight 625e20d2804460ab0fea3277
[CL 19911608 by geoff evans in ue5-main branch]
- Always ignore -Wunused-but-set-variable (on Apple platforms).
- Ignore -Wunordered-compare-function-pointers on third-party includes (across all clang platforms).
#rb brandon.schaefer
#jira UE-145699
#preflight 622d1696dd1bf3a95a9dfbf0
#rnx
#ROBOMERGE-AUTHOR: will.damon
#ROBOMERGE-SOURCE: CL 19375174 in //UE5/Release-5.0/... via CL 19376309
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19378035 by will damon in ue5-main branch]
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 18701089 via CL 18701091 via CL 18701094 via CL 18702221 via CL 18702246 via CL 18702283
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18702287 by arne schober in ue5-main branch]
This is similar to CL 2421073, 2424491 for FApplePlatformFile.
[at]Brandon.Schaefer, [at]Robert.Seiver
[FYI] Will.Damon
#jira none
#preflight trivial
#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18604349 in //UE5/Release-5.0/... via CL 18604376 via CL 18604394
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)
[CL 18604413 by michael sartain in ue5-main branch]
Also move stack to mmap'd memory instead of alloc'ing in heap
Should allow us to set & reduce size of 200k stack significantly via command line.
Brandon.Schaefer
#jira none
#preflight 61dc61cb1f62d3ad4d8079d4
#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18561402 in //UE5/Release-5.0/... via CL 18561404
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18561421 by michael sartain in ue5-release-engine-test branch]
Windows needs to set permissions accordingly.
#rb Brandon.Schaefer
[FYI] Josh.Adams
#preflight 61d79ed84c252480ca31e640
#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 18539045 in //UE5/Release-5.0/... via CL 18539064
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18539081 by jack porter in ue5-release-engine-test branch]