[orc-rt] Nest StringPool handle types (#216615)
Move the handle types into StringPool as nested members:
PooledStringPtr -> StringPool::Ptr
NonOwningPooledStringPtr -> StringPool::WeakPtr
PooledStringPtrBase -> StringPool::PtrBase
StringPoolEntryUnsafe -> StringPool::EntryUnsafe
Also tightens the WeakPtr -> Ptr contract: reconstructing a Ptr is only
well-defined while another Ptr keeps the entry alive.
[libc++][test] Mark `UNSUPPORTED` for a test relying on `[[clang::trivial_abi]]` for compilers not supporting it (#211736)
This patch marks `UNSUPPORTED` for compilers not supporting
`[[clang::trivial_abi]]` (MSVC and GCC earlier than GCC 17) for a test
relying on this attribute.
[ORC] Fix and rename SymbolLookupSet::removeDuplicates (#216574)
removeDuplicates uniqued on the (name, flags) pair, so a name appearing
with both RequiredSymbol and WeaklyReferencedSymbol survived twice --
leaving a set that containsDuplicates, which compares names only, still
reported as duplicated.
Replace it with mergeEntries, which merges by name. Where entries
disagree on flags the strongest requirement wins, so a missing
definition still fails the lookup. Renamed because the entries being
merged need not be exact duplicates.
removeDuplicates had no in-tree callers, so no existing behaviour
changes. Also adds a unit test for mergeEntries -- the first direct
coverage for SymbolLookupSet.
[orc-rt] Add StringPool for interning ref-counted strings. (#216571)
Adds StringPool, a thread-safe pool for interning strings (e.g. symbol
names, paths) behind ref-counted PooledStringPtr handles.
PooledStringPtr and NonOwningPooledStringPtr compare and hash by
pool-scoped pointer identity rather than content, and clearDeadEntries()
reclaims entries with no remaining owners.
No in-tree clients yet: I expect to use this in future commits for the
platform support classes.
[NFC][SLP] Add a mixed-reassoc bundle to the operand-1 fma test (#216594)
One lane carries reassoc and the other three do not, so the bundle is
only partly reassociative. Also add a second threshold to the run lines.
iflib: Add restart transactions for IOV reconfiguration
Some devices remap the PF queues when entering or leaving SR-IOV. Add
opt-in PCI IOV helpers that hold the iflib context lock across the
complete stop, driver callback, and restart transaction.
Existing drivers continue to use the non-restarting helpers.
Sponsored by: BBOX.io
(cherry picked from commit f8fa2d77bc305bec519f9f02afe211e903c57573)
iflib: Add restart transactions for IOV reconfiguration
Some devices remap the PF queues when entering or leaving SR-IOV. Add
opt-in PCI IOV helpers that hold the iflib context lock across the
complete stop, driver callback, and restart transaction.
Existing drivers continue to use the non-restarting helpers.
Sponsored by: BBOX.io
(cherry picked from commit f8fa2d77bc305bec519f9f02afe211e903c57573)
iflib: Add restart transactions for IOV reconfiguration
Some devices remap the PF queues when entering or leaving SR-IOV. Add
opt-in PCI IOV helpers that hold the iflib context lock across the
complete stop, driver callback, and restart transaction.
Existing drivers continue to use the non-restarting helpers.
Sponsored by: BBOX.io
(cherry picked from commit f8fa2d77bc305bec519f9f02afe211e903c57573)
ddb(4), crash(8): Make `show all locks' work without LOCKDEBUG.
Any lwp currently waiting for a _contended_ lock will now record a
pointer to that lock in struct lwp::l_ld_wanted, even without
LOCKDEBUG. We can't tell who holds shared locks or spin locks, but we
can at least tell what lock a thread is waiting for when it's spinning
for a spin lock, and generally present the graph of current lock
dependencies reasonably well this way.
PR kern/60030: ddb/crash: show all locks without LOCKDEBUG
kernel: Track what lock each lwp is waiting for without LOCKDEBUG.
This is reasonably cheap -- one extra pointer on the stack, couple
extra stores when _waiting_ (spinning or sleeping) for a _contended_
lock -- and doesn't change the kernel ABI. Will enable us to get
diagnostics from crash dumps when, e.g., there's a softint deadlock
tripping a heartbeat panic.
PR kern/60030: ddb/crash: show all locks without LOCKDEBUG