Commit Graph

1150 Commits

Author SHA1 Message Date
ac86fd481b [*] caught runtime regressions 2023-09-15 18:21:47 +01:00
d0fb19f87e [*] Global build regressions caused by addd4080 2023-09-15 18:09:34 +01:00
d49d4ad4fc [*] addd4080 cont 2023-09-15 16:54:21 +01:00
addd4080b2 [*] Adjust PId_t::pool null behaviour 2023-09-15 16:48:55 +01:00
3ba93439c8 [*] NT Processes: GetProcessId() now returns a pointer to a _PROCESS_INFORMATION struct 2023-09-15 16:25:40 +01:00
67b047eead [*] UNIX Processes: fix overmap regression in (d166a00d) and added support for envblock updates missing in (d166a00d) 2023-09-15 16:03:41 +01:00
a80524d573 [-] AuProcesses::EStandardHandle 2023-09-15 15:55:46 +01:00
d166a00d81 [*] Linux: begin catching up AuProcesses to NT 2023-09-15 00:11:14 +01:00
81775a76bf [*] Linux: build regressions 2023-09-15 00:10:40 +01:00
0f88b16395 [*] d0538ea4 cont support for CreateFile2W if required 2023-09-14 03:02:42 +01:00
db8db7b0cc [+] Secret visible symbol: Aurora::Win32Open/AuWin32Open 2023-09-13 15:35:09 +01:00
599d77e341 [*] default args for Win32Open bc lazy 2023-09-13 15:09:53 +01:00
c79b0b5921 [*] missing W suffix 2023-09-13 14:17:45 +01:00
fe8ef28930 [*] tism 2023-09-13 04:04:45 +01:00
f177b67e1f [*] GetLastError() == ERROR_FILE_EXISTS fast path 2023-09-13 03:48:10 +01:00
18ac961ac9 [*] (dwFlags & 0x4ffff7) && (!pCreateFile2) check
[*] (dwAttributes & 0xFFB00008) && (!pCreateFile2)
2023-09-13 03:38:59 +01:00
b4d5f4c127 [+] AuIO::IO::EStandardStream
[+] AuIO::IOHandle::InitFromStreamEnum(...)
2023-09-13 02:50:59 +01:00
d0538ea4de [*] NT/Win32-like: Use Win32Open as opposed to CreateFileW 2023-09-13 02:27:18 +01:00
a8696c0b7e [*] ...no 2023-09-13 00:02:26 +01:00
729c9f8508 [*] Ensure WaitFor always respects 0 timeouts, no matter the flags 2023-09-12 22:06:55 +01:00
6ff27c6855 [*] This was bothering me - 4b0a7c65 cont 2023-09-12 21:56:58 +01:00
6181d97c3c [*] Improve internal path consistency
[*] Removes some unnecessary panics
2023-09-12 20:49:02 +01:00
bf03124f92 [+] AuThreading::TryWait 2023-09-12 18:47:25 +01:00
8e54071d60 [-] Remove 2 year old 0.0 WaitFor back-off implementation 2023-09-12 18:30:45 +01:00
4b0a7c651a [*] Guess I should finalize this for linux. The verbosity of writing a cas in the wait loops is stupid if we arent doing anything special with the bits. 2023-09-12 16:12:54 +01:00
00260294b2 [*] Guess this got twisted, or maybe my intention was to zero out if we cant get accurate topology from apic bits; i don't recall 2023-09-12 14:11:09 +01:00
403c186f0a [*] Improve NT semaphore: use a different internal api now. Might help uncontested servers with work queues using semaphores 2023-09-12 13:28:46 +01:00
ffd61d4d54 [*] NT: AuProcess this is better 2023-09-12 02:01:12 +01:00
b46390f83a [*] Remove explicit Windows version check assuming certain file systems and platforms can be stupid 2023-09-12 01:35:54 +01:00
6062a16d9c [*] Prevent overflow into UNC root namespace of hostnames and volumes via path or filename overflow 2023-09-12 00:52:16 +01:00
92593be412 [*] FS path mitigation: begin to handle >= MAX_PATHs by enforcing UNC \\?\ prefixes across every single Win32/NT api we hit (if relevant. im sure some long paths may still break things.) 2023-09-10 23:49:47 +01:00
d727859cc2 [*] Linux/Modern NT regression in new optimized event wait path 2023-09-10 23:06:58 +01:00
22efbff12f [*] 74dc6772 cont: this structure is going to be padded to 32bits anyway. this makes the atomic operations easier 2023-09-10 18:10:36 +01:00
4915c5e6bf [*] dont like me stds' - big baz 2023-09-10 17:58:36 +01:00
5107911ba5 [*] Exploit mitigation - file protocols can be valid paths 2023-09-10 16:30:59 +01:00
445085d069 [*] old win32 - fix c6c35a58: missing ms to ns conversion 2023-09-10 15:51:26 +01:00
b539cfb353 [*] 74dc6772 cont: improvements 2023-09-10 15:04:32 +01:00
c6c35a588c [*] Switch to astatic Aurora::Utility::RateLimiter limiter` for gRuntimeConfig.threadingConfig.bWinXpThrough7BlazeOptimizerPower 2023-09-10 14:53:54 +01:00
74dc6772b0 [+] Non-mutually exclusive binary semaphore / event wait path
[+] ThreadingConfig::gPreferFutexEvent
2023-09-10 14:50:59 +01:00
48dc2e790b [+] IEvent::TrySet()
[+] New atomic logic for AuEvent. With this change, I can stop slandering it as the "shit primitive."
(it's still not the best it could be, but it's an improvement over what i had before)
2023-09-10 14:04:00 +01:00
12a2f30f47 [*] 9ab0c25b but for UNIX 2023-09-09 23:57:01 +01:00
9ab0c25b05 [*] Win32 opener: ensure file/dir exists (subject to time of check attack, but its fine to prevent stupid 'open' shellexec exploits. wont save you if io write is available) 2023-09-09 23:15:45 +01:00
1a4a4ad863 [*] Added missing this->s 2023-09-09 19:46:08 +01:00
dfe44317a0 [*] SMT Yield: minor branch added to SMT Yield 2023-09-09 18:09:22 +01:00
88355932c1 [*] Optimize thread configurations to be unpacked from the bitmap once at startup and during reconfigure as opposed ad-hoc 2023-09-09 17:37:14 +01:00
ca2f8fea71 [*] Mitigate Kernel32 and Rtl mixing 2023-09-09 15:29:48 +01:00
1fa063e19f [*] Why am i calling libm/crt from here? how stupid am i 2023-09-09 15:16:06 +01:00
4ad70cadb4 [*] optimization: cea33621 cont 2023-09-09 14:38:02 +01:00
e7ec875851 [*] added more win32 steady time clock, frequency-based fast paths 2023-09-09 13:58:14 +01:00
cf7be329d6 [*] Update fallback RNG entropy: reduce expected tick resolution 2023-09-09 13:50:26 +01:00
cea3362186 [*] Finally fixed an old regression: RWLock is back to being write-biased to prevent forever-read conditions 2023-09-09 13:03:02 +01:00
109b0cff3f [*] ...and same applies to RWLock
(instead its pls dont use the public api instead of the internal NT apis)
2023-09-09 12:39:47 +01:00
9601fcfd39 [*] NT AuThreadPrimitives: stop using these AuProcAddresses directly 2023-09-09 12:29:43 +01:00
8e59300395 [*] Another broken Linux path 2023-09-09 12:17:40 +01:00
51dcd190b3 [*] Missing SysPushErrorXXXs 2023-09-07 23:20:26 +01:00
36a72228db [*] Cleanup/formatting of SMT yields 2023-09-06 17:01:01 +01:00
213ed6c49b [*] yes 2023-09-05 22:31:16 +01:00
3adb019cf1 [*] d3587dbf cont 2023-09-05 15:03:59 +01:00
d3587dbf08 [*] 560ca079 cont perf improvement 2023-09-05 14:17:49 +01:00
560ca079a4 [*] AuAsync performance improvement: avoiding the kernel 2023-09-05 02:36:46 +01:00
876f4439b3 [*] NT proceesses: no point in pretending _spawnv is a real thing. this path is just causing defects. 2023-09-04 23:46:48 +01:00
f53508baa9 [*] Unify both SMT subloops 2023-09-04 23:03:08 +01:00
d112179c83 [*] May as well make this in line with the others 2023-09-04 16:45:42 +01:00
bcf3fabd83 [*] FS Resources (GetWritableAppdata): fail over to this path instead of failing 2023-09-04 16:32:28 +01:00
1c80e4910b [*] RWLock: another optimization for embedded and win7 targets 2023-09-03 13:35:12 +01:00
1479bcaa22 [*] bonk 2023-09-02 21:24:37 +01:00
5b9e780fa0 [*] Fix some obvious recent regressions in NT loop queue 2023-09-02 19:36:12 +01:00
c2a6bd92fa [*] Minor optimization in a shit primitive 2023-09-02 19:09:04 +01:00
0838373410 [*] NT Optimization: more aggressive semaphores to prevent atomic failures (perhaps this could be made to account for weak exchanges under different archs) 2023-09-02 19:05:07 +01:00
73a52552f7 [*] [to revert?] Attempt to mitigate message spam wakeups on older systems
Also forces higher latency on Windows 7
2023-09-02 17:56:15 +01:00
cc6e0358fa [*] NT: further optimizations to solve CPU usage regressions 2023-09-02 16:11:06 +01:00
9fbdafea74 [*] x86_64 Use RDSC for more deterministic back-off durations
Well, sort of. It's more likely to be referenced against the exact frequency stated in the hard-coded CPUID vendor string.
2023-09-02 14:37:07 +01:00
85102ec7ce [*] Minor NT LoopQueue fixes/improvements 2023-09-02 04:56:41 +01:00
de25694416 [*] bonk (use AuAXXX atomics) 2023-09-02 04:55:43 +01:00
a20e9b4954 [*] Win10/Linux regression in RWLock (again) 2023-08-31 18:41:18 +01:00
dd655ad3e0 [*] Linux unaligned signal fix 2023-08-31 18:41:10 +01:00
affe4cc496 [*] RWLock: simplify writersPending_ guard
[*] Fix RWLock: I may have messed up the new fast path timeouts in RWLock
[*] RWLock: refactoring/improvements
2023-08-30 16:11:54 +01:00
cf118d0b4b [*] Minor RW lock tweaks 2023-08-30 14:57:13 +01:00
af8737e9d2 [*] 32bit builds can run on 64bit systems 2023-08-30 12:36:59 +01:00
627cdd069f [+] AuOptional<AuUInt> Aurora::HWInfo::GetSwapSize()
[+] AuOptional<AuUInt> Aurora::HWInfo::GetPhysicalSize()
utils
2023-08-30 01:37:49 +01:00
46850c9122 [*] Shutup clangbang 2023-08-30 01:28:05 +01:00
47cec914cb [*] Refactor FIOConfig::ddefaultBrand -> (AuOptional) FIOConfig::optDefaultBrand
[+] FIOConfig::bIsIntranetTrusted
2023-08-29 21:10:53 +01:00
b5a452a43d [+] AuFS::IsFileBlocked
[+] AuFS::IsFileTrusted
2023-08-29 20:30:09 +01:00
0fcd63d3a8 [+] Missing Win8 check. Literally who? 2023-08-29 16:51:55 +01:00
9fcc62fb92 [*] Always check adapter info length 2023-08-29 16:31:39 +01:00
47cccd0490 [+] Absolute Win32 version checks
[+] bool AuSwInfo::IsWindowsXP()
[+] bool AuSwInfo::IsWindowsXPSP1()
[+] bool AuSwInfo::IsWindowsXPSP2()
[+] bool AuSwInfo::IsWindowsXPSP3()
[+] bool AuSwInfo::IsWindowsXPAny()
[+] bool AuSwInfo::IsWindowsVista()
[+] bool AuSwInfo::IsWindowsVistaSP1()
[+] bool AuSwInfo::IsWindowsVistaSP2()
[+] bool AuSwInfo::IsWindowsVistaAny()
[+] bool AuSwInfo::IsWindows7()
[+] bool AuSwInfo::IsWindows7SP1()
[+] bool AuSwInfo::IsWindows7Any()
[+] bool AuSwInfo::IsWindows8()
[+] bool AuSwInfo::IsWindows8Point1()
[+] bool AuSwInfo::IsWindows8Any()
[+] bool AuSwInfo::IsWindows10()
[+] bool AuSwInfo::IsWindows11()
2023-08-29 16:12:13 +01:00
3503d0ec68 [+] Added Linux signal configuration and separate LinuxConfig type (LinuxConfig)
[*] Fix Linux regressions in previous NT commit
2023-08-29 03:11:28 +01:00
ac0981ac1b [+] bool IsHandleFile(AuUInt uHandle)
[+] bool IsHandleTTY(AuUInt uHandle)
[+] bool IsHandlePipe(AuUInt uHandle)
...as opposed to forced IOHandle usage
[+] AuIOHandle
[+] AuSharedIOHandle
2023-08-29 01:37:25 +01:00
be32e2777f [*] 3; chosen by dice roll. mimalloc heap seed regression: 115ee1a9ec 2023-08-29 01:07:59 +01:00
fef6eac859 [*] More Linux tweaks 2023-08-28 19:13:18 +01:00
0d759f85f8 [*] Linux/Clang fixerinos/improvements 2023-08-28 16:35:32 +01:00
55c02d4aa0 [*] Tweak default thread config
[*] Fix regressions
2023-08-28 11:48:13 +01:00
b2e1df8f72 [*] Annoying Linux checks 2023-08-27 21:35:40 +01:00
209d1939aa [*] Tweak default thread config 2023-08-27 21:27:49 +01:00
97296d1fe9 [*] ThreadingConfig::bPreferEnableAdaptiveSpin 2023-08-27 20:26:36 +01:00
8fe2619673 [*] Rework SMT yielding 2023-08-27 19:56:22 +01:00
6a3b278ea0 [*] Amend 4674f45d 2023-08-27 19:42:21 +01:00
b8458990c9 [*] Amend a41a2719 2023-08-27 18:25:04 +01:00
4674f45dd3 [*] Support for further Win32 API degradation / historical OSes / emulators 2023-08-27 17:43:29 +01:00
5cf7533eab [*] Linux and UNIX QOL 2023-08-27 12:42:10 +01:00
9bd05a0752 [+] HashStream SOO
[+] HashSteam extension padding for future use
2023-08-26 21:32:49 +01:00
a41a27198e [*] zoom 2023-08-26 21:11:27 +01:00
3e5aa1aff0 [*] Simplified lines of code: shared pointer init 2023-08-26 19:02:14 +01:00
7680a86d5a [*] ...same applies to these 2023-08-26 18:46:00 +01:00
610f2c73a0 [*] Optimize >4 thread wakeups on <= Win7, under Semaphore 2023-08-26 18:08:33 +01:00
4b1e3fd1e5 [*] 346a9f3bde still isnt good enough. why the fuck must all (not projecting), all, linux code even from the kernel maintainers have fucked syscall checks? 2023-08-26 16:50:20 +01:00
346a9f3bde [*] More aggressively wake up reorder prone (unlikely) condvars under broadcast (unlikely) 2023-08-26 15:56:59 +01:00
3ca8de022e [*] Fix issues related to inconstent retardation in the asinine freetard world
GNU and its consequences have been a disaster for the human race
2023-08-26 15:04:48 +01:00
4a73f7250f [*] Another uniproc test 2023-08-25 12:42:31 +01:00
337df8040c [*] Move uniprocessor check 2023-08-24 15:12:49 +01:00
100964ac87 [*] NT Semaphore optimization 2023-08-24 13:55:31 +01:00
935d1b6ab2 [*] RWLock: added another SignalManyWriter condition to ensure upgrades never get missed 2023-08-24 11:45:15 +01:00
1ecd46ddbf [*] Ad-hoc system thread signals 2023-08-24 10:43:33 +01:00
937f123dad [*] RWLock: Futex waiter path: force read semantics 2023-08-24 10:20:43 +01:00
49ced3fcc6 [*] Always attach to the main thread context on init 2023-08-24 10:17:53 +01:00
31319981ba [*] Two trivial Linux tweaks 2023-08-23 23:45:26 +01:00
fae93a71b0 [*] Attempt to guess UNIX (Linux) CPU topology when missing file systems 2023-08-23 23:32:30 +01:00
3898a41198 [*] Adopt new ROXTL atomics
...AuAtomicLoad + AuAtomicClearU8Lock
2023-08-23 22:03:00 +01:00
293a8ddd66 [*] Simplify when to call _beginthreadex (we probably shouldn't) 2023-08-23 19:11:21 +01:00
61eaa701b7 [*] MSVC compilation regression
(theres no way in fuck vista or xp will run with >= 32 threads. hell, you can barely expect the acpi and boot video drivers to work.)
2023-08-23 19:05:32 +01:00
10e95fb5ae [*] Begin reworking Linux/POSIX PRIOs 2023-08-23 18:17:15 +01:00
9c04b31da3 [*] Don't warn on XP/Vista 2023-08-23 17:09:19 +01:00
921fee1b8d [+] IAuroraThread::SetNoUnwindTerminateExitWatchDogTimeoutInMS 2023-08-23 17:01:56 +01:00
412630077d [+] ThreadingConfig::bPreferWaitOnAddressAlwaysSpin 2023-08-23 16:45:08 +01:00
524365b5da [*] Handhold non-MSVC compilers 2023-08-23 16:38:22 +01:00
0c5d140bd4 [*] Autoset bPlatformIsSMPProcessorOptimized to false on singlethreaded systems 2023-08-23 16:03:22 +01:00
d79cb4f3ca [*] RWLock: WakeOnAddress optimization on wait to prevent mutex congestion on modern OSes 2023-08-23 15:37:55 +01:00
30fc75cbab [*] Clang 15 build regression: AuList<T> before T definition 2023-08-22 20:17:57 +01:00
a4d317a48d [*] Reoptimize semaphore wait paths 2023-08-22 15:28:09 +01:00
7ad725ca04 [+] Global adaptive spin 2023-08-22 13:01:06 +01:00
ccfd0fafab [*] Why must all languages be garbage at expressing life-span of constness?
This is const-correct, as in, we don't expect to modify the pointer; you dont need to be a writer
This was const-correct, as in, this field better be a volatile block of memory you expect to update - plz dont to any retarded assumptions based on it being "const," compiler.
2023-08-22 11:08:56 +01:00
3747fb7c6f [+] ThreadingConfig::uUWPNanosecondEmulationMaxYields
[+] ThreadingConfig::bUWPNanosecondEmulationCheckFirst
2023-08-22 09:56:32 +01:00
cf363b9f5b [*] Ensure this never throws 2023-08-22 09:45:32 +01:00
76ac770674 [*] Update a handful of condvar cas's and account for laziness along the way 2023-08-22 09:44:54 +01:00
cd362db7af [*] Deaf, dumb, and blind 2023-08-21 19:20:52 +01:00
fa170c413d [*] More compact Linux primitives 2023-08-21 19:17:05 +01:00
e8f445c463 [*] Linux build regression / AuProcesses API change 2023-08-21 17:48:48 +01:00
5cc811be19 [*] More compact Win32 primitives! 2023-08-21 17:34:24 +01:00
869512e651 [*] Optimization: Remove two stupid branches in RWLock 2023-08-21 16:33:32 +01:00
f847ab049a [+] ThreadingConfig::bPreferRWLockReadLockSpin 2023-08-21 16:25:51 +01:00
e1f384de2e [*] RWLock: improper upgrade handshake
The switch over to two condvars still doesnt seem right
2023-08-21 16:20:52 +01:00
681c4b9158 [*] RWLock: revert this branch to checking for 0 and 1 remaining readers
[*] Formatting
2023-08-21 16:08:30 +01:00
e2909ebe74 [*] RWLock: Upgrade UpgradeReadToWrite sleep path 2023-08-21 16:02:55 +01:00
68b4fe5f8b [*] RWLock: not implementing LockAbsMS and LockAbsNS can hurt the hotpath 2023-08-21 15:50:45 +01:00
d1b1bfb221 [*] Caught an issue with RWLock: cant reenter unlocked reentrance mutex. 2023-08-21 15:39:56 +01:00
631ffab1a2 [*] stupid formatting crash 2023-08-21 15:32:22 +01:00
a60a1b3088 [*] dont assume these condvar paths cant underflow 2023-08-21 00:25:29 +01:00
3fe2d15a2f [+] AuProcesses::StartupParameters::environmentVariables
[+] AuProcesses::StartupParameters::bInheritEnvironmentVariables
[+] AuProcesses::StartupParameters::handleOutStream
[+] AuProcesses::StartupParameters::handleErrorStream
[+] AuProcesses::StartupParameters::handleInputStream
[+] AuProcesses::StartupParameters::optAffinity
2023-08-20 23:58:32 +01:00
b8d4e02ab5 [+] Aurora::Threading::GetThreadingConfig
[+] Aurora::Threading::SetThreadingConfig
[*] Save a few bytes in Aurora::ThreadingConfig
2023-08-20 16:23:03 +01:00
08f30017b8 [*] regression: b236469d06 cont 2023-08-20 13:41:53 +01:00