Commit Graph

379 Commits

Author SHA1 Message Date
631624dc55 [*] Linux build regressions, and shrink the size of Linux RWLocks to 48 bytes from 64 2024-05-07 14:57:19 +01:00
8e1c74a5df [*] i swore i replaced this with a tpause before
[*] ...and the docs arent clear on whether or not this clock value is relative or absolute
2024-05-06 22:47:45 +01:00
f3ba901f71 [+] Zen3 on top of AlderLake optimizations
[*] Minor alderlake adjustments
2024-05-05 19:42:10 +01:00
459a9a789b [*] Switch C0.2 and C0.1 powerstates around 2024-05-03 15:52:50 +01:00
134816e128 [*] Optimize primitives SMTYield for Alderlake+ user-space, BIOS-ring mwait, and AARCH 2024-05-03 12:22:38 +01:00
c79a709f96 [*] RWLock: "I didn't like what I saw emitted" cont 2024-04-30 22:57:45 +01:00
07ef822bfa [*] AURORA_FORCE_SRW_LOCKS isn't officially supported but it should at least build 2024-04-30 20:37:00 +01:00
410a67d842 [*] RWLock: I didn't like what I saw emitted 2024-04-30 20:29:20 +01:00
22a4d3383d [*] NT/Win32-only: improved AuThreading::SleepNs(qwTimeout) 2024-04-30 19:02:05 +01:00
9d4c5a8cfc [*] (optimize) RunOSWaitOnAddressEQNoTimedNoErrors wasn't NT aware 2024-04-28 14:24:13 +01:00
44c7898c29 [*] Developers developers developers developers
Absolute expiration times track any changes in the system time; relative expiration times are not affected by system time changes.
2024-04-23 23:20:53 +01:00
0164919cd9 [+] while_bc 2024-04-13 22:49:05 +01:00
9f5c0e559c [*] Minor ConditionVariableNT optimization (SteadyClockNS() may syscall under vms) 2024-04-11 19:58:42 +01:00
ec44cc1d69 [*] Ensure these fallback primitives can be accessed by -> operator 2024-03-27 03:19:18 +00:00
1fa12f141f [*] Fix TryWaitOnAddressSpecialEx from UntilEqual -> Special update 2024-03-24 15:30:38 +00:00
c87ec4e4b6 [*] Linux build regressions 2024-03-21 00:32:13 +00:00
5c34a8435b [*] d14ba6cf revert one force inline 2024-03-12 23:32:32 +00:00
d14ba6cfd4 [+] AuThreading::EWaitMethod
[+] AuThreading::TryWaitOnAddressSpecial
[+] AuThreading::TryWaitOnAddressSpecialEx
[+] AuThreading::WaitOnAddressSpecial
[+] AuThreading::WaitOnAddressSpecialSteady
2024-03-12 22:50:22 +00:00
afbe942ffd [*] These config fields were switched to abs values, not relative to the user signal range 2024-03-08 21:59:50 +00:00
2163a58892 [*] Linux runtime regressions 2024-03-04 11:55:54 +00:00
65c78ef182 [*] Move some platform specific code from AuWakeOnAddress to AuProcAddresses.*.* 2024-03-03 00:28:36 +00:00
9591fc9d30 [*] Harden detached spawn 2024-03-02 23:47:58 +00:00
3004c3de19 [+] Experimental AuThreading::TryWaitOnAddressUntilEqualEx, WaitOnAddressUntilEqual, WaitOnAddressUntilEqualSteady 2024-03-02 23:23:16 +00:00
03623dfa48 [*] c111dee8 cont. Simplification of if (SignalSpuriously()) AddWatcher() continued 2024-02-14 01:03:14 +00:00
c111dee855 [*] Harden WinXP-7 semaphores [2b0ed797 cont] [more paranoia]
[*] Dont overspin spurious modernnt condvar wakes
[*] Revert 2943ffdb's add waiter, if under modern nt

1: While spuriously waking a blocked keyed event, don't leave the condition variable in a state where signals can be ignored.
2024-02-11 06:22:19 +00:00
2b0ed79729 [*] NT Condvar hardening: Windows XP-7 hardening of the spin condition when racing against multiple threads 2024-02-08 13:14:18 +00:00
12fd03a6dd [*] WoA acbd6266 cont (?). I think I'm still getting messed up by over-optimizations as opposed to there being a genuine bug in the primitives. Made the accesses to the comparison volatile during deep sleeps, whereas before we were just casting to regular integer pointers or performing a memcmp.
00:29:11:820	15>  1 functions were new in current compilation
00:29:11:820	15>  51 functions had inline decision re-evaluated but remain unchanged
(it did *something*)
2024-02-08 01:55:16 +00:00
899e505b1e [*] NT Win8+ FastPath: Fix missing BSL 2024-02-04 17:24:46 +00:00
62b6fa20f8 [*] Update the copyright header of most of the primitives
[*] Fix generic mutex abs yield always returning true
2024-01-29 14:48:04 +00:00
2943ffdbc2 [*] Harden Windows XP - 7 condvar; where signalers can lock up pending scheduling n threads whilst a spurious wake is occurring and trying to preemptively require the lock under the signal 2024-01-28 08:23:13 +00:00
d1c668b2c1 [*] wtf happened here? what the actual fuck (5cc811be19 5 months ago) 2024-01-27 09:15:31 +00:00
9e7615d80c [*] Same thread name identity in these constructors 2024-01-23 23:31:09 +00:00
7038787001 [+] Thread name identities 2024-01-23 23:03:52 +00:00
cf3d4fc001 [*] Amend 4fcdc798 WoA configuration 2024-01-23 18:21:10 +00:00
4fcdc798cf [+] AuWoASemaphore.hpp configuration 2024-01-22 08:32:30 +00:00
34e49d2d10 [*] Removed redundant branches from AuThreadPrimitives 2024-01-21 21:15:57 +00:00
acbd62666f [*] WoA: This member must be marked volatile due to over ::WaitOn optimization of assumed single-threaded control flow 2024-01-19 21:37:31 +00:00
0d6d073b85 [*] No way should we be using DWORDs here 2024-01-07 02:26:34 +00:00
49a6173011 [+] Improved SMT yielding
[+] Clocks.aarch64.[h/c]pp
2024-01-02 05:54:22 +00:00
6037d14674 [-] hadnt fully removed the aggressive context switch thing from the old rwlock impl 2023-12-30 21:58:52 +00:00
4e0c68d7ad [*] fix posix cont (crit) 3c19c7a5 2023-12-30 17:59:45 +00:00
3db7f527f4 [*] Extend paranoia 2023-12-30 14:56:17 +00:00
3c19c7a56e [*] Fix posix WoASemaphoreImpl 2023-12-30 14:31:37 +00:00
ba6162a7ad [*] An MSVC bug, but not really. 2023-12-30 00:25:53 +00:00
5862dbeacc [+] New generic primitives
[-] AuSemaphore.Unix.hpp
[*] Moved the old pthread based primitives to _removed/*.bak
[+] AuWoASemaphore.Unix.cpp
[+] AuWoASemaphore.Unix.hpp
2023-12-29 16:12:14 +00:00
be2b781ed6 [*] mitigations and clean up before two major commits 2023-12-26 21:01:29 +00:00
9c86d1c899 [*] Linux clean up (?) (+typo) 2023-12-23 03:16:43 +00:00
298b095cc1 [*] WhyOnAddress 2023-12-21 22:41:16 +00:00
a932aa57d2 [*] Formatting pissing me off
[+] using AuWorkerId = AuAsync::WorkerId_t;
[+] using AuWorkerPId = AuAsync::WorkerPId_t;
[+] using AuWorkerID = AuAsync::WorkerPId_t;
2023-12-16 06:42:37 +00:00
35fb78787d [*] Symmetry in WoA 2023-12-11 20:40:41 +00:00