[mlir][vector] Allow 0-D vector acc/res in `vector.contract` (#234638)
`vector.contract` required a scalar acc and res when there are no _free_
or _batch_ dims.
Ops with a 0-D shape, such as `linalg.dot`, produced invalid IR when
vectorized with `create_named_contraction`: the init is read as
`vector<f32>`, but the verifier expected `f32`.
This patch lets the accumulator and result be either both scalars or
both 0-D vectors:
- The verifier accepts a 0-D vector, and requires the accumulator and
result types to match.
- `ContractionOpLowering::lowerReduction` extracts the scalar for
`vector.reduction` and broadcasts the result back to 0-D.
- The op documentation is updated.
Realted to #234238.
Tests AI-assisted.
[3 lines not shown]
RuntimeLibcalls: Add attributes to stack protector failure handlers (#240701)
Declare __stack_chk_fail and __stack_smash_handler as noreturn,
nounwind and nofree. GCC similarly declares __stack_chk_fail as
noreturn and nothrow.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
CodeGen: Replace TargetOptions::DebuggerTuning with module flag (#235051)
Read the debugger tuning from the module's "debugger-tuning" flag instead of TargetOptions. Delete the now-dead -debugger-tune= cl::opt and the
TargetOptions::DebuggerTuning field.
Update the tests relying on it to directly use the module flag. The cases
that exercise multiple values do a text substitution to swap the value.
Alternatively this could be changed to synthesize the module flag in the
llc flag like some of the other widely used module flags do.
Co-authored-by: Claude Sonnet 5 <noreply at anthropic.com>
NAS-145072 / 28.0.0-BETA.1 / Use truenas_smbhad for SMB stateful failover (#20072)
Samba now replicates SMB durable handles to the standby controller with
the truenas_smbhad daemon. This replaces the ctdb implementation.
- Remove ctdb and the clustered TDB code. passdb, group mapping, share
ACLs and secrets are local to each controller again.
- Stop setting "clustering" in smb.conf.
- Write /etc/truenas_smbhad.conf with the controller node on HA systems.
Reload the daemon when a license change modifies the file.
- Keep smbd stopped on the standby. Restart it on takeover, because it
restores handles only at startup.
- Log the daemon to /var/log/truenas_smbhad.log.
- Remove the update block for stateful failover.
- Add unit tests and HA tests.
(cherry picked from commit c8c7637c9900712008384d8f97d55fe6b78a2b23)
(cherry picked from commit dec4ce4c04aa435feec7f6d26b3c061485d15b46)
[OpenMP] Apply fixes to clause/directive descriptors
- Remove NOWAIT from TASKWAIT in 5.0.
- Remove ORDER from DISTRIBUTE in 5.0.
- Remove THREAD_LIMIT from TARGET in 5.0.
- Remove variable-category modifier from DEFAULT in 5.0-5.2.
- Remove ALLOCATE from SCOPE in 5.1.
- Remove FIRSTPRIVATE from SCOPE in 5.1.
[CodeGen] Convert a few more tests to use CIR runlines (#239826)
Same as my previous approaches, this converts 12 'slightly higher' touch
versions. Each of these were cases where the only difference in
checked-IR is the SSA name, so this generalizes check-lines slightly to
wqork with both.
[LifetimeSafety][NFC] Use ignoreParensAndImpCasts consistently (#240733)
Follow-up to #240104. Replace the remaining `IgnoreParenImpCasts()`
calls in LifetimeSafety with `ignoreParensAndImpCasts()`.
NFC: at these call sites, not skipping `MaterializeTemporaryExpr` and
`SubstNonTypeTemplateParmExpr` does not change the result.
Assisted-by: Claude Opus 5.5
tests/sys/pmc: add pidtrack, callchain, pmc(8), RAPL and AMD tests
Add to the suite of ATF tests for hwpmc(4). Vendor-neutral tests go in
tests/sys/pmc; tests that depend on AMD hardware interfaces go in
tests/sys/pmc/amd, which is only built on amd64.
tests/sys/pmc:
pmc_pidtrack_test process-mode PMCs follow their PID: a live
self-read counts the process' own work, an idle
process sharing the CPU with a busy one does not
pick up its work, and the count survives a
context switch
pmc_callchain_ur_test pmcstat -U collects user callchains through the
PMC_UR ring; regression test for the KASSERTs
fixed in rGaf3929c5152b and rG66118c3f1011
pmc_cli_test pmc(8): missing log, list-events, record/info
round trip with the "instructions" alias
pmcstat_tsc_test (amd64) tsc_freq in the initlog record, TSC
column of pmcstat -R, tsc in pmc filter -j,
[29 lines not shown]
asmc: do not enable the sudden motion sensor on the MMIO backend
The interrupt filter reads the PIO interrupt port, but sc_ioport is NULL
under MMIO; the capability test only probed for keys, which says nothing
about the backend.
No MMIO-capable machine has a sudden motion sensor anyway. It existed to
park the heads of spinning disks.
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D61383
[CIR] Skip function bodies imported from other named modules (#239686)
When a function's body comes from another named module, CIRGen now emits
just a declaration instead of hitting an errorNYI. always_inline
template instantiations still get their bodies, since a library may not
provide symbols for them.
Assisted-by: Cursor / Claude Opus 5.5
NAS-145072 / 27.1.0 / Use truenas_smbhad for SMB stateful failover (by anodos325) (#20166)
Samba now replicates SMB durable handles to the standby controller with
the truenas_smbhad daemon. This replaces the ctdb implementation.
- Remove ctdb and the clustered TDB code. passdb, group mapping, share
ACLs and secrets are local to each controller again.
- Stop setting "clustering" in smb.conf.
- Write /etc/truenas_smbhad.conf with the controller node on HA systems.
Reload the daemon when a license change modifies the file.
- Keep smbd stopped on the standby. Restart it on takeover, because it
restores handles only at startup.
- Log the daemon to /var/log/truenas_smbhad.log.
- Remove the update block for stateful failover.
- Add unit tests and HA tests.
Original PR: https://github.com/truenas/middleware/pull/20072
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
delete: queue the directories and prune them in one pass
pkg_add_dir_to_del() scanned the queue for every file to keep only the
deepest directories, an invariant which was hard to read. The paths are
queued with a flag telling whether rmdir_p() may walk up their parents,
and one pass on the list sorted deepest first keeps the deepest of those
and drops their ancestors, leaving the others alone.