Kernel and native-library writes into guest pages the write watch left read-only fail with EFAULT on macOS and ERROR_NOACCESS on Windows (#7473). State the rule where contributors look and point the macOS write-watch debt entry at it.
An address-based compute build bound its written V# elements in place in
the host imports of the cached address space, and its BDA table sent the
same addresses there, so every access went over PCIe. A written element
inside one import region now becomes a region of its own, staged like any
written element (copy-in, device-local shadow, copy-back), and
AddressRanges cuts the import's table entry around it so pointers into
the element reach the shadow as its descriptor does. resolveOverlays
keeps a cluster only when it lies inside one direct import region, is
stagingEligible and is crossed by no in-place range or own region.
Dispatches under APS5_BDA_STAGING_MIN_THREADS (512) threads keep the
imports; APS5_NO_BDA_STAGING=1 turns it off. Test: agc_bda_staging.
The copy-back trade-off of staged elements is listed as technical debt.
AI-assisted: yes
pthread_kill(thread, 0) returned 0 for every handle other than the caller's before it asked whether the thread was still alive. FreeBSD's _pthread_kill looks the thread up with _thr_find_thread before it checks for signal 0, so the call answers ESRCH for a thread that has ended or was never a thread. The liveness check now runs before the signal 0 shortcut; the calling thread still answers 0.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
The crash and abort reports printed the last 64 traced calls of the whole
process, so a thread that loops on a traced import (a mutex lock/unlock
pair, a profiler marker) pushes the calls of the faulting thread out of the
report. The ring already keeps the last 65536 calls with their thread.
CopyThreadCallTrace_nid_no_patch returns the most recent calls of one
thread from that ring, oldest first, and both reports (Windows crash and
abort, Linux abort) list up to 32 of them for the reporting thread after
the process-wide list.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The branch declared 222 PS5 3.20 system exports across 11 libraries.
Open PR #8747 declares 83 of the same exports (libSceNpParty 25,
libSceNpTrophy2 23, libSceHttp2 18, libSceAppContent 17), so drop them
to avoid duplication. 139 exports remain across 7 libraries.