[AMDGPU] Fix missed WMMA C-operand co-exec hazard
The gfx1250 WMMA co-execution hazard check treats only A, B and the
SWMMAC index as registers the in-flight MMA still reads. C (src2 of a
non-SWMMAC WMMA) is missing, so a VALU scheduled into the MMA's shadow
can clobber C and the MMA consumes the new value.
This is latent while C is tied to vdst, since the existing D check then
covers it. It miscompiles where the tie does not hold: for
v_wmma_bf16f32_16x16x32_bf16, whose D is narrower than C, and for the
_threeaddr form of any WMMA.
[AMDGPU] Measure MFMA overwrite hazards at each instruction
Apply previously established processing to:
- VALU overwriting an MFMA result
- VALU overwriting a register an MFMA took as srcC
AI-assisted.
[AMDGPU] Measure MFMA read hazards at each producer
Introduce more sophisticated traversal to avoid the following traps:
- order-dependent traversal and discarding seen BBs despite shorter path
- mis-matching distance and window of different producers
Record the best distance per BB instead of a visited flag and sweep the
arrivals in nondecreasing distance (bucket queue). This pairs producers
with their actual distance to a consumer in one go.
Fixed scenarios:
- MFMA reading an MFMA result as srcA, srcB or srcC
- VALU, memory or export instruction reading an MFMA result
AI-assisted.
fixup! [AMDGPU] Measure MFMA read hazards at each producer
Reword the comments of the two tests where an exact srcC write must not
hide an earlier partial one: name the producers, give the nearer one's
window, and keep the farther one's window apart from the padding it
leaves. On gfx940+ the exact write now has a window of its own, since
two different MFMAs sharing an accumulator need wait states.
AI-assisted.
[AMDGPU][NFC] Prepare the MFMA hazard checks for per-producer windows (#225988)
NFC preparation for the MFMA hazard fix in #225989.
- Extract the MFMA read-window table out of checkMAIHazards90A into
getMFMAReadWaitStates, with the partial srcC overlap half in
getMFMAOverlappedSrcCWaitStates, so a caller can ask what a specific
producer requires.
- Drop the duplicate checkMAIVALUHazards call in PreEmitNoopsCommon,
which
ran the whole check once to test whether its result was positive and
then
again to use it.
No test changes, output is identical.
#218363 extracts the same partial srcC table under the same name.
Will happily rebase my version when it lands.
AI-assisted.
arm64: Elide coherent busdma maps
Avoid allocating per-transfer maps for coherent tags that cannot
bounce. Retain maps for cache synchronization, CCA realms, and KMSAN.
These un-used maps carry with them memory and cache miss overheads.
Reviewed by: andrew
Differential Revision: https://reviews.freebsd.org/D60098
Sponsored by: Netflix
[ASTMatchers] Reduce per-matcher, per-node traversal kind overhead (#228960)
- Give traverseIgnored() a fast path and inline it
- Construct ParentMapContext eagerly and inline its accessor
- Only check if the node is ignored in matchWithFilter() for expressions
clang-tidy with LLVM's .clang-tidy config on five LLVM files (clang's
ASTContext.cpp, CGExpr.cpp, ParseDecl.cpp, SemaOverload.cpp, and
LoopVectorize.cpp), sum of two runs each:
instructions: 436.4e9 => 405.8e9, -7.0%
user time: 32.2 s => 30.2 s, -6.2%
No behavior change.
[libc][math] Fix powf exact cases, improve its performance, and add code-size optimized float-only version. (#226588)
Powf improvement:
- Fix exact case detection
- Improve performance
- Add code-size optimized float-only option
- Reorganize the implementation selection and tests.
Assisted-by: Gemini is used for code-size and performance analysis, and
for refactoring.
[AArch64][PeepholeOpt] Use correct register class for subreg uses from optimizeExtInstr. (#226595)
isCoalescableExtInstr from an instruction like SBFMXri can reuse the def
of the instruction. For some targets this is expected to be a
gpr32->gpr64 extend, but for AArch64 and PPC is gpr64->gpr64 and we are
UseSrcSubIdx and are expecting to generate a subreg copy. The regclass
used was for the full register though, not the subreg, generating an
invalid copy and INSERT_SUBREG operand (in this case).
Fixes #226352
[Support] Replace sprintf with snprintf in z/OS strsignal implementation (#224487)
Use bounded snprintf instead of sprintf when formatting the "Unknown
signal" message, and defensively re-terminate the static buffer in case
the null terminator is clobbered by a concurrent call.
Fixes #224343
18503 vioif can hang on boot after 18420
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Reviewed by: Kyle Simpson <kyle at oxide.computer>
Reviewed by: Toomas Soome <tsoome at me.com>
Approved by: Dan McDonald <danmcd at oxide.computer>
[offload-arch] Fix clangOffloadArch link with BUILD_SHARED_LIBS=ON (#229075)
add_llvm_library ignores STATIC, so with BUILD_SHARED_LIBS=ON the
library was built as a shared object and failed to link because Verbose
is defined in the tool. Build it with llvm_add_library STATIC and move
Verbose and OffloadArchCategory into the library.
Fixes build failures after #226552 (e.g.
https://lab.llvm.org/buildbot/#/builders/226/builds/23094).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Co-authored-by: Joseph Huber <huberjn at outlook.com>
openssh: Add date bump command to FREEBSD-upgrade instructions
Provide a convenient in-place sed edit command to update the FreeBSD
VersionAddendum dates with today's date.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 0ec81f6a531bf7b3b06e869c99295f3d4ab9ed8e)
(cherry picked from commit 2ba5b9da2be10261c383035bef932cd37d52f903)
openssh: Add reference for another local patch
A bug fix was committed locally and submitted upstream. Document it in
our upgrade instructions, as these sometimes take a long time before
getting merged.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 6531070132b0210aaaeb08c0dc93cb272bed348e)
(cherry picked from commit 14d6926293569048d2d04f6e5a13d80f192ad99e)
NAS-142772 / 26.0.0 / krb5.conf: alias realm case variants and fix domain_realm (by anodos325) (#19588)
MIT krb5 matches [realms] sections case-sensitively, and we set
dns_lookup_kdc = false whenever KDCs are pinned. Samba reconnects as the
machine account after creating it, kiniting as
MACHINE$@<dns_domain_name>, and that name comes from
lsa_QueryInfoPolicy2 in lower case. The lookup misses our upper-case
realm section, has no DNS fallback, and fails with KRB5_REALM_UNKNOWN.
SPNEGO normally falls back to NTLMSSP and the join survives. With the
GPOS STIG enabled smb.conf carries client use kerberos = required,
leaving no other mechanism, so every fresh AD join fails with
WERR_GEN_FAILURE.
Emit each realm under both case spellings sharing the same pinned KDCs,
and take default_domain from the canonical name.
Also rename [domain_realms] to [domain_realm]. MIT krb5 only reads the
singular form, so the section was parsing cleanly and being ignored.
[5 lines not shown]
Merge tag 'selinux-pr-20261005' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux
Pull selinux fixes from Paul Moore:
- Preserve SECURITY_LSM_NATIVE_LABELS when reusing superblocks
Similar to a previous fix (see the commit description of Stephen's
fix) we need to check to see if we have already mounted/setup the
superblock passed into the security_sb_set_mnt_opts() LSM hook so we
don't mistakenly unset SECURITY_LSM_NATIVE_LABELS.
- Fix a potential AVC sequence number data race
* tag 'selinux-pr-20261005' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
selinux: preserve NATIVE_LABELS on already-initialized sb in set_mnt_opts
selinux: fix data race on AVC latest_notif